Group Project: instant-access parallel fluid simulation and visualisation

Supervisor: Paul Kelly

 

The goal of this project is to connect a computationally-intensive parallel simulation program to a visualisation front-end in an interesting way. Suppose we are simulating 3-D fluid flow in a 512x512x512 region. At each timestep, we generate at least one 512^3=128M-element array, occupying 1GB. We want the use to be able to browse this data, extracting features (eg vortices), and visualising them using standard tools (such as contouring/isosurfaces). We want to be able to watch these features as they evolve in time.   One way to think about this is that we are taking a batch fluid flow simulation and turning it into an on-line server that delivers selected visualisations of its output.  The challenge is to structure the system by formulating the fluid flow simulator and the visualisation code as flexible parallel components.  These components should carry information about how best they should be executed depending on the context of use.  The objective is to build a testbed for research work on (1) how to align parallel components to minimise data movement, and (2) how to cache the output from components to improve interactive responsiveness.

 

 

The job:
 

I want to be able to

Minimum result:

Major objectives:

What you need to know:

This project is fairly challenging and there is enormous scope. You need to be unfazed by complexity. You do not need to understand the maths behind CFD, though it helps if, like me, you like the pictures! Both vtk and NaSt3DGP are written in C++, though a good knowledge of C should be enough for most purposes. Some background in visualisation and graphics will come in handy. You should be able to pick up new tools very quickly.  This is more than simply an engineering project; I'm interested in learning how to connect parallel software components, how to use resources whose availability varies in time, etc.  This is part of my long-term research plan to investigate cross-component optimisation of scientific applications running on a computational "power grid".  See my home page for more details.

What you need: access to the VTK book, vtk, mpich, NaSt3DGP.  No special project machine should be needed, but you will need several PCs at the same time for some of the development and testing.

 

Up Home