The goal is to implement a high-performance, parallel physics engine using Data Parallel Haskell. Nested data parallelism is a powerful programming model for parallel applications. Although still in its infancy, the implementation of NDP in GHC is now sufficiently mature to support fairly complex algorithms. A physics engine would be an ideal case study and testbed for DPH and would be immensely helpful for its further development. It would also allow Haskell to be used in new application areas: physics simulations, virtual reality environments, games (such as Frag) etc.
This project should not only be highly motivating for interested students, but also benefits the community in the following ways:
- Physics engines are an important building block for a range of interesting applications that profit from Haskell's high level programming model - this includes physical simulations, virtual reality, educational software, visualisation software.
- The strong industry push towards multicore processors provides a new motivation for strict control of side effects. This is a great opportunity for functional languages and a strong and interesting case study would be very helpful in this domain.
- It would significantly accelerate the implementation of the widely anticipated support for nested data parallelism in Haskell.
Interested Mentors
Interested Students