Engineering parallel symbolic programs in GPH
โ Scribed by Loidl, Hans-Wolfgang; Trinder, Philip W.; Hammond, Kevin; Junaidu, Sahalu B.; Morgan, Richard G.; Peyton Jones, Simon L.
- Publisher
- John Wiley and Sons
- Year
- 1999
- Tongue
- English
- Weight
- 410 KB
- Volume
- 11
- Category
- Article
- ISSN
- 1040-3108
No coin nor oath required. For personal study only.
โฆ Synopsis
We investigate the claim that functional languages offer low-cost parallelism in the context of symbolic programs on modest parallel architectures. In our investigation we present the first comparative study of the construction of large applications in a parallel functional language, in our case in Glasgow Parallel Haskell (GPH). The applications cover a range of application areas, use several parallel programming paradigms, and are measured on two very different parallel architectures.
On the applications level the most significant result is that we are able to achieve modest wallclock speedups (between factors of 2 and 10) over the optimised sequential versions for all but one of the programs. Speedups are obtained even for programs that were not written with the intention of being parallelised. These gains are achieved with a relatively small programmereffort. One reason for the relative ease of parallelisation is the use of evaluation strategies, a new parallel programming technique that separates the algorithm from the co-ordination of parallel behaviour.
On the language level we show that the combination of lazy and parallel evaluation is useful for achieving a high level of abstraction. In particular we can describe top-level parallelism, and also preserve module abstraction by describing parallelism over the data structures provided at the module interface ('data-oriented parallelism'). Furthermore, we find that the determinism of the language is helpful, as is the largely implicit nature of parallelism in GPH.
๐ SIMILAR VOLUMES
MILLIPEDE is a project aimed at developing a distributed shared memory environment for parallel programming. A major goal of this project is to support easy-to-grasp parallel programming languages that will also make it straightforward to parallelize existing code. Other targets are forward compatib
With most of today's fast scientific software written in Fortran and C, Java has a lot of catching up to do. In this paper we discuss how new Java programs can capitalize on highperformance libraries for other languages. With the help of a tool we have automatically created Java bindings for several