QIRAL: A High Level Language for Lattice QCD Code Generation

Quantum chromodynamics (QCD) is the theory of subnuclear physics, aiming at mod- eling the strong nuclear force, which is responsible for the interactions of nuclear particles. Lattice QCD (LQCD) is the corresponding discrete formulation, widely used for simula- tions. The computational demand for the LQCD is tremendous. It has played a role in the history of supercomputers, and has also helped defining their future. Designing efficient LQCD codes that scale well on large (probably hybrid) supercomputers requires to express many levels of parallelism, and then to explore different algorithmic solutions. While al- gorithmic exploration is the key for efficient parallel codes, the process is hampered by the necessary coding effort. We present in this paper a domain-specific language, QIRAL, for a high level expression of parallel algorithms in LQCD. Parallelism is expressed through the mathematical struc- ture of the sparse matrices defining the problem. We show that from these expressions and from algorithmic and preconditioning formulations, a parallel code can be automatically generated. This separates algorithms and mathematical formulations for LQCD (that be- long to the field of physics) from the effective orchestration of parallelism, mainly related to compilation and optimization for parallel architectures.

[1]  Tom Schrijvers,et al.  Generic datatypes à la carte , 2013, WGP '13.

[2]  Bruno C. d. S. Oliveira,et al.  Modular monadic meta-theory , 2013, ICFP.

[3]  Richard Statman,et al.  Lambda Calculus with Types , 2013, Perspectives in logic.

[4]  Bruno C. d. S. Oliveira,et al.  Meta-theory à la carte , 2013, POPL.

[5]  Bradley C. Kuszmaul,et al.  The pochoir stencil compiler , 2011, SPAA '11.

[6]  Yves Bertot,et al.  Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions , 2010 .

[7]  Claude Tadonki,et al.  An efficient CELL library for lattice quantum chromodynamics , 2010, CARN.

[8]  Francisco Durán,et al.  A Church-Rosser Checker Tool for Conditional Order-Sorted Equational Maude Specifications , 2010, WRLA.

[9]  Kipton Barros,et al.  Solving lattice QCD systems of equations using mixed precision solvers on GPUs , 2009, Comput. Phys. Commun..

[10]  Khaled Z. Ibrahim,et al.  Implementing Wilson-Dirac operator on the cell broadband engine , 2008, ICS '08.

[11]  Wouter Swierstra,et al.  Data types à la carte , 2008, Journal of Functional Programming.

[12]  Tom Ridge,et al.  Ott: effective tool support for the working semanticist , 2007, ICFP '07.

[13]  M. Luscher Local coherence and deflation of the low quark modes in lattice QCD , 2007, 0706.2298.

[14]  M. Lüscher Local coherence and deflation of the low quark modes in lattice QCD , 2007 .

[15]  Ralph Matthes,et al.  Iteration and coiteration schemes for higher-order and nested datatypes , 2005, Theor. Comput. Sci..

[16]  Tarmo Uustalu,et al.  Build, Augment and Destroy, Universally , 2004, APLAS.

[17]  Michael F. P. O'Boyle,et al.  Cross Component Optimisation in a High Level Category-Based Language , 2004, Euro-Par.

[18]  B. Joó,et al.  The Chroma Software System for Lattice QCD , 2004, hep-lat/0409003.

[19]  Frank Wilczek,et al.  WHAT QCD TELLS US ABOUT NATURE , 2002 .

[20]  Tarmo Uustalu,et al.  Mendler-Style Inductive Types, Categorically , 1999, Nord. J. Comput..

[21]  F. Wilczek What QCD Tells Us About Nature -- and Why We Should Listen , 1999, hep-ph/9907340.

[22]  J. F. Quesada,et al.  The Maude System , 1999, RTA.

[23]  Graham Hutton,et al.  A tutorial on the universality and expressiveness of fold , 1999, Journal of Functional Programming.

[24]  N. P. Mendler,et al.  Inductive Types and Type Constraints in the Second-Order lambda Calculus , 1991, Ann. Pure Appl. Log..

[25]  Frank Pfenning,et al.  Inductively Defined Types in the Calculus of Constructions , 1989, Mathematical Foundations of Programming Semantics.

[26]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[27]  Tatsuya Hagino,et al.  A Typed Lambda Calculus with Categorical Type Constructors , 1987, Category Theory and Computer Science.

[28]  Santiago Escobar,et al.  Rewriting Logic and Its Applications , 2014, Lecture Notes in Computer Science.

[29]  Philip Heidelberger,et al.  Massively parallel quantum chromodynamics , 2008, IBM J. Res. Dev..

[30]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[31]  Eelco Visser,et al.  A core language for rewriting , 1998, WRLA.