Speaker: Dr. Olevn Beckmann
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.
In this talk, I will outline recent developments with the TaskGraph library metaprogramming tool. Specifically, I will describe a type-safe mechanism for passing parameters from static C++ code to dynamically generated code. I will also discuss remaining type-safely issues which can arise in dynamically generated code. I will briefly discuss a re-implementation of the TaskGraph backend to use the ROSE toolkit for domain-specific code restructuring in C++, and I will discuss possible new applications which this facilitates.
Olav Beckmann completed a BSc degree in Computer Science with Mathematics from Bristol University in 1994, and then an MSc in 1996 and PhD in 2001 from Imperial College London. Since then he has been a postdoctoral researcher in the Software Performance Optimisation research group at Imperial College London, which is led by Paul Kelly. His reserach interests are in cross-component optimisation of data-parallel programs, hierarchical storage layouts for large arrays, and in program generation, transformation and specialisation for optimising scientific programs.