Fakultät Informatik

GPU-based acceleration of the Millennium Run Observatory (MRObs)


The  Millennium Run Observatory (MRObs) is a tool chain that generates realistic simulations of astronomical images by post-processing data simulated with the Millennium suite at the MPA. A system overview as well as detailed descriptions of the individual pipeline steps are given in ( Overzier, Lemson et al. 2012).


The main goal of this project is to improve the tool chain's performance and flexibility to allow a better and faster interaction between astronomical observations and detailed theoretical predictions. Full access to the MRObs codebase will be given through SVN. The pipeline is currently written in a combination of C and Python code.


  1. The first target of this project is to accelerate the transformation of a "light cone" into a "perfect" image by implementing this stage on the GPU. A light cone contains galaxies as observed from a point in space. The galaxies have a position on the sky and a distance. They have a shape (bulge+disk), (apparent) size and orientation. The components making up the shape each have a luminosity and a spectral energy distribution. Currently we use a version of the publicly available SkyMaker tool (Bertin et al. 2009) that creates a pixelized image from the 3D light cone catalogue by painting the projected galaxy shapes at the appropriate locations in the 2D image plane. The images may be up to 100000x100000 pixels large and are represented in the astronomy standard FITS file format. The current implementation is in C code, running on the CPU, partially multi-threaded.
  2. We are interested to see whether dust absorption can be brought into this game as well. Galaxies consist of stars as well as clouds of dust-containing gas. Depending on the orientation and model for the distribution of the dust, the luminosity of stars may be diminished by a wavelength-dependent amount of dust-absorption. Currently, the dust is implemented in a fairly crude manner, and we have several ideas on how to improve on this by making use of the improved shape modeling described below.
  3. Another component we may want to improve is the "virtual obervatory" itself. The perfect image produced as part of Goal 1 is assumed to be input to a "virtual telescope". This is a computer model of a real telescope that adds the main observational and instrumental effects that effect real astronomical observations. Examples of important effects include the point spread function (a convolution of the image with a finite size kernel of potentially complex shape), "photon noise" (the fact that the total luminosity is in reality brough about by individual photons detected in a CCD), background light (a global background due to the brightness of the night sky), and survey construction (observations typically consist of numerous co-added exposures of a finite exposure time). Adding all these effects can be a time-consuming process, and improvements may be possible.
  4. Finally, a separate component that would be very interesting is to incorporate gravitational lensing during the image creation process outlined above. This is currently under active investigation by Ben Metcalf and his group, and us. It uses knowledge (an approximation really) of the mass distribution in the light cone to transform the paths of light rays coming to us through these mass concentrations from background galaxies. It would be of great interest to see whether the component that is being constructed in plain C can be improved following the improved GPU-based shape modeling.


  • We are also interested to find out if, instead of creating shapes from the galaxy parameters during image creation, we could use a library of predefined images and paint these on the galaxy positions, after suitable scaling and reorienting. We would need the library to be properly described so that the code can make a decision to choose the image template that is closest in parameters to the model galaxy.


  • Extensive experience in C/C++
  • Fundamental knowledge in Phyton
  • Exerience in in graphics (OpenGL) and GPGPU (OpenCL) programming
  • Basic knowledge in computer graphics (lecture Computer Graphics)




    A new PhD position is available at the games engineering group.  Check it out here.