Flux Core
The flux-core project provides the distributed messaging capability and core services and APIs of the Flux resource manager framework. Flux-core has been under active development since 2012, primarily at Lawrence Livermore National Laboratory. The flux-core project implements several of Flux's innovations:
- Recursive launch
A Flux instance can be launched standalone for testing, by systemd as a system service, or as a parallel job under most HPC resource managers and launchers, including Flux itself. A Flux batch job or interactive allocation is an independent Flux instance running on a subset of the parent's resources. Resources can be recursively subdivided ad infinitum for performance or isolation.
- Small Security Footprint
Flux-core does not contain any code that runs as root. A Flux instance only requires a setuid helper (provided by the flux-security project) in multi-user configurations. Flux can be deployed for single user use without administrator access.
- Reactive Messaging
Flux components are primarily single threads that communicate only by exchanging messages through message brokers. C and Python APIs enable the creation of robust, distributed services that use this paradigm.