Data-Parallel Languages
Data-parallel languages provide an abstract, machine-independent model of parallelism.
- Fine-grain parallel operations, such as element-wise operations on arrays
- Shared data in large, global arrays with mapping “hints”
- Implicit synchronization between operations
- Partially explicit communication from operation definitions
Advantages:
- Global operations conceptually simple
- Easy to program (particularly for certain scientific applications)
Disadvantages:
- Unproven compilers
- As express “problem” can be inflexible if new algorithm which language didn’t express well
Originated on SIMD machines where parallel operations are in lock-step but generalized (not so successfully as compilers too hard) to MIMD