A Parallel Virtual Machine for Bulk Synchronous Parallel ML

  • Frédéric Gava
  • Frédéric Loulergue
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2657)


We have designed a functional data-parallel language called BSML for programming bulk-synchronous parallel (BSP) algorithms. The execution time can be estimated and dead-locks and indeterminism are avoided. The BSMLlib library has been implemented for the Objective Caml language. But there is currently no full implementation of such a language and an abstract machine is needed to validate such an implementation. Our approach is based on a bytecode compilation to a parallel abstract machine performing exchange of data and synchronous requests derived from the ZAM, the efficient abstract machine of the Objective Caml language.


Abstract Machine Parallel Vector Global Synchronization Bulk Synchronous Parallel Parallel Virtual Machine 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    A.W. Appel. Compiling with continuations. Cambridge University Press, 1992.Google Scholar
  2. 2.
    L. Cardelli. Compiling a functional language. In Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, pages 208–217, Austin, Texas, August 1984. ACM.Google Scholar
  3. 3.
    G. Cousineau and G. Huet. The caml primer. Technical Report 122, INRIA, 1990.Google Scholar
  4. 4.
    F. Gava and F. Loulergue. Synthèse de types pour Bulk Synchronous Parallel ML. In Journées Francophones des Langages Applicatifs (JFLA 2003), January 2003.Google Scholar
  5. 5.
    T. Hardin, L. Maranget, and L. Pagano. Functional runtime systems within the lambda-sigma calculus. Journal of Functional Programming, 8(2):131–176, 1998.MATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    P. J. Landin. The mechanical evaluation of expressions. The Computer Journal, 4(6):308–320, 1964.Google Scholar
  7. 7.
    X. Leroy. The ZINC experiment: An economical implementation of the ML language. Rapport Technique 117, 1991.Google Scholar
  8. 8.
    X. Leroy. The caml special light system: modules and efficient compilation for caml. Technical Report 2721, INRIA, Novembre 1995.Google Scholar
  9. 9.
    Xavier Leroy. The Objective Caml System 3.06, 2002. web pages at
  10. 10.
    F. Loulergue. Implementation of a Functional Bulk Synchronous Parallel Programming Library. In 14th IASTED International Conference on Parallel and Distributed Computing Systems, pages 452–457. ACTA Press, 2002.Google Scholar
  11. 11.
    F. Loulergue, G. Hains, and C. Foisy. A Calculus of Functional BSP Programs. Science of Computer Programming, 37(1–3):253–277, 2000.MATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    A. Merlin and G. Hains. La Machine Abstraite Catégorique BSP. In Journées Francophones des Langages Applicatifs. INRIA, 2002.Google Scholar
  13. 13.
    A. Merlin, G. Hains, and F. Loulergue. A SPMD Environment Machine for Functional BSP Programs. In Proceedings of the Third Scottish Functional Programming Workshop, August 2001.Google Scholar
  14. 14.
    R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. MIT Press, 1990.Google Scholar
  15. 15.
    S. L. Peyton Jones. The Implementation of Functional Programming Languages. Prentice-Hall, 1987.Google Scholar
  16. 16.
    D. B. Skillicorn, J. M. D. Hill, and W. F. McColl. Questions and Answers about BSP. Scientific Programming, 6(3), 1997.Google Scholar
  17. 17.
    M. Snir and W. Gropp. MPI the Complete Reference. MIT Press, 1998.Google Scholar
  18. 18.
    Leslie G Valiant. A bridging model for parallel computation. Communications of the ACM, 33(8): 103, August 1990.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Frédéric Gava
    • 1
  • Frédéric Loulergue
    • 1
  1. 1.Laboratory of Algorithms, Complexity and LogicUniversity Paris Val-de-MarneCréteil cedexFrance

Personalised recommendations