This Article 
 Bibliographic References 
 Add to: 
Clustering Algorithm for Parallelizing Software Systems in Multiprocessors Environment
April 2000 (vol. 26 no. 4)
pp. 340-361

Abstract—A variety of techniques and tools exist to parallelize software systems on different parallel architectures (SIMD, MIMD). With the advances in high-speed networks, there has been a dramatic increase in the number of client/server applications. A variety of client/server applications are deployed today, ranging from simple telnet sessions to complex electronic commerce transactions. Industry standard protocols, like Secure Socket Layer (SSL), Secure Electronic Transaction (SET), etc., are in use for ensuring privacy and integrity of data, as well as for authenticating the sender and the receiver during message passing. Consequently, a majority of applications using parallel processing techniques are becoming synchronization-centric, i.e., for every message transfer, the sender and receiver must synchronize. However, more effective techniques and tools are needed to automate the clustering of such synchronization-centric applications to extract parallelism. In this paper, we present a new clustering algorithm to facilitate the parallelization of software systems in a multiprocessors environment. The new clustering algorithm achieves traditional clustering objectives (reduction in parallel execution time, communication cost, etc.). Additionally, our approach 1) reduces the performance degradation caused by synchronizations, and 2) avoids deadlocks during clustering. The effectiveness of our approach is depicted with the help of simulation results.

[1] F.E. Allen,M. Burke,P. Charles,R. Cytron,, and J. Ferrante,“An overview of the PTRAN analysis system for multiprocessing,” J. of Parallel and Distributed Computing, vol. 5, pp. 617-640, 1988.
[2] R. Allen and K. Kennedy,“Automatic translation of FORTRAN programs to vector form,”ACM Trans. Programm. Lang., Syst. 9, pp. 491–542, Oct. 1987.
[3] B. Bershad, T.E. Anderson, E.D. Lazowska, and H.M. Levy, Lightweight Remote Procedure Call ACM Trans. Computer Systems, vol. 8, no. 1, pp. 37-55, Feb. 1990.
[4] A. Birrell and B. Nelson, "Implementing Remote Procedure Calls," ACM Trans. Computer Systems," vol. 2, pp. 39-59, 1984.
[5] R. Blumofe and D.S. Park, “Scheduling Large-Scale Parallel Computations on Networks of Workstations,” Proc. Third Int'l Symp. High-Performance Distributed Computing, pp. 96-105, 1994.
[6] M.D. Dikaiakos, A. Rogers, and K. Steiglitz, “A Comparison of Techniques Used for Mapping Parallel Algorithms to Message-Passing Multiprocessors,” Technical Report, Princeton Univ. 1994.
[7] A. Gerasoulis and T. Yang, “A Comparison of Clustering Heuristics for Scheduling Directed Acyclic Graphs on Multiprocessors,” J. Parallel and Distributed Computing, vol. 16, pp. 276–291, 1992.
[8] M. Girkar and C.D. Polychronopoulos, "Automatic Extraction of Functional Parallelism from Ordinary Programs," IEEE Trans. Parallel and Distributed Systems, vol. 3, no. 2, pp. 166-178, Mar. 1992.
[9] R. Jagannathan, A.R. Downing, W.T. Zaumen, and R.K.S. Lee, “Dataflow-Based Methodology for Coarse-Grain Multiprocessing on a Network of Workstations,” Proc. Int'l Conf. Parallel Processing, pp. II209–II216, 1989.
[10] D. Kadamuddi and J.J.P. Tsai, “A Simple Graph Algorithm for Message-Optimized Distributed Computing,” Proc. Seventh Int'l Conf. Parallel and Distributed Computing Systems, pp. 80-85, Oct. 1994.
[11] D. Kadamuddi and J.J.P. Tsai, ”MDDT Constructs for Incorporating Early-Receives in Distributed Computing,” J. Computer Systems: Science and Eng., vol. 10, no. 4, pp. 223-233, Oct. 1995.
[12] S.J. Kim and J.C. Browne, “A General Approach to Mapping of Parallel Computation upon Multiprocessor Architectures,” Proc. 1988 Int'l Conf. Parallel Processing, vol. 3, pp. 1–8, 1988.
[13] M. Kormicki, A. Mahmood, and B.S. Carlson, “Parallel Logic Simulation on a Network of Workstations Using PVM,” Proc. Seventh Symp. Parallel and Distributed Processing, pp. 2–9, Oct. 1996.
[14] D.J. Kuck,R. Kuhn,D. Padua,B. Leasure,, and M. Wolfe,“Dependence graphs and compiler optimizations,” Proc. 1981 SIGACT-SIGPLAN Symp. Principles of Programming Languages, pp. 207-218, Jan. 1981.
[15] Y.-K. Kwok and I. Ahmad, “Dynamic Critical-Path Scheduling: An Effective Technique for Allocating Task Graphs to Multiprocessors,” IEEE Trans. Parallel and Distributed Systems, vol. 7, no. 5, pp. 506-521, May 1996.
[16] V.M. Lo, "Heuristic Algorithms for Task Assignment in Distributed Systems," IEEE Trans. Computers, vol. 37, no. 11, pp. 1,384-1,397, Nov. 1988.
[17] B.A. Malloy, E.L. Lloyd, and M.L. Soffa, “Scheduling DAG's for Asynchronous Multiprocessor Execution,” IEEE Trans. Parallel and Distributed Systems, vol. 5, no. 5, pp. 498–508, May 1994.
[18] V.A. Saletore, J. Jacob, and M. Padala, “Parallel Computations on the CHARM Heterogeneous Workstation Cluster,” Proc. Third Int'l Symp. High Performance Distributed Computing, pp. 203–210, Apr. 1994.
[19] V. Sarkar,Partitioning and Scheduling Parallel Programs for Execution on Multiprocessors.Cambridge, Mass.: MIT Press, 1989.
[20] V. Sarkar and J.L. Hennessy, "Compile-Time Partitioning and Scheduling of Parallel Programs," Proc. ACM SIGPLAN '86 Symp. Compiler Construction, ACM Press, New York, 1986, pp. 17-26.
[21] Z. Shen, Z. Li, and P. Yew, “An Empirical Study on Array Subscripts and Data Dependencies,” Proc. Int'l Conf. Parallel Processing, vol. 2, pp. 145–152, Aug. 1989.
[22] B.H. Tay and A.L. Ananda, “A Survey of Remote Procedure Calls,” ACM Operating Systems Review, vol. 24, no. 3, July 1990.
[23] J.J.P. Tsai, Y. Bi, S.J.H. Yang, and R.A.W. Smith, Distributed Real-Time Systems: Monitoring, Debugging, and Visualization. John Wiley and Sons, 1996.
[24] J. J. P. Tsai and S. J. H. Yang,Monitoring and Debugging of Distributed Real-Time Systems. Washington, DC: IEEE Computer Society Press, 1995.
[25] J.J.P. Tsai and T. Weigert, Knowledge-Based Software Development for Real-Time Distributed Systems. World Scientific, Dec. 1993.
[26] J.J.P. Tsai and B. Li, “Improving Parallel Execution Performance for Logic Programs Using Mode Information,” Proc. Sixth Symp. Parallel and Distributed Processing, pp 144–151, Oct. 1994.
[27] J.J.P. Tsai, B. Li, and E. Juan, "Parallel Evaluation of Software Architecture Specification," Comm. ACM, pp. 83-86, vol. 40, no. 1, Jan. 1997.
[28] J.J.P. Tsai and B. Li, Parallel Execution Model of Requirements Specification Languages. World Scientific, 2000.
[29] L.H. Turcotte, “A Survey of Software Environments for Exploiting Networked Computing Resources,” technical report, Singapore: Eng. Research Center for Computational Field Simulation, June 1993.
[30] M.Y. Wu and D.D. Gajski,"Hypertool: A programming aid for message-passing systems," IEEE Transactions on Parallel and Distributed Systems, vol. 1, no. 3, pp. 330-343, July 1990.
[31] T. Yang and A. Gerasoulis, "A Fast Static Scheduling Algorithm for DAGs on an Unbounded Number of Processors," Proc. Supercomputing, pp. 633-642,Albuquerque, N.M., Nov. 1991.
[32] T. Yang and A. Gerasoulis, “PYRROS: Static Scheduling and Code Generation for Message Passing Multiprocessors,” Proc. Sixth ACM Int'l Conf. Supercomputing, pp. 428-437, 1992.
[33] M.J. Zaki, W. Lei, and S. Parthasarathy, “Customized Dynamic Load Balancing for a Network of Workstations,” Technical Report 602, Univ. of Rochester, Dec. 1995.
[34] X. Zhang and Y. Yan, "Modeling and Characterizing Parallel Computing Performance on Heterogeneous Networks of Workstations," Proc. Seventh IEEE Symp. Parallel and Distributed Processing, pp. 25-34, Oct. 1995.

Index Terms:
Parallel processing, software environment, synchronous communication, clustering algorithm, distributed application, deadlock.
Dinesh Kadamuddi, Jeffrey J.P. Tsai, "Clustering Algorithm for Parallelizing Software Systems in Multiprocessors Environment," IEEE Transactions on Software Engineering, vol. 26, no. 4, pp. 340-361, April 2000, doi:10.1109/32.844493
Usage of this product signifies your acceptance of the Terms of Use.