These are the modules that are currently available on the UCR HPC cluster.
- Keep names of packages to all lowercase when possible.
- Spaces are not allowed, underscores should be used in place of spaces for software module names.
- Symlinks can be used to map to multiple softwares within an environment (ie.
conda
/singularity
) as well as name variations. - When software requires a common write location or unique config file, use environment variables within the module to define these.
-
Source - All source code should be placed under the
/opt/linux/rhel/8.x/x86_64/pkgs/src
directory. Henceforth, this path will be refered to as$HPCC_MODULES/../src
. -
Install - All software installs should be done under the
/opt/linux/rhel/8.x/x86_64/pkgs
directory. Henceforth, this path will be refered to as$HPCC_MODULES
. -
Module - All modules should be defined under this repo, which is cloned under the
/opt/linux/rhel/8.x/x86_64/modules
directory. Henceforth, this path will be refered to as$HPCC_MODULES/../modules
.
Note: Do NOT modify files directly under the
$HPCC_MODULES../modules
directory. Use your own cloned version of this repo.
The following variables are used and should be set automatically:
HPCC_MODULES
- Path dynamically built by /etc/profile.d/hpcc_modules.sh based on OS and arch.MODULESHOME
- Path set by module system to specify home of module system.MODULEPATH
- List set by module system to indicate where modules live (colon delimited).
Note: Exporting
MODULEPATH
to a local clone of this repo can be useful for debugging.
The most common forms of installs are either binary or source.
We do support all kinds of packaged software, thus installations can become more complex then what is covered here.
For specific installation details please refer to the documentation prodvided by the software as well as the individual README.md
files contained within the installed module, assuming that the softwere had been installed previously.
When installing a binary all that is requied is to download and then extract.
Sometimes there may be an install
script to place the binaries under their final resting place, or you may have to do this manually.
When installing from a configure
based install, the following would typically apply:
configure --prefix=$HPCC_MODULES/$SOFT_NAME/$SOFT_VER
make
make install
When installing from a cmake
based install, the following would typically apply:
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$HPCC_MODULES/$SOFT_NAME/$SOFT_VER ../
make
make install
When creating a module you must create a README.md
file within the software module directory with reproducible instructions.
Creating a hpcc_install.sh
script within the source tree can also be very useful for later installs.
- Here is a
cmake
example: openbabel/README.md - Here is a
conda
example: qiime2/README.md - Here is a
singularity
example: freefem/README.md
First set some variables:
# Software name
SOFT_NAME=[software name]
# First character of software name
SOFT_FIRST=${SOFT_NAME:0:1}
# Software version
SOFT_VER=[software version]
- Make sure you have a checkout of the hpcc_modules repository
- Login as
pkgadmin
- Create and move into the
$HPCC_MODULES/../src/$SOFT_FIRST/$SOFT_NAME
directory - Download and extract the source files
- Create a directory named
$HPCC_MODULES/$SOFT_NAME/$SOFT_VER
- Move binaries (precompiled) or install software into the directory created in step 5
- Log out of
pkgadmin
- Move to your local
hpcc_modules
repo checkout - Copy any one of the existing directories, an rename it to
$SOFT_NAME
- Go into the newly created
$SOFT_NAME
directory - By default the latest version will be loaded, if this is not wanted then add the
.version
file - Rename one of the contained files to
$SOFT_VER
- Edit the file from step 12 so that it contains the correct module name, version and paths
git add [soft version]
as well as.version
if added, thengit commit
the changes, lastly dogit push
- After this you can test the installation by trying
module load $SOFT_NAME
andmodule avail $SOFT_NAME
- Make sure to document how the software was installed within a corresponding
README.md
file.