The Programming Models group at BSC has published the fifth public release (version 19.06) of the OmpSs-2 programming model.
OmpSs-2 is a data-flow programming model that supports both task nesting and fine-grained dependencies across different nesting levels. This enables the effective parallelization of applications using a top-down methodology. In this release, the OmpSs-2 runtime has been enhanced with several bug fixes and performance improvements related to the TAMPI library.
In this release we include a preview of the new OmpSs-2@cluster implementation, an extension to our OmpSs-2 model, which supports tasking capability across multiple nodes in cluster based systems. Scalability is improved over previous approaches using the OmpSs-2 features of weak dependencies and early release of dependencies. Scheduling is done taking into account data placement hints from a new distributed memory allocation function. The implementation is based on communication via MPI and a workflow API that provides a common internal interface for task offload, including memory pinning/allocation and data transfers. OmpSs-2@cluster was initially developed in the context of the ExaNoDe project, and its continued development is supported by EPEEC, LEGaTO and EuroEXA.