Skip to content

Software Quarantine at the CIC

gdevenyi edited this page Sep 30, 2014 · 6 revisions

A software quarantine system is designed to allow users of a computer system to:

  • explicitly decide which version of a software package they are running
  • maintain that version across different physical computers
  • enhance reproducibility of processing pipelines by maintaining fixed software versions

The CIC at the Douglas has a software quarantine system similar to those implemented on various supercomputing clusters using the "modules" system.

By default, upon logging into a CIC computer system, there is no scientific software available. This is intentional, as users must make a conscious choice to load the version of the software they will use for analysis. This is also because some software packages offer mutually conflicting versions of the same tools, as such, it is not possible to have all of the quarantine loaded at once.

Available software

To see the software available on the quarantine, type the following

> module avail
-------------------------------------------- /usr/share/modules/versions ---------------------------------
3.2.10

------------------------------------------- /usr/share/modules/modulefiles -------------------------------
dot         module-git  module-info modules     null        use.own

---------------------------------------------- /opt/quarantine/modules -----------------------------------
AFNI/2014.09.08.21.47EDT                  minc-toolkit-extras/1.0
anaconda/2.0.1                            minc-tools/2.2.00
brain-view2/1.0                           MIPAV/7.1.1
CIVET/1.1.10                              pyminc/0.4
CIVET/1.1.12                              quarantine
CIVET-extras/1.0                          R/3.1.1
freesurfer/5.3.0                          RMINC/1.2.4.5^minc-toolkit-1.0.01^R-3.1.1
FSL/5.0.7                                 rstudio/0.98.1049
gcc/4.1.2                                 SGE-extras/1.0
git/2.1.0                                 SPM/12b_r6080
matlab/R2012a                             SPM/8_r5236
minc-toolkit/1.0.01

The name of each module is before the forward slash, and after is a version, note that some software has more than one version available.

Loading Software

To load a module, you must choose both the name and the version

> module load CIVET/1.1.10

Successful loading of the module will produce no output.

Dependencies and conflicts

Some software modules require other modules to function, or as noted above, conflict other versions of the same software or different software. When you try to load a module which depends on something else, the module system will inform you:

> module load SPM/8_r5236
SPM/8_r5236(7):ERROR:151: Module 'SPM/8_r5236' depends on one of the module(s) 'matlab/R2012a'
SPM/8_r5236(7):ERROR:102: Tcl command execution failed: prereq matlab
> module load matlab
> module load SPM/8_r5236

Similarly, if you try and load something that conflicts, it will also tell you:

> module load minc-tools/2.2.00
> module load minc-toolkit/1.0.01
minc-toolkit/1.0.01(6):ERROR:150: Module 'minc-toolkit/1.0.01' conflicts with the currently loaded module(s) 'minc-tools/2.2.00'
minc-toolkit/1.0.01(6):ERROR:102: Tcl command execution failed: conflict minc-tools

You can resolve a module conflict by unloading the conflicting module

> module unload minc-tools/2.2.00
> module load minc-toolkit/1.0.01
Clone this wiki locally