N-body projects

I recently came across two very interesting projects relating to N-body astrophysics problems. Replace celestial bodies with atoms, and you have molecular dynamics.

The first is the GRAPE (GRavity PipE) project, which aims to build specialized hardware optimized for N-body code. From their preprint on arxiv, I can see three key innovations they’ve brought to the table:

  • removal of local memory from the processing elements (PE)
  • removal of inter PE communication
  • reduce operations are done in hardware

What impresses me is that by introducing artificial constraints, they are forced to think a certain way. The removal of local memory lets them combine many PEs on the same chip, while the removal of inter PE communication forces them to be more economical with communication. Communication will eventually kill whatever peak performance you have with a single PE.

The second is the Maya Project for dense stellar systems. This is a book about writing a N-body simulator in Ruby. If you are familiar with N-body codes, then you’d know that a majority of the computational time is spent in the inter-particle interaction computations. This is typically a small fraction of the code base. They write these parts in C and do not loose too much performance in the process. There’s a wealth of information available here.

Possibly related:

Leave a Reply