A Formal Programming Model of Orléans Skeleton Library

  • Noman Javed
  • Frédéric Loulergue
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6873)


Orléans Skeleton Library (OSL) is a library of parallel algorithmic skeletons in C++ on top of MPI. It provides a structured approach to parallel programming. Skeletons in OSL are based on the bulk synchronous parallelism model. In this paper we present a formal semantics of OSL: its programming model formalised with the Coq proof assistant.


parallel programming algorithmic skeletons formal programming model the Coq proof assistant 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aldinucci, M., Danelutto, M.: Skeleton-based parallel programming: Functional and parallel semantics in a single shot. Computer Languages, Systems and Structures 33(3-4), 179–192 (2007)CrossRefzbMATHGoogle Scholar
  2. 2.
    Aldinucci, M., Danelutto, M., Teti, P.: An advanced environment supporting structured parallel programming in Java. Future Generation Computer Systems 19, 611–626 (2003)CrossRefGoogle Scholar
  3. 3.
    Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Springer, Heidelberg (2004)CrossRefzbMATHGoogle Scholar
  4. 4.
    Bertot, Y.: Coq in a hurry (2006),
  5. 5.
    Bisseling, R.: Parallel Scientific Computation. A structured approach using BSP and MPI. Oxford University Press, Oxford (2004)zbMATHGoogle Scholar
  6. 6.
    Bousdira, W., Gesbert, L., Loulergue, F.: Syntaxe et sémantique de Revised Bulk Synchronous Parallel ML. In: Conchon, S., Mahboubi, A. (eds.) Journées Francophones des Langages Applicatifs (JFLA), pp. 117–146. Studia Informatica Universalis, Hermann (2011)Google Scholar
  7. 7.
    Caromel, D., Henrio, L., Leyton, M.: Type safe algorithmic skeletons. In: 16th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP 2008), pp. 45–53. IEEE Computer Society, Los Alamitos (2008)CrossRefGoogle Scholar
  8. 8.
    Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, Cambridge (1989), zbMATHGoogle Scholar
  9. 9.
    Darlington, J., Field, A.J., Harrison, P.G., Kelly, P., Sharp, D., Wu, Q., While, R.: Parallel Programming Using Skeleton Functions. In: Reeve, M., Bode, A., Wolf, G. (eds.) PARLE 1993. LNCS, vol. 694. Springer, Heidelberg (1993)Google Scholar
  10. 10.
    Di Cosmo, R., Pelagatti, S., Li, Z.: A calculus for parallel computations over multidimensional dense arrays. Computer Language Structures and Systems 33(3-4), 82–110 (2007)CrossRefzbMATHGoogle Scholar
  11. 11.
    Falcou, J., Sérot, J.: Formal Semantics Applied to the Implementation of a Skeleton-Based Parallel Programming Library. In: Bischof, C.H., Bücker, H.M., Gibbon, P., Joubert, G.R., Lippert, T., Mohr, B., Peters, F.J. (eds.) Advances in Parallel Computing Parallel Computing: Architectures, Algorithms and Applications, ParCo 2007, vol. 15, pp. 243–252. IOS Press, Amsterdam (2007)Google Scholar
  12. 12.
    Gava, F., Loulergue, F.: A Polymorphic Type System for Bulk Synchronous Parallel ML. In: Malyshkin, V. (ed.) PaCT 2003. LNCS, vol. 2763, pp. 215–229. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  13. 13.
    Gesbert, L., Hu, Z., Loulergue, F., Matsuzaki, K., Tesson, J.: Systematic Development of Correct Bulk Synchronous Parallel Programs. In: The 11th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT), pp. 334–340. IEEE Computer Society, Los Alamitos (2010)Google Scholar
  14. 14.
    González-Vélez, H., Leyton, M.: A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablers. Software, Practrice & Experience 40(12), 1135–1160 (2010)CrossRefGoogle Scholar
  15. 15.
    Hidalgo-Herrero, M., Ortega-Mallén, Y.: An Operational Semantics for the Parallel Language Eden. Parallel Processing Letters 12(2), 211–228 (2002)CrossRefGoogle Scholar
  16. 16.
    Javed, N., Loulergue, F.: OSL: Optimized Bulk Synchronous Parallel Skeletons on Distributed Arrays. In: Dou, Y., Gruber, R., Joller, J.M. (eds.) APPT 2009. LNCS, vol. 5737, pp. 436–451. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  17. 17.
    Leroy, X.: Formal verification of a realistic compiler. CACM 52(7), 107–115 (2009)CrossRefGoogle Scholar
  18. 18.
    Leroy, X.: A formally verified compiler back-end. Journal of Automated Reasoning 43(4), 363–446 (2009)CrossRefzbMATHGoogle Scholar
  19. 19.
    Leyton, M., Henrio, L., Piquer, J.M.: Exceptions for algorithmic skeletons. In: D’Ambra, P., Guarracino, M., Talia, D. (eds.) Euro-Par 2010. LNCS, vol. 6272, pp. 14–25. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  20. 20.
    Loogen, R., Ortega-Mallen, Y., Pena-Mari, R.: Parallel functional programming in eden. Journal of Functional Programming 3(15), 431–475 (2005)CrossRefzbMATHGoogle Scholar
  21. 21.
    Loulergue, F., Gava, F., Billiet, D.: Bulk Synchronous Parallel ML: Modular Implementation and Performance Prediction. In: Sunderam, V.S., van Albada, G.D., Sloot, P.M.A., Dongarra, J. (eds.) ICCS 2005. LNCS, vol. 3515, pp. 1046–1054. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  22. 22.
    McColl, W.F.: Scalability, portability and predictability: The BSP approach to parallel programming. Future Generation Computer Systems 12, 265–272 (1996)CrossRefGoogle Scholar
  23. 23.
    Pelagatti, S.: Structured Development of Parallel Programs. Taylor & Francis, Abington (1998)Google Scholar
  24. 24.
    Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Heidelberg (2003)zbMATHGoogle Scholar
  25. 25.
    Skillicorn, D.B., Hill, J.M.D., McColl, W.F.: Questions and Answers about BSP. Scientific Programming 6(3), 249–274 (1997)CrossRefGoogle Scholar
  26. 26.
    The Coq Development Team: The Coq Proof Assistant,
  27. 27.
    Valiant, L.G.: A bridging model for parallel computation. Comm. of the ACM 33(8), 103 (1990)CrossRefGoogle Scholar
  28. 28.
    Veldhuizen, T.: Techniques for Scientific C++. Computer science technical report 542, Indiana University (2000)Google Scholar
  29. 29.
    Wadler, P.: Monads for Functional Programming. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol. 925, pp. 24–52. Springer, Heidelberg (1995)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Noman Javed
    • 1
  • Frédéric Loulergue
    • 1
  1. 1.LIFOUniversity of OrléansFrance

Personalised recommendations