InKS, a programming model to decouple performance from semantics in simulation codes
Résumé
Existing programming models lead to a tight inter-leaving of semantics and computer optimization concerns in high-performance simulation codes. With the increasing complexity and heterogeneity of super-computers this requires scientists to become experts in both the simulated domain and the optimization process and makes the code difficult to maintain and port to new architectures. This report proposes InKS, a programming model that aims to improve the situation by decoupling semantics and optimizations in code so as to ease the collaboration between domain scientists and expert of high-performance optimizations. We define the InKS language that enables developers to describe the semantic of a simulation code with no concern for performance. We describe the implementation of a compiler able to automatically execute this InKS code without making any explicit execution choice. We also describe a method to manually specify these choices to reach high-performance. Our preliminary evaluation on a 3D heat equation solver demonstrates the feasibility of the automatic approach as well as the ability to specify complex optimizations while not altering the semantic part. It shows promising performance where two distinct specifications of optimization choices in InKS offer similar performance as existing hand-tailored versions of the solver.
Domaines
Langage de programmation [cs.PL]Origine | Fichiers produits par l'(les) auteur(s) |
---|