Argo NodeOS: Toward Unified Resource Management for Exascale
|Title||Argo NodeOS: Toward Unified Resource Management for Exascale|
|Year of Publication||2017|
|Authors||Perarnau, S, Zounmevo, JA, Dreher, M, Van Essen, B|
Exascale systems are expected to feature hundreds of thousands of compute nodes with hundreds of hardware threads
In this context, the Argo project is developing a new operating system for exascale machines. Targeting production workloads using workflows or coupled codes, we improve the Linux kernel on several fronts. We extend the memory management of Linux to be able to subdivide NUMA memory nodes, allowing better resource partitioning among processes running on the same node. We also add support for memory-mapped access to node-local, PCIe-attached NVRAM devices and introduce a new scheduling class targeted at parallel runtimes supporting user-level load balancing. These features are unified into compute containers, a containerization approach focused on providing modern HPC applications with dynamic control over a wide range of kernel interfaces. To keep our approach compatible with industrial containerization products, we also identify contentions points for the adoption of containers in HPC settings.
Each NodeOS feature is evaluated by using a set of parallel benchmarks, miniapps, and coupled applications consisting of