Home News People Research Study Search

Institute for Computing Systems Architecture

Dynamic Code Generation in C++ as a Foundation for Domain-Specific Optimisation

Olav Beckmann and Paul H J Kelly
Department of Computing, Imperial College London

THURSDAY, 22 JANUARY 2004
JCMB, ROOM 2511
3.30 P.M.

The TaskGraph Library is a C++ library for dynamic code generation, which combines specialisation with dependence analysis and restructuring optimisation. A TaskGraph represents a fragment of code which is constructed and manipulated at run-time, then compiled, dynamically linked and executed. The TaskGraph Library is implemented purely in C++, using macros and operator overloading to define a simplified, C-like sub-language that is used for initialising TaskGraphs. The internal representation used for representing generated code is SUIF-1, and the TaskGraph library implements an API for calling SUIF's analysis and restructuring passes on the generated code.

We view the TaskGraph Library as a research tool for facilitating domain-specific runtime optimisations in scientific applications. One key distinction of this approach is its combination of runtime code specialisation and restructuring optimisation. Sample applications include:

We are currently planning to use the TaskGraph library as a tool for implementing and evaluating domain-specific optimisation "components" for scientific programs. We are particularly interested in exploring this idea in the context of stencil loops.


Home : Colloquium 

Please contact our webadmin with any comments or changes.
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh.