A parallel language provides an executable notation for implementing a parallel algorithm.
|
Design criteria:
-
How are parallel operations defined?
-
static tasks vs. dynamic tasks vs. implicit operations
-
How is data shared between tasks?
-
explicit communication/synchronization vs. shared memory
-
How is the language implemented?
-
low-overhead runtime systems vs. optimizing compilers
|
Usually a language reflects a particular style of expressing parallelism.
|
Data parallel expresses concept of identical algorithm on different parts of array
|
Message parallel expresses fact that at low level parallelism implis information is passed between different concurrently executing program parts
|