Cluster Computing

, Volume 17, Issue 3, pp 1031–1050 | Cite as

FastMPJ: a scalable and efficient Java message-passing library

  • Roberto R. ExpósitoEmail author
  • Sabela Ramos
  • Guillermo L. Taboada
  • Juan Touriño
  • Ramón Doallo


The performance and scalability of communications are key for high performance computing (HPC) applications in the current multi-core era. Despite the significant benefits (e.g., productivity, portability, multithreading) of Java for parallel programming, its poor communications support has hindered its adoption in the HPC community. This paper presents FastMPJ, an efficient message-passing in Java (MPJ) library, boosting Java for HPC by: (1) providing high-performance shared memory communications using Java threads; (2) taking full advantage of high-speed cluster networks (e.g., InfiniBand) to provide low-latency and high bandwidth communications; (3) including a scalable collective library with topology aware primitives, automatically selected at runtime; (4) avoiding Java data buffering overheads through zero-copy protocols; and (5) implementing the most widely extended MPI-like Java bindings for a highly productive development. The comprehensive performance evaluation on representative testbeds (InfiniBand, 10 Gigabit Ethernet, Myrinet, and shared memory systems) has shown that FastMPJ communication primitives rival native MPI implementations, significantly improving the efficiency and scalability of Java HPC parallel applications.


High performance computing (HPC) Parallel computing Message-Passing in Java (MPJ) Communication middleware High-speed networks Performance evaluation 



