Skip to content

Argonne Leadership Computing Facility

Aurora Programming Environment

Overview

The Aurora Programming Environment (Aurora PE) is Aurora's default software environment and consists of the OneAPI SDK, MPICH, and the Spack PE. The Aurora PE is loaded in the user environment through a default module set. Alternative versions of the Aurora PE, as well as Aurora PE components not loaded by default, are available through the module interface.

As of May 2024, the default modules are

  1) spack-pe-gcc/0.6.1-23.275.2   7) mpich-config/collective-tuning/1024
  2) gmp/6.2.1-pcxzkau             8) intel_compute_runtime/release/agama-devel-736.25
  3) mpfr/4.2.0-w7v7yjv            9) oneapi/eng-compiler/2023.12.15.002
  4) mpc/1.3.1-dfagrna            10) libfabric/1.15.2.0
  5) gcc/12.2.0                   11) cray-pals/1.3.3
  6) mpich/icc-all-pmix-gpu/52.2  12) cray-libpals/1.3.3
Besides the latter three modules, this set of modules is loaded from the Aurora PE. The oneapi, intel_compute_runtime, and mpich modules are part of version 23.275.2 of the Aurora PE. Each version of the PE may have multiple compilers, runtimes, and/or MPICH installations; these are interchangeable within a particular PE version. In addition to the OneAPI and MPICH installations, the Aurora PE contains the Spack PE, which contains a myriad of general and scientific computing software. See the Spack PE page for more details.

Switching PE or SDK versions

Aurora PE and OneAPI SDK versions can be viewed with module avail and switched with module load commands. The Aurora PE modules utilize Lmod's hierarchical module system to allow seamless switching between versions of the Aurora PE and its components. For example, if the user loads a different version of the oneapi SDK, the other modules in the Aurora PE, such as intel_compute_runtime, mpich, and spack-pe-gcc, will be reloaded to guarantee compatibility. In short, the hierarchical modulefile system ensures that the module environment is self-consistent with minimal user input.

Aurora PE and /soft

The Aurora PE is installed in /opt/aurora and is mounted as a read-only squashfs. /soft is also available to provide software not present in the Aurora PE. Modules in /soft/modulefiles are not part of the default environment in order to avoid filesystem metadata overhead, which can have significant performance impacts. Users wishing to use software in /soft will need to first run module use /soft/modulefiles to access the modules.

The Aurora PE has a longer-term upgrade cadence (on the order of months), so ad-hoc software requests will be fulfilled through software installations in /soft. Pre-release previews of Aurora PE components may also be made available in /soft for testing. /soft installations will be considered for incorporation into the Aurora PE during upgrade cycles.

Modules in /soft may conflict with modules in the Aurora PE. Lmod has some limitations in automatically handling module conflicts, so the user may need to manually resolve conflicts arising from modules outside of the Aurora PE. Users are also advised to sanitize module paths that they add from other non-standard locations, such as /home, to avoid conflicts. Additionally, packages targeted for future Aurora PE updates are staged for testing under a separate module path /soft/preview-modules/<PE_VERSION> to prevent accidental module clashes.