1 |
Program in an SPMD data parallel style
-
User writes code with (conceptually) a single thread of control and globally accessible data
|
2 |
Program is annotated with assertions giving information about desired data locality and/or distribution
|
3 |
Compiler generates code implementing data and work distribution from the user-written SPMD application
-
For MIMD - implementation is multi-threaded message passing with local data; generated synchronization and send/receive code
-
for SIMD - implementation is parallel code with communication optimized by complier placement of data
-
for vectors - implementation is vectorized code optimized for the vector units
-
for RISC - implementation is pipelined superscalar code with compiler generated cache management
|