COMPOSE-HPC: A TRANSFORMATIONAL APPROACH TO EXASCALE

The goal of the COMPOSE-HPC project is to “democratize” tools for automatic transformation of program source code so that it becomes tractable for the developers of scientific applications to create and use their own transformations reliably and safely. This paper describes our approach to this challenge, the creation of the KNOT tool chain, which includes tools for the creation of annotation languages to control the transformations (PAUL), to perform the transformations (ROTE), and optimization and code generation (BRAID), which can be used individually and in combination. We also provide examples of current and future uses of the KNOT tools, which include transforming code to use different programming models and environments, providing tests that can be used to detect errors in software or its execution, as well as composition of software written in different programming languages, or with different threading patterns.

[1]  Bradford L. Chamberlain,et al.  Parallel Programmability and the Chapel Language , 2007, Int. J. High Perform. Comput. Appl..

[2]  Adrian Prantl,et al.  Source-Level Support for Timing Analysis , 2010, ISoLA.

[3]  Tjerk P. Straatsma,et al.  NWChem: A comprehensive and scalable open-source solution for large scale molecular simulations , 2010, Comput. Phys. Commun..

[4]  Henry F. Schaefer,et al.  New variations in two-electron integral evaluation in the context of direct SCF procedures , 1991 .

[5]  Julia L. Lawall,et al.  Documenting and automating collateral evolutions in linux device drivers , 2008, Eurosys '08.

[6]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[7]  David E. Bernholdt,et al.  Gaining confidence in scientific applications through executable interface contracts. , 2008 .

[8]  Jarek Nieplocha,et al.  Overview of the global arrays parallel software development toolkit , 2006, SC.

[9]  Adrian Prantl,et al.  Interfacing Chapel with traditional HPC programming languages , 2011 .

[10]  Sriram Krishnamoorthy,et al.  Lifeline-based global load balancing , 2011, PPoPP '11.

[11]  Steve Plimpton,et al.  Fast parallel algorithms for short-range molecular dynamics , 1993 .

[12]  Scott R. Kohn,et al.  High-performance language interoperability for scientific computing through Babel , 2012, Int. J. High Perform. Comput. Appl..

[13]  Robert J. Harrison,et al.  Global Arrays: Scientific Programming for Scalable Parallel Computers , 2011 .

[14]  Adrian Prantl,et al.  Poster: connecting PGAS and traditional HPC languages , 2011, SC '11 Companion.

[15]  Sriram Krishnamoorthy,et al.  Scalable work stealing , 2009, Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis.