Abstract
In this paper, we analyze the time complexity and performance of a heuristic for code partitioning for Distributed Memory Multiprocessors (DMMs). The partitioning method is data-flow based where all levels of parallelism are exploited. Given a weighted Directed Acyclic Graph (DAG) representation of the program, our algorithm automatically determines the granularity of parallelism by partitioning the graph into tasks to be scheduled on the DMM. The granularity of parallelism depends only on the program to be executed and on the target machine parameters. The output of our algorithm is passed on as input to the scheduling phase. Finding an optimal solution to this problem is NP-complete. Due to the high cost of graph algorithms, it is nearly impossible to come up with close to optimal solutions that do not have very high cost (higher order polynomial). Our proposed heuristic gives good performance and has relatively low cost.
Similar content being viewed by others
References
M. Ayed. Automatic Code Partitioning for Distributed Memory Multiprocessors. PhD thesis, University of Southern California, EE Systems Dept., Computer Engineering Division, November 1996. Technical Report Number: CENG 96–36.
A. Gerasoulis and T. Yang. On the granularity and clustering of directed acyclic task graphs. IEEE Transactions on Parallel and Distributed Systems, 4(6):686–701, June 1993.
M. Haines and W. Bohm. Towards a distributed memory implementation of sisal. Technical Report CS–91–123, Colorado State University, Computer Science Department, Colorado State University, Fort Collins, CO 80523, Nov 1991.
M. Haines and W. Bohm. A comparison of explicit and implicit programming styles for distributed memory multiprocessors. Technical Report CS–93–104, Colorado State University, March 1993.
M. D. Haines. Distributed runtime support for task and data management. PHD Dissertation CS–93–110, Colorado State University, August 1993.
S. Hiranandani, K. Kennedy, and C. W. Tseng. Compiling fortran d for mimid distributed-memory machines. CACM, 35(8):6680, Aug 1992.
C. Lee, T. Yang, and Y. F. Wang. Partitioning and scheduling for parallel image processing operations. In Proceedings of the IEEE Symposium on Parallel and Distributed Processing, pages 86–90, Texas, October 1995.
V. Sarkar. Partitioning and scheduling parallel programs for execution on multiprocessors. PHD Thesis CSL-TR–87–328, Stanford University, Stanford, CA 94305–2192, Apr 1987.
V. Sarkar and J. Hennessey. Compile-time partitioning and scheduling of parallel programs. In Proceedings of the SIGPLAN 1986 Symposium on Compiler Construction, pages 17–26, Palo Alto, CA, Jun 1986. ACM.
V. Sarkar and J. Hennessey. Partioning parallel programs for macro-dataflow. In Proceedings of the 1986 ACM Conference on Lisp and functional programming, pages 202–211, Aug 1986.
V. Sarkar, S. Skedzielewski, and P. Miller. An automatically partitioning compiler for sisal. Technical Report UCRL-98289, Lawrence Livermore National Laboratory, Livermore, CA 94550, Dec 1988.
T. Yang. Scheduling and Code Generation for Parallel Architectures. PhD thesis, Rutgers University, New Brunswick, Jew Jersey, May 1993.
T. Yang and A. Gerasoulis. Dsc: Scheduling parallel tasks on an unbounded number of processors. IEEE Transactions on Parallel and Distributed Systems, 5(9):951–967, September 1994.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Ayed, M., Gaudiot, JL. Analysis of a Heuristic for Code Partitioning. The Journal of Supercomputing 12, 191–226 (1998). https://doi.org/10.1023/A:1008061822393
Issue Date:
DOI: https://doi.org/10.1023/A:1008061822393