A Critical Classification
A parallel programming language should
- be easy to program, by providing mechanisms for
- Decomposition of a program into parallel threads;
- Mapping threads to processors;
- Communication and synchronization among threads.
-
- provide a software development methodology;
- be architecture-independent;
- have guaranteed performance on different architectures;
- provide cost measures of programs.
-
These requirements are quite demanding and several subsets of them are strongly in tension with each other.