This Article 
 Bibliographic References 
 Add to: 
Middleware Infrastructure for Parallel and Distributed Programming Models in Heterogeneous Systems
November 2003 (vol. 14 no. 11)
pp. 1100-1111

Abstract—In this paper, we introduce a middleware infrastructure that provides software services for developing and deploying high-performance parallel programming models and distributed applications on clusters and networked heterogeneous systems. This middleware infrastructure utilizes distributed agents residing on the participating machines and communicating with one another to perform the required functions. An intensive study of the parallel programming models in Java has helped identify the common requirements for a runtime support environment, which we used to define the middleware functionality. A Java-based prototype, based on this architecture, has been developed along with a Java Object-Passing Interface (JOPI) class library. Since this system is written completely in Java, it is portable and allows executing programs in parallel across multiple heterogeneous platforms. With the middleware infrastructure, users need not deal with the mechanisms of deploying and loading user classes on the heterogeneous system. Moreover, details of scheduling, controlling, monitoring, and executing user jobs are hidden, while the management of system resources is made transparent to the user. Such uniform services are essential for facilitating the development and deployment of scalable high-performance Java applications on clusters and heterogeneous systems. An initial deployment of a parallel Java programming model over a heterogeneous, distributed system shows good performance results. In addition, a framework for the agents' startup mechanism and organization is introduced to provide scalable deployment and communication among the agents.

