Although NODES supports most of the features found in the Nanos6 runtime (its predecessor), at the moment it does not include:
- The
linear-regionsdependency system - The
assertdirective
NODES provides only two forms of instrumentation: (1) entry-exit points instrumentation, and (2) dependency-system instrumentation. As a result, Nanos6-like variants such as profile, graph, or linter are not supported.
When running programs with NODES, each instance must reserve at least one CPU for its internal runtime. This is necessary since NODES leverages nOS-V to manage its threads. Users ignoring this limitation may encounter issues such as the one exemplified next: If two MPI processes share a single CPU through a shared nOS-V instance (i.e., two MPI ranks oversubscribed through a single CPU), one process may block the CPU during MPI initialization, leaving no resources for the other process and leading to a deadlock.