Available Software on Fox

Software as Modules

Scientific software on Fox are installed as modules. Which means when a user logs in the software might not be loaded, although it is installed.

For example if a user wants to use the R software


[user@FOX]$ R --version
-bash: R: command not found

when this happens we need to see if it is installed first by using the module avail command. module aval without an argument would print all the installed software, making it difficult to locate what we are looking for. Therefore it is recommended to be more specific.

For example module avail R/4 prints all software modules with the string “R/4” in it's name


[user@FOX]$ module avail R/4
----------------- /cluster/modulefiles/all -------------------
   MPFR/4.0.2-GCCcore-8.3.0         NSPR/4.21-GCCcore-8.3.0
   MPFR/4.1.0-GCCcore-10.2.0        R/4.0.0-foss-2020a
   MUMmer/4.0.0rc1-GCCcore-9.3.0

Another way to be more specific is to use module spider command

[user@FOX]$ module spider R

-----------------------------------------------------------
  R:
-----------------------------------------------------------
    Description:
      R is a free software environment for statistical computing
      and graphics.

     Versions:
        R/3.6.0-foss-2019a
        R/3.6.2-foss-2019b
        R/4.0.0-foss-2020a

After locating the module we need to load the module using the module load command. This will load the requested module and all of its dependencies.


[user@FOX]$ module load R/4.0.0-foss-2020a
[user@FOX]$ module list

Currently Loaded Modules:
  1) GCCcore/9.3.0                     34) LLVM/9.0.1-GCCcore-9.3.0
  2) zlib/1.2.11-GCCcore-9.3.0         35) Mesa/20.0.2-GCCcore-9.3.0
  3) binutils/2.34-GCCcore-9.3.0       36) libGLU/9.0.1-GCCcore-9.3.0
  4) GCC/9.3.0                         37) pixman/0.38.4-GCCcore-9.3.0
  5) numactl/2.0.13-GCCcore-9.3.0      38) libffi/3.3-GCCcore-9.3.0
  6) XZ/5.2.5-GCCcore-9.3.0            39) gettext/0.20.1-GCCcore-9.3.0
  7) libxml2/2.9.10-GCCcore-9.3.0      40) PCRE/8.44-GCCcore-9.3.0
  8) libpciaccess/0.16-GCCcore-9.3.0   41) GLib/2.64.1-GCCcore-9.3.0
  9) hwloc/2.2.0-GCCcore-9.3.0         42) cairo/1.16.0-GCCcore-9.3.0
 10) libevent/2.1.11-GCCcore-9.3.0     43) libreadline/8.0-GCCcore-9.3.0
 11) UCX/1.8.0-GCCcore-9.3.0           44) Tcl/8.6.10-GCCcore-9.3.0
 12) libfabric/1.11.0-GCCcore-9.3.0    45) SQLite/3.31.1-GCCcore-9.3.0
 13) OpenMPI/4.0.3-GCC-9.3.0           46) PCRE2/10.34-GCCcore-9.3.0
 14) OpenBLAS/0.3.9-GCC-9.3.0          47) NASM/2.14.02-GCCcore-9.3.0
 15) gompi/2020a                       48) libjpeg-turbo/2.0.4-GCCcore-9.3.0
 16) FFTW/3.3.8-gompi-2020a            49) LibTIFF/4.1.0-GCCcore-9.3.0
 17) ScaLAPACK/2.1.0-gompi-2020a       50) Tk/8.6.10-GCCcore-9.3.0
 18) foss/2020a                        51) cURL/7.69.1-GCCcore-9.3.0
 19) bzip2/1.0.8-GCCcore-9.3.0         52) GMP/6.2.0-GCCcore-9.3.0
 20) expat/2.2.9-GCCcore-9.3.0         53) NLopt/2.6.1-GCCcore-9.3.0
 21) libpng/1.6.37-GCCcore-9.3.0       54) libsndfile/1.0.28-GCCcore-9.3.0
 22) freetype/2.10.1-GCCcore-9.3.0     55) ICU/66.1-GCCcore-9.3.0
 23) ncurses/6.2-GCCcore-9.3.0         56) Szip/2.1.1-GCCcore-9.3.0
 24) util-linux/2.35-GCCcore-9.3.0     57) HDF5/1.10.6-gompi-2020a
 25) fontconfig/2.13.92-GCCcore-9.3.0  58) UDUNITS/2.2.26-foss-2020a
 26) xorg-macros/1.19.2-GCCcore-9.3.0  59) GSL/2.6-GCC-9.3.0
 27) X11/20200222-GCCcore-9.3.0        60) Ghostscript/9.52-GCCcore-9.3.0
 28) gzip/1.10-GCCcore-9.3.0           61) JasPer/2.0.14-GCCcore-9.3.0
 29) lz4/1.9.2-GCCcore-9.3.0           62) LittleCMS/2.9-GCCcore-9.3.0
 30) zstd/1.4.4-GCCcore-9.3.0          63) ImageMagick/7.0.10-1-GCCcore-9.3.0
 31) libdrm/2.4.100-GCCcore-9.3.0      64) GLPK/4.65-GCCcore-9.3.0
 32) libglvnd/1.2.0-GCCcore-9.3.0      65) Java/11.0.2
 33) libunwind/1.3.1-GCCcore-9.3.0     66) R/4.0.0-foss-2020a


[user@FOX]$ R --version
R version 4.0.0 (2020-04-24) -- "Arbor Day"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.


This setup has many advantages over making all software at once.

Load modules in a job

We need to load the software modules in the same way in job scripts as well. It is highly recommended to reset the module environment by using module purge command to avoid any modules being propagating to the job.


#SBATCH --account=MyProject
#SBATCH --job-name=MyJob
#SBATCH --time=1-0:0:0
#SBATCH --mem-per-cpu=3G
#SBATCH --ntasks=16

module purge
module load R/4.0.0-foss-2020a
Rscript myscript.R
 

More examples

Find available Python3 versions and load one of them

[user@FOX]$ module avail python/3

[user@FOX]$ module purge
[user@FOX]$ python3 --version
Python 3.6.8

In this case there is python 3.6.8 available system wide, but let's say we need to use Python 3.8.6

[user@FOX]$ module avail python/3

---------------------------------- /cluster/modulefiles/all -----------------------------------
   protobuf-python/3.10.0-foss-2019b-Python-3.7.4        Python/3.7.4-GCCcore-8.3.0
   protobuf-python/3.10.0-fosscuda-2019b-Python-3.7.4    Python/3.8.2-GCCcore-9.3.0
   protobuf-python/3.14.0-GCCcore-10.2.0                 Python/3.8.6-GCCcore-10.2.0
   Python/3.7.2-GCCcore-8.2.0

Use "module spider" to find all possible modules and extensions.
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the
"keys".


[user@FOX]$ module load Python/3.8.6-GCCcore-10.2.0
[user@FOX]$ python3 --version
Python 3.8.6
[user@FOX]$