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 avail

Shows what modules are available on the system

module whatis

Shows what they do

module load openmpi-intel

Makes Intel MPI libraries and Intel Fortran compiler available

module purge

Unloads all of them

module list

Shows which module are loaded

module unload openmpi-intel intel

Unloads 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 work flows

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 Name

Version

beagle

2.1.2

beagle

3.1.2

fastqc

0.11.7

gatk

3.4

gatk

3.7

gatk

4.0.1.1

gatk

4.0.11.0

gatk

4.1.2.0

gem

3.3

juicer

1.6.2

mauve

20150213

maven

3.3.9

nighres

1.1.0b1

nilearn

0.6.2

picard

2.9.2

picard

2.19.0

R

3.5.1

R

3.5.2-openblas

R

3.5.3-mkl

R

3.6.0-mkl

R

3.6.2-mkl

R

4.0.0-openblas

snpeff

4.3t

swig

3.0.12

swig

4.0.1

xnat-desktop

1.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