Title: High Level Parallelism, Distribution and Mobility
1 High Level Parallelism, Distribution and
Mobility
Distribution
People Henry Nystrom, Robert Pointon, Phil
Trinder, Kevin Hammond (St Andrews University)
David King (Motorola UK Res. Labs), Hans-Wolfgang
Loidl (LMU Munich), Rita Loogen
(Philipps-Universität Marburg) Languages with
high level distribution facilitate the
construction of large reliable distributed
systems. We have designed and implemented
Glasgow distributed Haskell (GdH), a language
with high-level distribution. We are evaluating
GdH, and another high-level distributed language
Erlang, in comparison to conventional distributed
technologies including Java/RMI and C/CORBA.
Projects 10/02 - 9/05 High-Level Techniques
for Distr. Telecoms Software EPSRC GR/R88137
7/99 -3/03 Evaluating Functional
Distribution DAAD/Brit. Council 1097 8/99 -
8/02 High-Level Arch. Independence via Par.
Graph Reduction Austrian Acad. of Sci. Post.
Doc. Fellowship 624
High Level Coordination
- High level languages simplify parallel,
distributed and mobile programming - Parallel, distributed and mobile programs must
specify - computation, i.e. an algorithm specifying what to
compute - coordination, i.e. how to arrange the
computations on multiple locations (processors) - Coordination aspects include
- partitioning the program into components for
separate evaluation - thread/process creation management
- communicationsynchronisation between
computations - Specifying all coordination aspects is a
significant burden on the programmer. - A high level language allows the programmer to
specify only a few key coordination aspects, and
automatically manages the rest.
Architecture of a Distributed Dispatch Call
Controller
Reslience of DCC when Overloaded
Parallelism
- People Abyd Al Zain, Greg Michaelson, Phil
Trinder, Hans-Wolfgang Loidl (LMU, Munich), Rita
Loogen (Philipps-Universität Marburg) Simon
Peyton Jones (Microsoft UK Res Labs), Ricardo
Pena (UCM, Madrid) - Languages with high level dynamic parallelism are
good for symbolic applications and those with
irregular parallelism. - We have designed, implemented and are evaluating
Glasgow parallel Haskell (GpH), a language with
very high-level parallelism. - GpH has been used to develop non-trivial
applications, e.g. the Lolita natural language
processor (47K lines), a linear equation solver
(1K lines), etc. - The sophisticated GpH implementation is available
on multiple platforms, and is evolving, e.g. - An implementation on Computational Grids is in
progress. - An integration with the Eden parallel language is
in progress. - Tuning the performance of programs with
high-level dynamic parallelism requires
sophisticated profiling and visualisation tools. - Projects
- 7/03 - 7/05 High Level Programming for
Computational Grids - DAAD/Brit. Council 1223
- 6/00 - 6/02 Performance Eval. of Par. Func. Prog
- Acc. Int./Brit. Council MDR 8472
Mobility
People Andre Rauber du Bois, Phil Trinder,
Hans-Wolfgang Loidl (LMU Munich) Functional
languages naturally support mobility and
facilitate high-level mobile programming. In a
mobile language a computation may move from
location (processor) to location. In functional
languages functions and computations are
first-class values and hence naturally
communicated. Moreover it is easy to define
design patterns, or higher-order functions, to
specify common forms of mobile computation.
Comparative Runtime Curves of GpH, Eden and PMLS
Linear Equation Solvers
Phil Trinder trinder_at_macs.hw.ac.uk http//www.macs
.hw.ac.uk/trinder/
Dependable Systems Group School of Mathematical
Computer Sciences Heriot-Watt University,
Edinburgh, Scotland, UK
Parallel Profile Attributing Threads to
Subprograms
2High Level Coordination
- High level languages simplify parallel,
distributed and mobile programming - Parallel, distributed and mobile programs must
specify - computation, i.e. an algorithm specifying what to
compute - coordination, i.e. how to arrange the
computations on multiple locations (processors) - Coordination aspects include
- partitioning the program into components for
separate evaluation - thread/process creation management
- communicationsynchronisation between
computations - Specifying all coordination aspects is a
significant burden on the programmer. - A high level language allows the programmer to
specify only a few key coordination aspects, and
automatically manages the rest.
3Parallelism
- People Abyd Al Zain, Greg Michaelson, Phil
Trinder, Hans-Wolfgang Loidl (LMU, Munich), Rita
Loogen (Philipps-Universität Marburg) Simon
Peyton Jones (Microsoft UK Res Labs), Ricardo
Pena (UCM, Madrid) - Languages with high level dynamic parallelism are
good for symbolic applications and those with
irregular parallelism. - We have designed, implemented and are evaluating
Glasgow parallel Haskell (GpH), a language with
very high-level parallelism. - GpH has been used to develop non-trivial
applications, e.g. the Lolita natural language
processor (47K lines), a linear equation solver
(1K lines), etc. - The sophisticated GpH implementation is available
on multiple platforms, and is evolving, e.g. - An implementation on Computational Grids is in
progress. - An integration with the Eden parallel language is
in progress. - Tuning the performance of programs with
high-level dynamic parallelism requires
sophisticated profiling and visualisation tools. - Projects
- 7/03 - 7/05 High Level Programming for
Computational Grids - DAAD/Brit. Council 1223
- 6/00 - 6/02 Performance Eval. of Par. Func. Prog
- Acc. Int./Brit. Council MDR 8472
4Distribution
People Henry Nystrom, Robert Pointon, Phil
Trinder, Kevin Hammond (St Andrews University)
David King (Motorola UK Res. Labs), Hans-Wolfgang
Loidl (LMU Munich), Rita Loogen
(Philipps-Universität Marburg) Languages with
high level distribution facilitate the
construction of large reliable distributed
systems. We have designed and implemented
Glasgow distributed Haskell (GdH), a language
with high-level distribution. We are evaluating
GdH, and another high-level distributed language
Erlang, in comparison to conventional distributed
technologies including Java/RMI and C/CORBA.
Projects 10/02 - 9/05 High-Level Techniques
for Distr. Telecoms Software EPSRC GR/R88137
7/99 -3/03 Evaluating Functional
Distribution DAAD/Brit. Council 1097 8/99 -
8/02 High-Level Arch. Independence via Par.
Graph Reduction Austrian Acad. of Sci. Post.
Doc. Fellowship 624
5Mobility
People Xiao Yan Deng, Zara Field, Andre Rauber
du Bois, Phil Trinder, Hans-Wolfgang Loidl (LMU
Munich) Functional languages naturally support
mobility and facilitate high-level mobile
programming. In a mobile language a computation
may move from location (processor) to
location. In functional languages functions and
computations are first-class values and hence
naturally communicated. Moreover it is easy to
define design patterns, or higher-order
functions, to specify common forms of mobile
computation. We have constructed mHaskell, a
mobile variant of Haskell, and proposed mobility
skeletons that capture common patterns of mobile
coordination. We have proposed Autonomous Mobile
Programs that periodically make a decision about
where toexecute in a network. The decisions are
informed by cost models that measure current
performance, the relative speeds of
alternative network locations, and communication
costs.