1 |
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
|
2 |
Advantages:
-
Global operations conceptually simple
-
Easy to program (particularly for certain scientific applications)
|
3 |
Disadvantages:
-
Unproven compilers
-
As express "problem" can be inflexible if new algorithm which language didn't express well
|
4 |
Examples: HPF, C*, HPC++
|
5 |
Originated on SIMD machines where parallel operations are in lock-step but generalized (not so successfully as compilers too hard) to MIMD
|