Systems of Partial Differential Equations in ExaSlang

As HPC systems are becoming increasingly heterogeneous and diverse, writing software that attains maximum performance and scalability while remaining portable as well as easily composable is getting more and more challenging. Additionally, code that has b

  • PDF / 449,681 Bytes
  • 21 Pages / 439.36 x 666.15 pts Page_size
  • 20 Downloads / 203 Views

DOWNLOAD

REPORT


bstract As HPC systems are becoming increasingly heterogeneous and diverse, writing software that attains maximum performance and scalability while remaining portable as well as easily composable is getting more and more challenging. Additionally, code that has been aggressively optimized for certain execution platforms is usually not easily portable to others without either losing a great share of performance or investing many hours by re-applying optimizations. One possible remedy is to exploit the potential given by technologies such as domain-specific languages (DSLs) that provide appropriate abstractions and allow the application of technologies like automatic code generation and auto-tuning. In the domain of geometric multigrid solvers, project ExaStencils follows this road by aiming at providing highly optimized and scalable numerical solvers, specifically tuned for a given application and target platform. Here, we introduce its DSL ExaSlang with data types for local vectors to support computations that use point-local vectors and matrices. These data types allow an intuitive modeling of many physical problems represented by systems of partial differential equations (PDEs), e.g., the simulation of flows that include vector-valued velocities.

1 Introduction The solution of PDEs is a part of many problems that arise in science and engineering. Often, a PDE cannot be solved analytically but must be solved numerically. As a consequence, the first step towards a solution is to discretize the equation, which results in a system of (linear) equations. However, depending on the size of the problem and the targeted numerical accuracy, the systems can grow quite large and result in the need for large clusters or supercomputers. These

C. Schmitt () • S. Kuckuk • F. Hannig • J. Teich • H. Köstler • U. Rüde Department of Computer Science, Friedrich-Alexander University Erlangen-Nürnberg, Erlangen, Germany e-mail: [email protected] C. Lengauer Faculty of Informatics and Mathematics, University of Passau, Passau, Germany © Springer International Publishing Switzerland 2016 H.-J. Bungartz et al. (eds.), Software for Exascale Computing – SPPEXA 2013-2015, Lecture Notes in Computational Science and Engineering 113, DOI 10.1007/978-3-319-40528-5_3

47

48

C. Schmitt et al.

execution platforms are increasingly heterogeneous for reasons such as performance and energy efficiency. Today, a compute cluster consists of hundreds of nodes, where each node may contain multiple CPU cores—sometimes even of different type—and one or more accelerators, e.g., a GPU or some other manycore accelerator such as the Xeon Phi. A common approach to enabling performance portability for a variety of platforms is the separation of algorithm and implementation via a domain-specific language (DSL). In a DSL, domain experts can specify an algorithm to solve a certain problem without having to pay attention to implementation details. Instead, they can rely on the DSL compiler to generate a program with good—or even near optimal—performance.