WG211/M2Herrmann
Title:
Combining Abstraction and Performance by Metaprogramming
Christoph Herrmann
Abstract: My aim is to initiate a discussion about the role of metaprogramming in high-performance computing, the degree of abstraction that can thereby be achieved, the different potential of compile-time and run-time program generation and the support by languages like MetaOCaml and C++. I will start with a report about experiences at our chair with MetaOCaml in the generation of parallel skeletons and implementation of a domain-specific language for image processing. Our experiences give rise to the expectation that for some kind of applications the metaprogramming features do not decrease in value even when the complexity of the generator grows, i.e., the use of a metaprogramming language cannot be replaced by a conventional language plus a code generation module. I will also report briefly about my joint work with Albert Cohen and, after discussion of related metaprogramming approaches, point out future research directions, with a special focus on C++ templates.