InKS, a programming model to separate algorithms and optimized implementation in HPC code

During his PhD at Maison de la Simulation, Ksander EJJAAOUANI has developed a new programming model called InKs. His PhD has been conducted under the direction of M. Mehrenberger et M. Bastoul and has been supervised by Julien Bigot (Maison de la Simulation) et Olivier Aumage (INRIA).

The programming model InKS aims at improving simulation code readability, portability and maintainability. At the same time, it aims at increasing  developer productivity working on scientific application. To reach this goal, InKS proposes two languages. Each of them is dedicated to specific application parts. The first, InKSPIA, enables to express all algorithmic aspects of a scientific simulation code while setting optimization choice aside. It enables to describe the foundation of the simulation: the algorithm. The second language, InKSPSO, enables optimization specialist to use algorithm's content to design a large range of optimization choice. The model enables to write many versions of these optimizations, one by architecture, from a unique algorithm. By focusing on the invariant part of a program, the algorithm, the InKS model prevent developers to rewrite different versions of the same code. It thus boost developer productivity. How the model works is schematically presented in the following figure:

Presentation of the InKS model

Results from the InKS model have been published in different articles:

The project is also hosted in GitHub.

Ksander EJJAAOUANI will defend his PhD the coming Octobre, 25th including the development in InKS.