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.