International Journal of Parallel Programming

, Volume 44, Issue 6, pp 1142–1172 | Cite as

Towards Scalable Java HPC with Hybrid and Native Communication Devices in MPJ Express

  • Ansar Javed
  • Bibrak Qamar
  • Mohsan Jameel
  • Aamir Shafi
  • Bryan Carpenter
Article

Abstract

MPJ Express is a messaging system that allows application developers to parallelize their compute-intensive sequential Java codes on High Performance Computing clusters and multicore processors. In this paper, we extend MPJ Express software to provide two new communication devices. The first device—called hybrid—enables MPJ Express to exploit hybrid parallelism on cluster of multicore processors by sitting on top of existing shared memory and network communication devices. The second device—called native—uses JNI wrappers in interfacing MPJ Express to native MPI implementations like MPICH and Open MPI. We evaluate performance of these devices on a range of interconnects including 1G/10G Ethernet, 10G Myrinet and 40G InfiniBand. In addition, we analyze and evaluate the cost of MPJ Express buffering layer and compare it with the performance numbers of other Java MPI libraries. Our performance evaluation reveals that the native device allows MPJ Express to achieve comparable performance to native MPI libraries—for latency and bandwidth of point-to-point and collective communications—which is a significant gain in performance compared to existing communication devices. The hybrid communication device—without any modifications at application level—also helps parallel applications achieve better speedups and scalability by exploiting multicore architecture. Our performance evaluation quantifies the cost incurred by buffering and its impact on overall performance of software. We witnessed comparative performance as both new devices improve application performance and achieve upto 90 % of the theoretical bandwidth available without application rewriting effort—including NAS Parallel Benchmarks, point-to-point and collective communication.

Keywords

MPJ Express Parallel computing Hybrid parallelism in Java Native communication device for Java High Performance Computing in Java 

