Skip to content

Commit

Permalink
OmpSs-2 release 2023.05
Browse files Browse the repository at this point in the history
Software       Version            Individual Tag
------------------------------------------------
Nanos6             2.8    github-release-2023.05
Nodes            1.0.0    github-release-2023.05
nOS-V            1.0.0    github-release-2023.05
ovni             1.2.0                     1.2.0
LLVM         17.0.0git    github-release-2023.05
Mercurium       2.3.0a    github-release-2023.05
  • Loading branch information
kevinsala committed May 24, 2023
1 parent a367c52 commit 6908ac4
Show file tree
Hide file tree
Showing 9 changed files with 68 additions and 11 deletions.
8 changes: 7 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,10 @@
url = https://github.com/bsc-pm/llvm.git
[submodule "ovni"]
path = ovni
url = https://github.com/bsc-pm/ovni
url = https://github.com/bsc-pm/ovni.git
[submodule "nos-v"]
path = nos-v
url = https://github.com/bsc-pm/nos-v.git
[submodule "nodes"]
path = nodes
url = https://github.com/bsc-pm/nodes.git
29 changes: 27 additions & 2 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,31 @@
# OmpSs-2 Release Notes
All notable changes to the OmpSs-2 programming model, the Nanos6 runtime system, the Mercurium source-to-source
compiler, and the OmpSs-2 LLVM-based compiler will be documented in this file.
All notable changes to the OmpSs-2 programming model and its related software will be documented in this file.


## Version 2023.05, Wed May 24, 2023
The OmpSs-2 2023.05 release includes new software projects and several performance and usability improvements for the OmpSs-2 programming model.
In the context of OmpSs-2, this release introduces the new NODES runtime system supporting OmpSs-2, a novel and efficient tasking library named nOS-V, new Task-Aware libraries for interoperability with GPU offloading models, and new features in the ovni instrumentation library.

### General
- Improve support for ovni instrumentation in the Nanos6 runtime and support for the idle CPUs view
- Add performance and usability improvements in Nanos6
- Allow embedding hwloc library into Nanos6 to avoid conflicts with other third-party software that use different hwloc versions
- Add support for `atomic` and `critical` OmpSs-2 directives in the LLVM/Clang compiler
- Drop support for `task for` clause
- Mercurium is the OmpSs-2 legacy compiler, not supported anymore, and will not provide new features for OmpSs-2. Use the LLVM/Clang compiler instead

### NODES Runtime and nOS-V Tasking Library
- Introduce the new low-level nOS-V threading and tasking library, enabling co-execution of applications
- Introduce the new NODES runtime system, built on top of nOS-V, that supports the OmpSs-2 model. This runtime implements the `taskiter` construct and leverages directed task graphs (DCTG) to optimize the execution of iterative applications
- Extend `-fompss-2` option from LLVM/Clang to choose between Nanos6 and NODES runtimes by accepting the option values `libnanos6` (default) and `libnodes`, respectively

### Task-Aware Libraries
- Introduce the new Task-Aware CUDA (TACUDA), Task-Aware HIP (TAHIP) and Task-Aware SYCL (TASYCL) libraries. These task-aware libraries seamlessly integrate the CUDA, HIP and SYCL APIs for GPU offloading with the OmpSs-2 and OpenMP tasking models
- Add performance improvements and bug fixes in the Task-Aware MPI (TAMPI) and Task-Aware GASPI (TAGASPI) communication libraries
- Extend Task-Aware MPI (TAMPI) to support ovni instrumentation and allow tracing of multi-node hyrbid MPI+OmpSs-2 applications

### **ovni** Instrumentation
- Add new graph-based design in ovni to support complex models like the new breakdown timeline


## Version 2022.11, Tue Nov 15, 2022
Expand Down
32 changes: 28 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,30 @@ This meta-repository contains the official OmpSs-2 programming model's releases.
* OmpSs-2 Examples: https://pm.bsc.es/gitlab/ompss-2/examples
* OmpSs-2 Release Notes: [NEWS.md](./NEWS.md)

The OmpSs-2 programming model consist of several software repositories:

* [Nanos6](https://github.com/bsc-pm/nanos6): The main runtime system that supports OmpSs-2
* [NODES](https://github.com/bsc-pm/nodes): The runtime system that supports OmpSs-2 and works over the nOS-V tasking library
* [nOS-V](https://github.com/bsc-pm/nos-v): A novel tasking library for efficient task execution and resource managing
* [ovni](https://github.com/bsc-pm/ovni): A fast instrumentation library to record small execution events and generate Paraver traces
* [LLVM/Clang](https://github.com/bsc-pm/llvm): A LLVM-based compiler that supports the OmpSs-2 directives (recommended)
* [Mercurium](https://github.com/bsc-pm/mcxx): The source-to-source compiler supporting OmpSs-2 directives (legacy compiler)
* Several task-aware libraries for interoperability with other programming models:
* [Task-Aware MPI](https://github.com/bsc-pm/tampi): Library providing support for taskifying MPI communications
* [Task-Aware GASPI](https://github.com/bsc-pm/tagaspi): Library providing support for taskifying RMA communications
* [Task-Aware CUDA](https://github.com/bsc-pm/tacuda): Library providing support for taskifying CUDA kernels and operations
* [Task-Aware HIP](https://github.com/bsc-pm/tahip): Library providing support for taskifying HIP kernels and operations
* [Task-Aware SYCL](https://github.com/bsc-pm/tasycl): Library providing support for taskifying SYCL kernels and operations

This repository contains the core software projects of the OmpSs-2 model as git submodules.
This repository has a different git tag for each of the OmpSs-2 releases that are available.
The submodules are a link to the different software repositories and they point to the release
commit that corresponds to the OmpSs-2 release. Concretely, there is a submodule for each of
the following projects: Nanos6, NODES, nOS-V, ovni, LLVM/Clang and Mercurium (legacy).

The sources of the task-aware libraries can be retrieved directly from their own repositories,
which are listed above.

# Getting Started

This repository contains all OmpSs-2 releases stored as *git tags*. These release
Expand All @@ -24,12 +48,12 @@ After cloning this repository, run the following command to move to a particular
OmpSs-2 release:

```
$ git checkout 2021.11
$ git checkout 2023.05
```

Then, run the command below to download the Nanos6, Mercurium and LLVM-based compiler
sources in the `nanos6`, `mcxx` and `llvm` subfolders, respectively. Those sources will
be the ones that correspond to the previously selected release.
Then, run the command below to download the Nanos6, NODES, nOS-V, ovni, LLVM-based compiler
and Mercurium sources in the `nanos6`, `nodes`, `nos-v`, `ovni`, `llvm`, and `mcxx` subfolders,
respectively. Those sources will be the ones that correspond to the selected release.

```
$ git submodule update --init
Expand Down
2 changes: 1 addition & 1 deletion llvm
Submodule llvm updated from ef7d35 to 40db2e
2 changes: 1 addition & 1 deletion nanos6
Submodule nanos6 updated 173 files
1 change: 1 addition & 0 deletions nodes
Submodule nodes added at c10944
1 change: 1 addition & 0 deletions nos-v
Submodule nos-v added at d24ca3
2 changes: 1 addition & 1 deletion ovni
Submodule ovni updated 265 files

0 comments on commit 6908ac4

Please sign in to comment.