Software environment on the crill/whale cluster

Apart from the standard packages installed on each node through the Operating System, there are also many other tools and libraries available via local installation and customization. These live under the directory /opt and can be accessed with the module command, e.g.

smith@crill:~> module avail

----------------------------- /usr/share/modules/modulefiles ----
cuda/3.2           intel/11.1         modules            pgi/11.2
cuda/4.0           intel/xe12.0       openmpi/gnu/1.4.3  slurm
dot                login-default      oracle/studio/12.2 system
gcc/4.4.6          module-info        papi/4.1.3

Here we see all the modules that are currently available.

tonyc@crill:~> gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.5/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr ...
Thread model: posix
gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] (SUSE Linux) 

smith@crill:~> module add gcc/4.4.6
smith@crill:~> gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/opt/gnu/gcc/4.4.6 --enable-languages=c,c++
Thread model: posix
gcc version 4.4.6 (GCC) 

smith@crill:~> module rm gcc/4.4.6
smith@crill:~> gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.5/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr ...
Thread model: posix
gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] (SUSE Linux) 

Here we switch from the standard OS GCC 4.5.0 to a locally built GCC version 4.4.6, and then back again (output truncated for brevity).

Shell Tip

When you allocate a job, e.g. with salloc, the system spawns a new shell for that allocation. It's easy to forget that you're in a new shell, especially for an interactive login job. So one suggestion is to include the shell-level in your prompt. For bash, you could add the shell variable SHLVL to PS1 in your .bashrc:

PS1="\u@\h[$SHLVL](\w) "

That way, a regular login to crill will be at level 1, but after a salloc, \$SHLVL will be 2 and will remind you that an allocation still exists:

smith@crill[1](~) salloc -p calc -N 1
salloc: Granted job allocation 599
smithg@crill[2](~) exit
salloc: Relinquishing job allocation 599
smith@crill[1](~) 

Bash also provides for inserting escape sequences into the prompt, so if your terminal emulator supports it, you could make the prompt change color instead if you like. See section references for where to find a guide.