References

  1. 1.
    Message Passing Interface Specifications. http://www.mpi-forum.org/docs/docs.html (2014a). Accessed 27 Nov 2014
  2. 2.
    MPICH. http://www.mpich.org/ (2014b). Accessed 27 Nov 2014
  3. 3.
    Myricom. http://www.myri.com/ (2014). Accessed 27 Nov 2014
  4. 4.
    Open MPI. http://www.open-mpi.org/ (2014). Accessed 27 Nov 2014
  5. 5.
    Baker, M., Carpenter, B., Fox, G., Hoon Ko, S., Lim, S.: mpiJava: an object-oriented java interface to MPI. In: Parallel and Distributed Processing, Lecture Notes in Computer Science, vol 1586, Springer, Berlin Heidelberg, pp. 748–762 (1999). doi:10.1007/BFb0097964
  6. 6.
    Baker, M., Carpenter, B., Shafi, A.: MPJ express: towards thread safe Java HPC. In: IEEE International Conference on Cluster Computing (Cluster 2006), IEEE, pp. 1–10 (2006). doi:10.1109/CLUSTR.2006.311890
  7. 7.
    Blount, B., Chatterjee, S.: An evaluation of java for numerical computing. In: Proceedings of Second International Symposium on Computing in Object-Oriented Parallel Environments (ISCOPE’98), Springer, pp. 35–46 (1998)Google Scholar
  8. 8.
    Bornemann, M., Nieuwpoort, R.V., Kielmann, T.: MPJ/Ibis: a flexible and efficient message passing platform for Java. In: Recent Advances in Parallel Virtual Machine and Message Passing Interface, Lecture Notes in Computer Science, vol 3666, Springer, pp. 217–224 (2005). doi:10.1007/11557265_30
  9. 9.
    Bull, J.M., Kambites, M.E.: Jomp—an openmp-like interface for java. In: Proceedings of the ACM 2000 Conference on Java Grande, ACM, New York, NY, USA, JAVA ’00, pp. 44–53 (2000). doi:10.1145/337449.337466
  10. 10.
    Carpenter, B., Fox, G., Ko, S.H., Lim, S.: mpiJava 1.2: API specification. Tech. rep., Northeast Parallel Architectures Center, Syracuse University (1999). http://www.hpjava.org/reports/mpiJava-spec/mpiJava-spec/mpiJava-spec.html
  11. 11.
    Friedley, A., Bronevetsky, G., Hoefler, T., Lumsdaine, A.: Hybrid MPI: efficient message passing for multi-core systems. In: Proceedings of SC13: International Conference for High Performance Computing, Networking, Storage and Analysis, ACM, SC ’13, pp. 18:1–18:11 (2013). doi:10.1145/2503210.2503294
  12. 12.
    Gordon, R.: Essential JNI: Java Native Interface. Prentice Hall PTR, Upper Saddle River, NJ (1998). 07458Google Scholar
  13. 13.
    Hitchens, R.: Java NIO. O’Reilly & Associates, Sebastopol (2002)Google Scholar
  14. 14.
    Knuth, D.: The Art of Computer Programming: Fundamental Algorithms. Addison Wesley, Reading (1973)MATHGoogle Scholar
  15. 15.
    Mackey, G., Sehrish, S., Bent, J., Lopez, J., Habib, S., Wang, J.: Introducing map-reduce to high end computing. In: Petascale Data Storage Workshop, 2008. PDSW ’08. 3rd, pp. 1–6 (2008). doi:10.1109/PDSW.2008.4811889
  16. 16.
    Mallón, D.A., Taboada, G.L., Touriño, J., Doallo, R.: NPB-MPJ: NAS parallel benchmarks implementation for message-passing in Java. In: 17th Euromicro International Conference on Parallel, Distributed and Network-based Processing, IEEE, pp. 181–190 (2009). doi:10.1109/PDP.2009.59
  17. 17.
    Qamar, B., Javed, A., Jameel, M., Shafi, A., Carpenter, B.: Design and implementation of hybrid and native communication devices for Java HPC. Procedia Comput. Sci. 29(0):184–197 (2014). doi:10.1016/j.procs.2014.05.017, http://www.sciencedirect.com/science/article/pii/S187705091400194X. In: International Conference on Computational Science (2014)
  18. 18.
    Ramos, S., Taboada, G.L., Touriño, J., Doallo, R.: Scalable Java Communication Middleware for Hybrid Shared/Distributed Memory Architectures. In: IEEE 13th International Conference on High Performance Computing and Communications (HPCC), IEEE, pp. 221–228 (2011). doi:10.1109/HPCC.2011.37
  19. 19.
    Shafi, A., Carpenter, B., Baker, M.: Nested parallelism for multi-core HPC systems using Java. J. Parallel Distrib. Comput. 69(6), 532–545 (2009). doi:10.1016/j.jpdc.2009.02.006 CrossRefGoogle Scholar
  20. 20.
    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 (2009b). doi:10.1002/cpe.v21:15 CrossRefGoogle Scholar
  21. 21.
    Shafi, A., Manzoor, J., Hameed, K., Carpenter, B., Baker, M.: Multicore-enabling the MPJ express messaging library. In: Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, ACM, PPPJ ’10, pp. 49–58 (2010). doi:10.1145/1852761.1852769
  22. 22.
    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). doi:10.1147/sj.391.0175 CrossRefGoogle Scholar
  23. 23.
    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). doi:10.1007/s11227-009-0270-0 CrossRefGoogle Scholar
  24. 24.
    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). doi:10.1016/j.scico.2011.06.002 CrossRefGoogle Scholar
  25. 25.
    Vega-Gisbert, O., Roman, J.E., Groß, S., Squyres, J.M.: Towards the availability of Java bindings in open MPI. In: Proceedings of the 20th European MPI Users’ Group Meeting, ACM, EuroMPI ’13, pp. 141–142 (2013). doi:10.1145/2488551.2488599
  26. 26.
    Welsh, M., Culler, D.: Jaguar: enabling efficient communication and I/O in Java. Concurr. Pract. Exp. 12(7), 519–538 (2000)CrossRefMATHGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  • Ansar Javed
    • 1
  • Bibrak Qamar
    • 2
  • Mohsan Jameel
    • 2
    • 3
  • Aamir Shafi
    • 2
  • Bryan Carpenter
    • 4
  1. 1.Mohammad Ali Jinnah University (MAJU)IslamabadPakistan
  2. 2.SEECS, National University of Sciences and Technology (NUST)IslamabadPakistan
  3. 3.Information Systems and Machine Learning Lab (ISMLL)University of HildesheimHildesheimGermany
  4. 4.School of ComputingUniversity of PortsmouthPortsmouthUK

Personalised recommendations