A Low Level Component Model Enabling Performance Portability of HPC Applications
Résumé
Scientific applications are increasingly getting complex, e.g. to improve their accuracy by taking into account more phenomena. Meanwhile, computing infrastructures are continuing their fast evolution. Thus, software engineering is becoming a major issue to achieve easiness of development, portability, maintenance, while achieving high performance. Software component model is a promising approach, which enables to manipulate the software architecture of an application. However, existing models do not provide enough support for performance portability. This paper proposes a low level component model (L2 C) that supports directly native connectors for typical scenarios of high performance computing, such as MPI, shared memory and method invocation. We walk through a typical example of stencil compu tation, i.e. 2-D Jacobi computation with domain decomposition. The experimental results show that L2 C can achieve the same p erformance as native implementations, while gaining benefits such as performance portability on the basis of the software com ponent model.