Code must be compiled on a compute node. Compilers are not available on the login server.

We recommend contacting Sabalcore Support for building and installing Software. However, you can also build and install software yourself. This section describes various was of installing software.

There are four common methods for building/installing software in your Sabalcore account. The most basic method is to manually compile your code using a compiler directly. You can also use the “make” command along with a Makefile, which describes how to build your software, to compile source codes. Many open-source software packages provide a configure script which creates a Makefile and other configuration files required to build the package. Finally, you may wish to install a package which has been distributed as an RPM. Generally, these packages should be installed by Sabalcore Support, but in some cases you may install them yourself.

Compiling Code – Start an interactive session and load required modules

Review how to invoke an interactive session. Start an interactive session requesting at least one core on the node of your choice. For example

qsub -I -l nodes=1:red:ppn=4

Then use the “module avail” command to see which compilers and libraries are available. We have  GNU and Intel compilers available. Use the

module avail gcc

or

module avail intel

command to see what is available After starting the interactive session, use the “module load <COMPILER>” command to load a specific compiler. Note that <COMPILER> should be the name/version of the compiler you would like to use, e.g. “gcc/10.2.0”.

module load gcc/10.2.0
module list

will list the modules loaded in your environment.

There are many other modules and libs available such as fftw, gnuplot, ect. Load all that you require. If a lib is missing, contact support for installation.

After you have loaded all required modules, you can use the compiler directly from the command-line.  If you need help compiling your code, please contact Support.

Building Software with MPI and InfinBand

If you need to compile your own parallel software, you should use either OpenMPI or mpich as your MPI library when building your application. OpenMPI is the recommended MPI library at Sabalcore. Both are already installed and configured to work well on our HPC systems. Simply load either the ‘openmpi’ or ‘mpich’ module before configuring/building your software. When you load the module, all the correct paths and environment variables will be set. If you need to manually edit a Makefile or supply configuration options for MPI, you can use ‘module show openmpi’ or ‘module show mpich’ to find where the MPI libraries are installed. See Modules for more information. It is not recommended to build your own MPI library. If, for whatever reason, you need to build your own MPI library, please contact support@sabalcore.com for additional assistance.

Commercial Compilers

The Intel v2020 and Oneapi compilers are available system-wide. To invoke the compiler, follow the same instructions as above but you must load the Intel module, specifically:

module load intel/2020/2020.0.166

or for the most current version

module load intel

Not every commercial compiler is available directly to users. Some compilers including PGI and new versions of Intel are available  through Sabalcore Support. Contact Support and include the details of the compilation (location of source, compiler needed, and options). We will then contact you for further instructions.

Using a Makefile or configure script

Makefile – If you already have a Makefile for you source code, then building it is very simple. Just make sure that you load the compiler module and that your Makefile uses one of the available compilers (GNU) then enter ‘make’.

“configure” script – Run the “./configure” command as you normally would but use the –prefix=$HOME option to ensure the package will be installed in your home directory. After configuring, typically you would run the “make”, “make test”, and “make install” commands to complete the installation.

Installing Software

Using an RPM Package

You may want to install a software package from an RPM file into your home-directory. It is recommended that you request such a package to be installed system-wide by contacting Support . However, in some cases, it is possible to install such packages directly in your home-directory. You will have to use at a minimum the –prefix option to rpm to force the installation to occur in your home-directory. You may also need to use the –relocate option. Please refer to “man rpm” for more details. As always, please contact Support  if you require any help.