As you can see, toolchains can depend on each other. For instance, the iomkl toolchain, depends on iompi, which depends on iccifort, which depend on icc and ifort, which depend on GCCcore which depend on GCC. Hence it is very important that the correct versions of all related software are loaded.

With software we provide, the toolchain used to compile is always specified in the "version" of the software that you want to load.

Most Commonly Used Software

We provide lots of versions, you are most likely better off directly loading a toolchain or application to make sure you get the right version, but you can see the versions we have with 'module spider OpenMPI':

Packages

We provide a small number of R modules installed by default, these are generally modules that are needed by more than one person.

Installing your own R Packages

To install your own module, login to Beocat and start R interactively

module load R
R

Then install the package using

install.packages("PACKAGENAME")

Follow the prompts. Note that there is a CRAN mirror at KU - it will be listed as "USA (KS)".

After installing you can test before leaving interactive mode by issuing the command

library("PACKAGENAME")

Running R Jobs

You cannot submit an R script directly. 'sbatch myscript.R' will result in an error. Instead, you need to make a bash script that will call R appropriately. Here is a minimal example. We'll save this as submit-R.sbatch

#!/bin/bash#SBATCH --mem-per-cpu=1G# Now we tell qsub how long we expect our work to take: 15 minutes (D-H:MM:SS)#SBATCH --time=0-0:15:00# Now lets do some actual work. This starts R and loads the file myscript.R
module load R
R --no-save -q < myscript.R

Create a virtual environment. Here I will create a default virtual environment called 'test'. Note that virtualenv --help has many more useful options.

virtualenv test

Lets look at our virtual environments

% ls ~/virtualenvs
test

Activate one of these

%source ~/virtualenvs/test/bin/activate

(After running this command your virtual environment is activated. After you logoff and then logon again your virtual environment will not be loaded so you must rerun this command every time you logon.)

You can now install the python modules you want. This can be done using pip.

Using your virtual environment within a job

The system-wide version of perl is tracking the stable releases of perl. Unfortunately there are some features that we do not include in the system distribution of perl, namely threads.

If you need a newer version (or threads), just load one we provide in our modules (module spider Perl):

Perl/5.26.0-foss-2017beocatb

Perl/5.26.0-iompi-2017beocatb

Submitting a job with Perl

Much like R (above), you cannot simply 'sbatch myProgram.pl', but you must create a submit script which will call perl. Here is an example:

#!/bin/bash#SBATCH --mem-per-cpu=1G# Now we tell qsub how long we expect our work to take: 15 minutes (H:MM:SS)#SBATCH --time=0-0:15:00# Now lets do some actual work.
module load Perl
perl /path/to/myProgram.pl

Octave for MatLab codes

module load Octave/4.2.1-foss-2017beocatb-enable64

The 64-bit version of Octave can be loaded using the command above. Octave can then be used
to work with MatLab codes on the head node and to submit jobs to the compute nodes through the
sbatch scheduler. Octave is made to run MatLab code, but it does have limitations and does not support
everything that MatLab itself does.

MatLab compiler

Beocat also has a single-user license for the MatLab compiler and the most common toolboxes
including the Parallel Computing Toolbox, Optimization Toolbox, Statistics and Machine Learning Toolbox,
Image Processing Toolbox, Curve Fitting Toolbox, Neural Network Toolbox, Sumbolic Math Toolbox,
Global Optimization Toolbox, and the Bioinformatics Toolbox.

Since we only have a single-user license, this means that you will be expected to develop your MatLab code
with Octave or elsewhere on a laptop or departmental server. Once you're ready to do large runs, then you
move your code to Beocat, compile the MatLab code into an executable, and you can submit as many jobs as
you want to the scheduler. To use the MatLab compiler, you need to load the MATLAB module to compile code and
load the mcr module to run the resulting MatLab executable.

Again, we only have a single-user license for MatLab so the model is to develop and debug your MatLab code
elsewhere or using Octave on Beocat, then you can compile the MatLab code into an executable and run it without
limits on Beocat.

Installing my own software

Installing and maintaining software for the many different users of Beocat would be very difficult, if not impossible. For this reason, we don't generally install user-run software on our cluster. Instead, we ask that you install it into your home directories.

In many cases, the software vendor or support site will incorrectly assume that you are installing the software system-wide or that you need 'sudo' access.

As a quick example of installing software in your home directory, we have a sample video on our Training Videos page. If you're still having problems or questions, please contact support as mentioned on our Main Page.