Programming bsp and multi-bsp algorithms in ml

  • Victor AllombertEmail author
  • Frédéric Gava


The bsml and multi-ml languages have been designed for programming, à laml, algorithms of the respectively bsp and multi-bsp bridging models. multi-bsp is an extension of the well-know bsp model by taking into account the different levels of networks and memories of modern hierarchical architectures. This is a rather new model, as well as multi-ml is a new language, while bsp and bsml have been used for a long time in many different domains. Intuitively, designing and programming multi-bsp algorithms seems more complex than with bsp, and one can ask whether it is beneficial to rewrite bsp algorithms using the multi-bsp model. In this paper, we thus investigate the pro and cons of the aforementioned models and languages by experimenting with them on different typical applications. For this, we use a methodology to measure the level of difficulty of writing code and we also benchmark them in order to show whether writing multi-ml code is worth the effort.


bsp multi-bsp ml Hierarchical Performance Algorithms 



  1. 1.
    Alabduljalil MA, Tang X, Yang T (2013) Optimizing parallel algorithms for all pairs similarity search. In: Proceedings of the Sixth ACM International Conference on Web Search and Data Mining, WSDM ’13, New York, NY, USA. ACM, pp 203–212Google Scholar
  2. 2.
    Allombert V (2017) Functional abstraction for programming multi-level architectures: formalisation and implementationGoogle Scholar
  3. 3.
    Allombert V, Gava F, Tesson J (2017) Multi-ML: programming multi-BSP algorithms in ML. Int J Parallel Program 45(2):20CrossRefGoogle Scholar
  4. 4.
    Alt MH (2007) Using algorithmic skeletons for efficient grid computing with predictable performance. Ph.D. thesis, Münster UniversityGoogle Scholar
  5. 5.
    Bayardo RJ, Ma Y, Srikant R (2017) Scaling up all pairs similarity search. In: Proceedings of the 16th International Conference on World Wide Web, WWW ’07, New York, NY, USA. ACM, pp 131–140Google Scholar
  6. 6.
    Bisseling RH (2004) Parallel scientific computation: a structured approach using BSP and MPI. Oxford University Press, OxfordCrossRefzbMATHGoogle Scholar
  7. 7.
    Cappello F, Etiemble D (2000) MPI versus MPI+OpenMP on IBM SP for the NAS benchmarks. In: Proceedings of the 2000 ACM/IEEE Conference on Supercomputing, SC ’00, Washington, DC, USA. IEEE Computer SocietyGoogle Scholar
  8. 8.
    Chakravarty MMT, Keller G, Lechtchinsky R, Pfannenstiel W (2001) Nepal-nested data parallelism in Haskell. In: Proceedings of the 7th International Euro-Par Conference Manchester on Parallel Processing, London, UK. Springer-Verlag, pp 524–534Google Scholar
  9. 9.
    Clarke EM, Henzinger TA, Veith H, Bloem R (2012) Handbook of model checking. Springer, BerlinzbMATHGoogle Scholar
  10. 10.
    Cole M (2004) Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming. Parallel Comput 30(3):389–406CrossRefGoogle Scholar
  11. 11.
    Dolev D, Yao AC (1983) On the security of public key protocols. IEEE Trans Inf Theory 29(2):198–208MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Garavel H, Mateescu R, Smarandache I (2001) Parallel state space construction for model-checking. Research reportGoogle Scholar
  13. 13.
    Gava F (2008) BSP functional programming: examples of a cost based methodology. In: Bubak M, van Albada GD, Dongarra J, Sloot PMA (eds) Computational Science—ICCS 2008. Springer, Berlin Heidelberg, pp 375–385Google Scholar
  14. 14.
    Gesbert L, Gava F, Loulergue F, Dabrowski F (2010) Bulk synchronous parallel ML with exceptions. Future Gener Comput Syst 26(3):486–490CrossRefGoogle Scholar
  15. 15.
    Hamidouche K, Falcou J, Etiemble D (2011) A framework for an automatic hybrid MPI+OpenMP code generation. In: Proceedings of the 19th High Performance Computing Symposia, San Diego, CA, USA. Society for Computer Simulation International, pp 48–55Google Scholar
  16. 16.
    Kessler CW (2000) NestStep: nested parallelism and virtual shared memory for the BSP model. J Supercomput 17(3):245–262CrossRefzbMATHGoogle Scholar
  17. 17.
    Li C, Hains G (2012) SGL: towards a bridging model for heterogeneous hierarchical platforms. Int J Parallel Program 7(2):139–151Google Scholar
  18. 18.
    Loidl H-W, Rubio F, Scaife N, Hammond K, Horiguchi S, Klusik U, Loogen R, Michaelson GJ, Peña R, Priebe S, Rebón ÁJ, Trinder PW (2003) Comparing parallel functional languages: programming and performance. High Order Symb Comput 16(3):203–251CrossRefzbMATHGoogle Scholar
  19. 19.
    Malewicz G, Austern MH, Bik AJ, Dehnert JC, Horn I, Leiser N, Czajkowski G (2010) Pregel: a system for large-scale graph processing. In: Proceedings of the 2010 ACM SIGMOD International Conference on Management of Data, New York, NY, USA. ACM, pp 135–146Google Scholar
  20. 20.
    Saad RT, Dal Zilio S, Berthomieu B (2011) Mixed shared-distributed hash tables approaches for parallel state space construction. In: International Symposium on Parallel and Distributed Computing (ISPDC 2011), Cluj-Napoca, RomaniaGoogle Scholar
  21. 21.
    Seo S, Yoon E, Kim J, Jin S, Kim J-S, Maeng S (2010) HAMA: an efficient matrix computation with the MapReduce framework. In: 2010 IEEE Second International Conference on Cloud Computing Technology and Science (CloudCom), pp 721–726Google Scholar
  22. 22.
    Sivaramakrishnan KC, Ziarek L, Jagannathan S (2014) MultiMLton: a multicore-aware runtime for standard ML. J Funct Program 24(06):613–674CrossRefGoogle Scholar
  23. 23.
    Skillicorn DB, Hill JMD, McColl WF (1997) Questions and answers about BSP. Sci Program 6(3):249–274Google Scholar
  24. 24.
    Tang X, Alabduljalil M, Jin X, Yang T (2017) Partitioned similarity search with cache-conscious data traversal. ACM Trans Knowl Discov Data 11(3):1–34CrossRefGoogle Scholar
  25. 25.
    Valiant LG (1990) A bridging model for parallel computation. Commun ACM 33(8):103–111CrossRefGoogle Scholar
  26. 26.
    Valiant LG (2011) A bridging model for multi-core computing. J Comput Syst Sci 77(1):154–166MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC, part of Springer Nature 2019

Authors and Affiliations

  1. 1.LIFOUniversité d’OrléansOrléansFrance
  2. 2.LACLUniversité Paris-Est CréteilCréteilFrance

Personalised recommendations