Welcome to NRM’s documentation!¶
If you know about NRM and are just looking to get it to run on your application, please visit the quickstart guide.
This documentation is technical. For a high-level overview of NRM, please refer to the Argo website.
The Node Resource Manager (NRM) is a node-local userspace client-server daemon for managing your scientific applications. It runs the various tasks that compose an application in resource-constrained slices, monitors performance, power use and application progress, and arbitrates resources at the node level, along with CPU Cores, NUMA Nodes, and Power budgets.
There are two user software components shipped with NRM itself: the
command-line client and the
nrmd daemon. Additionally, NRM ships with the
libnrm application instrumentation library, to be used for progress
monitoring. The following diagram describes this architecture:
Note that the container runtime used by NRM to allocate slices is a system-installed dependency, regardless of whether Argo NodeOS or Singularity is used.
The quickstart guide describes the use of
Please refer to the libnrm guide for application
instrumentation. See the haddock documentation for the shared library API,
and the notebooks under NRM-Python for python upstream client use.