[1] J. Al-Jaroodi, N. Mohamed, H. Jiang, and D. Swanson, An Agent-Based Infrastructure for Parallel Java on Heterogeneous Clusters Proc. Fourth IEEE Int'l Conf. Cluster Computing, pp. 19-27, 2002.
[2] J. Al-Jaroodi, N. Mohamed, H. Jiang, and D. Swanson, A Comparative Study of Parallel and Distributed Java Projects for Heterogeneous Systems Proc. IEEE IPDPS, Workshop Java for Parallel and Distributed Computing, 2002.
[3] J. Al-Jaroodi, N. Mohamed, H. Jiang, and D. Swanson, Modeling Parallel Applications Performance on Heterogeneous Systems Proc. IEEE IPDPS, Workshop Advances in Parallel and Distributed Computational Models, 2003.
[4] Y. Aridor, M. Factor, and A. Teperman, Transparently Obtaining Scalability for Java Applications on a Cluster J. Parallel and Distributed Computing special issue Java on Clusters, vol. 60, no. 10, pp. 1159-1193, Oct. 2000.
[5] E. Arjomandi, W. O'Farrell, I. Kalas, G. Koblents, F.C. Eigler, and G.R. Gao, ABC++ Concurrency by Inheritance in C++ IBM Systems J., vol. 34, pp. 120-137, 1995.
[6] A. Bik and D. Gannon, JAVAR: A Prototype Java Restructuring Tool index.html, July 2003.
[7] A. Bik and D. Gannon, JAVAB: A Prototype Bytecode Parallelization Tool index.html, July 2003.
[8] T. Brecht, H. Sandhu, M. Shan, and J. Talbot, ParaWeb: Towards World-Wide Supercomputing Proc. Seventh ACM SIGOPS European Workshop, pp. 181-188, 1996.
[9] High Performance Cluster Computing: Architectures and Systems, R. Buyya, ed., Prentice Hall Inc., 1999.
[10] M. Campione, K. Walrath, and A. Huml, The Java Tutorial Continued: The Rest of the JDK. The Java Series, Addison-Wesley Publication Co., 1998.
[11] D. Caromel, W. Klauser, and J. Vayssiere, Towards Seamless Computing and Metacomputing in Java Concurrency: Practice and Experience, vol. 10, pp. 1043-1061, 1998.
[12] B. Carpenter, G. Fox, H.K. Lee, and S.B. Lim, Translation Schemes for the HPJava Parallel Programming Language Proc. 14th Int'l Workshop Languages and Compilers for Parallel Computing, http:/, Aug. 2001.
[13] B. Carpenter, V. Getov, G. Judd, T. Skjellum, and G. Fox, MPI for Java, Position Document and Draft Specification Technical Report TGF-TR-03, Java Grande Forum,http://www.javagrande.orgjgpapers.html, July 2003.
[14] S. Deering and R. Hinden, Internet Protocol, Version 6 (IPv6) Specification RFC 1883,, July 2003.
[15] K. Edwards, Core Jini, second ed., Prentice Hall PTR, Dec. 2000.
[16] A.J. Ferrari, JPVM: Network Parallel Computing in Java Technical Report CS-97-29, Dept. of Computer Science, Univ. of Virginia, , July 2003.
[17] J. Gunnels, C. Lin, G. Morrow, and R. van de Geijn, "A Flexible Class of Parallel Matrix Multiplication Algorithms," Proc. 12th Int'l Parallel Processing Symp. and Ninth Symp. Parallel and Distributed Processing, pp. 110-116, 1998.
[18] Software Agents for Future Communication Systems, A. Hayzelden and J. Bigham, eds., Berlin Heidelberg: Springer-Verlag, 1999.
[19] M. Izatt, Babylon: A Java-Based Distributed Object Environment Master's thesis, Dept. of Computer Science, York Univ., Canada, July 2000.
[20] M. Izatt, T. Brecht, and P. Chan, Ajents: Towards an Environment for Parallel Distributed and Mobile Java Applications Proc. ACM Java Grande Conf., pp. 15-24, 1999.
[21] R. Karp and Y. Zhang, Randomized Parallel Algorithms for Backtrack Search and Branch-and-Bound Computation J. ACM, vol. 40, no. 3, pp. 765-789, July 1993.
[22] V. Laxmikant and S. Krishman, Charm++: A Portable Concurrent Object Oriented Systems Based on C++ Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, SIGPLAN Notices, vol. 28, no. 10, pp. 91-108, Oct. 1993.
[23] N. Mohamed, J. Al-Jaroodi, H. Jiang, and D. Swanson, JOPI: A Java Object-Passing Interface Proc. ACM Joint Java Grande-ISCOPE Conf., pp. 37-45, 2002.
[24] N. Mohamed, A. Davis, X. Liu, and B. Ramamurthy, JOR: A Java Object Router Proc. 14th IASTED Int'l Conf. Parallel and Distributed Computing and Systems, pp. 630-635, 2002.
[25] Myrinet/Myricom Web page,http:/, July 2003.
[26] M. Philippsen and M. Zenger, JavaParty Transparent Remote Objects in Java Concurrency: Practice and Experience, vol. 9, no. 11, pp. 1125-1242, Nov. 1997.
[27] RMI Web pages at Sun Microsystems,, July 2003.
[28] J. Squyres, J. Willock, B. McCandless, and P. Rijks, Object Oriented MPI (OOMPI): A C++ Class Library for MPI Proc. Parallel Object-Oriented Methods and Applications Conf., 1996.
[29] D. Walker and J. Dongarra, MPI: A Standard Message Passing Interface Supercomputer, vol. 12, no. 1, pp. 56-68, Jan. 1996.
[30] K.A. Yelick, L. Semenzato, G. Pike, C. Miyamoto, B. Liblit, A. Krishnamurthy, P.N. Hilfinger, S.L. Graham, D. Gay, P. Colella, and A. Aiken, Titanium: A High-Performance Java Dialect Concurrency: Practice and Experience, vol. 10, nos. 11-13, Sept.-Nov. 1998.

Index Terms:
Distributed systems middleware, parallel programming models, parallel and distributed Java, cluster, heterogeneous systems, distributed agents.
Jameela Al-Jaroodi, Nader Mohamed, Hong Jiang, David Swanson, "Middleware Infrastructure for Parallel and Distributed Programming Models in Heterogeneous Systems," IEEE Transactions on Parallel and Distributed Systems, vol. 14, no. 11, pp. 1100-1111, Nov. 2003, doi:10.1109/TPDS.2003.1247671
Usage of this product signifies your acceptance of the Terms of Use.