New release of OmpSs-2
The Programming Models group at BSC has just published the second release (version 18.06) of the OmpSs-2 programming model.
OmpSs-2 extends the tasking model of OmpSs/OpenMP to support both task nesting and fine-grained dependencies across different nesting levels. This enables the effective parallelisation of applications using a top-down methodology. In this release, the OmpSs-2 tasking model has been enhanced to better support hybrid (MPI+OmpSs-2) and heterogeneous (OmpSs-2+CUDA C kernels) programming.
Among the most prominent features introduced in this release of OmpSs-2, is the Task-Aware MPI (TAMPI) library. This MPI library, developed in the context of the INTERTWinE project (and available at github.com/bsc-pm/tampi), augments the interoperability features of MPI to enhance hybrid programming with tasking models such as OmpSs-2. This MPI library has been extended with a new MPI threading level - called MPI_TASK_MULTIPLE - that enables the safe use of synchronous and asynchronous MPI operations inside a task. This library relies on the Nanos6 pause/resume, external events and polling services APIs to provide this enhanced interoperability between MPI and OmpSs-2.
For more information about MPI + OmpSs hybrid programming, check out the INTERTWinE Resource Pack for MPI plus OpenMP Tasks / OmpSs, which aims to help developers create efficient and effective, capability-scale applications using MPI and either OpenMP Tasks or OmpSs - either to enhance existing (perhaps, MPI-only) software, or for new projects.