Skip to content

Releases: bsc-pm/nanos6

Nanos6 4.1 (OmpSs-2 2024.05)

15 May 19:21
Compare
Choose a tag to compare

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)

17 Nov 11:01
Compare
Choose a tag to compare

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 and graph 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)

25 May 10:58
Compare
Choose a tag to compare

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 of autoreconf
  • 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. See autogen.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 of rpath to allow changing the ovni library through LD_LIBRARY_PATH