



































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Steady state Schedule Streamlt Language, Importance, Common Machine Languages , Streaming Model of Computation , Streamlt Language, Representing Streams Structured, Types of Parallelism, Exploiting Parallelism, The Streamlt Compiler, Coarsen Stream Path, Path Parallelize
Typology: Slides
1 / 43
This page cannot be seen from the preview
Don't miss anything!




































Prof. Saman Amarasinghe, MIT.
1
6.189 IAP 2007 MIT
2
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
Common Machine Language ●
Represent common properties of architectures
Necessary for performance
●
Abstract away differences in architectures
Necessary for portability
●
Cannot be too complex
Must keep in mind the typical programmer
●
C and Fortran were the common machine languages foruniprocessors
Imperative languages are not the correct abstraction forparallel architectures.
●
What is the correct abstraction for parallel multicoremachines?
4
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
Explicit Parallelism ●
Programmer controls details of parallelism!
●
Granularity decisions:
if too small, lots of synchronization and thread creation
if too large, bad locality
●
Load balancing decisions
Create balanced parallel sections (not data-parallel)
●
Locality decisions
Sharing and communication structure
●
Synchronization decisions
barriers, atomicity, critical sections, order, flushing
●
For mass adoption, we need a better paradigm:
Where the parallelism is natural
Exposes the necessary information to the compiler
5
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
Unburden the Programmer ●
Granularity
Load Balancing
Locality
Synchronization
●
Can a novel language help?
7
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
Outline ●
●
●
●
8
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
push=
Steady-State Schedule ●
●
There exist a unique minimum steady state schedule
●
pop= push=
pop=
10
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
push=
push=
Steady-State Schedule ●
●
There exist a unique minimum steady state schedule
●
pop= push=
pop=
11
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
push=
Steady-State Schedule ●
●
There exist a unique minimum steady state schedule
●
pop= push=
pop=
pop= push=
13
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
push=
Steady-State Schedule
pop= push=
pop=
pop= push=
●
●
There exist a unique minimum steady state schedule
●
14
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
push=
Steady-State Schedule ●
●
There exist a unique minimum steady state schedule
●
pop= push=
pop=
pop=
16
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
Initialization Schedule ●
●
●
peek=
pop= peek=4push=
pop= push=
17
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
Outline ●
●
●
●
19
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
Types of Parallelism
Task Parallelism
Parallelism explicit in algorithm
Between filters
without
producer/consumer
relationship
Data Parallelism
Between iterations of a
stateless
filter
Place within scatter/gather pair (
fission
)
Can’t parallelize filters with state
Pipeline Parallelism
Between producers and consumers
Stateful
filters can be parallelized
Scatter Gather
Scatter
Gather
Task
Pipeline
Data
Data Parallel
20
6.189 IAP 2007 MIT
Prof. Saman Amarasinghe, MIT.
Types of Parallelism
Traditionally: Task Parallelism
Thread (fork/join) parallelism
Data Parallelism
Data parallel loop (
forall
)
Pipeline Parallelism
Usually exploited in hardware
Scatter Gather
Scatter
Gather
Task
Pipeline
Data