Engineering Large Parallel Functional Programs
Hans-Wolfgang Loidl and Philip W. Trinder
International Workshop on the Implementation of Functional Languages
1997, LNCS, St. Andrews, Scotland, UK, Sep 10-12, 1997.
The design and implementation of useful programming languages, whether
sequential or parallel, should be driven by large, realistic
applications. In constructing several medium- and large-scale programs
in Glasgow Parallel Haskell, GPH, a parallel extension of Haskell, the
group at Glasgow has investigated several important engineering
issues:
- Real Application Parallelism. The programs achieve good
wall-clock speedups and acceptable scale-up on both a shared-memory
and a distributed memory machine. The programs typify a number of
application areas and use a number of different parallel paradigms,
e.g. pipelining or divide-and-conquer, often combining several
paradigms in a single program.
- Language Issues. Although the largely implicit parallelism in GPH
is a satisfactory programming model in general the base constructs for
introducing and controlling parallelism tend to obfuscate the
semantics of large programs. As a result we developed evaluation
strategies, a more abstract, and systematic mechanism for introducing
and controlling parallelism.
- Engineering Environment. The development and performance
tuning of these programs emphasised the importance of an integrated
engineering environment. In the process we have refined components of
this environment like the simulator, the runtime system, and the
profiling tools.
@InProceedings{gph-eng,
author = {Hans-Wolfgang Loidl and Philip W. Trinder},
title = {Engineering Large Parallel Functional Programs},
booktitle = {Implementation of Functional Languages, 1997},
series = {LNCS},
year = {1997},
publisher = {Springer-Verlag},
address = {St. Andrews, Scotland},
month = sep
}
Available in:
ps,
ps.gz
GPH Papers |
GPH