DxTer: An Extensible Tool for Optimal Dataflow Program Generation

DxTer (pronounced “dexter”) is a tool for generating high-performance program implementations of an input dataflow graph. Given a specification S of a program in some domain D, DxTer uses its knowledge base for D to explore a space of implementations of S and outputs an optimal implementation with respect to the cost model in D. While DxTer search spaces can be massive (e.g., 10), this paper describes new techniques that allow DxTer to search such spaces and generate optimal code in seconds. In a case study, we apply DxTer to the domain of tensor contractions and show that DxTer generates programs that are competitive with (and sometimes superior to) a state-of-the-art tensor contraction tool.

[1]  David Frankel,et al.  Model Driven Architecture: Applying MDA to Enterprise Computing , 2003 .

[2]  Guy Courbebaisse,et al.  Simulation of generalized Newtonian fluids with the lattice Boltzmann method , 2007 .

[3]  David E. Bernholdt,et al.  Synthesis of High-Performance Parallel Programs for a Class of ab Initio Quantum Chemistry Models , 2005, Proceedings of the IEEE.

[4]  Franz Franchetti,et al.  SPIRAL: Code Generation for DSP Transforms , 2005, Proceedings of the IEEE.

[5]  Guy M. Lman Grammar-like Functional Rules for Representing Query Optimization Alternatives , 1998 .

[6]  Robert Balzer,et al.  Report on a knowledge-based software assistant , 1986 .

[7]  Sumit Gulwani,et al.  Automating string processing in spreadsheets using input-output examples , 2011, POPL '11.

[8]  John F. Stanton,et al.  A massively parallel tensor contraction framework for coupled-cluster computations , 2014, J. Parallel Distributed Comput..

[9]  Robert A. van de Geijn,et al.  Designing Linear Algebra Algorithms by Transformation: Mechanizing the Expert Developer , 2012, VECPAR.

[10]  Don S. Batory,et al.  Pushouts in software architecture design , 2012, GPCE '12.

[11]  Sumit Gulwani,et al.  Synthesis of loop-free programs , 2011, PLDI '11.

[12]  Campus Recruitment COMPLETE REFERENCE , 1997 .

[13]  Sumit Gulwani,et al.  Spreadsheet table transformations from examples , 2011, PLDI '11.

[14]  Qian Wang,et al.  AUGEM: Automatically generate high performance Dense Linear Algebra kernels on x86 CPUs , 2013, 2013 SC - International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[15]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[16]  Don S. Batory,et al.  Dark Knowledge and Graph Grammars in Automated Software Design , 2013, SLE.

[17]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[18]  Johannes Grotendorst,et al.  Modern methods and algorithms of quantum chemistry , 2000 .

[19]  William W. Wadge,et al.  Lucid, the dataflow programming language , 1985 .

[20]  Douglas R. Smith,et al.  Transformational approach to transportation scheduling , 1993, Proceedings of 8th Knowledge-Based Software Engineering Conference.

[21]  Jack Dongarra,et al.  MPI: The Complete Reference , 1996 .

[22]  Roman Orus,et al.  Simulation of two-dimensional quantum systems on an infinite lattice revisited: Corner transfer matrix for tensor contraction , 2009, 0905.3225.

[23]  Robert A. van de Geijn,et al.  Collective communication: theory, practice, and experience: Research Articles , 2007 .

[24]  Sriram Krishnamoorthy,et al.  A Communication-Optimal Framework for Contracting Distributed Tensors , 2014, SC14: International Conference for High Performance Computing, Networking, Storage and Analysis.

[25]  Anders Logg,et al.  Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book , 2012 .

[26]  Ketil Stølen,et al.  What is model driven architecture , 2003 .

[27]  Sanjit A. Seshia,et al.  Sketching stencils , 2007, PLDI '07.

[28]  Sumit Gulwani,et al.  FlashExtract: a framework for data extraction by examples , 2014, PLDI.

[29]  Julia E. Rice,et al.  An efficient closed-shell singles and doubles coupled-cluster method , 1988 .

[30]  Armando Solar-Lezama,et al.  Programming by sketching for bit-streaming programs , 2005, PLDI '05.

[31]  Sumit Gulwani,et al.  Oracle-guided component-based program synthesis , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[32]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[33]  Elizabeth R. Jessup,et al.  Automating the generation of composed linear algebra kernels , 2009, Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis.

[34]  Paolo Bientinesi,et al.  A Domain-Specific Compiler for Linear Algebra Operations , 2012, VECPAR.

[35]  Markus Püschel,et al.  A Basic Linear Algebra Compiler , 2014, CGO '14.

[36]  D. Cowling,et al.  Assessing the relationship between ad volume and awareness of a tobacco education media campaign , 2010, Tobacco Control.

[37]  Jack J. Dongarra,et al.  Automatically Tuned Linear Algebra Software , 1998, Proceedings of the IEEE/ACM SC98 Conference.

[38]  Jack J. Dongarra,et al.  A set of level 3 basic linear algebra subprograms , 1990, TOMS.

[39]  Curtis L. Janssen,et al.  An efficient reformulation of the closed‐shell coupled cluster single and double excitation (CCSD) equations , 1988 .