Software Available on Savio
Overview¶
Savio provides a variety of software installed by the system administrators and BRC consultants, including compilers, interpreters, and tools for statistical analysis, data visualization, bioinformatics, computational biology, and other sciences. You can access much of the software available on the Savio cluster using Environment Module commands. These commands allow you to display currently loaded and available software packages as well as to load and unload the packages and their associated runtime environments.
The Environment Module system allows users to manage their runtime environments dynamically on the Savio cluster. This is accomplished by loading and unloading modulefiles which contain the application specific information for setting a user’s environment, primarily the shell environment variables, such as PATH
, LD_LIBRARY_PATH
, etc. The module system is useful in managing potentially conflicting applications, as well as different versions of the same application, especially in a shared computing environment.
In addition to the software provided on the Savio cluster you are welcome to install your own software.
Accessing Software Using Environment Modules¶
All of the module commands begin with module
and are followed by a subcommand. (In this list of commands, a vertical bar (|
) means “or”, e.g., module add
and module load
are equivalent. You'll need to substitute actual modulefile names for modulefile
, modulefile1
, and modulefile2
in the examples below.)
module avail
- List all available modulefiles in the currentMODULEPATH
(i.e. available to you).module list
- List modules loaded into your environment.module add|load
modulefile
...
- Load modulefile(s) into your environment.module rm|unload
modulefile
...
- Remove modulefile(s) from your environment.module swap|switch [
modulefile1
]
modulefile2
- Switch loaded
modulefile1
withmodulefile2
.module show|display
modulefile
...
- Display configuration information about the specified modulefile(s).module whatis [
modulefile
...]
- Display summary information about the specified modulefile(s).module purge
- Unload all loaded modulefiles.
For more detailed usage instructions for the module
command please run man module
on the cluster.
Default Modules¶
Using module load
command without specifying the version number loads the default version of the package.
As of November 2022, the default version of a given package will generally be the most recent version that Savio has installed.
We strongly recommend that users explicitly provide the version number following the package name when using module load
, e.g.,
module load gcc/11.3.0
This improves reproducibility and (for compiler-related modules) ensures that loaded compilers are compatible wth your code.
Modules Organized in a Hierarchical Structure¶
Savio uses a hierarchical structure to manage module dependencies, so some modulefiles will only be available after their dependent modulefile is loaded. For example, C libraries will only become available after their parent C compiler has been loaded. Here we can see the modules that are visible only after loading gcc
:
[casey@n0000 ~]$ module load gcc/6.3.0
[casey@n0000 ~]$ module avail
---- /global/software/sl-7.x86_64/modfiles/langs ----
clang/3.9.1 cuda/8.0 gcc/4.8.5 gcc/6.3.0 java/1.8.0_121 python/2.7 python/3.6 r/3.4.2
---- /global/software/sl-7.x86_64/modfiles/tools ----
arpack-ng/3.4.0 gflags/2.2.0 gv/3.7.4 lmdb/0.9.19 nano/2.7.4 qt/5.4.2 texlive/2016
---- /global/software/sl-7.x86_64/modfiles/gcc/6.3.0 ----
antlr/2.7.7-gcc fftw/2.1.5-gcc hdf5/1.8.18-gcc-p ncl/6.3.0-gcc ncview/2.1.7-gcc openmpi/2.0.2-gcc
To view a list of all modules including those only visible after loading their dependencies enter the following command:
find /global/software/sl-7.x86_64/modfiles -type d -exec ls -d {} \;
Example Usage¶
It can be helpful to try out each of the following examples in sequence to more fully understand how environment modules work. Please note that the output here may vary from your own depending on module updates and your particular access privileges.
[casey@n0000 ~]$ module avail
---- /global/software/sl-7.x86_64/modfiles/langs ----
clang/3.9.1 cuda/8.0 gcc/4.8.5 gcc/6.3.0 java/1.8.0_121 python/2.7 python/3.6 r/3.4.2
---- /global/software/sl-7.x86_64/modfiles/tools ----
arpack-ng/3.4.0 gflags/2.2.0 gv/3.7.4 lmdb/0.9.19 nano/2.7.4 qt/5.4.2 texlive/2016
---- /global/software/sl-7.x86_64/modfiles/apps ----
bio/blast/2.6.0 math/octave/current ml/mxnet/0.9.3-py35 ml/theano/current-py36
...
[casey@n0000 ~]$ module list
No Modulefiles Currently Loaded.
[casey@n0000 ~]$ module load intel
[casey@n0000 ~]$ module list
Currently Loaded Modulefiles:
1) intel/2016.4.072
[casey@n0000 ~]$ module load openmpi mkl
[casey@n0000 ~]$ module list
Currently Loaded Modulefiles:
1) intel/2016.4.072 3) mkl/2016.4.072
2) openmpi/2.0.2-intel
[casey@n0000 ~]$ module unload openmpi
[casey@n0000 ~]$ module list
Currently Loaded Modulefiles:
1) intel/2016.4.072 2) mkl/2016.4.072
[casey@n0000 ~]$ module switch mkl lapack
[casey@n0000 ~]$ module list
Currently Loaded Modulefiles:
1) intel/2016.4.072 2) lapack/3.8.0-intel
[casey@n0000 ~]$ module show mkl
-------------------------------------------------------------------
/global/software/sl-7.x86_64/modfiles/intel/2016.4.072/mkl/2016.4.072:
module-whatis This module sets up MKL 2016.4.072 in your environment.
setenv MKL_DIR /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl
setenv MKLROOT /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl
prepend-path CPATH /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/include
prepend-path CPATH /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/include/fftw
prepend-path FPATH /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/include
prepend-path FPATH /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/include/fftw
prepend-path INCLUDE /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/include
prepend-path INCLUDE /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/include/fftw
prepend-path LIBRARY_PATH /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/lib/intel64_lin
prepend-path LD_LIBRARY_PATH /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/lib/intel64_lin
prepend-path MIC_LIBRARY_PATH /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/lib/intel64_lin_mic
prepend-path MIC_LD_LIBRARY_PATH /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/lib/intel64_lin_mic
prepend-path SINK_LD_LIBRARY_PATH /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/lib/intel64_lin_mic
prepend-path NLSPATH /global/software/sl-7.x86_64/modules/langs/intel/2016.4.072/mkl/lib/intel64_lin/locale/en_US
-------------------------------------------------------------------`
[casey@n0000 ~]$ module whatis mkl
mkl : This module sets up MKL 2016.4.072 in your environment.
[casey@n0000 ~]$ module purge
[casey@n0000 ~]$ module lis
No Modulefiles Currently Loaded.
[casey@n0000 ~]$ module avail
---- /global/software/sl-7.x86_64/modfiles/langs ----
clang/3.9.1 cuda/8.0 gcc/4.8.5 gcc/6.3.0 java/1.8.0_121 python/2.7 python/3.6 r/3.4.2
---- /global/software/sl-7.x86_64/modfiles/tools ----
arpack-ng/3.4.0 gflags/2.2.0 gv/3.7.4 lmdb/0.9.19 nano/2.7.4 qt/5.4.2 texlive/2016
---- /global/software/sl-7.x86_64/modfiles/apps ----
bio/blast/2.6.0 math/octave/current ml/mxnet/0.9.3-py35 ml/theano/current-py36
Bioinformatics Software¶
All Savio users can use the bioinformatics software available through the CGRL.
CGRL users can automatically see that software when running module avail
. Non-CGRL users can add the location of the software to their MODULEPATH and will then be able to see the software available and to load the modules:
export MODULEPATH=${MODULEPATH}:/clusterfs/vector/home/groups/software/sl-7.x86_64/modfiles
module avail
To view an exhaustive list of CGRL modules, including those hidden under dependencies:
find /clusterfs/vector/home/groups/software/sl-7.x86_64/modfiles -type d -exec ls -d {} \;
Software Provided on Savio¶
Research IT provides and maintains a set of broadly used and general purpose software modules. Our aim is to provide an ecosystem that most users can rely on to accomplish their research and studies.
For a comprehensive and up-to-date list of software provided on the cluster, run the module avail
command as described above, or find /global/software/sl-7.x86_64/modfiles -type d -exec ls -d {} \;
.
Category | Application/Library Name |
---|---|
Development Tools | |
Editor/IDE | Emacs, Vim, Nano, cmake, cscope, ctags |
SCM | Git, Mercurial |
Debugger/Profiler/Tracer | GDB, gprof, Valgrind, TAU, Allinea DDT |
Languages/Platforms | GCC, Intel, Perl, Python, Java, Boost, CUDA, UPC, Open MPI, TBB, MPI4Py, Python / IPython, R, MATLAB, Octave, Julia |
Math Libraries | MKL, ATLAS, FFTW, FFTW3, GSL, LAPACK, ScaLAPACK, NumPy, SciPy, Eigen |
IO Libraries | HDF5, NetCDF, NCO, NCL |
Data processing, Visualization, and Machine Learning Tools | |
Data Processing/Visualization | Gnuplot, Grace, Graphviz, ImageMagick, MATLAB, Octave, ParaView, Python / IPython, R, VisIt, VMD, yt, Matplotlib |
Machine Learning | Tensorflow, Caffe, H2O, MXNet, Theano, Torch, Scikit-learn |
Bioinformatics | BLAST, Bowtie, Picard, SAMtools, VCFtools |
Typesetting and Publishing Tools | |
Typesetting | TeX Live, Ghostscript, Doxygen |
Requesting New Modules or Updates¶
Software installed within the Environment Module system must meet the requirements specified under "Installing Software". Modules are updated at most biannually, and we request that you install and maintain packages that require more frequent updates yourself.
To request additional software be installed or existing packages to be upgraded please use our Software Request Form. Expect to be contacted regarding your request within three business days (except academic holidays).