PARA'04 State-of-the-Art
in Scientific Computing
June 20-23, 2004 (Home page)

Updated: 14 March 2004

Dynamic Code Generation and Component Composition in C++ for Optimising Scientific Codes at Run-time

Olav Beckmann and Paul H J Kelly and
Department of Computing, Imperial College London
180 Queen's Gate, London SW7 2AZ, United Kingdom

The TaskGraph Library is a C++ library for dynamic code generation and component composition, 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 constructing TaskGraphs. The internal representation for generated code is SUIF-1, which facilitates using a range of analysis and restructuring passes.

We view the TaskGraph library as a research tool that can support effective large-scale computation in two distinct ways: dynamic component modification, leading to code that can tune itself to a particular platform at run-time, and optimisation of dynamic component composition, where the internal structure of software components is adapted at run-time to their calling context.

Home page


2004-03-14