Abstract
In this paper, we investigate the differences and tradeoffs imposed by two parallel Haskell dialects running on multicore machines. GpH and Eden are both constructed using the highly-optimising sequential GHC compiler, and share thread scheduling, and other elements, from a common code base. The GpH implementation investigated here uses a physically-shared heap, which should be well-suited to multicore architectures. In contrast, the Eden implementation adopts an approach that has been designed for use on distributed-memory parallel machines: a system of multiple, independent heaps (one per core), with inter-core communication handled by message-passing rather than through shared heap cells. We report two main results. Firstly, we report on the effect of a number of optimisations that we applied to the shared-memory GpH implementation in order to address some performance issues that were revealed by our testing: for example, we implemented a work-stealing approach to task allocation. Our optimisations improved the performance of the shared-heap GpH implementation by as much as 30% on eight cores. Secondly, the shared heap approach is, rather surprisingly, not superior to a distributed heap implementation: both give similar performance results. © 2009 IEEE.
Original language | English |
---|---|
Title of host publication | ICPPW 2009 - The 38th International Conference Parallel Processing Workshops |
Pages | 386-393 |
Number of pages | 8 |
DOIs | |
Publication status | Published - 2009 |
Event | 38th International Conference Parallel Processing Workshops - Vienna, Austria Duration: 22 Sept 2009 → 25 Sept 2009 |
Conference
Conference | 38th International Conference Parallel Processing Workshops |
---|---|
Abbreviated title | ICPPW 2009 |
Country/Territory | Austria |
City | Vienna |
Period | 22/09/09 → 25/09/09 |