The UK National Competence Centre (NCC-UK) aims to improve access to scientific technical expertise and knowledge pools in order to reduce barriers to the uptake in use of large-scale facilities.
As part of a technology state of the art investigation, NCC-UK team members at EPCC carried out a mini-project focused on task aware communication libraries, and produced a Technical Report which forms an introductory guide to hybrid parallel programming with tasks.
Programming using tasks with data dependencies is a powerful method for minimising idle time due to excessive synchronisation and load imbalance in parallel applications, and is supported by APIs such as OpenMP and OmpSs. Implementing a full tasking model efficiently on distributed memory is very challenging, so a practical compromise is to use a hybrid of tasks within a node, and a traditional communication library such as MPI between nodes. This mini-project used task-aware versions of these libraries, developed by BSC (Barcelona Supercomputing Center), to implement some simple kernels and mini-applications, and assessed the performance, ease-of-use of, and available support for, this novel programming model.
A Technical Report was produced, which provides an introduction to using a hybrid parallel programming model that combines MPI with OmpSs or OpenMP dependent tasks. This model allows both computation and communication to be expressed using a coarse-grained dataflow approach, which helps to remove most of the unnecessary ordering constraints and intranode synchronisation imposed by the more conventional approach of MPI with OpenMP parallel loops. The report describes the model, and how it is supported by an augmented MPI library which interoperates with the tasking runtimes. It also assesses some of the advantages and disadvantages of this style of parallel programming.