Skip to main content

Mutation scheduling: A unified approach to compiling for fine-grain parallelism

  • Starting Small: Fine-Grain Parallelism
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 892))

Abstract

Trade-offs between code selection, register allocation, and instruction scheduling are inherently interdependent, especially when compiling for fine-grain parallel architectures. However, the conventional approach to compiling for such machines arbitrarily separates these phases so that decisions made during any one phase place unnecessary constraints on the remaining phases. Mutation Scheduling attempts to solve this problem by combining code selection, register allocation, and instruction scheduling into a unified framework in which trade-offs between the functional, register, and memory bandwidth resources of the target architecture are made “on the fly” in response to changing resource constraints and availability.

This work was supported in part by NSF grant CCR8704367 and ONR grant N0001486K0215.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. Aho, R. Sethi, and J.D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading, MA, 1986.

    Google Scholar 

  2. D. Berson, R. Gupta, and M.L. Soffa. Resource spackling: A framework for integrating register allocation in local and global schedulers. In Working Conf. on Par. Arch. and Compilation Techniques, August 1994.

    Google Scholar 

  3. D. Bradlee, S. Eggers, and R. Henry. Integrating register allocation and instruction scheduling for riscs. In ASPLOS, April 1991.

    Google Scholar 

  4. P. Briggs, K. Cooper, and L. Torczon. Rematerialization. In PLDI, 1992.

    Google Scholar 

  5. R. Cytron and J. Ferrante. What's in a name? In ICPP, pages 19–27, August 1987.

    Google Scholar 

  6. R. Cytron, J. Ferrente, B. Rosen, M. Wegman, and K. Zadeck. Efficiently computing static single assignment form and the control dependence graph. TOPLAS, 13(4):451–490, October 1991.

    Google Scholar 

  7. K. Ebcioglu. Some design ideas for a vliw architecture for sequential-natured software. In IFIP Proceedings, 1988.

    Google Scholar 

  8. M. Girkar and C.D. Polychronopoulos. Automatic extraction of functional parallelism from ordinary programs. TOPADS, 3(2):166–178, March 1992.

    Google Scholar 

  9. J. R. Goodman and W. Hsu. Code scheduling and register allocation in large basic blocks. In ICS, July 1988.

    Google Scholar 

  10. R. Gupta and M. L. Soffa. Region scheduling: An approach for detecting and redistributing parallelism. TOSE, 16(4), April 1990.

    Google Scholar 

  11. D. J. Kuck, Y. Muraoka, and S. C. Chen. On the number of operations simultaneously executable in fortran-like programs and their resulting speedup. TOC, December 1972.

    Google Scholar 

  12. H. Massalin. Superoptimizer: A look at the smallest program. In ASPLOS, 1987.

    Google Scholar 

  13. S. Moon and K. Ebcioglu. An efficient resource constrained global scheduling technique for superscalar and vliw processors. In MICRO, Portland, OR, December 1992.

    Google Scholar 

  14. T. Nakatani and K. Ebcioglu. Using a lookahead window in a compaction-based parallelizing compiler. In MICRO, 1990.

    Google Scholar 

  15. A. Nicolau. Uniform parallelism exploitation in ordinary programs. In ICPP, 1985.

    Google Scholar 

  16. A. Nicolau and R. Potasman. Incremental tree height reduction for high level synthesis. In DAC, San Francisco, CA, June 1991.

    Google Scholar 

  17. A. Nicolau, R. Potasman, and H. Wang. Register allocation, renaming and their impact on parallelism. In Lang. and Compilers for Par. Comp., number 589 in LNCS Series. Springer-Verlag, 1991.

    Google Scholar 

  18. S. Novack and A. Nicolau. An efficient global resource constrained technique for exploiting instruction level parallelism. In ICPP, St. Charles, IL, August 1992.

    Google Scholar 

  19. S. Novack and A. Nicolau. Trailblazing: A hierarchical approach to percolation scheduling. Technical Report TR-92-56, Univ. of Calif. Irvine, 1992. Also appears in the Proceedings of the 1993 International Conference on Parallel Processing, St. Charles, IL., August 1993.

    Google Scholar 

  20. S. Novack and A. Nicolau. Resource-directed loop pipelining. Technical report, Univ. of Calif., Irvine, Dept. of Information and Computer Science, 1994.

    Google Scholar 

  21. R. Potasman. Percolation-Based Compiling for Evaluation of Parallelism and Hardware Design Trade-Offs. PhD thesis, Univ. of Calif. Irvine, 1991.

    Google Scholar 

  22. B.R. Rau and C.D. Glaeser. Efficient code generation for horizontal architectures: Compiler techniques and architectural support. In Symp. on Comp. Arch., April 1982.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Keshav Pingali Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Novack, S., Nicolau, A. (1995). Mutation scheduling: A unified approach to compiling for fine-grain parallelism. In: Pingali, K., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1994. Lecture Notes in Computer Science, vol 892. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0025868

Download citation

  • DOI: https://doi.org/10.1007/BFb0025868

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58868-9

  • Online ISBN: 978-3-540-49134-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics