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 nrm 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 nrm and nrmd. 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.


Indices and tables