The Journal of Supercomputing

, Volume 60, Issue 1, pp 117–140 | Cite as

F-MPJ: scalable Java message-passing communications on parallel systems

  • Guillermo L. TaboadaEmail author
  • Juan Touriño
  • Ramón Doallo


This paper presents F-MPJ (Fast MPJ), a scalable and efficient Message-Passing in Java (MPJ) communication middleware for parallel computing. The increasing interest in Java as the programming language of the multi-core era demands scalable performance on hybrid architectures (with both shared and distributed memory spaces). However, current Java communication middleware lacks efficient communication support. F-MPJ boosts this situation by: (1) providing efficient non-blocking communication, which allows communication overlapping and thus scalable performance; (2) taking advantage of shared memory systems and high-performance networks through the use of our high-performance Java sockets implementation (named JFS, Java Fast Sockets); (3) avoiding the use of communication buffers; and (4) optimizing MPJ collective primitives. Thus, F-MPJ significantly improves the scalability of current MPJ implementations. A performance evaluation on an InfiniBand multi-core cluster has shown that F-MPJ communication primitives outperform representative MPJ libraries up to 60 times. Furthermore, the use of F-MPJ in communication-intensive MPJ codes has increased their performance up to seven times.


Message-Passing in Java (MPJ) Scalable parallel systems Communication middleware Scalable collective communication High-Performance Computing Performance evaluation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Baker M, Carpenter B, Fox G, Ko S, Lim S (1999) mpiJava: an object-oriented java: interface to MPI. In: 1st Intl workshop on Java for parallel and distributed computing (IWJPDC’99), San Juan, Puerto Rico, 1999, pp 748–762. (Last visited: December 2008)
  2. 2.
    Baker M, Carpenter B, Shafi A (2005) A pluggable architecture for high-performance Java messaging. IEEE Distrib Syst Online 6(10):1–4 CrossRefGoogle Scholar
  3. 3.
    Baker M, Carpenter B, Shafi A (2008) MPJ Express: towards thread safe Java HPC. In: Proc 8th IEEE intl conf on cluster computing (Cluster’06), Barcelona, Spain, 2006, pp 1–10 Google Scholar
  4. 4.
    Barchet-Estefanel LA, Mounie G (2004) Fast tuning of intra-cluster collective communications. In: Proc 11th European PVM/MPI users’ group meeting (EuroPVM/MPI’04), Budapest, Hungary, 2004, pp 28–35 Google Scholar
  5. 5.
    Bornemann M, van Nieuwpoort RV, Kielmann T (2005) MPJ/Ibis: a flexible and efficient message passing platform for Java. In: Proc 12th European PVM/MPI users’ group meeting (EuroPVM/MPI’05), Sorrento, Italy, 2005, pp 217–224 Google Scholar
  6. 6.
    Bull JM, Smith LA, Westhead MD, Henty DS, Davey RA (2000) A benchmark suite for high performance Java. Concurr Pract Exp 12(6):375–388 CrossRefGoogle Scholar
  7. 7.
    Chan E, Heimlich M, Purkayastha A, van de Geijn RA (2007) Collective communication: theory, practice, and experience. Concurr Comput Pract Exp 19(13):1749–1783 CrossRefGoogle Scholar
  8. 8.
    Dongarra JJ, Gannon D, Fox G, Kennedy K (2007) The impact of multicore on computational science software. CTWatch Q 3(1):1–10 Google Scholar
  9. 9.
    Finis Terrae Supercomputer (2008) (Last visited: December 2008)
  10. 10.
    Genaud S, Rattanapoka C (2005) A peer-to-peer framework for robust execution of message passing parallel programs. In: Proc 12th European PVM/MPI users’ group meeting (EuroPVM/MPI’05), Sorrento, Italy, 2005, pp 276–284 Google Scholar
  11. 11.
    IBM: Asynchronous IO for Java (2008) (Last visited: December 2008)
  12. 12.
    Kaminsky A (2007) Parallel Java: a unified api for shared memory and cluster parallel programming in 100% Java. In: Proc 9th intl workshop on Java and components for parallelism, distribution and concurrency (IWJPDC’07), Long Beach, CA, 2007, p 196a (8 pages) Google Scholar
  13. 13.
    Message Passing Interface Forum (2008) (Last visited: December 2008)
  14. 14.
    Pugh B, Spacco J (2003) MPJava: high-performance message passing in Java using Java.nio. In: Proc 16th intl workshop on languages and compilers for parallel computing (LCPC’03), College Station, TX, 2003, pp 323–339 Google Scholar
  15. 15.
    Taboada GL, Touriño J, Doallo R (2003) Performance analysis of Java message-passing libraries on fast ethernet, myrinet and SCI clusters. In: Proc 5th IEEE intl conf on cluster computing (Cluster’03), Hong Kong, China, 2003, pp 118–126 Google Scholar
  16. 16.
    Taboada GL, Touriño J, Doallo R (2008) Java Fast Sockets: enabling high-speed Java communications on high-performance clusters. Comput Commun 31(17):4049–4059 CrossRefGoogle Scholar
  17. 17.
    Thakur R, Rabenseifner R, Gropp W (2005) Optimization of collective communication operations in MPICH. Int J High Perform Comput Appl 19(1):49–66 CrossRefGoogle Scholar
  18. 18.
    TOP500 Supercomputing Sites (2008) (Last visited: December 2008)
  19. 19.
    Vadhiyar SS, Fagg GE, Dongarra JJ (2004) Towards an accurate model for collective communications. Int J High Perform Comput Appl 18(1):159–167 CrossRefGoogle Scholar
  20. 20.
    van Nieuwpoort RV, Maassen J, Wrzesinska G, Hofman R, Jacobs C, Kielmann T, Bal HE (2005) Ibis: a flexible and efficient Java-based grid programming environment. Concurr Comput Pract Exp 17(7–8):1079–1107 CrossRefGoogle Scholar
  21. 21.
    Zhang BY, Yang GW, Zheng WM (2006) Jcluster: an efficient Java parallel environment on a large-scale heterogeneous cluster. Concurr Comput Pract Exp 18(12):1541–1557 CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2009

Authors and Affiliations

  • Guillermo L. Taboada
    • 1
    Email author
  • Juan Touriño
    • 1
  • Ramón Doallo
    • 1
  1. 1.Computer Architecture Group, Dept. of Electronics and SystemsUniversity of A CoruñaA CoruñaSpain

Personalised recommendations