Releases: bsc-pm/nanos6
Releases · bsc-pm/nanos6
Nanos6 4.2 (OmpSs-2 2024.11)
Version 4.2, Fri Nov 15, 2024
The 4.2 version corresponds to the OmpSs-2 2024.11 release. It adds compatibility with ALPI version 1.1.
General
- Add compatibility with ALPI version 1.1 by implementing various functions from the tasking interface
Nanos6 4.1 (OmpSs-2 2024.05)
Version 4.1, Wed May 15, 2024
The 4.1 version corresponds to the OmpSs-2 2024.05 release. It introduces the directory/cache (D/C) for Host and CUDA devices. It also adds several fixes for the instrumentation.
General
- Add directory/cache (D/C) for Host and CUDA devices
- Add device memory allocation API for D/C-managed memory
- Require ovni 1.5.0 or greater
- Fix NUMA tests to accept executions with no
NUMA_ALL_ACTIVE
Instrumentation
- Fix thread instrumentation order when blocking task
- Call
ovni_thread_requires
for the Nanos6 model - Call
ovni_thread_free
when threads end - Always mark task as paused when entering taskwait in ovni
Nanos6 4.0 (OmpSs-2 2023.11)
Version 4.0, Fri Nov 17, 2023
The 4.0 version corresponds to the OmpSs-2 2023.11 release. It provides support for the ALPI tasking interface, reduces the external software requirements, and removes obsolete features.
General
- Implement the ALPI tasking interface to support external task-aware libraries
- Allow embedding jemalloc allocator
- Embed hwloc and jemalloc by default
- Add
devices.cuda.prefetch
option to control CUDA prefetching of data dependencies (enabled by default) - Install the nanos6.toml configuration file in
$prefix/share
- Remove obsolete
instrument.h
public interface - Remove obsolete
stats
andgraph
instrumentations - Remove software dependency with libunwind and elfutils
- Improve ovni library discovery
- Fix execution when enabling extrae instrumentation
- Fix memory leaks
- Fix several tests
Nanos6 3.0 (OmpSs-2 2023.05)
Version 3.0, Wed May 24, 2023
The 3.0 release corresponds to the OmpSs-2 2023.05 release. It introduces several performance improvements, important bug fixes, and improved usability and programmability. It also improves the support for the ovni instrumentation.
General
- Leverage C++17 standard, which may require newer GCC (such as GCC 7 or later)
- Fix visualization of task labels for programatically spawned tasks (e.g., polling tasks from task-aware libraries)
- Deprecate CTF instrumentation; use ovni instrumentation instead
- Remove support for the
task for
clause
Performance
- Decrease the default immediate successor probability to 0.75 instead of 1.0. Always applying the immediate successor policy can degrade the performance of some applications. Instead, if your program considerability relies on it, set it back to 1.0
- Remove several dynamic memory allocations that were on the critical path of Nanos6 code
- The
turbo.warmup
indicates whether the runtime should perform a warmup of Jemalloc arenas (enabled by default) - Add the config list option
cpumanager.sponge_cpus
to indicate which CPUs should not be used by the runtime. A sponge CPU is a CPU that the runtime system has available but it does not execute any task (or runtime code) on it. Such CPUs are useful to reduce the system noise. The runtime leaves these CPUs free (without consuming CPU time) so that the system can schedule other threads and interruptions on them
Building and Usability
- Add the
autogen.sh
script to prepare autotools, instead ofautoreconf
- Allow embedding a hwloc library into Nanos6 to avoid conflicts with other external hwloc libraries
- Add the configure option
--with-hwloc
to specify whether hwloc should be external or embedded - Attach the hwloc 2.9.1 tarball inside the
deps
folder for the embedded default hwloc. Seeautogen.sh --help
for more information
ovni Instrumentation
- Add support for the ovni's Idle view that can be displayed with Paraver
- Add support for the ovni's Breakdown view that can be displayed with Paraver
- Support ovni 1.2.0 version and higher compatible versions
- Perform a run-time version check to verify if the loaded ovni library is compatible
- Link Nanos6 with ovni library using
runpath
instead ofrpath
to allow changing the ovni library throughLD_LIBRARY_PATH