Computational Steering via Delayed Evaluation, Self-Optimising Scientific Software Components

-------------------------

Introduction - The DESO Library

One of the recent research efforts in the Software Performance Optimisation Research Group is a DESO (Delayed Evaluation, Self-Optimising) library of parallel scientific software components. The special characteristic of this library is that rather than library routines being executed immediately, execution is delayed and a handle for the result (a "recipe") is returned instead. This is used to construct a DAG (directed acyclic graph) representing the data flow of the computation to be performed. The following figure shows an example for such a DAG (in this case the first iteration of the Conjugate Gradient method for solving the equation Ax = b:

First Iteration DAG for Conjuage Gradient

Once we have built such a delayed data flow graph, we then have the opportunity to perform cross-component optimisations. Our paper here gives an introduction to the theory behind this library and its use, whilst the "THEMIS paper" gives are more big-picture overview of the aims of this research.

The aim of this project: Computational Steering

A scientific library like the DESO library could be used to build very long-running complex scientific simulation programs. The typical mode of operation of such programs is off-line: a user starts a simulation run on a large data set overnight (or over a few days), with the program at the end writing out a large result-file which is then analysed. The idea behind Computational Steering is that we would really like something much more interactive:

Another way of explaining this is that we want to take a library of scientific subroutines (albeit special ones) and turn it into an interactive parallel service that we can access and control from a front-end application (probably a GUI, but a scripting language might be a good first start).

Key Challenges

Is this project for you?

This is a research-level project. To do this project, you must not be scared to pick up and work with an existing large software system. You should enjoy the challenge of getting software to work and do what you want. If you would like to discuss this project, please feel free to talk to either Paul Kelly or Olav Beckmann.

-----------------------------

Olav Beckmann
Last modified: Tue Oct 4 15:30:25 BST 2005