© 1991 by British Computer Society
| ||||||||||||||||||||||||||||||||||||||||||||||||||
Practical Concurrent Programming for Parallel Machines
Department of Computing and Information Science, Queen's University, Kingston, Canada K7L 3N6
Concurrent programming has been viewed as an activity in which a knowledge of the target machine architecture is indispensable to building efficient software. The variety of possible parallel machines has spawned of corresponding variety of concurrent languages for programming them. This has prevented the significant use of parallelism in all but high-end numerical computation because it has not been clear which approach was best.
Much of the confusion could be dispensed with if concurrent programming languages that were independent of the particular target architecture could be found. Despite some scepticism about this possibility, several such languages now exist. We survey them and discuss their merits and drawbacks.
Architecture independent programming languages can be divided into two broad classes: those that are based on the PRAM model or some extension of it; and those which dispense with a need for explicit storage management and scheduling. Languages in the former class guarantees of performance but require much of the programmer; those in the latter do not provide performance guarantees but are much less demanding to use.
Received July 1990.
* This work was supported by the Natural Science ans Engineering Research Counsil of Canada
Department of Computing and Information Science, Queen's University, Kingston, Canada K7L 3N6