streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... ·...
Transcript of streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... ·...
![Page 1: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/1.jpg)
Bill Thies, MIT. 1 6.189 IAP 2007 MIT
6.189 IAP 2007
Lecture 8
The StreamIt Language
![Page 2: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/2.jpg)
2 6.189 IAP 2007 MITBill Thies, MIT.
Languages Have Not Kept Up
Modernarchitecture
C von-Neumannmachine
● Two choices:
Develop cool architecture with complicated, ad-hoc language
Bend over backwards to supportold languages like C/C++
● Two choices:
Develop cool architecture with complicated, ad-hoc language
● Two choices:
![Page 3: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/3.jpg)
3 6.189 IAP 2007 MITBill Thies, MIT.
Why a New Language?
For uniprocessors,C was:•Portable•High Performance•Composable•Malleable•Maintainable
1985 199019801970 1975 1995 2000
4004
8008
80868080 286 386 486 Pentium P2 P3P4Itanium
Itanium 2
2005
Raw
Power4 Opteron
Power6
Niagara
YonahPExtreme
Tanglewood
Cell
IntelTflops
Xbox360
CaviumOcteon
RazaXLR
PA-8800
CiscoCSR-1
PicochipPC102
Boardcom 1480
20??
# ofcores
1
2
4
8
16
32
64
128256
512
Opteron 4PXeon MP
Athlon
AmbricAM2045
Raw
Power4 Opteron
Power6
Niagara
YonahPExtreme
Tanglewood
Cell
IntelTflops
Xbox360
CaviumOcteon
RazaXLR
PA-8800
CiscoCSR-1
PicochipPC102
Boardcom 1480 Opteron 4PXeon MP
AmbricAM2045
![Page 4: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/4.jpg)
4 6.189 IAP 2007 MITBill Thies, MIT.
Why a New Language?
Uniprocessors:C is the commonmachine language
1985 199019801970 1975 1995 2000
4004
8008
80868080 286 386 486 Pentium P2 P3P4Itanium
Itanium 2
2005
Raw
Power4 Opteron
Power6
Niagara
YonahPExtreme
Tanglewood
Cell
IntelTflops
Xbox360
CaviumOcteon
RazaXLR
PA-8800
CiscoCSR-1
PicochipPC102
Boardcom 1480
20??
# ofcores
1
2
4
8
16
32
64
128256
512
Opteron 4PXeon MP
Athlon
AmbricAM2045
Raw
Power4 Opteron
Power6
Niagara
YonahPExtreme
Tanglewood
Cell
IntelTflops
Xbox360
CaviumOcteon
RazaXLR
PA-8800
CiscoCSR-1
PicochipPC102
Boardcom 1480 Opteron 4PXeon MP
AmbricAM2045
![Page 5: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/5.jpg)
5 6.189 IAP 2007 MITBill Thies, MIT.
Why a New Language?
What is the commonmachine languagefor multicores?
1985 199019801970 1975 1995 2000
4004
8008
80868080 286 386 486 Pentium P2 P3P4Itanium
Itanium 2
2005
Raw
Power4 Opteron
Power6
Niagara
YonahPExtreme
Tanglewood
Cell
IntelTflops
Xbox360
CaviumOcteon
RazaXLR
PA-8800
CiscoCSR-1
PicochipPC102
Boardcom 1480
20??
# ofcores
1
2
4
8
16
32
64
128256
512
Opteron 4PXeon MP
Athlon
AmbricAM2045
Raw
Power4 Opteron
Power6
Niagara
YonahPExtreme
Tanglewood
Cell
IntelTflops
Xbox360
CaviumOcteon
RazaXLR
PA-8800
CiscoCSR-1
PicochipPC102
Boardcom 1480 Opteron 4PXeon MP
AmbricAM2045
![Page 6: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/6.jpg)
6 6.189 IAP 2007 MITBill Thies, MIT.
Common Machine Languages
Single memory image
Single flow of control
Common PropertiesUniprocessors:
ISA
Functional Units
Register FileDifferences:
Multiple local memories
Multiple flows of control
Common PropertiesMulticores:
Communication Model
Synchronization Model
Number and capabilities of cores
Differences:
von-Neumann languages represent the common properties and abstract away the differences
Need common machine language(s) for multicores
![Page 7: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/7.jpg)
7 6.189 IAP 2007 MITBill Thies, MIT.
● For programs based on streams of dataAudio, video, DSP, networking, and cryptographic processing kernels Examples: HDTV editing, radar tracking, microphone arrays, cell phone base stations, graphics
● Several attractive propertiesRegular and repeating computationIndependent filters with explicit communicationTask, data, and pipeline parallelism Adder
Speaker
AtoD
FMDemod
LPF1
Scatter
Gather
LPF2 LPF3
HPF1 HPF2 HPF3
Streaming as a Common Machine Language
![Page 8: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/8.jpg)
8 6.189 IAP 2007 MITBill Thies, MIT.
Streaming Models of Computation
● Many different ways to represent streamingDo senders/receivers block?How much buffering is allowed on channels?Is computation deterministic?Can you avoid deadlock?
● Three common models:1. Kahn Process Networks2. Synchronous Dataflow3. Communicating Sequential Processes
![Page 9: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/9.jpg)
9 6.189 IAP 2007 MITBill Thies, MIT.
Streaming Models of Computation
None(Rendesvouz)
Fixed by compiler
Conceptually unbounded
Buffering
- Rich synchronization primitives
- Occam language
- Static scheduling- Deadlock freedom
- UNIX pipes- Ambric (startup)
Notes
Data-dependent, allows non-determinism
Communicating Sequential Processes (CSP)
Static Synchronous dataflow (SDF)
Data-dependent,but deterministic
Kahn process networks (KPN)
CommunicationPattern
SDF
KPN CSPspace of program behaviors
![Page 10: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/10.jpg)
10 6.189 IAP 2007 MITBill Thies, MIT.
The StreamIt Language
● A high-level, architecture-independent language for streaming applications
Improves programmer productivity (vs. Java, C)Offers scalable performance on multicores
● Based on synchronous dataflow, with dynamic extensions
Compiler determines execution order of filtersMany aggressive optimizations possible
![Page 11: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/11.jpg)
11 6.189 IAP 2007 MITBill Thies, MIT.
● ApplicationsDES and Serpent [PLDI 05]MPEG-2 [IPDPS 06]SAR, DSP benchmarks, JPEG, …
● ProgrammabilityStreamIt Language (CC 02) Teleport Messaging (PPOPP 05)Programming Environment in Eclipse (P-PHEC 05)
● Domain Specific OptimizationsLinear Analysis and Optimization (PLDI 03)Optimizations for bit streaming (PLDI 05)Linear State Space Analysis (CASES 05)
● Architecture Specific OptimizationsCompiling for Communication-Exposed Architectures (ASPLOS 02)Phased Scheduling (LCTES 03)Cache Aware Optimization (LCTES 05)Load-Balanced Rendering (Graphics Hardware 05)
StreamIt Program
Front-end
Stream-AwareOptimizations
Uniprocessorbackend
Clusterbackend
Rawbackend
IBM X10backend
C/C++ C per tile +msg code
StreamingX10 runtime
Annotated Java
MPI-likeC/C++
Simulator(Java Library)
The StreamIt Project
![Page 12: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/12.jpg)
12 6.189 IAP 2007 MITBill Thies, MIT.
Example: A Simple Counter
void->void pipeline Counter() {add IntSource();add IntPrinter();
}void->int filter IntSource() {
int x;init { x = 0; }work push 1 { push (x++); }
}int->void filter IntPrinter() {
work pop 1 { print(pop()); }
}
Counter
IntSource
IntPrinter
% strc Counter.str –o counter% ./counter –i 40123
![Page 13: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/13.jpg)
13 6.189 IAP 2007 MITBill Thies, MIT.
Representing Streams
● Conventional wisdom: streams are graphsGraphs have no simple textual representationGraphs are difficult to analyze and optimize
● Insight: stream programs have structure
unstructured structured
![Page 14: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/14.jpg)
14 6.189 IAP 2007 MITBill Thies, MIT.
parallel computation
Structured Streams
may be any StreamIt language construct
joinersplitter
pipeline
feedback loop
joiner splitter
splitjoin
filter ● Each structure is single-input, single-output
● Hierarchical and composable
![Page 15: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/15.jpg)
15 6.189 IAP 2007 MITBill Thies, MIT.
Filter Example: Low Pass Filter
N
float->float filter LowPassFilter (int N, float freq) {float[N] weights;
init {weights = calcWeights(freq);
}
work peek N push 1 pop 1 {float result = 0;for (int i=0; i<weights.length; i++) {
result += weights[i] * peek(i);}push(result);pop();
}}
filter
![Page 16: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/16.jpg)
16 6.189 IAP 2007 MITBill Thies, MIT.
Low Pass Filter in C
void FIR(int* src, int* dest, int* srcIndex, int* destIndex, int srcBufferSize, int destBufferSize,int N) {
float result = 0.0;for (int i = 0; i < N; i++) {result += weights[i] * src[(*srcIndex + i) % srcBufferSize];
}dest[*destIndex] = result;*srcIndex = (*srcIndex + 1) % srcBufferSize;*destIndex = (*destIndex + 1) % destBufferSize;
}
● FIR functionality obscured by buffer management details
● Programmer must commit to a particular buffer implementation strategy
![Page 17: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/17.jpg)
17 6.189 IAP 2007 MITBill Thies, MIT.
float→float pipeline BandPassFilter (int N, float low, float high) {
add LowPassFilter(N, low);add HighPassFilter(N, high);
}
HighPassFilter
LowPassFilter
Pipeline Example: Band Pass Filter
![Page 18: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/18.jpg)
18 6.189 IAP 2007 MITBill Thies, MIT.
duplicate
SplitJoin Example: Equalizer
BPF BPF BPF
Adder
roundrobin
Equalizerfloat→float pipeline Equalizer (int N, float lo, float hi) {
add splitjoin {
split duplicate;
for (int i=0; i<N; i++)
add BandPassFilter(64, lo + i*(hi - lo)/N);
join roundrobin(1);
}
add Adder(N);
}
![Page 19: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/19.jpg)
19 6.189 IAP 2007 MITBill Thies, MIT.
void->void pipeline FMRadio(int N, float lo, float hi) {add AtoD();
add FMDemod();
add splitjoin {split duplicate;for (int i=0; i<N; i++) {
add pipeline {
add LowPassFilter(lo + i*(hi - lo)/N);
add HighPassFilter(lo + i*(hi - lo)/N);}
}join roundrobin();
}add Adder();
add Speaker();}
Adder
Speaker
AtoD
FMDemod
LPF1
Duplicate
RoundRobin
LPF2 LPF3
HPF1 HPF2 HPF3
Building Larger Programs: FMRadio
![Page 20: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/20.jpg)
20 6.189 IAP 2007 MITBill Thies, MIT.
The Beauty of Streaming
“Some programs are elegant, some are exquisite, some are sparkling. My claim is that it is possible to write grand programs, noble programs, truly magnificient ones!”
— Don Knuth, ACM Turing Award Lecture
![Page 21: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/21.jpg)
21 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 22: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/22.jpg)
22 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 23: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/23.jpg)
23 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 24: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/24.jpg)
24 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 25: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/25.jpg)
25 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 26: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/26.jpg)
26 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 27: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/27.jpg)
27 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 28: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/28.jpg)
28 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 29: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/29.jpg)
29 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 30: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/30.jpg)
30 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 31: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/31.jpg)
31 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 32: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/32.jpg)
32 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 33: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/33.jpg)
33 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 34: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/34.jpg)
34 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(N) join roundrobin(N)
![Page 35: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/35.jpg)
35 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 36: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/36.jpg)
36 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 37: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/37.jpg)
37 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 38: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/38.jpg)
38 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 39: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/39.jpg)
39 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 40: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/40.jpg)
40 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 41: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/41.jpg)
41 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 42: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/42.jpg)
42 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 43: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/43.jpg)
43 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 44: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/44.jpg)
44 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 45: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/45.jpg)
45 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 46: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/46.jpg)
46 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 47: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/47.jpg)
47 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 48: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/48.jpg)
48 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 49: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/49.jpg)
49 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 50: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/50.jpg)
50 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 51: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/51.jpg)
51 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 52: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/52.jpg)
52 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 53: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/53.jpg)
53 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 54: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/54.jpg)
54 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 55: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/55.jpg)
55 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 56: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/56.jpg)
56 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 57: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/57.jpg)
57 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 58: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/58.jpg)
58 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 59: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/59.jpg)
59 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 60: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/60.jpg)
60 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 61: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/61.jpg)
61 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(1) join roundrobin(1)
![Page 62: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/62.jpg)
62 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1)
![Page 63: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/63.jpg)
63 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1)
![Page 64: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/64.jpg)
64 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1)
![Page 65: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/65.jpg)
65 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1)
![Page 66: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/66.jpg)
66 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1)
![Page 67: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/67.jpg)
67 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1)
![Page 68: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/68.jpg)
68 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1)
![Page 69: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/69.jpg)
69 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1)
![Page 70: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/70.jpg)
70 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1)
![Page 71: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/71.jpg)
71 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1,2,3)
![Page 72: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/72.jpg)
72 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1,2,3)
![Page 73: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/73.jpg)
73 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1,2,3)
![Page 74: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/74.jpg)
74 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1,2,3)
![Page 75: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/75.jpg)
75 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1,2,3)
![Page 76: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/76.jpg)
76 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1,2,3)
![Page 77: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/77.jpg)
77 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1,2,3)
![Page 78: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/78.jpg)
78 6.189 IAP 2007 MITBill Thies, MIT.
SplitJoins are Beautiful
split duplicate split roundrobin(2) join roundrobin(1,2,3)
![Page 79: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/79.jpg)
79 6.189 IAP 2007 MITBill Thies, MIT.
Transpose
M
N
N
M
Matrix Transpose
![Page 80: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/80.jpg)
80 6.189 IAP 2007 MITBill Thies, MIT.
M
N
N
M
?
roundrobin(?)
roundrobin(?)
Matrix Transpose
![Page 81: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/81.jpg)
81 6.189 IAP 2007 MITBill Thies, MIT.
M
N
N
M
?
roundrobin(?)
roundrobin(?)
Matrix Transpose
![Page 82: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/82.jpg)
82 6.189 IAP 2007 MITBill Thies, MIT.
M
N
N
M
N
roundrobin(M)
roundrobin(1)
Matrix Transpose
![Page 83: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/83.jpg)
83 6.189 IAP 2007 MITBill Thies, MIT.
M
N
N
M
N
roundrobin(M)
roundrobin(1)
Matrix Transpose
![Page 84: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/84.jpg)
84 6.189 IAP 2007 MITBill Thies, MIT.
M
N
N
M
Matrix Transpose
float->float splitjoin Transpose (int M,int N) {
split roundrobin(1);for (int i = 0; i<N; i++) {
add Identity<float>;}join roundrobin(M);
}
N
roundrobin(M)
roundrobin(1)
![Page 85: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/85.jpg)
85 6.189 IAP 2007 MITBill Thies, MIT.
● Many FFT algorithms require a bit-reversal stage● If item is at index n (with binary digits b0 b1 … bk),
then it is transferred to reversed index bk … b1 b0
● For 3-digit binary numbers:
000011110011001101010101
000011110011001101010101
Bit-reversed ordering
![Page 86: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/86.jpg)
86 6.189 IAP 2007 MITBill Thies, MIT.
● Many FFT algorithms require a bit-reversal stage● If item is at index n (with binary digits b0 b1 … bk),
then it is transferred to reversed index bk … b1 b0
● For 3-digit binary numbers:
000011110011001101010101
000011110011001101010101
Bit-reversed ordering
RR(w1)
RR(w1) RR(w1)
RR(w2)RR(w2)
RR(w3)
![Page 87: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/87.jpg)
87 6.189 IAP 2007 MITBill Thies, MIT.
● Many FFT algorithms require a bit-reversal stage● If item is at index n (with binary digits b0 b1 … bk),
then it is transferred to reversed index bk … b1 b0
● For 3-digit binary numbers:
000011110011001101010101
000011110011001101010101
Bit-reversed ordering
RR(1)
RR(1) RR(1)
RR(2)RR(2)
RR(4)
![Page 88: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/88.jpg)
88 6.189 IAP 2007 MITBill Thies, MIT.
complex->complex pipeline BitReverse (int N) {if (N==2) {
add Identity<complex>;} else {
add splitjoin {split roundrobin(1);add BitReverse(N/2);add BitReverse(N/2);join roundrobin(N/2);
} }
}
Bit-reversed ordering
4 4
2 2 2 2
1 1 1 1
1 1rr rr
rrrr
4 4
2 2 2 2
1 1 1 1
1 1rr rr
rrrr
1 1rr
rrrr
8 8rr
rrrr
![Page 89: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/89.jpg)
89 6.189 IAP 2007 MITBill Thies, MIT.
N-Element Merge Sort
int->int pipeline MergeSort (int N) {if (N==2) {
add Sort(N);} else {
add splitjoin {split roundrobin(N/2);add MergeSort(N/2);add MergeSort(N/2);join roundrobin(N/2);
} }add Merge(N);
}
Sort Sort SortSort
Sort Sort Sort Sort
MergeMerge Merge Merge
Merge Merge
Merge
N/2 N/2
N/4 N/4 N/4 N/4
N/8 N/8N/8 N/8 N/8 N/8 N/8 N/8
N
![Page 90: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/90.jpg)
90 6.189 IAP 2007 MITBill Thies, MIT.
N-Element Merge Sort (3-level)
Sort Sort Sort Sort Sort Sort Sort Sort
MergeMerge Merge Merge
Merge Merge
Merge
N/2 N/2
N/4 N/4 N/4 N/4
N/8 N/8 N/8 N/8 N/8 N/8 N/8 N/8
N
![Page 91: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/91.jpg)
91 6.189 IAP 2007 MITBill Thies, MIT.
Bitonic Sort
![Page 92: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/92.jpg)
92 6.189 IAP 2007 MITBill Thies, MIT.
FFT
![Page 93: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/93.jpg)
93 6.189 IAP 2007 MITBill Thies, MIT.
Block Matrix Multiply
![Page 94: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/94.jpg)
94 6.189 IAP 2007 MITBill Thies, MIT.
Filterbank
![Page 95: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/95.jpg)
95 6.189 IAP 2007 MITBill Thies, MIT.
FM Radio with Equalizer
![Page 96: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/96.jpg)
96 6.189 IAP 2007 MITBill Thies, MIT.
Radar-Array Front End
![Page 97: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/97.jpg)
97 6.189 IAP 2007 MITBill Thies, MIT.
MP3 Decoder
![Page 98: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/98.jpg)
98 6.189 IAP 2007 MITBill Thies, MIT.
Case Study:MPEG-2 Decoder in StreamIt
![Page 99: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/99.jpg)
99 6.189 IAP 2007 MITBill Thies, MIT.
MPEG-2 Decoder in StreamIt
output to player
Picture Reorder
joiner
joiner
IDCT
IQuantization
splitter
splitter
VLDmacroblocks, motion vectors
frequency encodedmacroblocks differentially coded
motion vectors
motion vectorsspatially encoded macroblocks
recovered picture
ZigZag
Saturation
Channel Upsample Channel Upsample
Motion Vector Decode
Y Cb Cr
quantization coefficients
picture type
<QC>
<QC>
reference picture
Motion Compensation
<PT1> referencepicture
Motion Compensation
<PT1>reference picture
Motion Compensation
<PT1>
<PT2>
Repeat
Color Space Conversion
<PT1, PT2>
add VLD(QC, PT1, PT2);
add splitjoin {
split roundrobin(N∗B, V);
add pipeline {add ZigZag(B);add IQuantization(B) to QC;add IDCT(B);add Saturation(B);
}add pipeline {
add MotionVectorDecode();add Repeat(V, N);
}
join roundrobin(B, V);}
add splitjoin {split roundrobin(4∗(B+V), B+V, B+V);
add MotionCompensation(4∗(B+V)) to PT1;for (int i = 0; i < 2; i++) {
add pipeline {add MotionCompensation(B+V) to PT1;add ChannelUpsample(B);
}}
join roundrobin(1, 1, 1);}
add PictureReorder(3∗W∗H) to PT2;
add ColorSpaceConversion(3∗W∗H);
MPEG bit stream
![Page 100: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/100.jpg)
100 6.189 IAP 2007 MITBill Thies, MIT.
Teleport Messaging in MPEG-2
joiner
splitter
recovered picture
Channel Upsample
Channel Upsample
Cr
MotionCompensation
MotionCompensation
Motion Compensation
Y Cb
picture type
Order
IQ
VLD
MCMCMC
![Page 101: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/101.jpg)
101 6.189 IAP 2007 MITBill Thies, MIT.
Frame Reordering
DecodePicture
Decode Macroblock
Decode MotionVectors
Motion Compensation
Decode Block
Motion Compensation For Single Channel
Saturate
IDCT
ZigZagUnordering InverseQuantization
File Parsing
Global Variable Space
The MPEG Bitstream
Output Video
Messaging Equivalent in C
![Page 102: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/102.jpg)
102 6.189 IAP 2007 MITBill Thies, MIT.
MPEG-2 Implementation
● Fully-functional MPEG-2 decoder and encoder
● Developed by 1 programmer in 8 weeks
● 2257 lines of code Vs. 3477 lines of C code in MPEG-2 reference
● 48 static streams, 643 instantiated filters
![Page 103: streamit-language-lecture - for pdfilab.usc.edu/packages/cell-processor/course/6.189... · 2007-05-02 · Teleport Messaging (PPOPP 05) Programming Environment in Eclipse (P-PHEC](https://reader033.fdocuments.net/reader033/viewer/2022050503/5f95042bf5ec2f6dc154c159/html5/thumbnails/103.jpg)
103 6.189 IAP 2007 MITBill Thies, MIT.
Conclusions
● StreamIt language preserves program structureNatural for programmers
● Parallelism and communication naturally exposedCompiler managed buffers, and portable parallelization technology
● StreamIt increases programmer productivity, enables parallel performance