Use Software on the HPC Cluster
This page describes how to install and run software on CHTC’s HPC Cluster.
Contents
- General Software Policies
- Using Pre-Installed Software in Modules
- Installing Software on the Cluster
- Using Software in Jobs
1. General Software Policies
In CHTC, we install a minimal set of software for use on our systems. On the HPC Cluster, CHTC staff manage installations of the following types of programs:
- Compilation tools and common dependencies (e.g. MPI, different GCC versions)
- Software that requires a shared license (e.g. COMSOL)
Information on how to access CHTC-managed installations is in the next section of this guide. If you need to use a program not in that group, the instructions for creating your own installation follow.
If you have questions or concerns about installing your own software or the available dependencies, contact the facilitation team at chtc@cs.wisc.edu.
2. Using Pre-Installed Software in Modules
All software on the cluster that is installed by CHTC staff is available via a tool called “modules”.
A. See Available Software Modules
There are two ways to search through the software modules on the HPC cluster:
- View all modules
This command will show all software modules available:
[alice@login]$ module avail
- Search for specific modules
If you are searching for a specific software module, you can use the
module spider
command with part of the software name. For example, to search for Open MPI modules, you would type:[alice@login]$ module spider openmpi
B. Access Software in Modules
Once you find a software module that you want to use, you need to “load” it
into your command line environment to make it active, filling in module_name
with
the name you found through one of the above steps.
[alice@login]$ module load module_name
When to Load Modules
You can load modules to compile code (see below). If you do this, make sure to load the same modules as part of your job script before running the main command.
You can also load modules to run specific software. If done for interactive testing, this should be done in an interactive job; otherwise, the module should be loaded in the job submit file.
C. Unload Software in Modules
If you no longer want to use a specific software installation, you can “unload” the software module with the following command:
[alice@login]$ module unload module_name
If you want to clear your command line environment and start over, run the following:
[alice@login]$ module purge
3. Installing Software on the Cluster
A. Overview
Unless you are using a licensed software program provided via modules, you are able to compile and install the software you need on the HPC Cluster.
If your software requires modules to compile, you must compile software on an interactive job.
Compilation can be done via an interactive job as described in
our HPC Job Submission Guide.
Software should be installed to your /home/username
directory. If using CHTC’s provided compilation tools via modules, make
sure to load the needed modules before compiling and to load the same
modules in your job submission.
For groups that would like to share software installations among group members, please contact us about getting a shared “group” directory.
If you are new to software installation, see the section below for a more step-by-step description of the process.
B. Step by Step Process
- Download Source Code - download the source code for your desired program. We
recommend downloading it to your
/home/username
directory on the login node. You should only need the source code until the software is properly installed, but if desired, you may keep a zipped copy of the source code in/home
. - Read the Docs - try to find the installation instructions, either online or in the downloaded source code. In particular, you’ll want to note if there are any special requirements for dependencies like MPI or the compiler needed.
- Load Modules - if you are using software modules to help you build your
code, load them now. Keep track of what you use so that you can load them
in your job submit file later. We also recommend doing a
module purge
before loading your compiling modules to make sure you’re starting from a clean environment. - Install - most scientific software follows the three step installation process
of
configure
-make
-make install
.configure
- this step checks for tools and requirements needed to compile the code. This is the step where you set the final installation location of a program. The option for setting this location is typically called the “prefix”; a common syntax is:$ ./configure --prefix=/home/user
. This is where you will want to set the installation location to be your/home
directory.make
- this step compiles and links the code, turning it from human-readable source code to compiled binary code. This is usually the most time consuming step of the installation process.make install
- this step copies compiled files to the final installation location (usually specified in theconfigure
step).
- Clean Up - the final installation should place all needed files into a
subdirectory of your
/home
directory. The source code and location where you ran the compilation commands can be removed at this point.
4. Using Software in Jobs
The commands to run your software will go in the job’s submit file, as described in our HPC job submission guide.
If you used one of the software modules to compile your code, make sure you load it in your job’s submit file before running your main command.
You can access your software by including the path to its location in your
/home
directory, or by setting the PATH
environment variable to include
the software location and then running the command.