Module Environments - icl-utk-edu/cluster GitHub Wiki
== This feature is currently being tested ==
The new module systems implements software modules into self-consistent 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
. To test the new software module environments on the ICL clusters, you need to source
a setup script into your shell: source /apps/spacks/2025-04-15/lmod.sh
. This will automatically load the default environment env/gcc12-cuda12
. You can then load software packages in the normal fashion:
[ICL:methane ~]$ source /apps/spacks/2025-04-15/lmod.sh
[ICL:methane ~]$ module avail
----------------------- /apps/spacks/2025-04-15/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-04-15/share/spack/modules/gcc11-cuda12/linux-rocky9-x86_64 -----------------------
py-virtualenv/20.26.5 python-venv/1.0
------------------------------------- /apps/spacks/2025-04-15/share/spack/modules/envs -------------------------------------
env/gcc11-cuda11 env/gcc11-cuda12 (L) env/gcc12-cuda12 (D) env/gcc13-cuda12 env/gcc14-cuda12
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
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-04-15/share/spack/setup-env.sh
[ICL:methane ~]$ spack env activate gcc12-cuda12
[ICL:methane ~]$ spack find -v
==> In environment gcc12-cuda12
==> 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 ...