Exceptions for Algorithmic Skeletons

  • Mario Leyton
  • Ludovic Henrio
  • José M. Piquer
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6272)

Abstract

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 high-level 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.

Keywords

Algorithmic skeletons exceptions semantics 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aldinucci, M., Danelutto, M., Teti, P.: An advanced environment supporting structured parallel programming in Java. Future Generation Computer Systems 19(5), 611–626 (2003)CrossRefGoogle Scholar
  2. 2.
    Bacci, B., Danelutto, M., Orlando, S., Pelagatti, S., Vanneschi, M.: P3L: A structured high level programming language and its structured support. Concurrency: Practice and Experience 7(3), 225–255 (1995)CrossRefGoogle Scholar
  3. 3.
    Botorog, G.H., Kuchen, H.: Efficient high-level parallel programming. Theor. Comput. Sci. 196(1-2), 71–107 (1998)CrossRefMATHGoogle Scholar
  4. 4.
    Caromel, D., Chazarain, G.: Robust exception handling in an asynchronous environment. In: Romanovsky, A., Dony, C., Knudsen, J., Tripathi, A. (eds.) Proceedings of ECOOP 2005 Workshop on Exception Handling in Object Oriented Systems. Tech. Report No 05-050, Dept. of Computer Science, LIRMM, Montpellier-II Univ., France (July 2005)Google Scholar
  5. 5.
    Caromel, D., Delbé, C., di Costanzo, A., Leyton, M.: ProActive: an integrated platform for programming and running applications on Grids and P2P systems. Computational Methods in Science and Technology 12 (2006)Google Scholar
  6. 6.
    Caromel, D., Henrio, L., Leyton, M.: Type safe algorithmic skeletons. In: Proceedings of the 16th Euromicro PDP, pp. 45–53. IEEE CS Press, Toulouse (February 2008)Google Scholar
  7. 7.
    Cole, M.: Algorithmic skeletons: structured management of parallel computation. MIT Press, Cambridge (1991)MATHGoogle Scholar
  8. 8.
    Danaher, J.S., Lee, I.T.A., Leiserson, C.E.: Programming with exceptions in jcilk. Sci. Comput. Program. 63(2), 147–171 (2006)MathSciNetCrossRefMATHGoogle Scholar
  9. 9.
    Danelutto, M.: Qos in parallel programming through application managers. In: Proceedings of the 13th Euromicro PDP, pp. 282–289. IEEE Computer Society, Washington (2005)Google Scholar
  10. 10.
    Falcou, J., Sérot, J., Chateau, T., Lapresté, J.T.: Quaff: efficient c++ design for parallel skeletons. Parallel Computing 32(7), 604–615 (2006)CrossRefGoogle Scholar
  11. 11.
    Falcou, J., Sérot, J.: Formal semantics applied to the implementation of a skeleton-based parallel programming library. In: Joubert, G.R., Bischof, C., Peters, F.J., Lippert, T., Bcker, M., Gibbon, P., Mohr, B. (eds.) Parallel Computing: Architectures, Algorithms and Applications, Proc. of PARCO 2007, Julich, Germany. NIC, vol. 38, pp. 243–252. John von Neumann Institute for Computing, Germany (September 2007)Google Scholar
  12. 12.
    Gesbert, L., Loulergue, F.: Semantics of an exception mechanism for bulk synchronous parallel ml. In: PDCAT 2007: Proceedings of the Eighth International Conference on Parallel and Distributed Computing, Applications and Technologies, pp. 201–208. IEEE Computer Society, Washington (2007)Google Scholar
  13. 13.
    Keen, A.W., Olsson, R.A.: Exception handling during asynchronous method invocation (research note). In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 656–660. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  14. 14.
    Kuchen, H.: A skeleton library. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 620–629. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  15. 15.
    Kuchen, H., Cole, M.: The integration of task and data parallel skeletons. Parallel Processing Letters 12(2), 141–155 (2002)CrossRefGoogle Scholar
  16. 16.
    Leyton, M.: Advanced Features for Algorithmic Skeleton Programming. Ph.D. thesis, Université de Nice-Sophia Antipolis (October 2008)Google Scholar
  17. 17.
    Leyton, M., Henrio, L., Piquer, J.M.: Operational semantics for algorithmic skeletons. Tech. rep., University of Chile (to appear, 2010), http://skandium.niclabs.cl/publications/semantics-2010.pdf
  18. 18.
    Leyton, M., Piquer, J.M.: Skandium: Multi-core programming with algorithmic skeletons. In: Proceedings of the 18th Euromicro PDP. IEEE CS Press, Pisa (February 2010) (to appear)Google Scholar
  19. 19.

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Mario Leyton
    • 1
  • Ludovic Henrio
    • 2
  • José M. Piquer
    • 3
  1. 1.NIC LabsUniversidad de ChileSantiagoChile
  2. 2.INRIA Sophia-AntipolisUniversité de Nice Sophia-Antipolis, CNRS - I3SSophia-Antipolis CedexFrance
  3. 3.Departamento de Ciencias de la ComputaciónUniversidad de ChileSantiagoChile

Personalised recommendations