A Tool for Automatic Parallelization of CPU-Intensive Java Applications on Distributed Environments

Grid Computing, a relatively new paradigm for distributed computing, delivers the necessary computational infrastructure –the so-called Computational Grids– to perform resource intensive computations such as the ones that solve the problems scientists are facing today. Exploiting Computational Grids comes at the expense of explicitly adapting the conventional software implementing such problems to take advantage of Grid resources, which requires knowledge on Grid programming. The recent notion of gridifying conventional applications, which is based on semi-automatically deriving the Grid-aware version from the compiled code of an ordinary application, promises users to be relieved from the requirement of manual usage of Grid APIs within their codes. This paper describes a novel Java-based gridification tool, which allows users to automatically parallelize applications on local-area and wide-area Grids. Experiments confirm that BYG effectively exploits such Grids while delivers competitive performance with respect to manually using Grid APIs to gridify conventional software.

[1]  Steven J. Vaughan-Nichols Web Services: Beyond the Hype , 2002, Computer.

[2]  Andreas Holzman Recent Advances in Parallel Virtual Machine and Message Passing Interface , 2001, Lecture Notes in Computer Science.

[3]  Ian T. Foster,et al.  Globus Toolkit Version 4: Software for Service-Oriented Systems , 2005, Journal of Computer Science and Technology.

[4]  Edward A. Lee The problem with threads , 2006, Computer.

[5]  M. Baitsch,et al.  A toolkit for efficient numerical applications in Java , 2010, Adv. Eng. Softw..

[6]  Guangwen Yang,et al.  Jcluster: an efficient Java parallel environment on a large‐scale heterogeneous cluster , 2006, Concurr. Comput. Pract. Exp..

[7]  I. Foster,et al.  The grid: computing without bounds. , 2003, Scientific American.

[8]  Robert Ian Mackie,et al.  Design and deployment of distributed numerical applications using .NET and component oriented programming , 2009, Adv. Eng. Softw..

[9]  Marcelo R. Campo,et al.  Grid-Enabling Applications with JGRIM , 2009, Int. J. Grid High Perform. Comput..

[10]  Marcelo R. Campo,et al.  BYG: An Approach to Just-in-Time Gridification of Conventional Java Applications , 2009, Parallel Programming, Models and Applications in Grid and P2P Systems.

[11]  José C. Cunha,et al.  Grid Computing: Software Environments and Tools , 2005 .

[12]  Fatos Xhafa Parallel Programming, Models and Applications in Grid and P2P Systems , 2009, Parallel Programming, Models and Applications in Grid and P2P Systems..

[13]  Thomas Fahringer,et al.  JavaSymphony, a programming model for the Grid , 2005, Future Gener. Comput. Syst..

[14]  J. van Leeuwen,et al.  Recent Advances in Parallel Virtual Machine and Message Passing Interface , 2002, Lecture Notes in Computer Science.

[15]  Jack J. Dongarra,et al.  Automatic translation of Fortran to JVM bytecode , 2001, JGI '01.

[16]  Marek Tudruj,et al.  Byte-code scheduling of Java programs with branches for desktop grid , 2007, Future Gener. Comput. Syst..

[17]  Violeta Migallón,et al.  Interfaces for parallel numerical linear algebra libraries in high level languages , 2009, Adv. Eng. Softw..

[18]  Mark Baker,et al.  Nested parallelism for multi-core HPC systems using Java , 2009, J. Parallel Distributed Comput..

[19]  Emilio Hernández,et al.  Extended mpiJava for Distributed Checkpointing and Recovery , 2006, PVM/MPI.

[20]  Miron Livny,et al.  Condor and the Grid , 2003 .

[21]  Mark Baker,et al.  University of Portsmouth Portsmouth Hants United Kingdom Po1 2up a Comparative Study of Java and C Performance in Two Large-scale Parallel Applications , 2022 .

[22]  Jason Maassen,et al.  Fault-Tolerant Scheduling of Fine-Grained Tasks in Grid Environments , 2006, Int. J. High Perform. Comput. Appl..

[23]  Marcelo R. Campo,et al.  A survey on approaches to gridification , 2008, Softw. Pract. Exp..

[24]  Ratan K. Guha,et al.  VCluster: a thread‐based Java middleware for SMP and heterogeneous clusters with thread migration support , 2008, Softw. Pract. Exp..

[25]  Stergios Papadimitriou,et al.  jLab: Integrating a scripting interpreter with Java technology for flexible and efficient scientific computation , 2009, Comput. Lang. Syst. Struct..

[26]  Dragos Manolescu,et al.  Volta: Developing Distributed Applications by Recompiling , 2008, IEEE Software.

[27]  Dominique Eyheramendy High abstraction level frameworks for the next decade in computational mechanics , 2006 .