In principle, pure functional languages promise straightforward architecture-independent parallelism. We investigate the validity of this claim in the context of our highly-portable implementation of an implicitly-parallel functional language: the GUM implementation of Glasgow Parallel Haskell (GpH). We focus here on the low-level architecture independence of GUM: the high-level architecture independence of the GpH programming model is discussed elsewhere.
Low-level architecture independence is achieved by choosing a message-passing model for GUM, and implementing it using portable C and a widely-supported message-passing library like PVM. In fact GUM is largely independent of the message-passing library, and has been adapted to use MPI and the CM-5 CMMD libraries as well as PVM. As a result, GUM is easily ported, and is currently available on seven platforms including shared-memory machines, distributed memory machines, and networks of workstations. We provide indicative measurements of the efficiency and speedups delivered by GUM on a range of architectures.
@InProceedings{low-level-gph, author = {Philip W. Trinder and Ed. {Barry Jr.} and M. Kei Davis and Kevin Hammond and Sahalu B. Junaidu and Ulrike Klusik and Hans-Wolfgang Loidl and and Simon L. {Peyton Jones}}, title = {GpH: An Architecture-Independent Functional Language}, booktitle = {Glasgow Functional Programming Workshop}, address = {Pitlochry, Scotland}, year = 1998, month = sep }