Performance-driven object-oriented program re-modularisation

The aim is to achieve the highest possible speedup when distributing a program across a cluster of computational nodes. The speedup may be achieved by concurrent execution of the distributed modules. In order to maximise the concurrency, a two-stage approach is proposed. In the first stage, a novel statement-reordering algorithm reorders the statements within a given program, to maximise the distance between each call instruction and the instructions, which are data-dependent on any value affected by the call. In the second stage, a clustering algorithm is applied to look for a modular structure of the program which results in the highest concurrency in its execution. The clustering algorithm applies a novel performance evaluation function which is derived from the program code, automatically.

[1]  John Mylopoulos,et al.  Quality-driven software re-engineering , 2003, J. Syst. Softw..

[2]  Andrew S. Tanenbaum,et al.  Distributed systems: Principles and Paradigms , 2001 .

[3]  Tarek S. Abdelrahman,et al.  Run-Time Support for the Automatic Parallelization of Java Programs , 2004, The Journal of Supercomputing.

[4]  Jan Gustafsson Analyzing execution-time of object-oriented programs using abstract interpretation , 2000 .

[5]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[6]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[7]  Saeed Parsa,et al.  The Design and Implementation of a Framework for Automatic Modularization of Software Systems , 2005, The Journal of Supercomputing.

[8]  Raffaela Mirandola,et al.  Deriving a queueing network based performance model from UML diagrams , 2000, WOSP '00.

[9]  Martin Charles Golumbic,et al.  Instruction Scheduling Beyond Basic Blocks , 1990, IBM J. Res. Dev..

[10]  David B. Whalley,et al.  Tighter timing predictions by automatic detection and exploitation of value-dependent constraints , 1999, Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium.

[11]  Saeed Parsa,et al.  Genetic Clustering with Constraints , 2007, J. Res. Pract. Inf. Technol..

[12]  Martin Schoeberl,et al.  JOP: A Java Optimized Processor for Embedded Real-Time Systems , 2008 .

[13]  Ralph P. Grimaldi,et al.  Discrete and Combinatorial Mathematics: An Applied Introduction , 1998 .

[14]  Brian S. Mitchell,et al.  A heuristic approach to solving the software clustering problem , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[15]  David B. Whalley,et al.  Bounding loop iterations for timing analysis , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[16]  John T. Feo Comparative Study of Parallel Programming Languages: The Salishan Problems , 1992 .

[17]  天野 英晴 J. L. Hennessy and D. A. Patterson: Computer Architecture: A Quantitative Approach, Morgan Kaufmann (1990)(20世紀の名著名論) , 2003 .

[18]  Michael Philippsen,et al.  JavaParty – transparent remote objects in Java , 1997 .

[19]  John Feo The Salishan Problems , 1992 .

[20]  Vivek Sarkar,et al.  Compilation techniques for parallel systems , 1999, Parallel Comput..

[21]  Andrew S. Grimshaw,et al.  Easy-to-use object-oriented parallel processing with Mentat , 1993, Computer.

[22]  Jameela Al-Jaroodi,et al.  JOPI: a Java object‐passing interface , 2005, Concurr. Pract. Exp..