Parallel Languages
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