[Haskell-cafe] [GSoC] A data parallel physics engine

Manuel M T Chakravarty chak at cse.unsw.edu.au
Wed Mar 12 21:30:40 EDT 2008

Jed Brown:
> On 12 Mar 2008, ndmitchell at gmail.com wrote:
>> I don't think there are a great deal of Haskell users who _really_
>> need a physics engine right now. However, there seem to be a massive
>> number who are working with matrices. I am informed that a lot of
>> physics is just matrix stuff underneath (but don't know anything
>> myself).
>> Perhaps a nice direction to take this project would be to build an  
>> NDP
>> matrix library first, then use that library to build a physics engine
>> on top of it. A physics engine would certainly be very cool, and a
>> parallel matrix library would certainly be very much in demand.
> Indeed, a matrix library would be really nice.  Before getting serious
> about this, please take a very close look at how PETSc
> (http://www-unix.mcs.anl.gov/petsc/) handles matrices.  The  
> abstraction
> is very important because most large matrices of interest are sparse  
> or
> have some symmetry that makes them asymptotically cheaper to apply  
> (like
> with an FFT, FMM, or tensor product).

I agree that a good matrix library would be very useful.  However, I  
am less sure that starting with a general matrix library is a good way  
to make progress towards a physics engine.  Especially, for a simple  
engine we have a small set of (application-dependent) types of  
matrices, requiring a small number of the many possible matrices  
representations.  In contrast, to write a good general-purpose matrix  
library, you need to support a whole range of representation and  

In my experience, it is a lot harder to get somebody who is motivated  
to write a general-purpose library than getting somebody who is  
motivated to write an application, which you can run and show to  
people at the end.  Don't get me wrong, if there is anybody who wants  
to write a matrix library using NDP, that would be absolutely  
fabulous, but otherwise I'd happily settle for a person who implements  
just enough matrix operations to get some nice physics going.


More information about the Haskell-Cafe mailing list