Java Programs Optimization Based on the Most–Often–Used–Paths Approach
The paper presents a Java byte–code optimization algorithm, which determines an initial distribution of objects among virtual machines (JVMs) so as to decrease direct inter–object communication and balance loads of the virtual machines. The proposed optimization algorithm is based on a graph representation of control and data dependencies between methods in Java programs. These dependencies, expressed in the form of conditional macro–dataflow graphs, are discovered by a static analysis of program byte–code.
Object placement optimization is performed before a Java program is executed in a parallel system. The optimization methods are based on the Dominant Sequence Clustering (DSC) approach. First, macro nodes are clustered on an unlimited number of processors (logical JVMs) to reduce the total program execution time. Next, clusters are merged and scheduled to adjust the number of logical JVMs to the number of real processors. The presented approach is supported by branch optimization techniques, which include detection of mutually–exclusive paths and scheduling of most–often–used–paths based on branch probabilities.
KeywordsVirtual Machine Java Program Program Graph Branch Node Code Instruction
Unable to display preview. Download preview PDF.
- 1.Zhao, J.: Dependency Analysis of the Java Byte code. In: Proc. of the 24th IEEE Annual Int. Computer Software and Application Conference, Taipei (October 2000)Google Scholar
- 2.Bouchi, A., Olejnik, R., Toursel, B.: A New Estimation Method for Distributed Java Object Activity. In: IPDPS – Workshop on Java for Parallel and Distributed Computing, Fort Lauderdale, USA (2002)Google Scholar
- 4.Weyns, D., Truyen, E., Verbaeten, P.: Distributed Threads in Java. In: Proceedings of the NATO Adanced Research Workshop on Advanced Environments, Tools and Applications for Cluster Computing, Mangalia, Romania (September 2001)Google Scholar
- 5.Agarawal, M., et al.: Speculative Trace Scheduling in VLIW Processors. In: IEEE Int. Conf. on Computer Design: VLSI in Computers and Processors, Germany (2002)Google Scholar
- 6.Xie, Y., Wolf, W.: Allocation and scheduling of conditional task graph in hardware/software co–synthesis. In: DATE 2001, pp. 620–625 (2001)Google Scholar
- 7.Murphy, C., Wang, X.: Most Often Used Path Scheduling Algorithm. In: Proceedings of the 5th World Multi–Conference on Systemics, Cybernetics and Informatics (SCI 2001), Orlando, Florida, USA, July 22-25, 2001, vol. XII, pp. 289–295 (2001)Google Scholar
- 8.Hwang, J.-J., et al.: Scheduling Precedence Graphs in Systems with Interprocessor Communication Times. Siam J. Comput. 18(2) (1989)Google Scholar