Programming with BSP Homomorphisms

  • Joeffrey Legaux
  • Zhenjiang Hu
  • Frédéric Loulergue
  • Kiminori Matsuzaki
  • Julien Tesson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8097)


Algorithmic skeletons in conjunction with list homomorphisms play an important role in formal development of parallel algorithms. We have designed a notion of homomorphism dedicated to bulk synchronous parallelism. In this paper we derive two application using this theory: sparse matrix vector multiplication and the all nearest smaller values problem. We implement a support for BSP homomorphism in the Orléans Skeleton Library and experiment it with these two applications.


Algorithmic skeletons Constructive algorithms Bulk synchronous parallelism All nearest smaller values Sparse linear algebra 


  1. 1.
    Bird, R.: An introduction to the theory of lists. In: Broy, M. (ed.) Logic of Programming and Calculi of Discrete Design, pp. 5–42. Springer (1987)Google Scholar
  2. 2.
    Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press (1989),
  3. 3.
    Cole, M.: Parallel Programming with List Homomorphisms. Parallel Processing Letters 5(2), 191–203 (1995)CrossRefGoogle Scholar
  4. 4.
    Deitz, S.J., Callahan, D., Chamberlain, B.L., Snyder, L.: Global-view abstractions for user-defined reductions and scans. In: PPoPP, pp. 40–47. ACM, New York (2006)Google Scholar
  5. 5.
    Gesbert, L., Hu, Z., Loulergue, F., Matsuzaki, K., Tesson, J.: Systematic Development of Correct Bulk Synchronous Parallel Programs. In: International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT), pp. 334–340. IEEE (2010)Google Scholar
  6. 6.
    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
  7. 7.
    Gorlatch, S., Bischof, H.: Formal Derivation of Divide-and-Conquer Programs: A Case Study in the Multidimensional FFT’s. In: Mery, D. (ed.) Formal Methods for Parallel Programming: Theory and Applications, pp. 80–94 (1997)Google Scholar
  8. 8.
    Javed, N., Loulergue, F.: Parallel Programming and Performance Predictability with Orléans Skeleton Library. In: International Conference on High Performance Computing and Simulation (HPCS), pp. 257–263. IEEE (2011)Google Scholar
  9. 9.
    Jifeng, H., Miller, Q., Chen, L.: Algebraic laws for BSP programming. In: Bougé, L., Fraigniaud, P., Mignotte, A., Robert, Y. (eds.) Euro-Par 1996, Part II. LNCS, vol. 1124, pp. 359–368. Springer, Heidelberg (1996)Google Scholar
  10. 10.
    Leroy, X., Doligez, D., Frisch, A., Garrigue, J., Rémy, D., Vouillon, J.: The OCaml System release 4.00.0 (2012),
  11. 11.
    Loulergue, F.: Parallel Juxtaposition for Bulk Synchronous Parallel ML. In: Kosch, H., Böszörményi, L., Hellwagner, H. (eds.) Euro-Par 2003. LNCS, vol. 2790, pp. 781–788. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  12. 12.
    Matsuzaki, K., Emoto, K.: Implementing Fusion-Equipped Parallel Skeletons by Expression Templates. In: Morazán, M.T., Scholz, S.-B. (eds.) IFL 2009. LNCS, vol. 6041, pp. 72–89. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  13. 13.
    Matsuzaki, K., Hu, Z., Takeichi, M.: Parallelization with tree skeletons. In: Kosch, H., Böszörményi, L., Hellwagner, H. (eds.) Euro-Par 2003. LNCS, vol. 2790, pp. 789–798. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  14. 14.
    Morita, K., Morihata, A., Matsuzaki, K., Hu, Z., Takeichi, M.: Automatic Inversion Generates Divide-and-Conquer Parallel Programs. In: Conference on Programming Language Design and Implementation (PLDI), pp. 146–155. ACM Press (2007)Google Scholar
  15. 15.
    O’Sullivan, B., Stewart, D., Goerzen, J.: Real World Haskell. O’Reilly (2008)Google Scholar
  16. 16.
    Stewart, A., Clint, M., Gabarró, J.: Barrier synchronisation: Axiomatisation and relaxation. Formal Aspects of Computing 16(1), 36–50 (2004)zbMATHCrossRefGoogle Scholar
  17. 17.
    Tesson, J.: Environnement pour le développement et la preuve de correction systématiques de programmes parallèles fonctionnels. Ph.D. thesis, LIFO, University of Orléans (November 2011),
  18. 18.
    The Coq Development Team: The Coq Proof Assistant,
  19. 19.
    The SDPP Development Team: Systematic Development of Parallel Programs,
  20. 20.
    Touati, S.A.A., Worms, J., Briais, S.: The Speedup Test. Tech. Rep. inria-00443839, INRIA Saclay - Ile de France (2010),
  21. 21.
    Valiant, L.G.: A bridging model for parallel computation. Comm. of the ACM 33(8), 103 (1990)CrossRefGoogle Scholar
  22. 22.
    Veldhuizen, T.: Techniques for Scientific C++. Computer science technical report 542, Indiana University (2000)Google Scholar
  23. 23.
    Zavanella, A.: The skel-BSP global optimizer: Enhancing performance portability in parallel programming. In: Bode, A., Ludwig, T., Karl, W.C., Wismüller, R. (eds.) Euro-Par 2000. LNCS, vol. 1900, pp. 658–667. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  24. 24.
    Zhou, J., Chen, Y.: Generating C code from LOGS specifications. In: Van Hung, D., Wirsing, M. (eds.) ICTAC 2005. LNCS, vol. 3722, pp. 195–210. Springer, Heidelberg (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Joeffrey Legaux
    • 2
  • Zhenjiang Hu
    • 1
  • Frédéric Loulergue
    • 2
  • Kiminori Matsuzaki
    • 3
  • Julien Tesson
    • 4
  1. 1.National Institute of InformaticsTokyoJapan
  2. 2.LIFOUniversité d’OrléansFrance
  3. 3.Kochi University of TechnologyKochiJapan
  4. 4.LACL, UPECUniversité Paris EstFrance

Personalised recommendations