Symbolic Algebra, General Purpose Computing on GPU (GPGPU)

Symbolic Algebra

Symbolic manipulation is a very powerful tool for numerical physicist. Software such as Maple allow one to derive the relevant equations, transform them into appropriate coordinates, discretize them and even create code in Fortran or C. Maple also contains a very powerful high level programing language. Using Maple one can quickly generate error free computer code and hence to experiment with equations and parameters. For example I have created a set of subroutines in Maple that automatically generate Fortran subroutines for GR hydro calculations (flux calculation, spectral decomposition, sources,  conservative to primitive variable conversion etc.) just from a given metric element. It is therefore easy to study hydrodynamics in various spacetime backgrounds and coordinates.
Besides using the available software I  am  also interested in the underlying algorithms for symbolic expression manipulations.


In recent years a new intriguing approach to high performance computing has emerged. The idea is simple - use commonly available graphics processing units (GPU) to perform floating point intensive calculations. The rational behind this approach is that GPUs outperform current general purpose processors (CPU) by a large margin in floating point operations and the gap between CPU and GPU performance is expected to grow further (see the graph below). GPUs have become massively parallel and highly programable units with large amounts of very fast memory. The current generation of graphics cards (NVIDIA 7800, ATI 1800, Nov. 2005) support 32bit floating point operations throughout the whole graphics pipeline. ATI has even publicly pledged support  for GPGPU and promised to release more specifications and to create a thin abstract layer for accessing the GPU hardware (as opose to OpenGL and DirectX that are tailored to graphics applications).

gpu vs cpu performance
GPU vs CPU performance. The figure is taken from the presentation given at the IEEE Visualization 2004. The whole presentation can be found here.

gpu vs cpu performance
Nvidia GPU vs CPU performance. The figure is taken from the presentation given at the GDC 2006 The whole presentation can be found here.

Fluid dynamics is among the fields where it is believed GPUs can  provide a significant boost for calculations. I am very interested in this new approach and as part of my future research I plan to study the possibility of doing some of the GR hydrodynamic calculation on GPU. I have tested the concepts on a advection equations and the results are encouraging.

Resources for GPGPU

A very good resource for finding out what is going on in the world of GPGPU is the web site
Other useful sources of information can be found on researchers web sites such as
The Norwegian GPU-project
Ian Buck at Stanford University
John Ovens at University of California, Davis
Robert Strzodka at Caesar Institute
Dominik Göddeke at Dortmund University

Relevant web sites, papers, and publications:

Industry announcements relevant to GPGPU: