Skip to main content
Log in

Analysis of a Heuristic for Code Partitioning

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. 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.

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

  5. M. D. Haines. Distributed runtime support for task and data management. PHD Dissertation CS–93–110, Colorado State University, August 1993.

  6. S. Hiranandani, K. Kennedy, and C. W. Tseng. Compiling fortran d for mimid distributed-memory machines. CACM, 35(8):6680, Aug 1992.

    Google Scholar 

  7. 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.

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

  11. 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.

    Google Scholar 

  12. T. Yang. Scheduling and Code Generation for Parallel Architectures. PhD thesis, Rutgers University, New Brunswick, Jew Jersey, May 1993.

    Google Scholar 

  13. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008061822393

Navigation