An Algorithm to Improve Parallelism in Distributed Systems Using Asynchronous Calls

Distributed systems use different methods for making parallelism. A common approach is using asynchronous calls. In this method the caller method and called method are located in different workstations and the caller method continues to run even after calling the remote method. Although the caller and called methods can be executed concurrently, the dependency of the instructions after the call instruction to the values affected by the called method make the caller to stop. In this article, an instruction scheduling algorithm is presented to achieve more concurrency in the execution of these distributed codes.

[1]  A. Gonzalez,et al.  Cache sensitive module scheduling , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[2]  Alexandre E. Eichenberger,et al.  Effective cluster assignment for modulo scheduling , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[3]  B. Ramakrishna Rau,et al.  Iterative modulo scheduling: an algorithm for software pipelining loops , 1994, MICRO 27.

[4]  Jack Dongarra,et al.  Computational Science - ICCS 2007, 7th International Conference, Beijing, China, May 27 - 30, 2007, Proceedings, Part III , 2007, ICCS.

[5]  Pinar Yolum,et al.  Computer and Information Sciences - ISCIS 2005, 20th International Symposium, Istanbul, Turkey, October 26-28, 2005, Proceedings , 2005, ISCIS.

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

[7]  Saeed Parsa,et al.  On the Optimal Object-Oriented Program Re-modularization , 2007, International Conference on Computational Science.

[8]  Saeed Parsa,et al.  Automatic Distribution of Sequential Code Using JavaSymphony Middleware , 2006, SOFSEM.

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

[10]  Saeed Parsa,et al.  Automatic Translation of Serial to Distributed Code Using CORBA Event Channels , 2005, ISCIS.

[11]  Alexandre E. Eichenberger,et al.  Optimum modulo schedules for minimum register requirements , 1995 .

[12]  David R. Kaeli,et al.  Exploiting pseudo-schedules to guide data dependence graph partitioning , 2002, Proceedings.International Conference on Parallel Architectures and Compilation Techniques.

[13]  Ayal Zaks,et al.  Swing Modulo Scheduling for GCC , 2004 .

[14]  Richard A. Huff,et al.  Lifetime-sensitive modulo scheduling , 1993, PLDI '93.

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

[16]  Suneel Jain,et al.  Circular scheduling: a new technique to perform software pipelining , 1991, PLDI '91.

[17]  Alexandre E. Eichenberger,et al.  Stage scheduling: a technique to reduce the register requirements of a module schedule , 1995, MICRO 1995.

[18]  Josep Llosa,et al.  Modulo Scheduling with Reduced Register Pressure , 1998, IEEE Trans. Computers.