Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

POSC—a partitioning and optimizing SISAL compiler

Published: 01 June 1990 Publication History

Abstract

Single-assignment languages like SISAL offer parallelism at all levels—among arbitrary operations, conditionals, loop iterations, and function calls. All control and data dependencies are local, and can be easily determined from the program. Various studies of SISAL programs have shown that they contain massive amounts of potential parallelism. There are two major challenges in converting this potential parallelism into real speedup on multiprocessor systems. First, it is important to carefully select the useful parallelism in a SISAL program, so as to obtain good speedup by trading off parallelism with overhead. Second, it is important to do sequential optimizations, so that the sequential components (tasks) of the SISAL program have comparable execution times with sequential languages such as Fortran, Pascal and C. The POSC compiler system described in this paper addresses both issues by integrating previous work on efficient sequential implementation of SISAL programs with previous work on selecting the useful parallelism in a SISAL program. The combined approach is validated by real speedup measurements on a Sequent Balance multiprocessor.

References

[1]
Alfred Aho, John Hopcroft, and Jeffrey Ullman. The Design and Analysis of Computer Algorilhms. Addis~n-Wesley' 1974.
[2]
M.L. Campbell. Static allocation for a dataflow multiprocessor. Proceedings of the 1985 International Conference on Parallel Processing, pages 511-517, 1985.
[3]
D.C. Cann. Compilation Techniques for High Performance Applicative Computation. PhD thesis, Colorado State University, Computer Science Department, Fort Collins, CO, 1989.
[4]
David C. Cann, Ching-Cheng Lee, R. R. Oldehoeft, and S. K. Skedzielewski. SISAL multiprocessing support. Technical Report UCID-21115, Lawrence Livermore National Laboratory, Livermore, CA, 1987.
[5]
J. L. Gaudiot, M. Dubois, L. T. Lee, and N. Tohme. The TX16: A highly programmable multimicroprocessor architecture. IEEE Micro, 6(10):18-31, October 1986.
[6]
K. Gopinath and J. L. Hennessy. Copy elimination with abstract interpretation. Technical Report CLaSSiC-87- 17, Stanford University, Stanford CA 94305, Feb 1987.
[7]
J. R. Curd, C. C. Kirkham, and I. Watson. The Manchester prototype dataflow computer. Communications of the ACM, 28(1):34-52, January 1985.
[8]
Benjamin Goldberg. Multiprocessor Execution of Functional Programs. PhD thesis, Yale University, New Haven, Connecticut, 1988.
[9]
K. Gopinath. Copy Elimination in Single Assignment Languages. PhD thesis, Stanford University, Stanford, California, 1989.
[10]
Thomas Gross and Alan Sussman. Mapping a single-assignment language onto the warp systolic array. Funciional Programming Languages and Computer Architecture Proceedings, pages 347- 363, September 1987.
[11]
K. Gharachorloo, V. Sarkar, and J. L. Hennessy. Efficient implementation of single assignment languages. A CM Conference on Lisp and Functional Programming, pages 259-268, July 1988.
[12]
P. Hudak and B. Goldberg. Serial combinators: "optimal" grains of parallelism. In Jean-Pierre Jouannaud, editor, Functional Programming Languages and Computer Architecture, pages 382-399. Springer-Verlag, New York, NY, September 1985.
[13]
J.E. Hopcroft and J. D. Ullman. Introduction ~o Automata Theory, Languages and Computation. Addison- Wesley, 1979.
[14]
Eugene D. Brooks III and Gregory A. Dazmohray. A parallel programming library and gang scheduler for DYNIX. Technical report, Lawrence Livermore National Laboratory, Livermore, CA, May 1987.
[15]
D. J. Kuck, R. H. Kuhn, D. A. Padua, B. Lea.sure, and M. Wolfe. Dependence graphs and compiler optimizations. Conference Record of 8th ACM Symposium on Principles of Programming Languages, 1981.
[16]
James McGraw, Stephen Skedzielewski, Stephen Allan, Rod Oldehoeft, John Glauert, Chris Kirkham, Bill Noyce, and Robert Thomas. SrSAL: Streams and iteration in a single assignment language: Reference manual version 1.2. Manual M-I46, Rev. 1, Lawrence Livermore National Laboratory, Livermore, CA, March 1985.
[17]
R.R. Oldehoeft and D. C. Cann. Applicative parallelism on a shared memory multiprocessor. IEEE Software, 5(1):62-70, January 1988.
[18]
W. Press, B. Flannery, S. Teukolsky, and W. Vetterling. Nnmberical Recipes. Cambridge University Press, New York, NY, 1986.
[19]
John E. lq, astelletti. Graph Transformation Algorithms for Array Memory Optimization in Applicative Languages. PhD thesis, University of California at Davis, Computer Science Department, Davis, California, 1987.
[20]
T.R. Richert. Efficient task management for SISAL. Technical Report 89-111, Computer Science Department, Colorado State University, July 1989.
[21]
Vivek Sarkar. Determining average program execution times and their variance. Proceedings of ~he 1989 SIGPLAN Conference on Programming Language Design and implementation, 24(7):298-312, July 1989.
[22]
Vivek Sarkar. Instruction reordering for fork-join parallelism. Submitted to A CM SIGPI, AN '90., 1989.
[23]
Vivek Sarkar. Partitioning and Scheduling Parallel Programs for Multiprocessors. Research Monographs in Parallel and Distributed Computing. MIT Press, Cambridge, Massachusetts, and Pitman Publishing, London, U.K., 1989. An earlier version of this book is available as the author's Ph.D. dissertation, Technical tLeport CSL-TR-87-328, Stanford University, April 1987.
[24]
Stephen Skedzielewski and John Glauert. IFl~an intermediate form for applicative languages. Manual M-170, Lawrence Livermore National Laboratory, Livermore, CA, July 1985.
[25]
V. Sarkar and J. Hennessy. Partitioning parallel programs for macro-dataflow. In Proceedings of ~he A CM Conference on Lisp and functioual programming, pages 202-211, August 1986.
[26]
Rea Simpson. SISAl, compiler user manual. Manual M-191, Lawrence Livermore National Laboratory, Livermore, CA, September 1986.
[27]
V. Sarkar, S. Skedzielewski, and P. Miller. An Automatically Partitioning Compiler .for SISAL. Cambridge University Press, 1989.
[28]
S.K. Skedzielewski and M. L. Welcome. Data flow graph optimization in IF1. In Jean-Pierre Jouannaud, editor, Functional Programming Languages and Computer Architecture, pages 17-34. Springer-Verlag, New York, NY, September 1985.
[29]
S.K. Skedzielewski, R. K. Yates, and It. R. Oldehoeft. DI: An interactive debugging interpreter for applicative languages. In Proceedings of the A CM SIGPLAN 87 Symposium on Interpreters and Interpretive Techniques, pages 102-109, June 1987.
[30]
M. L. Welcome, S. K. Skedzielewski, R. K. Yates, and J. E. Ra~elletti. IF2" an applicative language intermediate form with explicit memory management. Manual M-195, University of California Lawrence Livermore National Laboratory, November 1986.

