29/11/2011
MC4ES Going Multicore for Embedded Software Jeroen Boydens (KHBO) Marijn Temmerman (KdG)
Agenda 1.
2.
Kennismaking
a) b) c)
EP - Enterprise Programming TERAlabs Leden van de gebruikersgroep
a) b) c)
Omschrijving Mindmaps Content Management Systeem
a) b)
TERAlabs : Tooling, implementatie EP : Design Patterns, testing
a) b) c) d)
Resultaten van de enquête Discussie Valorisatieacties Planning
Project MC4ES
3. Stand van zaken 4. Varia
29/11/2011
GG-1 Meeting MC4ES
2
1
29/11/2011
1.a EP onderzoeksgroep dr. ing. Jeroen Boydens + founder + instructor + project leader
Founded: 2006 – 2007
@ep_research http://ep.khbo.be
ing. Robbie Vincke
ing. Sille Van Landschoot
+ MC4ES
+ MC4ES + lab assistant + TDD4ES
ing. Olivier Rosseel
ing. Piet Cordemans
ing. Wim Catteeuw
+ academic staff + ICTO coach
+ PhD student + academic staff + TDD4ES
+ APS4ES
29/11/2011
GG-1 Meeting MC4ES
3
1.a EP onderzoeksgroep Industry Partners DistriNet
Enterprise Programming
Input on fundamental research on SE methods for Traditional Software Systems
MC4ES
DistriNet, KUL FMTC
Input on fundamental research on Embedded Systems Development
APS4ES
PhD
Test
Design
K.U.Leuven
J. Boydens
PhD
TDD4ES
P. Cordemans
Fundamental research communities 29/11/2011
GG-1 Meeting MC4ES
4
2
29/11/2011
1.b TERAlabs dr. ir. Marijn Temmerman + founder + instructor + project leader
dr. Hugo Van Hove
Peter Engels
+ + + +
+ MC4ES (Tetra) + Hi10 (POC)
MC4ES (Tetra) Can (Hobu) FlexRay(Tetra) Kricode (Tetra)
29/11/2011
GG-1 Meeting MC4ES
5
1.b TERAlabs
29/11/2011
GG-1 Meeting MC4ES
6
3
29/11/2011
1.c Gebruikersgroep
29/11/2011
GG-1 Meeting MC4ES
7
Agenda 1.
2.
Kennismaking
a) b) c)
EP – Enterprise Programming TERAlabs Leden van de gebruikersgroep
a) b) c)
Omschrijving Mindmaps Content Management Systeem
a) b)
TERAlabs : Tooling, implementatie EP : Design Patterns, testing
a) b) c) d)
Resultaten van de enquête Discussie Valorisatieacties Planning
Project MC4ES
3. Stand van zaken 4. Varia
29/11/2011
GG-1 Meeting MC4ES
8
4
29/11/2011
2.a MC4ES
Verdere rapportage: Engels ?
29/11/2011
GG-1 Meeting MC4ES
9
2.a MC4ES Migratie van embedded software naar parallelle uitvoering
Design/Test keuzes
Tool ondersteuning voor parallelle uitvoering
Implementatietechnieken voor parallelle uitvoering
2 wekelijks overleg
4.2
1.4
Demystificatie Seminarie met Feedback van GC
1.3
Testtechnieken bij parallelle uitvoering
4.1
1.2
1.1
EXPLORATIE
Ontwerppatronen voor parallelle uitvoering
VALORISATIESTAPPEN
Implementatie keuzes
CMS Management Reviews
4.3
Seminarie State of industry / State of research
Algemene vereisten analyse voor gevalstudies 2.1
Brainstormsessie gevalstudies met Gebruikersgroep
4.4
VERDIEPING
2.2
Ontwerp en Testbaarheid vereisten analyse voor gevalstudies
2.2
Implementatie vereisten analyse voor gevalstudies
2 wekelijks overleg
2.3
2.3
2 wekelijks overleg
Academische gevalstudies
Academische gevalstudies 4.5
Focus op Design/Testbaarheid
CMS Focus op Implementatie
Lessons learned
a. Freestanding (zonder O/S) b. Hosted Environment
a. Freestanding (zonder O/S) b. Hosted Environment
4.6
Feedback seminarie Lessons learned + Bevindingen toetsen aan GC
3.1
VERDIEPING
Industriële validatie gevalstudies Focus op Design/Testbaarheid
a. beperk in complexe case b. volledig in eenvoudige case
4.8
29/11/2011
3.2
2 wekelijks overleg
4.7
CMS
Best Practices
Industriële validatie gevalstudies Focus op Implementatie
a. beperk in complexe case b. volledig in eenvoudige case
Studiedag + Management Reviews, Lessons learned en Best Practices mbt gevalstudies + Externe sprekers: domein experten
GG-1 Meeting MC4ES
10
5
29/11/2011
2.a MC4ES: WP1 Migratie van embedded software naar parallelle uitvoering
Design/Test keuzes
CMS
4.2
Tool ondersteuning voor parallelle uitvoering 1.4
2 wekelijks overleg
Implementatietechnieken voor parallelle uitvoering
Demystificatie Seminarie met Feedback van GC
1.3
Testtechnieken bij parallelle uitvoering
4.1
1.2
1.1
EXPLORATIE
Ontwerppatronen voor parallelle uitvoering
VALORISATIESTAPPEN
Implementatie keuzes
Management Reviews 4.3
Seminarie State of industry / State of research
29/11/2011
MC4ES
11
GG-1 Meeting MC4ES
12
2.b Mindmap
29/11/2011
6
29/11/2011
2.c CMS http://mc4es.khbo.be screenshot met link erboven
29/11/2011
GG-1 Meeting MC4ES
13
Agenda 1.
2.
Kennismaking
a) b) c)
EP - Enterprise Programming TERAlabs Leden van de gebruikersgroep
a) b) c)
Omschrijving Mindmaps Content Management Systeem
a) b)
TERAlabs : Tooling, implementatie EP : Design Patterns, testing
a) b) c) d)
Resultaten van de enquête Discussie Valorisatieacties Planning
Project MC4ES
3. Stand van zaken 4. Varia
29/11/2011
GG-1 Meeting MC4ES
14
7
29/11/2011
3.a TERAlabs • Information gathered has been divided into 7 categories: • • • • • • •
Conferences Journals Periodicals Websites Hardware Software Standards
29/11/2011
GG-1 Meeting MC4ES
15
3.a Voorbeeld Fiches << Multicore System Analyzer>> SOFTWARE Name Producer Website Classification Reseller(s) Price Manuals
Multicore System Analyzer Texas Instrument http://processors.wiki.ti.com/index.php/Multicore_System_Analyzer Language Library Tool Compiler free
part of SYS/BIOS and Linux Multicore Software Development Kits (MCSDK) for C66x, C647x, C645x Processors http://www.ti.com/tool/bioslinuxmcsdk
29/11/2011
GG-1 Meeting MC4ES
16
8
29/11/2011
3.a Voorbeeld Fiches
Conferences
visits to conferences, information on future conferences, …
Journals
peer-reviewed
Periodicals
not
Websites
courses, blogs, sites of important organisations, …
29/11/2011
GG-1 Meeting MC4ES
Company
Processor
url
AMP embedded processors Cavium Networks NXP
AMP86290
link
OCTEON Fusion LPC4300
link
Fujitsu
FR-1000
link
Atmel
DIOPSIS 740 link Dual-core DSP AT572D740 AT90SDC100/1 link 04 TWINAVR™ SECURE DUAL CORE MICROCONTR OLLER
17
#cores
2 3.a Voorbeeld Fiches
Atmel
29/11/2011
link
6+DSP (networking) 2 (h) 4 (for networking) ARM7+DSP
Master core+secure core
GG-1 Meeting MC4ES
18
9
29/11/2011
Company
Processor
url
#cores
Tilera
TILE GX
link
Marvell
MV78200
link
Intellasys
SEAforth 40C18 link
100 (probably not suited for ES) 2(routers,switche s,laser pr) 40
Freescale
QorIQ
link
2 (networking)
Freescale
MPC8641D
link1 link2
Renesas
SH7265
link
Renesas
SH7776
link
Toshiba
Capricorn-H
link
Texas Instruments
Overview
link
29/11/2011
2 (car eg car audio) 2 2 ARM CortexA9
GG-1 Meeting MC4ES
19
3.a Software & Standards •
Standards: OpenMP, OpenCL, MPI, POSIX threads, IntelTBB
•
Tools for analysis • used for porting and optimizing existing code • For finding problems specific for parallel programming (race conditions, dead locks, …)
•
Debuggers
•
OS: Windows,Linux,RTOS,bare metal
29/11/2011
GG-1 Meeting MC4ES
20
10
29/11/2011
3.a Parallel Programming (starting from existing sequential code) 1. Determine independent parts 2. Refactor program 3. Implement
29/11/2011
GG-1 Meeting MC4ES
21
3.a Parallel Programming Determine independent parts use tools For example: Intel® Parallel Advisor vfAnalyst Refactor program by hand
29/11/2011
GG-1 Meeting MC4ES
22
11
29/11/2011
3.a Parallel Programming Programmer effort
Implementation Java threads
OS+pthreads or MPI or OpenMP
RTOS Bare metal
Hardware
29/11/2011
GG-1 Meeting MC4ES
23
3.a Questions •
Questions for GG: • Which processors? • Which development boards? • Also C++? • Which standards? • Ideas for simple applications • Applications from scratch or porting (sequential to parallel)
29/11/2011
GG-1 Meeting MC4ES
24
12
29/11/2011
3.a ARM • Benoît Modave
29/11/2011
GG-1 Meeting MC4ES
25
3.a Overzicht
29/11/2011
GG-1 Meeting MC4ES
26
13
29/11/2011
3.a Configuraties
29/11/2011
GG-1 Meeting MC4ES
27
3.a Cortex A9 overview
29/11/2011
GG-1 Meeting MC4ES
28
14
29/11/2011
3.a Dev. Board: Snowball
29/11/2011
GG-1 Meeting MC4ES
29
3.a AP9500 Cortex-A9 -Dual-core @ 1GHz -L1 cache: 32K-I + 32K-D SRAM -L2 cache: 512K SRAM -FPU, NEON
29/11/2011
GG-1 Meeting MC4ES
30
15
29/11/2011
3.a Multicore Instructies Voor ARMv6 -SWP en SWPB (Wordt afgeraden)
Sinds ARMv6 -Load-Exclusives -Store-Exclusives -Clear-Exclusive
Daarnaast zijn er nog heel wat instructies atomic 29/11/2011
GG-1 Meeting MC4ES
31
3.a OpenMP • Gebaseerd op fork/join model
29/11/2011
GG-1 Meeting MC4ES
32
16
29/11/2011
3.a Gebruik Gebruik van compiler directives: #pragma omp directive-name \ [clause[ [,] clause]...]
29/11/2011
GG-1 Meeting MC4ES
33
3.a Gebruik Functies aanroepen. #include
... omp_set_num_threads(4); OS environment variabelen. $ OMP_NUM_THREADS=”2” 29/11/2011
GG-1 Meeting MC4ES
34
17
29/11/2011
3.a OpenMP voorbeeld int i; float a[]; float b[]; float c[]; float tmp[] ... #pragma omp parallel for private (tmp) for (i=0; i
29/11/2011
GG-1 Meeting MC4ES
35
3.a Intel Atom • Siegfried Mercelis
29/11/2011
GG-1 Meeting MC4ES
36
18
29/11/2011
3.a Inhoud • Hardware – Intel Atom – Intel Desktop Board D510MO – Multicore instructies
• Software – Intel Parallel Studio
29/11/2011
GG-1 Meeting MC4ES
37
3.a Intel Atom • Netbooks, embedded devices, ... • x86-64-microprocessor – Zelfde instructieset zelfde software – Linux, Windows, …
• Low-power – Geoptimaliseerde architectuur • In-order-processing • Langere pipeline wegens zuinige cache • Delen van ALU’s
– Power management • Laagst mogelijke voltage • Deep power down • Binary clock tree
29/11/2011
GG-1 Meeting MC4ES
38
19
29/11/2011
3.a Intel Atom D510 • 1,66 GHz Dual Core met Hyper-Threading – 2 Cores, 4 Threads – 64 bit instructieset, MMX, SSE, SSE2, SSE3, SSSE3
• Integrated Graphics Media Accelerator 3150 – 200Mhz, shared memory – DirectX 9, OpenGL 1.5, Shader 3.0, MPEG-2 Decode – VGA, LVDS*
• Integrated Memory Controller – Tot 4 GB RAM, single channel DDR2 • Max. TDP 13 Watt
29/11/2011
GG-1 Meeting MC4ES
39
3.a Architectuur • Cache – L1 Cache (per core) • 32kB instructie-cache • 24kB data-cache • Asymmetrisch – 1MB L2 Cache • 512kB per core – Geen L3 Cache
• Hyper-Threading – 2 fysieke cores – 4 logische cores
29/11/2011
GG-1 Meeting MC4ES
40
20
29/11/2011
3.a Intel Desktop Board D510MO • Mini-ITX/microATX • 2 Chip Systeem – Intel Atom D510 – Intel NM10 Express Chipset
• PS/2, Serial, Parallel, VGA, Ethernet, USB 2.0, audio, SATA, PCI & PCI-Express Mini card, BIOS, ... • Tot 4GB DDR2
29/11/2011
GG-1 Meeting MC4ES
41
3.a Intel Parallel Studio • Software – Parallel Advisor • Waar heeft parallelliseren van seriële code de grootste impact?
– Parallel Composer • C/C++ compiler, libraries, parallel building blocks
– Parallel Amplifier • Identificeert bottlenecks, slechte wachttijden, ...
– Parallel Inspector • Identificeert Multithreading fouten (deadlocks, etc.)
• Ondersteuning – Linux (Eclipse) & Windows (Visual Studio) – Intel Threading Building Blocks, OpenMP, Windows Threads
29/11/2011
GG-1 Meeting MC4ES
42
21
29/11/2011
3.a Multicore instructies • Gegarandeerd atomische operaties – Read/write – Exchange
• Lock-prefix – Bit test & modify instructies – Compare Exchange instructie – Logische en mathematische functies (INC, AND, ADD, ...)
29/11/2011
GG-1 Meeting MC4ES
43
3.a XMOS • Wim Van der Wilt
29/11/2011
GG-1 Meeting MC4ES
44
22
29/11/2011
3.a XMOS Platform • Specifiek ontwikkeld voor embedded toepassingen • Scheduling, thread handeling en communicatie tussen threads wordt gedaan door hardware • XC taal is specifiek voor het XMOS platform ontwikkeld
29/11/2011
GG-1 Meeting MC4ES
45
3.a Toepassingen • • • •
Audio Encoding/Decoding Motor control Audio Video Bridging over Ethernet Iphone/Ipod Dock toepassingen
29/11/2011
GG-1 Meeting MC4ES
46
23
29/11/2011
3.a Hardware • Platform bestaat uit een array van tiled single-chip processors • Processors bestaan in een single & in een quad-core versie • Per core kunnen er max 8 threads gescheduled worden • Schedulen & synchroniseren van threads gebeurt door hardware 29/11/2011
GG-1 Meeting MC4ES
47
3.a Hardware • Threads kunnen met elkaar communiceren doormiddel van channels • I/O gebeurt via ports die ook gebufferd en getimed kunnen worden • Mogelijkheid tot event-driven processing 29/11/2011
GG-1 Meeting MC4ES
48
24
29/11/2011
3.a XC • Taal, gebaseerd op c speciaal ontwikkeld voor XMOS platform • Threads kunnen toegewezen worden aan specifieke cores en ook hoe ze gescheduled worden • Poorten, timers en channels kunnen aangesproken worden vanuit de taal
29/11/2011
GG-1 Meeting MC4ES
49
3.a XC • Geen ondersteuning voor floating point & pointers • Compiler en taal zo geschreven dat er geen race conditions mogelijk zijn • XC kan gebruikt maken van C & C++ code die dan geëmuleerd word dmv LLVM
29/11/2011
GG-1 Meeting MC4ES
50
25
29/11/2011
3.a Demo XMOS
29/11/2011
GG-1 Meeting MC4ES
51
3.b Management Review • Book, article, tech report, standard, etc. – Visual Reference – One pager • • • • • •
Abstract Keywords Technology Relevance Rating Reference
– Mindmap
Zie print-out in uw bundel 29/11/2011
GG-1 Meeting MC4ES
52
26
29/11/2011
3.b Design Pattern fiches • • • • • • • •
Pattern name Classification Problem Statement Solution Figure Consequences Related Patterns Literature
Zie print-out in uw bundel 29/11/2011
GG-1 Meeting MC4ES
53
3.b Design Pattern fiches • Thread Pool pattern – Classification: Implementation Mechanisms
– Problem: Fork/Join
indirect mapping van tasks • Static number of UE’s
29/11/2011
GG-1 Meeting MC4ES
54
27
29/11/2011
3.b Design Pattern fiches • Thread Pool pattern – Solution: Shared task queue
– Consequences: Use of shared resources (task queue)
29/11/2011
GG-1 Meeting MC4ES
55
3.b Demo priemgetallen • Singlecore versie vs. Dualcore versie • C • Uitvoertijd opmeten (Amdahl)
29/11/2011
GG-1 Meeting MC4ES
56
28
29/11/2011
3.b Demo priemgetallen • Trial Division algoritme – Evalueer elk oneven nummer n • Deling door elk eerder gevonden priemgetal < • Als rest = 0 geen priemgetal
𝑛
– Max. aantal benodigde berekeningen: ln
29/11/2011
𝑛 𝑛
GG-1 Meeting MC4ES
57
3.b Demo priemgetallen • Opbouw – Local memory (per CPU core) • Lokale teller: geeft het aantal berekende priemgetallen weer
– Shared memory • Resultatenarray met gevonden priemgetallen • Task queue met te evalueren nummers
29/11/2011
GG-1 Meeting MC4ES
58
29
29/11/2011
3.b Demo priemgetallen • Design Patterns – Fork/Join pattern • Indirecte mapping op 2 CPU cores • Main() wordt twee maal uitgevoerd. Selectie op basis van CPU ID.
– Thread Pool pattern • Evaluatie van een oneven nummer = taak • Evaluatie volgens Trial Division algoritme
29/11/2011
GG-1 Meeting MC4ES
59
3.b Demo priemgetallen
DEMO
29/11/2011
GG-1 Meeting MC4ES
60
30
29/11/2011
3.b Demo priemgetallen
29/11/2011
GG-1 Meeting MC4ES
61
Agenda 1.
2.
Kennismaking
a) b) c)
EP – Enterprise Programming TERAlabs Leden van de gebruikersgroep
a) b) c)
Omschrijving Mindmaps Content Management Systeem
a) b)
TERAlabs : Tooling, implementatie EP : Design Patterns, testing
a) b) c) d)
Resultaten van de enquête Discussie Valorisatieacties Planning
Project MC4ES
3. Stand van zaken 4. Varia
29/11/2011
GG-1 Meeting MC4ES
62
31
29/11/2011
4.a Enquête • Doel – Huidige toestand – Verwachtingen
• Enkel technische leden gebruikersgroep • N = 11 • Genormaliseerde scores • Naar groter doelpubliek verspreiden 29/11/2011
GG-1 Meeting MC4ES
63
4.a Enquête What is the number of processors in a single application ? >8 processors 8 Processors 4 Processors 2 Processors 1 Processor 0%
20%
40%
60%
80%
100%
Normalized score
29/11/2011
GG-1 Meeting MC4ES
64
32
29/11/2011
4.a Enquête What is the number of cores you plan to use ? Present
>8 cores
Future 8 cores
4 cores
2 cores
1 core 0%
20%
40% 60% Normalized score
29/11/2011
80%
100%
GG-1 Meeting MC4ES
65
4.a Enquête What is your key concern about multicore systems? Security
Cost
Speed
Power Efficiency
Reliability 0%
29/11/2011
20%
40% 60% Normalized score
GG-1 Meeting MC4ES
80%
100%
66
33
29/11/2011
4.a Enquête What type of hardware platform do you intend to use? MIPS ARM M-series Xcore (XMOS) PowerQuiCC TILERA QorIQ x86 (other) x86 (Intel/AMD) ASIC Blackfin Atom PowerPC FPGA ARM-A series 0%
29/11/2011
10%
20% 30% Normalized score
40%
50%
GG-1 Meeting MC4ES
67
4.a Enquête What type of processor do you intend to use?
Homogeneous 38,46% Heterogeneous 61,54%
29/11/2011
GG-1 Meeting MC4ES
Homogeneous Heterogeneous
68
34
29/11/2011
4.a Enquête Which programming language do you use? 100% 90% Normalized score
80% 70% 60% 50% 40% 30% 20% 10% 0% C
C++
Assembly
29/11/2011
Java
.NET
Matlab
Python
Other
GG-1 Meeting MC4ES
69
4.a Enquête Which of the following language extensions/frameworks/libraries are you familiar with? OpenMP 9% OpenMP
None 29%
POSIX Threads MPI POSIX Threads 24%
OpenCL TBB Other None
Other 29%
MPI 9%
TBB 0%
29/11/2011
OpenCL 0%
GG-1 Meeting MC4ES
70
35
29/11/2011
4.a Enquête Are you interested in tools for porting sequential code to parallel code?
No 45%
29/11/2011
Yes Yes 55%
No
GG-1 Meeting MC4ES
71
4.a Enquête Which operating system are you using? 100% 90%
Normalized score
80% 70% 60% 50% 40% 30% 20% 10% 0% Commercial OS
29/11/2011
In-house developed OS
Open Source OS
GG-1 Meeting MC4ES
Freestanding
72
36
29/11/2011
4.a Enquête Are Real-Time capabilities/performance required?
Very important Important Neutral Less important Not important 0
29/11/2011
1
2
3
4
5
6
GG-1 Meeting MC4ES
7
8
73
4.b Discussie enquête
29/11/2011
GG-1 Meeting MC4ES
74
37
29/11/2011
4.c Valorisatie •
J. Boydens and M. Temmerman. MC4ES: Going Multicore for Embedded Software. Presented at Academia-to-Business forum, DSPValley, 2011.
•
R. Vincke, S. Van Landschoot, P. Cordemans, J. Boydens and E. Steegmans. Performance Experiments on Multicore Embedded Systems. Proceedings of the Fourth European Conference on the Use of Modern Information and Communication Technologies, 2011.
•
I. Neshev, P. Cordemans, S. Van Landschoot and J. Boydens. Multitasking Framework for Embedded Multicore Systems. Proceedings of the Twentieth International Scientific and Applied Science conference: Electronics-ET, 2011.
•
OptiMMA Symposium. Optimization of MP-SoC Middleware for Eventdriven Applications. 18/11/2011
29/11/2011
GG-1 Meeting MC4ES
75
4.c Planning
Migratie van embedded software naar parallelle uitvoering
Design/Test keuzes
4.2
CMS
Tool ondersteuning voor parallelle uitvoering 1.4
2 wekelijks overleg
Implementatietechnieken voor parallelle uitvoering
Demystificatie Seminarie met Feedback van GC
1.3
Testtechnieken bij parallelle uitvoering
4.1
1.2
1.1
EXPLORATIE
Ontwerppatronen voor parallelle uitvoering
VALORISATIESTAPPEN
Implementatie keuzes
Management Reviews 4.3
29/11/2011
Seminarie State of industry / State of research
GG-1 Meeting MC4ES
76
38
29/11/2011
4.c Planning • Volgende GG vergadering ? – 2012 Week 8-12 – Doodle
• Factuur lidmaatschap opvolgen
29/11/2011
GG-1 Meeting MC4ES
77
39