Skip to main content

Current status of the SUIF research project

  • Chapter
  • First Online:
The Data Parallel Programming Model

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

  • 148 Accesses

Abstract

This paper presents an overview of the SUIF (Stanford University Intermediate Format) research project and its current status. SUIF is a fully-functional research compiler that includes algorithms to analyze pointer aliases, find parallelism in outer loops across procedure calls, and optimize for parallelism and locality.

This research was supported in part by the ARPA contract F30602-95-C-0098, an NSF Young Investigator Award, an NSF CISE postdoctoral fellowship, and fellowships from AT & T Bell Laboratories, DEC Western Research Laboratory, and Intel Corporation.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J. M. Anderson, S. P. Amarasinghe, and M. S. Lam. Data and computation transformations for multiprocessors. In Proceedings of the Fifth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 166–178, Santa Barbara, CA, July 1995.

    Google Scholar 

  2. S. P. Amarasinghe, J. M. Anderson, C. S. Wilson, S.-W. Liao, B. R. Murphy, R. S. French, M. S. Lam, and M. W. Hall. Multiprocessors from a software perspective. IEEE Micro, June 1996.

    Google Scholar 

  3. J. M. Anderson and M. S. Lam. Global optimizations for parallelism and locality on scalable parallel machines. In Proceedings of the SIGPLAN '93 Conference on Programming Language Design and Implementation, pages 112–125, Albuquerque, NM, June 1993.

    Google Scholar 

  4. B. Blume, R. Eigenmann, K. Faigin, J. Grout, Jay Hoeflinger, D. Padua, P. Petersen, B. Pottenger, L. Rauchwerger, P. Tu, and S. Weatherford. Polaris: The next generation in parallelizing compilers. In Proceedings of the Seventh Annual Workshop on Languages and Compilers for Parallel Computing, August 1994.

    Google Scholar 

  5. B. Bixby, K. Kennedy, and U. Kremer. Automatic data layout using 0–1 integer programming. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT), pages 111–122, Montreal, Canada, August 1994.

    Google Scholar 

  6. Jong-Deok Choi, Michael Burke, and Paul Carini. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In Proceedings of the Twentieth Annual ACM Symposium on the Principles of Programming Languages, pages 232–245, January 1993.

    Google Scholar 

  7. B. Creusillet and F. Irigoin. Interprocedural array region analyses. In Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing. Springer-Verlag, August 1995.

    Google Scholar 

  8. M. Cierniak and W. Li. Unifying data and control transformations for distributed shared memory machines. Technical Report TR-542, Department of Computer Science, University of Rochester, November 1994.

    Google Scholar 

  9. S. Carr, K. S. McKinley, and C.-W. Tseng. Compiler optimizations for improving data locality. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-VI), pages 252–262, San Jose, CA, October 1994.

    Google Scholar 

  10. David R. Chase, Mark Wegman, and F. Kenneth Zadeck. Analysis of pointers and structures. In Proceedings of the ACM SIGPLAN'90 Conference on Programming Language Design and Implementation, pages 296–310, June 1990.

    Google Scholar 

  11. Alain Deutsch. Interprocedural may-alias analysis for pointers: Beyond k-limiting. In Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation, pages 230–241, June 1994.

    Google Scholar 

  12. Maryam Emami, Rakesh Ghiya, and Laurie J. Hendren. Context-sensitive interprocedural points-to analysis in the presence of function pointers. In Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation, pages 242–256, June 1994.

    Google Scholar 

  13. C. W. Fraser and D. R. Hanson. A retargetable compiler for ANSI C. SIGPLAN Notices, 26(10), October 1991.

    Google Scholar 

  14. R. French, editor. Proceedings of the First SUIF Workshop. January 1996.

    Google Scholar 

  15. M. Gupta and P. Banerjee. Demonstration of automatic data partitioning techniques for parallelizing compilers on multicomputers. IEEE Transactions on Parallel and Distributed Systems, 3(2): 179–193, March 1992.

    Google Scholar 

  16. D. Gay, S. Feldman, M. Maimone, and N. Schryer. f2c. Available via netlib@research.att.com.

    Google Scholar 

  17. M.W. Hall, S.P. Amarasinghe, B.R. Murphy, S. Liao, and M.S. Lam. Detecting coarse-grain parallelism using an interprocedural parallelizing compiler. In Proceedings of Supercomputing '95, December 1995.

    Google Scholar 

  18. W. Ludwell Harrison III. The interprocedural analysis and automatic parallelization of Scheme programs. Lisp and Symbolic Computation, 2(3):176–396, October 1989.

    Google Scholar 

  19. M. Hind, M. Burke, P. Carini, and S. Midkiff. An empirical study of precise interprocedural array analysis. Scientific Programming, 3(3):255–271, 1994.

    Google Scholar 

  20. High Performance Fortran Forum. High Performance Fortran language specification. Scientific Programming, 2(1–2):1–170, 1993.

    Google Scholar 

  21. P. Havlak and K. Kennedy. An implementation of interprocedural bounded regular section analysis. IEEE Transactions on Parallel and Distributed Systems, 2(3):350–360, July 1991.

    Google Scholar 

  22. S. Hiranandani, K. Kennedy, and C.-W. Tseng. Compiling Fortran D for MIMD distributed-memory machines. Communications of the ACM, 35(8):66–80, August 1992.

    Google Scholar 

  23. Laurie J. Hendren and Alexandra Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35–47, January 1990.

    Google Scholar 

  24. F. Irigoin, P. Jouvelot, and R. Triolet. Semantical interprocedural parallelization: An overview of the PIPS project. In Proceedings of the 1991 ACM International Conference on Supercomputing, Cologne, Germany, June 1991.

    Google Scholar 

  25. F. Irigoin. Interprocedural analyses for programming environments. In NSF-CNRS Workshop on Evironments and Tools for Parallel Scientific Programming, September 1992.

    Google Scholar 

  26. F. Irigoin and R. Triolet. Supernode partitioning. In Proceedings of the Fifteenth Annual ACM Symposium on the Principles of Programming Languages, San Diego, CA, January 1988.

    Google Scholar 

  27. Y. Ju and H. Dietz. Reduction of cache coherence overhead by compiler data layout and loop transformation. In U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, editors, Languages and Compilers for Parallel Computing, Fourth International Workshop, pages 344–358, Santa Clara, CA, August 1991. Springer-Verlag.

    Google Scholar 

  28. N. Jones and S. Muchnick. Flow analysis and optimization of Lisp-like structures. In S. Muchnick and N. Jones, editors, Program Flow Analysis: Theory and Applications, pages 102–131. Prentice Hall, 1979.

    Google Scholar 

  29. J. Li and M. Chen. The data alignment phase in compiling programs for distributed-memory machines. Journal of Parallel and Distributed Computing, 13(2):213–221, October 1991.

    Google Scholar 

  30. James R. Larus and Paul N. Hilfinger. Detecting conflicts between structure accesses. In Proceedings of the ACM SIGPLAN'88 Conference on Programming Language Design and Implementation, pages 21–34, June 1988.

    Google Scholar 

  31. A. W. Lim and M. S. Lam. Communication-free parallelization via affine transformations. In Proceedings of the 7th Workshop on Languages and Compilers for Parallel Computing, August 1994.

    Google Scholar 

  32. William Landi and Barbara G. Ryder. A safe approximate algorithm for interprocedural pointer aliasing. In Proceedings of the ACM SIG-PLAN'92 Conference on Programming Language Design and Implementation, pages 235–248, June 1992.

    Google Scholar 

  33. Z. Li and P. Yew. Efficient interprocedural analysis for program restructuring for parallel programs. In Proceedings of the ACM SIGPLAN Symposium on Parallel Programming: Experience with Applications, Languages, and Systems (PPEALS), New Haven, CT, July 1988.

    Google Scholar 

  34. T. Mowry, M. S. Lam, and A. Gupta. Design and evaluation of a compiler algorithm for prefetching. In Proceedings of the Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-V), pages 62–73, Boston, MA, October 1992.

    Google Scholar 

  35. R. Metzger and P. Smith. The CONVEX application compiler. Fortran Journal, 3(1):8–10, 1991.

    Google Scholar 

  36. T. J. Sheffler, R. Schreiber, J. R. Gilbert, and S. Chatterjee. Aligning parallel arrays to reduce communication. In Frontiers '95: The 5th Symposium on the Frontiers of Massively Parallel Computation, pages 324–331, McLean, VA, February 1995.

    Google Scholar 

  37. B. Steensgaard. Points-to analysis in almost linear time. In Proceedings of the 24th Annual ACM Symposium on Principles of Programming Languages, pages 32–41, January 1996.

    Google Scholar 

  38. R. Triolet, F. Irigoin, and P. Feautrier. Direct parallelization of call statements. In Proceedings of the SIGPLAN '86 Symposium on Compiler Construction, SIGPLAN Notices 21(7), pages 176–185. ACM, July 1986.

    Google Scholar 

  39. P. Tu and D. Padua. Automatic array privatization. In Proceedings of the Sixth Workshop on Languages and Compilers for Parallel Computing, Portland, OR, August 1993.

    Google Scholar 

  40. M. E. Wolf and M. S. Lam. A data locality optimizing algorithm. In Proceedings of the SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 30–44, Toronto, Canada, June 1991.

    Google Scholar 

  41. R. P. Wilson and M. S. Lam. Efficient context-sensitive pointer analysis for c programs. In Proceedings of the ACM SIGPLAN'95 Conference on Programming Language Design and Implementation, pages 1–12, June 1995.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Guy-René Perrin Alain Darte

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Lam, M.S. (1996). Current status of the SUIF research project. In: Perrin, GR., Darte, A. (eds) The Data Parallel Programming Model. Lecture Notes in Computer Science, vol 1132. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61736-1_43

Download citation

  • DOI: https://doi.org/10.1007/3-540-61736-1_43

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61736-5

  • Online ISBN: 978-3-540-70646-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics