Exceptions for Algorithmic Skeletons

Algorithmic skeletons offer high-level abstractions for parallel programming based on recurrent parallelism patterns. Patterns can be combined and nested into more complex parallelism behaviors. Programmers fill the skeleton patterns with the functional (business) code, which transforms the generic skeleton into a specific application. However, when the functional code generates exceptions, programmers are exposed to implementation details of the skeleton library, breaking the high-level abstraction principle. Furthermore, related parallel activities must be stopped as the exception is raised. This paper describes how to handle exceptions in algorithmic skeletons without breaking the highlevel abstractions of the programming model. We describe both the behavior of the framework in a formal way, and its implementation in Java: the Skandium Library.

[1]  Frédéric Loulergue,et al.  Semantics of an Exception Mechanism for Bulk Synchronous Parallel ML , 2007, Eighth International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT 2007).

[2]  Ronald A. Olsson,et al.  Exception Handling during Asynchronous Method Invocation (Research Note) , 2002, Euro-Par.

[3]  George Horatiu Botorog,et al.  Efficient High-Level Parallel Programming , 1998, Theor. Comput. Sci..

[4]  Denis Caromel,et al.  ProActive: an integrated platform for programming and running applications on Grids and P2P systems , 2006 .

[5]  D J Evans,et al.  Parallel processing , 1986 .

[6]  Denis Caromel,et al.  Type Safe Algorithmic Skeletons , 2008, 16th Euromicro Conference on Parallel, Distributed and Network-Based Processing (PDP 2008).

[7]  Mario Leyton,et al.  Advanced features for algorithmic skeleton programming , 2008 .

[8]  Salvatore Orlando,et al.  P3 L: A structured high-level parallel language, and its structured support , 1995, Concurr. Pract. Exp..

[9]  Marco Danelutto,et al.  An advanced environment supporting structured parallel programming in Java , 2003, Future Gener. Comput. Syst..

[10]  Jean-Thierry Lapresté,et al.  Quaff: efficient C++ design for parallel skeletons , 2006, Parallel Comput..

[11]  Marco Danelutto QoS in parallel programming through application managers , 2005, 13th Euromicro Conference on Parallel, Distributed and Network-Based Processing.

[12]  Denis Caromel,et al.  Fine Tuning Algorithmic Skeletons , 2007, Euro-Par.

[13]  Mario Leyton,et al.  Skandium: Multi-core Programming with Algorithmic Skeletons , 2010, 2010 18th Euromicro Conference on Parallel, Distributed and Network-based Processing.

[14]  Denis Caromel,et al.  Robust Exception Handling in an Asynchronous Environment , 2005 .

[15]  Charles E. Leiserson,et al.  Programming with exceptions in JCilk , 2006, Sci. Comput. Program..

[16]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[17]  Herbert Kuchen,et al.  A Skeleton Library , 2002, Euro-Par.

[18]  Murray Cole,et al.  The Integration of Task and Data Parallel Skeletons , 2002, Parallel Process. Lett..

[19]  Jocelyn Sérot,et al.  Formal Semantics Applied to the Implementation of a Skeleton-Based Parallel Programming Library , 2007, PARCO.

[20]  Abdelkader Hameurlain,et al.  Robust Placement of Mobile Relational Operators for Large Scale Distributed Query Optimization , 2007 .