SKELETAL PARALLEL PROGRAMMING WITH OCAMLP3L 2.0
Abstract
Parallel programming has proved to be an effective technique to increase the performance of computationally intensive applications. However, writing parallel programs is not easy, and activities such as debugging are usually hard and time consuming. To cope with these difficulties, skeletal parallel programming has been widely explored in recent years with very promising results. However, prototypal skeletal systems developed so far tend to be rather inflexible and difficult to adapt to many practical parallelization scenarios. For instance, many systems restrict all the substructures of an application being encapsulated together in term of possibly nested skeletons, which may be cumbersome when parallelizing some large and complex applications. Moreover, it is usually difficult to share resources among different skeleton instances and to reuse the same instance of a skeleton in different parts of the code. This paper reports on the current status of the OcamIP3I (2.0) system, which sensibly changes the skeletal model of the previous versions, making it more usable and flexible. In particular, we describe the new skeletons, the new skeletal execution model as well as related issues on design and implementation.
OcamIP3I was funded by a Galileo project and by CARAML, French ACI-GRID.
References
M. Alt , H. Bischof and S. Gorlatch , Algorithm design and performance prediction in a Java-based grid system with skeletons, Proc. EuroPar 2002 (2002) pp. 899–906. Google Scholar- Concurrency Practice and Experience 7(3), 225 (1995), DOI: 10.1002/cpe.4330070305. Crossref, ISI, Google Scholar
-
L. Bettini , The klaim project: Theory and practice ( 2003 ) . Google Scholar - , Logic of programming and calculi of discrete design ,
NATO ASI Series , ed.Manfred Broy ( 1987 ) . Google Scholar - F. Clèment et al. Parallel programming with the system applications to numerical code coupling. TR RR-5131, INRIA Rocquencourt, 2004 . Google Scholar
-
M. Cole , Algorithmic Skeletons: Structured Management of Parallel Computations ,Research Monographs in Parallel and Distributed Computing ( Pitman , 1989 ) . Google Scholar -
M. Danelutto , Parallel functional programming with skeletons: the ocamlp31 experiment , The ML Workshop ( 1998 ) . Google Scholar M. Danelutto , F. Pasqualetti and S. Pelagatti , Skeletons for data parallelism in P3L, Proc. of Europar '97 (1997) pp. 619–628. Google ScholarM. Danelutto and M. Stigliani , SKElib: parallel programming with skeletons in C, Proc. EuroPar 2000 (2000) pp. 1175–1184. Google ScholarJ. Darlington , Parallel Programming Using Skeleton Functions, PARLE'93 (1993) pp. 146–160. Google Scholar-
J. Darlington , Parallel Skeletons for Structured Composition , Fifth ACM SIGPLAN PPoPP ( ACM Press , 1995 ) . Google Scholar -
R. Di Cosmo , OcamlP3L 2.0: User Manual ( 2005 ) , http://www.dicosmo.org/ocamlp31/ . Google Scholar - Comp. Lang., Sys. and Structures 33(4), 82 (2007). Crossref, ISI, Google Scholar
-
A. J. Dorta , llc: a parallel skeletal language , Proc. HLPP 2003 ( 2003 ) . Google Scholar -
K. Hammond and A. J. Rebon , Portillo. HaskSkel: Algorithmic skeletons for Haskell , Proc. of IFL'99 ( 1999 ) . Google Scholar H. Kuchen , A skeleton library, Proc. of EuroPar 2002, eds.B. Monien and R. Feldmann (2002) pp. 620–629. Google Scholar- Z. Li. Efficient implementation of map skeleton for the OcamlP31 system. Master's thesis, DEA Programmation, Université Paris VII, 2003 . Google Scholar
-
S. Pelagatti , Structured development of parallel programs ( Taylor&Francis , 1998 ) . Google Scholar - Parallel Computing 28(12), 1785 (2002). Google Scholar


