HPCML: a modeling language dedicated to high-performance scientific computing

Tremendous computational resources are required to compute complex physical simulations. Unfortunately computers able to provide such computational power are difficult to program, especially since the rise of heterogeneous hardware architectures. This makes it particularly challenging to exploit efficiently and sustainably supercomputers resources. We think that model-driven engineering can help us tame the complexity of high-performance scientific computing software development by separating the different concerns such as mathematics, parallelism, or validation. The principles of our approach, named MDE4HPC, stem from this idea. In this paper, we describe the High-Performance Computing Modeling Language (HPCML), a domain-specific modeling language at the center of this approach.

[1]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[2]  David Kirk,et al.  NVIDIA cuda software and gpu parallel computing architecture , 2007, ISMM '07.

[3]  Sanford Friedenthal,et al.  A Practical Guide to SysML: The Systems Modeling Language , 2008 .

[4]  Daniel L. Moody,et al.  The “Physics” of Notations: Toward a Scientific Basis for Constructing Visual Notations in Software Engineering , 2009, IEEE Transactions on Software Engineering.

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

[6]  Timothy G. Mattson,et al.  Patterns for parallel programming , 2004 .

[7]  Gilles Grospellier,et al.  The Arcane development framework , 2009 .

[8]  Kurt Keutzer,et al.  A design pattern language for engineering (parallel) software: merging the PLPP and OPL projects , 2010, ParaPLoP '10.

[9]  Michele Weiland,et al.  Chapel , Fortress and X10 : novel languages for HPC , 2007 .

[10]  Bran Selic,et al.  The UML – MARTE Standardized Profile , 2008 .

[11]  Frédéric Guyomarc'h,et al.  A Graphical Framework for High Performance Computing Using An MDE Approach , 2008, 16th Euromicro Conference on Parallel, Distributed and Network-Based Processing (PDP 2008).

[12]  François Bodin Keynote: Compilers in the Manycore Era , 2009, HiPEAC.

[13]  Eric Darve,et al.  Liszt: A domain specific language for building portable mesh-based PDE solvers , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[14]  Ileana Ober,et al.  Improving scalability and maintenance of software for high-performance scientific computing by combining MDE and frameworks , 2011, MODELS'11.

[15]  Ileana Ober,et al.  MDE4HPC: An Approach for Using Model-Driven Engineering in High-Performance Computing , 2011, SDL Forum.

[16]  Frédéric Guyomarc'h,et al.  An MDE Approach for Automatic Code Generation from UML/MARTE to OpenCL , 2013, Computing in Science & Engineering.

[17]  L. Dagum,et al.  OpenMP: an industry standard API for shared-memory programming , 1998 .

[18]  David Lugato,et al.  Paprika: Rapid UI Development of Scientific Dataset Editors for High Performance Computing , 2011, SDL Forum.