Linux Standard Software

Introduction

On Linux workstations in Stronghold, scientific software is managed using a module system. In particular, there are "software modules" and "environment modules". Both of these are accessible using the Linux command line. In general, we prefer environment modules, because they provide software package collections that are known to work well together.

Software Modules

Software modules on a given workstation can be accessed using the Linux command line. In particular, open the Terminal application and type module avail. This will show a long list of software packages that is organized by category (see example below).
1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ category: languages ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2
R/3.2.3 java/9.0.4 stata/mp-14-20151007
3
R/dev julia/0.4.3 stata/mp-14-20151116
4
anaconda/2-2.4.0 julia/0.4.6 stata/se-14-20151116
5
anaconda/2-2.7.0 julia/0.5.0 stata-addons/v1
6
anaconda/2.3.0 mathematica/11.0.0 stata-addons/v2
7
anaconda/3-2.4.0 matlab/R2017a stata-addons/v3
8
anaconda/3-3.5.0 mro/3.3.1 stata-ado/20160907
9
anaconda/4.3.0 nodejs/0.12.9 stata-mp/19Dec2017
10
java/8u162 scala/2.11.11 texlive/2018
Copied!

Loading a Software Module

In order to use a module, you can simply load if from the command line using the module load command. For example we can load the julia language module by simply typing module load julia from the command line. The software module can now be launched as it normally would be. In the case of Julia, we would simply launch the interpreter by running julia from the command line. Note that this will load the version of Julia that has been designated as the default; as of this writing, that is Julia 0.4.6. However, there is a newer version, which we could load by running module load julia/0.5.0. In this case, we would load version 0.5.0 of Julia.

Environment Modules

Environment modules are essentially a collection of software. For example, a given lab might have a collection of software packages that they use frequently. This collection of packages can be wrapped up in an "environment". Technically speaking, these environments are Conda environments, and we simply store them in the module database as if they were standard software.
We can view the available environment modules by simply running module avail conda. This will show the list of available environment modules (see example below).
1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ name: conda*/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2
conda/bcbi_v0.0.0 conda/cbc_generic conda/psteytest
3
conda/bcbi_v0.0.1 conda/datasci_v0.0.0 conda/riipl_v1
4
conda/bcbi_v0.0.2-alpha conda/datasci_v0.0.1 conda/riipl_v2
5
conda/bcbi_v0.2.3 conda/datasci_v0.0.2 conda/riipl_v3
6
conda/bcbi_v1 conda/datasci_v1 conda/riipl_v4
7
conda/bcbi_v1_mari conda/datasci_v2 conda/riipl_v5
8
conda/bcbi_v2 conda/fgelintest conda/root
9
conda/bjorkegren_v1 conda/graphlab_2.1 conda/sing_v0.1.0
10
conda/cbc_conda_v1 conda/nlp_v0.1.0 conda/stronghold_v1
Copied!
Each of these environment modules contains a huge list of packages. For example, consider the conda/datasci_v2 environment module. In order to view the available software in this particular module, run conda list --name=datasci_v2to produce a huge list of output that resembles the truncated list below.
1
# packages in environment at /opt/browncis/conda/envs/datasci_v2:
2
#
3
alembic 0.9.5 py27h0668a64_0
4
amqp 1.4.9 py27h5eaba50_0 brown-data-science
5
anyjson 0.3.3 py27hdf0fd94_1
6
asn1crypto 0.22.0 py27h94ebe91_1
7
atk 2.25.2 hd48c387_0 brown-data-science
8
atom-editor 1.21.1 h67387a4_0 brown-data-science
9
babel 2.5.0 py27h20693cd_0
10
backports 1.0 py27_0
11
backports_abc 0.5 py27_0
12
billiard 3.3.0.23 py27h318c9ab_0 brown-data-science
13
bkcharts 0.2 py27_0
14
bleach 1.5.0 py27_0
15
bokeh 0.12.7 py27_0
16
boost 1.61.0 py27h2e6ecf4_0 brown-data-science
17
boto3 1.4.4 py27_0
18
botocore 1.5.78 py27hd4e8fcf_0
19
bzip2 1.0.6 h6d464ef_2
20
ca-certificates 2018.03.07 0
21
cairo 1.14.10 haa5651f_5
22
celery 3.1.25 py27h97bc7ca_0 brown-data-science
Copied!

Loading Environment Modules

Much like software modules, we can load environment modules with the module load command. In particular, we give the full name of the module. For example we could load the conda/datasci_v2 module by running module load conda/datasci_v2.

Default Environment Modules to load

The conda/cbc_generic module provides R, Python, and Rstudio. In general, a user may start with the conda/cbc_generic module by
1
module load conda/cbc_generic
Copied!
If a user needs to access Julia, the user may load the conda/bcbi_v0.3.1 by
1
module load conda/bcbi_v0.3.1
Copied!
Last modified 1yr ago