Architecture Aware Parallel Programming in
Glasgow Parallel Haskell (GPH)
M.KH Aswad, P.W. Trinder, H.W. Loidl
General purpose computing architectures are evolvng quickly to become many
core and hierarchical: i.e. a core can communicate more quickly locally than globally. To be effective on such architectures programming models must be aware of the communications hierarchy.
We propose 4 new architecture-aware primitives for GpH that exploit information about task size and aim to reduce communication for small tasks, preserve data locality, or to distribute large units of work. We investigate 3 common paradigms like data parallelism on hierarchical architectures with up to 224 cores. The results show that the new primitives consistently deliver better speedup and scalability than existing primitives together with dramatically reduced variability. At times speedup is improved by an order of magnitude.
In addition we report a preliminary investigation and demonstration of architecture aware programming models that abstract over the new primitives. In particular we propose architecture aware evaluation strategies and skeletons.