LibGeoDecomp is applying as a mentoring organization for Google's Summer of Code 2013. Below you'll find a list of ideas for projects. Take these as rough guidelines. You're most welcome to come to our IRC channel or mailing list to discuss your own ideas.

Interactive Wavetoy

jflowsim is an interactive environment to evaluate 2D flows and the interaction of liquids and solids. It is however limited by the power of the machine's CPU. With LibGeoDecomp we could do much better: we already have have remote steering and output working, support GPUs, and Stephan Helou has implemented and verified a set of 2D/3D Lattice Boltzmann Method kernels. All we need is just a nice GUI to connect all components. Tentative list of to-do items:

  • Implement a 2D visualization widged (based on Qt4 or reuse from VTK) with LibGeoDecomp's Writer interface.
  • Interactive Initializer/Steerer to add/move obstacles and modify boundary conditions and model parameters.
  • Add probes to select data and forward it to files/gnuplot.
  • Record images and feed them into encoder (e.g. mplayer's mencoder) to capture videos.
  • (Add VTK-based 3D volume renderer widget.)

Fault-resilient Simulator

In LibGeoDecomp, Simulators parallelize models for a given architecture. We generally target either workstations or MPI clusters. MPI is notorious for not handling node failures gracefully. This is an increasingly severe problem for supercomputers, but also a major blocker for volunteer computing to transition it from embarrissingly parallel applications to tightly coupled problems. A possible solution would be to keep the grid stored in a redundant fashion, similar to Bittorrent. Tentative to-do list:

  • Implement fault-tolerant node and data block registry (e.g. based on Bittorrent code).
  • Add communication layer to synchronize boundary data (i.e. ghost zones or halos), for instance via HPX.
  • Add update logic.
  • Evaluate robustness (e.g. with virtual machines testbed available in our parallel computing lab).

N-body Simulation Toolkit

Building N-body codes with LibGeoDecomp still requires the user to write partly repetetive code. Especially the containers to hold the different particles/objects mostly look the same. It would be great to have a set of supporting classes to take on some common tasks:

  • Write a flexible container class which may hold a configurable number of different types/items and (this is the tricky part) provides a convenient method to iterate over these selectively/efficiently.
  • Provide a framework for adding Povray output to facilitate easy, high quality rendering.
  • Add Initializer which may read from 3D modeller (e.g. Blender) or from Povray file to set up the simulation.

News archive »

last modified: Wed Oct 26 16:51:19 2016 +0200