diff --git a/WRF.md b/WRF.md index 0daebf6e644b9db353735e22f84e99fa73b735f5..84af0dc3bbe3e91526a6c566def0c7962af9fadd 100644 --- a/WRF.md +++ b/WRF.md @@ -199,14 +199,9 @@ However, we describe the typical workflow of the compilation, for anyone that wi module load pkgconf/1.8.0-intel-2021.5.0-bkuyrr7 intel-oneapi-compilers/2022.1.0-gcc-8.5.0-kiyqwf7 intel-oneapi-mpi/2021.6.0-intel-2021.5.0-wpt4y32 zlib/1.2.12-intel-2021.5.0-pctnhmb hdf5/1.12.2-intel-2021.5.0-loke5pd netcdf-c/4.8.1-intel-2021.5.0-hmrqrz2 netcdf-fortran/4.6.0-intel-2021.5.0-pnaropy ``` - VSC5 **note: this actually needs testing**: - ``` - module load intel-oneapi-mpi/2021.4.0-intel-2021.5.0-jjcwtuf intel-oneapi-compilers/2022.0.2-gcc-11.2.0-yzi4tsu netcdf-c/4.8.1-intel-2021.5.0-gwvd3zo netcdf-fortran/4.4.5-intel-2021.5.0-um5yjit numactl/2.0.14-intel-2021.5.0-beunpgg pkgconf/1.8.0-intel-2021.5.0-ig5i4nq zlib/1.2.11-intel-2021.5.0-6lzwo7c hdf5/1.12.1-intel-2021.5.0-isqgsra - ``` - Load modules with `module load LIST-OF-MODULE-NAMES`, unload them one by one with `module unload LIST-OF-MODULE-NAMES`, unload all of them at the same time with `module purge`, get information about a specific module with `module show MODULE_NAME`. Modules may depend on each other. If the system is set up properly, a request to load one module will automatically load any other prerequisite ones. - After loading modules, it is also recommended to set the `NETCDF` environment variable to the root variable of the netcdf installation. Use `module show` to see which directory is correct. For instance: + After loading modules, it is also recommended to set the `NETCDF` environment variable to the root variable of the netcdf installation. On srvx1, jet and VSC4, use `module show` to see which directory is correct. For instance: ``` (skylake) [serafins@l46 TEAMx_real]$ module list @@ -232,7 +227,36 @@ However, we describe the typical workflow of the compilation, for anyone that wi NETCDF=/gpfs/opt/sw/spack-0.19.0/opt/spack/linux-almalinux8-skylake/intel-2021.5.0/netcdf-fortran-4.6.0-pnaropyoft7hicu7bfsugqa2aqcsggxj ``` - The environment must be consistent between compilation and runtime. If you compile WRF with a set of modules loaded, you must run it with the same set of modules. + On VSC5 do not use `module`, but spack: + ``` + spack load intel-oneapi-compilers + spack load netcdf-fortran@4.4.5%intel + ``` + + To check the libary paths of loaded modules: + ``` + (zen3) [serafins@l51 ~]$ spack find --loaded --paths + ==> In environment zen3 + ... + ==> 8 loaded packages + -- linux-almalinux8-zen2 / intel@2021.5.0 ----------------------- + hdf5@1.10.5 /gpfs/opt/sw/spack-0.17.1/opt/spack/linux-almalinux8-zen2/intel-2021.5.0/hdf5-1.10.5-tty2baooecmvy5vhfhyt5uc3bj46cwpl + intel-oneapi-mpi@2021.4.0 /gpfs/opt/sw/spack-0.17.1/opt/spack/linux-almalinux8-zen2/intel-2021.5.0/intel-oneapi-mpi-2021.4. 0-jjcwtufcblofydeg2s3vm7fjb3qsezpf + netcdf-c@4.7.0 /gpfs/opt/sw/spack-0.17.1/opt/spack/linux-almalinux8-zen2/intel-2021.5.0/netcdf-c-4.7.0-spzlhyrfnqcl53ji25zop2adp222ftq4 + netcdf-fortran@4.4.5 /gpfs/opt/sw/spack-0.17.1/opt/spack/linux-almalinux8-zen2/intel-2021.5.0/netcdf-fortran-4.4.5-um5yjit56ufokugazyhqgpcldrjfb2w4 + numactl@2.0.14 /gpfs/opt/sw/spack-0.17.1/opt/spack/linux-almalinux8-zen2/intel-2021.5.0/numactl-2.0.14-beunpggnwwluwk7svx6zkjohv2ueayei + pkgconf@1.8.0 /gpfs/opt/sw/spack-0.17.1/opt/spack/linux-almalinux8-zen2/intel-2021.5.0/pkgconf-1.8.0-ig5i4nqzqldjasgmkowp5ttfevdb4bnr + zlib@1.2.11 /gpfs/opt/sw/spack-0.17.1/opt/spack/linux-almalinux8-zen2/intel-2021.5.0/zlib-1.2.11-6lzwo7c5o3db2q7hcznhzr6k3klh7wok + + -- linux-almalinux8-zen3 / gcc@11.2.0 --------------------------- + intel-oneapi-compilers@2022.0.2 /gpfs/opt/sw/spack-0.17.1/opt/spack/linux-almalinux8-zen3/gcc-11.2.0/intel-oneapi-compilers-2022.0.2-yzi4tsud2tqh4s6ykg2ulr7pp7guyiej + (zen3) [serafins@l51 ~]$ export NETCDF=/gpfs/opt/sw/spack-0.17.1/opt/spack/linux-almalinux8-zen2/intel-2021.5.0/netcdf-fortran-4.4.5-um5yjit56ufokugazyhqgpcldrjfb2w4 + (zen3) [serafins@l51 ~]$ env|grep NETCDF + NETCDF=/gpfs/opt/sw/spack-0.17.1/opt/spack/linux-almalinux8-zen2/intel-2021.5.0/netcdf-fortran-4.4.5-um5yjit56ufokugazyhqgpcldrjfb2w4 + + ``` + + Important note: **The environment must be consistent between compilation and runtime. If you compile WRF with a set of modules loaded, you must run it with the same set of modules**. * *Configure WRF for compilation.* This will test the system to check that all libraries can be properly linked. Type `./configure`, pick a generic dmpar INTEL (ifort/icc) configuration (usually 15), answer 1 when asked if you want to compile for nesting, then hit enter. "dmpar" means "distributed memory parallelization" and enables running WRF in parallel computing mode. For test compilations or for a toy setup, you might also choose a "serial" configuration.