Skip to content

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 current MODULEPATH (i.e. available to you).
  • module list - List modules loaded into your environment.
  • module add|loadmodulefile... - Load modulefile(s) into your environment.
  • module rm|unloadmodulefile... - Remove modulefile(s) from your environment.
  • module swap|switch [modulefile1]modulefile2- Switch loaded modulefile1 with modulefile2.
  • module show|displaymodulefile... - 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).