Bulk Synchronous Parallel ML: Modular Implementation and Performance Prediction

  • Frédéric Loulergue
  • Frédéric Gava
  • David Billiet
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3515)


BSML is a library for parallel programming with the functional language Objective Caml. It is based on an extension of the λ-calculus by parallel operations on a parallel data structure named parallel vector. The execution time can be estimated, dead-locks and indeterminism are avoided. Programs are written as usual functional programs (in Objective Caml) but using a small set of additional functions. Provided functions are used to access the parameters of the parallel machine and to create and operate on parallel vectors. It follows the execution and cost model of the Bulk Synchronous Parallel model. The paper presents the lastest implementation of this library and experiments of performance prediction.


  1. 1.
    Bisseling, R.: Parallel Scientific Computation. A structured approach using BSP and MPI. Oxford University Press, Oxford (2004)zbMATHGoogle Scholar
  2. 2.
    Bonorden, O., Juurlink, B., von Otte, I., Rieping, O.: The Paderborn University BSP (PUB) library. Parallel Computing 29(2), 187–207 (2003)CrossRefGoogle Scholar
  3. 3.
    Chan, A., Dehne, F.: CGMgraph/CGMlib: Implementing and Testing CGM Graph Algorithms on PC Clusters. In: Proceedings of the 10th EuroPVM/MPI conference. Springer, Heidelberg (2003)Google Scholar
  4. 4.
    Cole, M., Hayashi, Y.: Static Performance Prediction of Skeletal Programs. Parallel Algorithms and Applications 17(1), 59–84 (2002)zbMATHGoogle Scholar
  5. 5.
    Gava, F.: Formal Proofs of Functional BSP Programs. Parallel Processing Letters 13(3), 365–376 (2003)CrossRefMathSciNetGoogle Scholar
  6. 6.
    Gava, F., Loulergue, F.: A Static Analysis for Bulk Synchronous Parallel ML to Avoid Parallel Nesting. Future Generation Computer Systems (2005) (to appear)Google Scholar
  7. 7.
    Geist, A., Beguelin, A., Dongarra, J., Jiang, W., Manchek, R., Sunderam, V.: PVM Parallel Virtual Machine. A User’s Guide and Tutorial for Networked Parallel Computing. Scientific and Engineering Computation Series. MIT Press, Cambridge (1994)Google Scholar
  8. 8.
    Hill, J.M.D., McColl, W.F., et al.: BSPlib: The BSP Programming Library. Parallel Computing 24, 1947–1980 (1998)CrossRefGoogle Scholar
  9. 9.
    Hinsen, K.: High-Level Parallel Software Development with Python and BSP. Parallel Processing Letters 13(3), 461–472 (2003)CrossRefMathSciNetGoogle Scholar
  10. 10.
    Jarvis, S.A., Hill, J.M.D., Siniolakis, C.J., Vasilev, V.P.: Portable and architecture independent parallel performance tuning using BSP. Parallel Computing 28, 1587–1609 (2002)zbMATHCrossRefGoogle Scholar
  11. 11.
    Kessler, C.: Managing distributed shared arrays in a bulk-synchronous parallel environment. Concurrency and Computation: Practice and Experience 16, 133–153 (2004)CrossRefGoogle Scholar
  12. 12.
    Leroy, X., Doligez, D., Garrigue, J., Rémy, D., Vouillon, J.: The Objective Caml System release 3.08 (2004), web pages at
  13. 13.
    Miller, Q.: BSP in a Lazy Functional Context. In: Trends in Functional Programming, vol. 3. Intellect Books (May 2002)Google Scholar
  14. 14.
    Snir, M., Gropp, W.: MPI the Complete Reference. MIT Press, Cambridge (1998)Google Scholar
  15. 15.
    Valiant, L.G.: A bridging model for parallel computation. Communications of the ACM 33(8), 103–111 (1990)CrossRefGoogle Scholar
  16. 16.
    Zavanella, A.: Skeletons, BSP and performance portability. Parallel Processing Letters 11(4), 393–405 (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Frédéric Loulergue
    • 1
  • Frédéric Gava
    • 1
  • David Billiet
    • 1
  1. 1.Laboratory of Algorithms, Complexity and LogicUniversity Paris XIICréteil cedexFrance

Personalised recommendations