Compiling Software on HPC:
Their are two methods in which you can compile software on HPC.
Cluster wide software installs (done by HPC staff) are still the primiary way to get software installed on HPC. This document outlines steps on how to install software that otherwise would not fit a cluster wide install or outline steps for advanced users. If you require help installing software, contact HPC staff.
- The first method is compiling within your home directory, making the software accessible by you and you only.
- The second method is to compile your software in a shared, user contributed folder that allows other members/groups on HPC to use your software.
Compiling Software within Home Directory:
Download and extract the software you wish to install to your home directory. HPC recommends you create a folder called software to store and place you executables. For this example, we will install a fictitious software called gchq, version 1.2. gchq/1.2 comes with a configure and make file. Some software, may not include this. Read the documentation for that specific software.
$ mkdir -p $HOME/software/gchq/1.2
$ cd $HOME/software/gchq/1.2
The folder software/gchq/1.2 is where we install the executables. HPC recommends you conform to this naming scheme: NameOfSoftware/VersionNumber. Using the provided configure and makefile from our fictitious software, we can install it like so:
Assuming everything compiled without issue, the executables for gchq/1.2 should be installed to $HOME/software/gchq/1.2.
$ module load gcc
$ ./configure --prefix=$HOME/software/gchq/1.2
$ make install
The last step is to export gchq/1.2 to our PATH. If your software requires it, you may need to export LD_LIBRARY_PATH and MANPATH.
$ export PATH=$HOME/software/gchq/1.2:$PATH
Compiling Software within USER_CONTRIBUTED_SOFTWARE:
Similar to installing software in the home directory, installing software in the USER_CONTRIBUTED_SOFTWARE space allows all of HPC and to access the software.
We begin by creating the specific folder of where the executables should be placed followed by the naming scheme used on HPC: $USER/NameOfSoftware/VersionNumber. For this example, we will attempt to install a fictitious software named gchq version 1.2.
$ mkdir -p
$ cd /data/apps/user_contributed_software/$USER/gchq/1.2/
Now that we have created the folder of where the executables will be placed, we extract and navigate to where the source code for our software is located, gchq version 1.2. Using the provided configure and makefile from our fictitious software, we can install it like so
$ module load gcc
$ ./configure --prefix=/data/apps/user_contributed_software/$USER/gchq/1.2
$ make install
Assuming everything compiled without issue, the executables for gchq/1.2 should be located within /data/apps/user_contributed_software/$USER/gchq/1.2 folder.
The last step is to email HPC staff to create the module file so it will appear via module avail. When emailing HPC staff, include the following:
- Name of Software / Version Number
- 1-2 Sentences of what the software does
- Any bugs / comments / notes of software
- The relevant PATH/LD_LIBRARY/MANPATH directories