ABSTRACT
This paper presents the design of a compiler for parallel programs expressed as collections of codelets -- blocks of statements intended for distribution over the processing cores of a massively parallel computer system.
Because interactions of codelets with other codelets are limited to acquiring input data at the start of execution and making results available on completion, an unconventional approach to code generation appears beneficial -- we call it code generation by program analysis and code construction. We present an implementation of this concept in the context of a compiler for functional dialects of the Java or Scala programming languages targeted to the proposed instruction set of a Fresh Breeze computer system architecture.
- Matthew Anderson, Maciej Brodowicz, Hartmut Kaiser, and Thomas Sterling. An application driven analysis of the ParalleX execution model. September 2011.Google Scholar
- Zoran Budimlić, Aparna Chandramowlishwaran, Kathleen Knobe, Geoff Lowney, Vivek Sarkar, and Leo Treggiari. Multicore Implementations of the Concurrent Collections Programming Model. In CPC '09, Proceedings of the 2009 Workshop on Compilers for Parallel Computing, 2009.Google Scholar
- J. Dennis, J. Fosseen, and J. Linderman. Data flow schemas. In International Symposium on Theoretical Programming, pages 187--216. Springer, 1974. Google ScholarDigital Library
- J. B. Dennis. A parallel program execution model supporting modular software construction. In Massively Parallel Programming Models, pages 50--60. IEEE, 1997. Google ScholarDigital Library
- J. B. Dennis. Fresh Breeze: a multiprocessor chip architecture guided by modular programming principles. ACM SIGARCH Computer Architecture News, 31(1):7--15, 2003. Google ScholarDigital Library
- Jack B. Dennis. First version of a data fow procedure language. In Lecture Notes in Computer Science 19: Programming Symposium, pages 362--376. Springer, 1974. Google ScholarDigital Library
- Jack B. Dennis. The Paradigm compiler: Mapping a functional language for the Connection Machine. In Horst Simon, editor, Scientific Applications of the Connection Machine, pages 301--315. Singapore: World Scientific Publishing Company, 1989.Google Scholar
- J. B. Dennis, G. R. Gao, and X. X. Meng, "Experiments with the Fresh Breeze tree-based memory model," in International Symposium on Supercomputing, Hamburg, June 2011. Google ScholarDigital Library
- J. B. Dennis, G. R. Gao, X. X. Meng, B. Lucas, and J. Slucom, "The Fresh Breeze program execution model," in Parallel Computing, Ghent, Belgium, August 2011.Google Scholar
- T. S. John, J. B. Dennis, and G. R. Gao, "Massively parallel breadth-first search using a tree-structured memory model," in Proceedings of International Workshop on Programming Models and Applications for Multicores and Manycores. ACM SIGPLAN, February 2012. Google ScholarDigital Library
- ET International, Newark, DE. SWARM (SWift Adaptive RUntime Machine): Scalable Performance Optimization for Multi-Core / Multi-Node, 2011.Google Scholar
- Robert S. Fabry. Capability-based addressing. Communications of the ACM, 17:403--412, 1974. Google ScholarDigital Library
- Guang R. Gao, Joshua Suetterlein, and Stephane Zuckerman. Toward an execution model for extreme-scale systems: Runnemede and beyond. Technical Report CAPSL Technical Memo 104, University of Delaware, 2011.Google Scholar
- William Gropp, Ewing Lusk, and Anthony Skjellum. Using MPI: Portable Parallel Programming with the Message-Passing Interface. MIT Press, Cambridge, MA, 1994. Google ScholarDigital Library
- J. McGraw, S. Skedzielewski, S. Allan, R. Oldehoeft, J. Glauert, C. Kirkham, B. Noyce, and R. Thomas. Sisal: Streams and iteration in a single assignment language. Technical Report M-146, Rev. 1., Lawrence Livermore National Laboratory, Livermore, CA, 1985.Google Scholar
- Steven S. Muchnick. Advanced Compiler Design and Implementation, chapter 1.5: Placement of Optimizations. Morgan Kaufmann, 1997.Google Scholar
- Steven S. Muchnick. Advanced Compiler Design and Implementation, chapter 16: Register Allocation. Morgan Kaufmann, 1997.Google Scholar
- Carl D. Offner. Notes on graph algorithms used in optimizing compilers. Notes from University of Massachusetts, Boston, March 2013.Google Scholar
- E. I. Organick. Computer System Organization: The B5700/B6700 Series. Academic Press, 1973. Google ScholarDigital Library
- J.E. Rodriguez. A graph model for parallel computations. PhD thesis, MIT; Electronic Systems Lab, 1969.Google Scholar
- S. K. Skedzielewski and M. L. Welcome. Data flow graph optimization in IF1. In Functional Programming Languages and Computer Architecture, volume 201 of Lecture Notes in Computer Science, pages 17--34. Springer, 1985. Google ScholarDigital Library
- Leslie G. Valiant. A bridging model for parallel computation. Communications of the ACM, 33, March 1990. Google ScholarDigital Library
Index Terms
- Compiling Fresh Breeze Codelets
Recommendations
Compiling Fresh Breeze Codelets
PMAM'14: Proceedings of Programming Models and Applications on Multicores and ManycoresThis paper presents the design of a compiler for parallel programs expressed as collections of codelets -- blocks of statements intended for distribution over the processing cores of a massively parallel computer system.
Because interactions of codelets ...
Fresh O'Caml: Nominal Abstract Syntax for the Masses
Nominal abstract syntax, as pioneered by the 'FreshML' series of metalanguages, provides first-order tools for the representation and manipulation of syntax involving bound names, binding operations and @a-equivalence. Fresh O'Caml fuses nominal ...
Comments