Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends...
Transcript of Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends...
![Page 1: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/1.jpg)
Trends and Challenges in Multicore Programming
Eva BurrowsBergen Language Design Laboratory (BLDL)
Department of Informatics, University of Bergen
Bergen, March 17 , 2010
![Page 2: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/2.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Outline
• The Roadmap of Multicores
• The Challenge of Parallel Thinking
• Multicore Languages and Compilers
• Summary
![Page 3: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/3.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
The Roadmap of Multicores
![Page 4: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/4.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
At the beginnings...
1965: “the number of transistors placed inexpensively on integrated circuit will double approximately every two years “
• Innocent observation led to an industry goal: Moore's Law
Gordon E. MooreCofounder and Chairman Emeritus of Intel
![Page 5: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/5.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Moore's Law illustrated on Intel chips
Drawing: Herb Sutter
![Page 6: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/6.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Multicore Architectures
• A processing system with 2 or more independent cores integrated on the same chip
• Number and type of cores: – multicore or manycore– heterogeneous or homogeneous
• Memory architecture:– shared– distributed– mixture
• Interconnection network
![Page 7: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/7.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Shared Memory Multicore Architectures
SharedMemory
Core
Core
Core
Core
![Page 8: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/8.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Distributed Memory Multicore Architectures
Core Core
Core
Mem
Core Mem
Mem
Mem
![Page 9: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/9.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
(Future) Manycore Architectures
SharedMemory
Core
Core
Core
Core
SharedMemory
Core
Core
Core
Core
SharedMemory
Core
Core
Core
Core
SharedMemory
Core
Core
Core
Core
![Page 10: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/10.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
The “Babel” of Multicores
![Page 11: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/11.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Overwhelming Multicores
![Page 12: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/12.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Intel's Nehalem Architecture
• shared memory• multithreading• up to 8 cores• 2 threads/core• private L1 and L2 cache • 24MB shared L3 cache
![Page 13: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/13.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Sun's Niagara 2 Architecture
• shared memory• multithreading• up to 8 cores• 48 threads/core• 4MB shared L2 cache
![Page 14: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/14.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Cell BE – Heterogeneous Architecture
• 1 PPU for OS and PC
• 8 SPE capable of vector processing with local store memory (4GB)
• highperformance interconnection bus
![Page 15: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/15.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
NVIDIA GPUs with CUDA
![Page 16: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/16.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Field Programmable Gate Arrays (FPGAs)
• device with a matrix of reconfigurable gate array logic circuitry
• when configured works as a hardware implementation of a software application
• user can create taskspecific cores that all run like parallel circuits inside one FPGA chip
![Page 17: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/17.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
The Challenge of Parallel Thinking
![Page 18: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/18.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
“Think Parallel or Perish”
2009:
“... the 'not parallel' era will appear to be a very primitive time in the history of computers when people look back in a hundred years...”
“... in less than a decade, a programmer who does not 'Think parallel' first will not be a programmer”
James ReindersChief Evangelist – Intel’s Software Products Division
![Page 19: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/19.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Multicore is a Challenge
• Primarily in software development
• Performance speed up depends on how good is the multithreading of the parallel source code
• Parallel code ought to be:– correct– efficient– scalable– futureproof
• Portable code across platforms – major issue
![Page 20: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/20.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Start to Think Parallel
what hardware do we have?– multithreaded system architecture– GPU– heterogeneous multicore (ex. Cell BE)– FPGA– etc...
• language: what data structures and operations are supported?
• identify parallelism– embarrassingly parallel?– functional decomposition: task parallelism– data decomposition: data parallelism
![Page 21: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/21.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Start to Think Parallel
what hardware do we have?– multithreaded system architecture– GPU– heterogeneous multicore (ex. Cell BE)– FPGA– etc...
• language: what data structures and operations are supported?
• identify parallelism– embarrassingly parallel?– functional decomposition: task parallelism– data decomposition: data parallelism
![Page 22: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/22.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Threading Methods
• Explicit threading (rather low level)– manually write all code responsible for managing threads
that interface to a specific library
• Librarybased – best for functional decomposition– user creates and synchronize threads explicitly– Ex. Pthreads
Compilerbased – best for data parallelization– user annotates code with pragmas– Ex. OpenMP, TBB
![Page 23: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/23.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Golden True: Use Abstraction Where Possible
Futureproof applications
Express parallelism, without thinking much about threads/core management– Libraries, OpenMP, Intel TBB – good examples for this
Best to avoid raw native threads, like Pthreads– Native threads and MPI are like the assembly language of
parallelism
Think in tasks, not threads
![Page 24: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/24.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Load balancing
keep all threads busy all the time
![Page 25: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/25.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Fine or Coarsegrain – Which is Best?
• Depends on algorithm and hardware
• Finegrain: good for loadbalancing, but too much communication overhead
• Coarsegrain: more opportunity to increase performance, but not so good for loadbalancing
![Page 26: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/26.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Lockbased Synchronization
• is errorprone
• they may cause blocking: – deadlocks: threads are waiting for each other to release a
resource– livelocks: threads continuously change their state but not
doing any useful work.
• Lockfree programming: e.g. transactional memory
![Page 27: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/27.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Exercise: Parallelizing A Baking Process
We are making a birthday cake: Mix ingredients: 20 minutes Bake: 30 minutes
Can we parallelize it? How many cooks? Each cook has his own spoon? How if I make cupcakes?
![Page 28: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/28.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
A Note on Performance Gain
Amdahl's Law: the pessimistic– A program's serial portion is a practical upper bound on
the performance of its parallel portion– Baking a cake:
– Overall parallel performance is still limited by the baking time
• So are massively parallel systems hopeless... ?
Number of cooks Time Speedup1 30 + 20 = 50 1.0x2 30 + 10 = 40 1.2x4 30 + 5 = 35 1.4x
infinite 30 + 0 = 30 1.6x
![Page 29: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/29.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
A Second Note on Performance Gain
Number of cooks Time Speedup1 30 + 20*100 = 2030 1.0x2 30 + 20*50 = 1030 1.9x4 30 + 20*25 = 530 3.8x
infinite 30 + 20*0 = 30 67x
Gustafson's Law: scaled speedup measurement – the optimistic– What if we want to bake 100 cakes?
– certain problems have increased performance by increasing the problem size
– the problem size scales with the number of processors
– speedup should be measured by scaling the problem size to the number of processors, not fixing the problem size
![Page 30: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/30.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Parallelizing is Difficult
Writing correct, efficient parallel programs has always been challenging (e.g. HPC)
This applies to multicore programming too
Higher abstraction levels help
“We cannot start from scratch whenever a new multicore hardware turns up”
![Page 31: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/31.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Ongoing Research
Goal: to lift the abstraction level even higher – To free the user from low level hardware details– To bridge the gap between programming different types of
multicores and/or HPC facilities Many highlevel programming models have been proposed:
– Functional approaches: Haskell, SAC, Crystal, etc – Data parallel languages: NESL, DPH, SAC, Fortran95, Sisal
etc.– Implicit parallelism: HPF, Id, NESL, Sisal, ZPL– PGAS model: UPC, CoArray Fortran, Fortress, Chapel, X10– etc.
![Page 32: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/32.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Languages and Compilers for Multicores
![Page 33: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/33.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Intel's for Multicore CPUs
Intel Compilers support OpenMP Intel launched its own MPI library Performance analysis tools, debuggers Intel TBB – adding parallelism to C++ Intel's Ct technology – nested data parallelism for C++ Intel Parallel Studio – an all in all support toolbox Higherlevel models:
– Intel Concurrent Collections for C++ – Intel Cilk++ Software Development Kit
![Page 34: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/34.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Intel's Parallel Studio
• Microsoft Visual Studio C/C++ developers toolbox
• interoperable with OpenMP and Intel's TBB libraries
• helps the programmer throughout the parallelization process (to identify, create, debug and tune)
![Page 35: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/35.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Others
Java: Java threads, java.util.concurrent package
Microsoft .NET: Task Parallel Library (TPL)
Haskell: thread programming and data parallelism
etc...
![Page 36: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/36.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Programming GPGPU
NVIDIA's CUDA model: Gives access to the enormous computing power of NVIDIA
GPUs via standards like OpenCL, C/C++, Fortran, Python, .NET
OpenCL – generally adopted by other GPU vendors (e.g. AMD)
![Page 37: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/37.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
OpenCL (Open Computing Language)
a new open standard for programming heterogenous systems suported by most hardware vendors
uniform programming environment to write efficient, portable code for both multicore CPUs and GPUs
http://www.khronos.org/opencl/
![Page 38: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/38.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Summary
• Multicores (hardware)– are reality– are overwhelming– many, more complex, more heterogeneous to appear
• Multicores (software)– writing parallel code is challenging (always has been)– programming models are versatile and confusing– portability across various platforms major issue
• Unified highlevel parallel programming model is still open research
![Page 39: Trends and Challenges in Multicore Programmingbldl.ii.uib.no/2010/10v-Multicore-BLDL.pdf · Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory](https://reader033.fdocuments.in/reader033/viewer/2022060521/60506e87410c7d7f440e8c19/html5/thumbnails/39.jpg)
Eva Burrows Trends and Challenges in Multicore Programming http://bldl.ii.uib.no● ●
Staying Tuned?
• http://software.intel.com/enus/parallel/
• http://www.upcrc.illinois.edu/
• http://www.multicoreinfo.com/
• http://www.drdobbs.com/goparallel