Reference implementationΒΆ

Currently, there are two reference implementations of the OmpSs-2 programming model. One of the implementations is based on the Nanos6 runtime library and the LLVM/Clang compiler. The other implementation is based on the nOS-V and NODES runtimes and the LLVM/Clang compiler.

  • The LLVM/Clang compiler is an LLVM-based compiler that provides the necessary support for transforming high-level directives into a parallelized version of the application.

  • The Nanos6 runtime system library provides the services to manage all the parallelism in the user-application, including task creation, synchronization and data movement, and provide support for resource heterogeneity.

  • The nOS-V library is a threading and tasking runtime that supports co-execution and can be leveraged by higher-level programming models.

  • The NODES library is a runtime designed to work on top of the nOS-V runtime while providing most of the functionalities of its predecessor, Nanos6. It acts as a dependency system for nOS-V by synchronizing the data flow of OmpSs-2 codes.

Although Nanos6 is still maintained, its development has stopped. Thus, we recommend installing the reference implementation based on nOS-V and NODES.