Accelerating the parallel distributed execution of Java HPC applications
نویسندگان
چکیده
In order to speed up the execution of Java applications, JIT compilers compile method bytecodes into native code at run time. Once a method is compiled, subsequent executions of this method will run a generated machine-dependent code, which is generally faster than interpreting bytecodes. In addition, JIT compilers can apply several optimizations to the code to increase the performance even further. When parallelizing the execution of a Java application over a distributed infrastructure such a Grid, a JVM is created on each resource node to run a part of the application. The JIT compiler of each of these JVMs works independently from the others, thus paying the compilation cost and the time to reach the peak performance in every machine. Besides, in some cases, the execution nodes are not dedicated or not directly accessible; this prevents from maintaining a persistent JVM in each node during all the application execution, and gives little opportunity for the JIT compiler to perform mid-to-long term code optimizations. This document proposes a couple of techniques to fully benefit from JIT optimizations when distributing the execution of Java applications. These techniques could be integrated in COMP Superscalar, a framework that allows to run user-selected parts of a Java application in a set of distributed parallel resources.
منابع مشابه
Java in the High Performance Computing arena: Research, practice and experience
The rising interest in Java for High Performance Computing (HPC) is based on the appealing features of this language for programming multi-core cluster architectures, particularly the built-in networking and multithreading support, and the continuous increase in Java Virtual Machine (JVM) performance. However, its adoption in this area is being delayed by the lack of analysis of the existing pr...
متن کاملMPJ Express Meets YARN: Towards Java HPC on Hadoop Systems
Many organizations—including academic, research, commercial institutions—have invested heavily in setting up High Performance Computing (HPC) facilities for running computational science applications. On the other hand, the Apache Hadoop software—after emerging in 2005— has become a popular, reliable, and scalable open-source framework for processing large-scale data (Big Data). Realizing the i...
متن کاملA Multithreaded Java Grande Benchmark Suite
Increasing interest is being shown in the use of Java for large scale or Grande applications. This new use of Java places specific demands on the Java execution environments that can be tested using the Java Grande benchmark suite [5], [6], [7]. The large processing requirements of Grande applications makes parallelisation of interest. A suite of shared memory parallel benchmarks has been devel...
متن کاملA Java/Jini Framework Supporting Stream Parallel Computations
JJPF (the Java/Jini Parallel Framework) is a framework that can run stream parallel applications on several parallel-distributed architectures. JJPF is actually a distributed execution server. It uses JINI to recruit the computational resources needed to compute parallel applications. Parallel applications can be run on JJPF provided they exploit parallelism accordingly to an arbitrary nesting ...
متن کاملA Comparison of Two Java Runtime Systems for Parallel Execution of ultithreaded Java Applications on Networks of Workstations
This paper assesses the performance of two Java frameworks for high performance computing (HPC) on networks of workstations (NOWs). The lottery-based work stealing algorithm is intrinsically distributed, and consequetly scalable to an extremely large number of participant workstations. Although proved to be near optimal for the distribution of well-structured multithreaded computations across l...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008