The way to develop software towards exascale computing

This paper preliminarily discusses how to develop software towards exascale computing. Two typical development models are studied, one is “all-round contract” which means all the functional modules are implemented in a single framework, and the other is “co-design” which using the existing packages to realize functional modules. As a widely used CFD software whose numerical solving module is implemented in a typical “all-round contract” manner, OpenFOAM is concerned in this work. After redesigning and reimplementing the solving module of OpenFOAM in a “co-design” way by inserting PETSc, the source lines of the code decrease dramatically, which improves the development efficiency. Tests of two CFD benchmark cases and a practical large-scale case on a 128-node cluster show that the newly implemented numerical module also has a higher solving efficiency, compared with the original numerical module in OpenFOAM. Therefore, it is recommended to develop software in a “co-design” manner towards exascale computing, and softwares already implemented in “all-round contract” way should also be reconsidered.

[1]  Franck Cappello,et al.  The International Exascale Software Project: a Call To Cooperative Action By the Global High-Performance Community , 2009, Int. J. High Perform. Comput. Appl..

[2]  Shun Zou,et al.  An integrated lattice Boltzmann and finite volume method for the simulation of viscoelastic fluid flows , 2014 .

[3]  Shun Zou,et al.  Interface instabilities and chaotic rheological responses in binary polymer mixtures under shear flow , 2014 .

[4]  Xuejun Yang,et al.  GS-DMR: Low-overhead soft error detection scheme for stencil-based computation , 2015, Parallel Comput..

[5]  Wang Qian,et al.  GS-DMR , 2015 .

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

[7]  Aleksandar Jemcov,et al.  OpenFOAM: A C++ Library for Complex Physics Simulations , 2007 .

[8]  A. Gosman,et al.  Solution of the implicitly discretised reacting flow equations by operator-splitting , 1986 .

[9]  W. Bangerth,et al.  deal.II—A general-purpose object-oriented finite element library , 2007, TOMS.

[10]  Bořek Patzák,et al.  OOFEM — an Object-oriented Simulation Tool for Advanced Modeling of Materials and Structures , 2012 .

[11]  Thomas D. Economon,et al.  Stanford University Unstructured (SU 2 ): An open-source integrated computational environment for multi-physics simulation and design , 2013 .

[12]  Benjamin S. Kirk,et al.  Library for Parallel Adaptive Mesh Refinement / Coarsening Simulations , 2006 .

[13]  Hans Werner Meuer,et al.  Top500 Supercomputer Sites , 1997 .

[14]  F. Archambeau,et al.  Code Saturne: A Finite Volume Code for the computation of turbulent incompressible flows - Industrial Applications , 2004 .