Cited By

View all
  • (2016)Synthesizing MPI Implementations from Functional Data-Parallel ProgramsInternational Journal of Parallel Programming10.1007/s10766-015-0359-444:3(552-573)Online publication date: 1-Jun-2016
  • (2014)Compiler techniques for massively scalable implicit task parallelismProceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis10.1109/SC.2014.30(299-310)Online publication date: 16-Nov-2014
  • (2006)The DSPL project — An overviewHigh-Performance Computing and Networking10.1007/BFb0046686(594-599)Online publication date: 2-Feb-2006
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 June 1990
Published in SIGARCH Volume 18, Issue 3b

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)65
  • Downloads (Last 6 weeks)13
Reflects downloads up to 22 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2016)Synthesizing MPI Implementations from Functional Data-Parallel ProgramsInternational Journal of Parallel Programming10.1007/s10766-015-0359-444:3(552-573)Online publication date: 1-Jun-2016
  • (2014)Compiler techniques for massively scalable implicit task parallelismProceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis10.1109/SC.2014.30(299-310)Online publication date: 16-Nov-2014
  • (2006)The DSPL project — An overviewHigh-Performance Computing and Networking10.1007/BFb0046686(594-599)Online publication date: 2-Feb-2006
  • (1999)Integrating model-based optimization and program transformation to generate efficient parallel programsJournal of Systems Architecture: the EUROMICRO Journal10.1016/S1383-7621(98)00018-645:6-7(465-482)Online publication date: 1-Jan-1999
  • (2016)Synthesizing MPI Implementations from Functional Data-Parallel ProgramsInternational Journal of Parallel Programming10.1007/s10766-015-0359-444:3(552-573)Online publication date: 1-Jun-2016
  • (2010)The resurgence of parallelismCommunications of the ACM10.1145/1743546.174356053:6(30-32)Online publication date: 1-Jun-2010
  • (2006)Engineering a data dependence testConcurrency: Practice and Experience10.1002/cpe.43300507065:7(603-622)Online publication date: 25-Oct-2006
  • (1996)Generating Self-Scheduling Code for Nonloop ParallelismJournal of Parallel and Distributed Computing10.1006/jpdc.1996.016139:2(126-145)Online publication date: 15-Dec-1996
  • (1993)An evaluation of bottom-up and top-down thread generation techniquesProceedings of the 26th annual international symposium on Microarchitecture10.5555/255235.255270(118-127)Online publication date: 1-Dec-1993
  • (1993)The DSPL programming environmentProceedings of Workshop on Programming Models for Massively Parallel Computers10.1109/PMMP.1993.315556(35-42)Online publication date: 1993
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media