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.
Similar content being viewed by others
References
Message Passing Interface Specifications. http://www.mpi-forum.org/docs/docs.html (2014a). Accessed 27 Nov 2014
MPICH. http://www.mpich.org/ (2014b). Accessed 27 Nov 2014
Myricom. http://www.myri.com/ (2014). Accessed 27 Nov 2014
Open MPI. http://www.open-mpi.org/ (2014). Accessed 27 Nov 2014
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
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
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)
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
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
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
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
Gordon, R.: Essential JNI: Java Native Interface. Prentice Hall PTR, Upper Saddle River, NJ (1998). 07458
Hitchens, R.: Java NIO. O’Reilly & Associates, Sebastopol (2002)
Knuth, D.: The Art of Computer Programming: Fundamental Algorithms. Addison Wesley, Reading (1973)
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
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
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)
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
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
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
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
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
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
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
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
Welsh, M., Culler, D.: Jaguar: enabling efficient communication and I/O in Java. Concurr. Pract. Exp. 12(7), 519–538 (2000)
Author information
Authors and Affiliations
Corresponding author
Additional information
This paper is an extended version of [17]. The main contributions of the extended version include optimization and comprehensive performance evaluation/analysis on various interconnects using a variety of benchmarks and applications.
Rights and permissions
About this article
Cite this article
Javed, A., Qamar, B., Jameel, M. et al. Towards Scalable Java HPC with Hybrid and Native Communication Devices in MPJ Express. Int J Parallel Prog 44, 1142–1172 (2016). https://doi.org/10.1007/s10766-015-0375-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-015-0375-4