This work has been funded by the Ministry of Education of Spain (FPU Grant AP2010-4348), the Ministry of Economy and Competitiviness (project TIN2010-16735) and the Galician Government (projects CN2012/211 and GRC2013/055), partially supported by FEDER funds. We thankfully acknowledge the computer resources, technical expertise and assistance provided by the Barcelona Supercomputing Center. We also gratefully thank the Advanced School for Computing and Imaging (ASCI) and the Vrije University Amsterdam for providing access to the DAS-4 cluster.


  1. 1.
    Taboada, G.L., Ramos, S., Expósito, R.R., Touriño, J., Doallo, R.: Java in the high performance computing arena: research, practice and experience. Sci. Comput. Program. 78(5), 425–444 (2013)CrossRefGoogle Scholar
  2. 2.
    Blount, B., Chatterjee, S.: An evaluation of Java for numerical computing. Sci. Program. 7(2), 97–110 (1999)Google Scholar
  3. 3.
    Shafi, A., Carpenter, B., Baker, M., Hussain, A.: A comparative study of Java and C performance in two large-scale parallel applications. Concurr. Comput. Pract. Exp. 21(15), 1882–1906 (2009)CrossRefGoogle Scholar
  4. 4.
    Suganuma, T., Ogasawara, T., Takeuchi, M., Yasue, T., Kawahito, M., Ishizaki, K., Komatsu, H., Nakatani, T.: Overview of the IBM Java just-in-time compiler. IBM Syst. J. 39(1), 175–193 (2000)CrossRefGoogle Scholar
  5. 5.
    Message Passing Interface Forum: MPI: a message passing interface standard. (1995). Accessed Oct 2013
  6. 6.
    IBTA: The InfiniBand Trade Association. Accessed Oct 2013
  7. 7.
    Carpenter, B., Getov, V., Judd, G., Skjellum, A., Fox, G.: MPJ: MPI-like message passing for Java. Concurr. Comput.: Pract. Exp. 12(11), 1019–1038 (2000)zbMATHGoogle Scholar
  8. 8.
    Carpenter, B., Fox, G., Ko, S.H., Lim, S.: mpiJava 1.2: API specification. Accessed Oct 2013
  9. 9.
    Java Grande Forum. Accessed Oct 2013
  10. 10.
    Hongwei, Z., Wan, H., Jizhong, H., Jin, H., Lisheng, Z.: A performance study of Java communication stacks over InfiniBand and Gigabit Ethernet. In: Proceedings of the 4th IFIP International Conference on Network and Parallel Computing—Workshops (NPC’07), pp. 602–607. Dalian, China (2007)Google Scholar
  11. 11.
    Thiruvathukal, G.K., Dickens, P.M., Bhatti, S.: Java on networks of workstations (JavaNOW): a parallel computing framework inspired by Linda and the message passing interface (MPI). Concurr. Comput.: Pract. Exp. 12(11), 1093–1116 (2000)zbMATHGoogle Scholar
  12. 12.
    Baker, M., Carpenter, B., Fox, G., Ko, S.H., Lim, S.: mpiJava: an object-oriented Java interface to MPI. In: Proceedings of the 1st International Workshop on Java for Parallel and Distributed Computing (IWJPDC’99), pp. 748–762. San Juan, Puerto Rico (1999)Google Scholar
  13. 13.
    Baker, M., Carpenter, B., Shafi, A.: MPJ express: towards thread safe Java HPC. In: Proceedings of 8th IEEE International Conference on Cluster Computing (CLUSTER’06), pp. 1–10. Barcelona, Spain (2006)Google Scholar
  14. 14.
    Shafi, A., Manzoor, J., Hameed, K., Carpenter, B., Baker, M.: Multicore-enabling the MPJ express messaging library. In: Proceedings of 8th International Conference on the Principles and Practice of Programming in Java (PPPJ’10), pp. 49–58. Vienna, Austria (2010)Google Scholar
  15. 15.
    Baker, M., Carpenter, B., Shafi, A.: A buffering layer to support derived types and proprietary networks for Java HPC. Scalable Comput. Pract. Exp. 8(4), 343–358 (2007)Google Scholar
  16. 16.
    Bornemann, M., van Nieuwpoort, R.V., Kielmann, T.: MPJ/Ibis: a flexible and efficient message passing platform for Java. In: Proceedings of 12th European PVM/MPI Users’ Group Meeting (EuroPVM/MPI’05), pp. 217–224. Sorrento, Italy (2005)Google Scholar
  17. 17.
    van Nieuwpoort, R.V., Maassen, J., Wrzesinska, G., Hofman, R., Jacobs, C., Kielmann, T., Bal, H.E.: Ibis: a flexible and efficient Java-based grid programming environment. Concurr. Comput.: Pract. Exp. 17(7–8), 1079–1107 (2005)CrossRefGoogle Scholar
  18. 18.
    Myrinet Express (MX): A High Performance, Low-level, Message-Passing Interface for Myrinet, version 1.2, (2006)Google Scholar
  19. 19.
    Taboada, G.L., Touriño, J., Doallo, R.: F-MPJ: scalable Java message-passing communications on parallel systems. J. Supercomput. 60(1), 117–140 (2012)CrossRefGoogle Scholar
  20. 20.
    Taboada, G.L., Touriño, J., Doallo, R.: Java fast sockets: enabling high-speed Java communications on high performance clusters. Comput. Commun. 31(17), 4049–4059 (2008)CrossRefGoogle Scholar
  21. 21.
    Taboada, G.L., Touriño, J., Doallo, R., Shafi, A., Baker, M., Carpenter, B.: Device level communication libraries for high-performance computing in Java. Concurr. Comput.: Pract. Exp. 23(18), 2382–2403 (2011)CrossRefGoogle Scholar
  22. 22.
    Bonachea, D., Dickens, P.M., Thakur, R.: High-performance file I/O in Java: existing approaches and bulk I/O extensions. Concurr. Comput.: Pract. Exp. 13(8–9), 713–736 (2001)Google Scholar
  23. 23.
    Dickens, P.M., Thakur, R.: An evaluation of Java’s I/O capabilities for high-performance computing. In: Proceedings of 1st ACM Java Grande Conference (JAVA’00), pp. 26–35. San Francisco, CA, USA (2000)Google Scholar
  24. 24.
    Baker, M., Carpenter, B., Shafi, A.: A pluggable architecture for high-performance Java messaging. IEEE Distrib. Syst. Online 6(10), 1–4 (2005)CrossRefGoogle Scholar
  25. 25.
    Goglin, B.: High-performance message passing over generic Ethernet hardware with Open-MX. Parallel Comput. 37(2), 85–100 (2011) Google Scholar
  26. 26.
    Goglin, B.: High throughput intra-node MPI communication with Open-MX. In: Proceedings of 17th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP’09), pp. 173–180. Weimar, Germany (2009)Google Scholar
  27. 27.
    OpenFabrics Alliance: Accessed Oct 2013
  28. 28.
    IETF RFC 4392: IP over InfiniBand (IPoIB) Architecture. Accessed Oct 2013
  29. 29.
    Expósito, R.R., Taboada, G.L., Touriño, J., Doallo, R.: Design of scalable Java message-passing communications over InfiniBand. J. Supercomput. 61(1), 141–165 (2012)CrossRefGoogle Scholar
  30. 30.
    Ramos, S., Taboada, G.L., Expósito, R.R., Touriño, J., Doallo, R.: Design of scalable Java communication middleware for multi-core systems. Comput. J. 56(2), 214–228 (2013)CrossRefGoogle Scholar
  31. 31.
    Chan, E., Heimlich, M., Purkayastha, A., van de Geijn, R.A.: Collective communication: theory, practice, and experience. Concurr. Comput.: Pract. Exp. 19(13), 1749–1783 (2007)CrossRefGoogle Scholar
  32. 32.
    Open MPI: Open Source High Performance Computing. Accessed Oct 2013
  33. 33.
    MVAPICH: MPI over InfiniBand, 10GigE/iWARP and RoCE. Accessed Oct 2013
  34. 34.
    Portable MPI Model Implementation over MX. Accessed Oct 2013
  35. 35.
    NAS Parallel Benchmarks. Accessed Oct 2013
  36. 36.
    Bailey, D.H., et al.: The NAS parallel benchmarks. Int. J. High Perform. Comput. Appl. 5(3), 63–73 (1991)CrossRefGoogle Scholar
  37. 37.
    Advanced School for Computing and Imaging (ASCI): Distributed ASCI Supercomputer, Version 4 (DAS-4). Accessed Oct 2013
  38. 38.
    MareNostrum supercomputer in TOP500 List. Accessed Oct 2013
  39. 39.
    TOP500 Org.: Top 500 Supercomputer Sites. Accessed Oct 2013
  40. 40.
    Saini, S., et al.: Performance evaluation of supercomputers using HPCC and IMB benchmarks. J. Comput. Syst. Sci. 74(6), 965–982 (2008)CrossRefzbMATHMathSciNetGoogle Scholar
  41. 41.
    Mallón, D.A., Taboada, G.L., Touriño, J., Doallo, R.: NPB-MPJ: NAS parallel benchmarks implementation for message-passing in Java. In: Proceedings of 17th Euromicro International Conference on Parallel, Distributed and Network-based Processing (PDP’09), pp. 181–190. Weimar, Germany (2009)Google Scholar

Copyright information

© Springer Science+Business Media New York 2014

Authors and Affiliations

  • Roberto R. Expósito
    • 1
    Email author
  • Sabela Ramos
    • 1
  • Guillermo L. Taboada
    • 1
  • Juan Touriño
    • 1
  • Ramón Doallo
    • 1
  1. 1.Computer Architecture Group, Department of Electronics and SystemsUniversity of A CoruñaLa CoruñaSpain

Personalised recommendations