Nexus is a scientific workflow automation system designed to accelerate narrow and deep or wide and shallow (e.g. high throughput) simulation workflows involving QMCPACK and/or other electronic structure codes. It is capable of automated job management on workstations (by acting as a virtual queue), institutional clusters, and high-performance supercomputers at OLCF, ALCF, and NERSC. Job management capabilities include handling dependencies between calculations, bundling compute jobs, and extracting results from completed calculations for analysis.
Users interact with Nexus by writing a Python script which typically resembles a simple input file. More complex simulation workflows involving many dependencies can be readily created with standard if/else logic and for loops. Although Nexus and its UI are written in Python, a detailed knowledge of the language is not required to use the system.
The modular, class-based design of Nexus permits many simulation codes to be driven within the same overall framework. Codes currently supported include QMCPACK (wavefunction optimization, variational Monte Carlo, diffusion Monte Carlo), SQD (numerical Hartree-Fock for atoms, packaged with QMCPACK), and Quantum Espresso / PWSCF (DFT total energy or structural relaxation calculations). Support for GAMESS and VASP is at an early stage.
Nexus was originally developed independently of QMCPACK by Jaron Krogel. Although currently distributed with QMCPACK, in future Nexus may be distributed separately due to its broader range of application.
A reference paper describing Nexus is published Computer Physics Communications (2015). https://doi.org/10.1016/j.cpc.2015.08.012