Abstract
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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)
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)
Philippsen, M., Zenger, M.: JavaParty – Transparent Remote Objects in Java. Concurrency: Practice & Experience 9(11), 1225–1242 (1997)
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)
Agarawal, M., et al.: Speculative Trace Scheduling in VLIW Processors. In: IEEE Int. Conf. on Computer Design: VLSI in Computers and Processors, Germany (2002)
Xie, Y., Wolf, W.: Allocation and scheduling of conditional task graph in hardware/software co–synthesis. In: DATE 2001, pp. 620–625 (2001)
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)
Hwang, J.-J., et al.: Scheduling Precedence Graphs in Systems with Interprocessor Communication Times. Siam J. Comput. 18(2) (1989)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Laskowski, E., Tudruj, M., Olejnik, R., Toursel, B. (2006). Java Programs Optimization Based on the Most–Often–Used–Paths Approach. In: Wyrzykowski, R., Dongarra, J., Meyer, N., Waśniewski, J. (eds) Parallel Processing and Applied Mathematics. PPAM 2005. Lecture Notes in Computer Science, vol 3911. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11752578_114
Download citation
DOI: https://doi.org/10.1007/11752578_114
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34141-3
Online ISBN: 978-3-540-34142-0
eBook Packages: Computer ScienceComputer Science (R0)