Skip to main content

Software on MonARCH

MonARCH uses a modular system to manage software.

Modules​

MonARCH supports a wide range of software packages. The Linux environment module utility is used to load and unload different software packages. When a module is loaded, it sets specific environment variables (e.g., PATH, LD_LIBRARY_PATH, etc.) to the appropriate pathnames where the software is installed. Environment Modules There may be occasions where you need to use different compilers and/or libraries from those found in your usual environment, and you therefore need to adjust your environment variables accordingly. The module command makes this easy. Some examples of its use are:

Module availableShows what modules are available on the system
module whatisShows what they do
module load openmpi-intelMakes Intel MPI libraries and Intel Fortran compiler available
module purgeUnloads all of them
module listShows which module are loaded
module unload openmpi-intel intelUnloads Intel MPI and Intel Fortran modules
module display [modulefile]Use this command to see exactly what a given modulefile will do to your environment, such as what will be added to the PATH, MANPATH, etc. environment variables

'module load' example​

Here is an example of how to load the GNU C/C++ compiler.

module load gcc/4.9.1

That's all! Now here we put some extra Linux commands to show that, by loading the module, we override the default System compiler.

# show that we have the default compiler
#
which gcc
/usr/bin/gcc
gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info
--enable-shared --enable-threads=posix --enable-checking=release
--with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-libgcj-multifile
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada
--enable-java-awt=gtk --disable-dssi --enable-plugin
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre
--with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
#
# load a different compiler
#
module load gcc/4.3.5
#
# check that we have a new version
#
which gcc
/opt/sw/gcc-4.3.5/bin/gcc
gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.3.5/configure --prefix=/opt/sw/gcc-4.3.5
Thread model: posix
gcc version 4.3.5 (GCC)

Suppose we wanted to know more about a module we wanted to load? That can be done via the 'show' command.

'module show' example​

module show gcc/4.3.5

-------------------------------------------------------------------
/opt/sw/Modules/modulefiles/gcc/4.3.5:
module-whatis GNU Compiler Collection is ...
conflict gcc/4.8.0
conflict gcc/4.4.4
conflict gcc/4.5.3
conflict intel/10.0.025
conflict intelC/10.0.025
prepend-path  
PATH /opt/sw/gcc-4.3.5/bin:/opt/sw/gcc-4.3.5/libexec/gcc/x86_64-unknown-linux-gnu/4.3.5
prepend-path LD_LIBRARY_PATH /opt/sw/gcc-4.3.5/lib64:/opt/sw/gcc-4.3.5/lib
prepend-path MANPATH /opt/sw/gcc-4.3.5/man
-------------------------------------------------------------------

'module unload' example​

After loading a gcc module, suppose we wanted to use the system compiler again. All you do is unload the module.

module unload gcc/4.3.5

#
# unload compiler
#
$ module unload gcc/4.3.5
#
# show that we have the default compiler
#
which gcc
/usr/bin/gcc
gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man 
--infodir=/usr/share/info
--enable-shared --enable-threads=posix --enable-checking=release 
--with-system-zlib 
--enable-__cxa_atexit --disable-libunwind-exceptions 
--enable-libgcj-multifile 
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada 
--enable-java-awt=gtk --disable-dssi --enable-plugin 
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic 
--host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)

Example of module conflict​

module load gcc/4.3.5 
module load gcc/4.2.3
gcc/4.2.3(15):ERROR:150: Module 'gcc/4.2.3' conflicts with the currently loaded module(s) 'gcc/4.3.5'
gcc/4.2.3(15):ERROR:102: Tcl command execution failed: conflict gcc/4.3.5

Docker based workflows​

Many fields are beginning to distribute fully self contained pieces of software in a container format known as docker. Unfortunately docker is unsuited as a container format for shared user systems, however it is relatively easy to convert most docker containers for scientific work flows to the Singularity format. If you wish to run software based on a Docker container, please email mcc-help@monash.edu and let us know where we can obtain the container and we will be happy to convert it for you.

Installed Software​

Please use 'module avail' on a login node for a full list of installed software. Here are some examples of how to run some commonly used software.

Software Deprecation​

30 September 2020

Please be advised of upcoming changes to the Java software modules on the system. We have originally scheduled this for the 16th of September.

On Thursday, the 15th of October, 2020, we will be removing these two java software modules:

  • java/1.7.0_67
  • java/1.8.0_77

This change is necessary as critical security vulnerabilities are present in these two versions of Java.

In their place, please use:

  • java/openjdk-1.8.0_242
  • java/openjdk-1.14.02

This change requires updating the java version that underpins the following 26 specific versions of software modules:

Module NameVersion
beagle2.1.2
beagle3.1.2
fastqc0.11.7
gatk3.4
gatk3.7
gatk4.0.1.1
gatk4.0.11.0
gatk4.1.2.0
gem3.3
juicer1.6.2
mauve20150213
maven3.3.9
nighres1.1.0b1
nilearn0.6.2
picard2.9.2
picard2.19.0
R3.5.1
R3.5.2-openblas
R3.5.3-mkl
R3.6.0-mkl
R3.6.2-mkl
R4.0.0-openblas
snpeff4.3t
swig3.0.12
swig4.0.1
xnat-desktop1.0.40

Ahead of the removal of these older java modules, on October 8, 2020 (Thursday), these modules will be updated to use java/openjdk-1.8.0_242. As the difference of this java is the patch number (from the old _77 to the updated _242), we do not expect this to affect the correct operation of these modules. We have conducted simple tests to ensure that the commands for each of these modules work under the patched java.

Please advise us if there are any issues: mcc-help@monash.edu

Requesting an install​

If you require additional software please email mcc-help@monash.edu with the following details:

  • software
  • version
  • URL for download
  • urgency
  • if there are any licensing restrictions we need to impose