Module Environments - icl-utk-edu/cluster GitHub Wiki
The software module system consists of self-consistent software groups which ensure that no conflicts exist between software packages or their dependencies. This allows all software modules to be loaded at once. By loading a software environment via module load env/env_name, the software in the environment is added to the available software that you can module load. The naming scheme for the environment is "env/compiler-cudaversion-blas". The system automatically loads the environment env/gcc12-cuda12-openblas on login. You can then load software packages in the normal fashion:
[ICL:methane ~]$ module avail
----------------------- /apps/spacks/2025-08-22/share/spack/modules/gcc12-cuda12/linux-rocky9-x86_64 -----------------------
amd-aocl/5.0 kokkos/4.4.01 py-distro/1.8.0
amdblis/5.0 krb5/1.21.3 py-docutils/0.20.1
amdfftw/5.0 libbsd/0.12.2 py-editables/0.5
amdlibflame/5.0 libdrm/2.4.123 py-filelock/3.12.4
... truncated ...
[ICL:methane ~]$ module load openmpi
[ICL:methane ~]$ module list
Currently Loaded Modules:
1) env/gcc12-cuda12 5) xz/5.4.6 9) libpciaccess/0.17 13) libevent/2.1.12 17) rdma-core/52.0
2) glibc/2.34 6) zlib-ng/2.2.1 10) ncurses/6.5 14) numactl/2.0.18 18) ucx/1.15.0
3) gcc-runtime/12.4.0 7) libxml2/2.13.4 11) hwloc/2.11.1 15) slurm/22.05.9 19) openmpi/5.0.5
4) libiconv/1.17 8) cuda/12.6.2 12) openssl/3.4.0 16) libnl/3.3.0
[ICL:methane ~]$ which mpicc
/apps/spacks/2025-04-15/opt/spack/linux-rocky9-x86_64/gcc-12.4.0/openmpi-5.0.5-24tp3ez2epnadfl3x57bpvg5epgjshqh/bin/mpicc
To view the other available software environments:
[ICL:methane ~]$ module avail env
------------------ /apps/spacks/2025-08-22/share/spack/modules/gcc12-cuda12-openblas/linux-rocky9-x86_64 -------------------
python-venv/1.0
------------------------------------- /apps/spacks/2025-08-22/share/spack/modules/envs -------------------------------------
env/gcc11-cuda11-aocl env/gcc12-cuda12-aocl env/gcc14-cuda12-mkl
env/gcc11-cuda11-mkl env/gcc12-cuda12-mkl env/gcc14-cuda12-openblas
env/gcc11-cuda11-openblas env/gcc12-cuda12-openblas (L,D) env/oneapi2024-cuda12-mkl
env/gcc11-cuda12-aocl env/gcc13-cuda12-aocl env/oneapi2024-cuda12-openblas
env/gcc11-cuda12-mkl env/gcc13-cuda12-mkl
env/gcc11-cuda12-openblas env/gcc13-cuda12-openblas
One advantage of the environments is that you can switch between environments and all loaded modules (if available) will be switched to be compatible with the new environment:
[ICL:methane ~]$ module switch env/gcc11-cuda12-mkl
Due to MODULEPATH changes, the following have been reloaded:
1) cuda/12.6.2 4) libevent/2.1.12 7) libpciaccess/0.17 10) numactl/2.0.18 13) rdma-core/52.0 16) xz/5.4.6
2) glibc/2.34 5) libiconv/1.17 8) libxml2/2.13.4 11) openmpi/5.0.5 14) slurm/22.05.9 17) zlib-ng/2.2.1
3) hwloc/2.11.1 6) libnl/3.3.0 9) ncurses/6.5 12) openssl/3.4.0 15) ucx/1.15.0
The following have been reloaded with a version change:
1) env/gcc12-cuda12 => env/gcc11-cuda12 2) gcc-runtime/12.4.0 => gcc-runtime/11.5.0
If you want to see in detail how each environment and software package is configured, you can use the spack interface to see this information:
[ICL:methane ~]$ source /apps/spacks/2025-08-22/share/spack/setup-env.sh
[ICL:methane ~]$ spack env activate gcc12-cuda12-openblas
[ICL:methane ~]$ spack find -v
==> In environment gcc12-cuda12-openblas
==> 87 root specs
[+] amd-aocl +openmp
[+] aocc +license-agreed
[+] apptainer
[+] astyle
[+] autoconf
[+] automake
[+] bison
[+] boost
[+] cmake
[+] cscope
[+] cubelib
[+] cuda@12
[+] dmtcp
... truncated ...
-- linux-rocky9-x86_64 / [email protected] -----------------------------
[email protected]+openmp build_system=bundle
[email protected]~aocl_gemm+blas+cblas~ilp64~logging+suphandling~tracing build_system=makefile libs=shared,static threads=openmp
[email protected]+amd-dynamic-dispatcher~amd-fast-planner~amd-mpi-vader-limit~debug+mpi+openmp+shared~static~threads build_system=autotools precision=double,float
[email protected]~debug~ilp64~ipo+lapack2flame~logging+shared+static~tracing build_system=cmake build_type=Release generator=make threads=openmp vectorization=auto
[email protected] build_system=scons
[email protected]~ilp64~ipo~pic+shared build_system=cmake build_type=Release generator=make
... truncated ...