Skip to content

Installing or Requesting New Software

In the event that your research requires software that is not already available (or you need alternate versions of existing software), the fastest method to install them in your group directory. URCF staff may also assist with installing software that will be used by multiple groups. To request new software or new versions of existing software to be installed for cluster-wide access, please submit a request to the URCF support staff.

General Notes

Many packages assume you will be installing on your own computer, and therefore the instructions would not be suitable for installation on a shared computing cluster like Picotte.

Most software packages distributed as source code come with some installation instructions. Here are some things to watch out for.

  • sudo is for running commands as an administrator. You will not be able to do this.
  • apt and apt-get are used on Ubuntu and other Debian-based Linux distributions. Proteus uses Red Hat, which uses yum. In either case, only administrators are allowed to use those commands, as they install software system-wide.
  • For Python modules, see Python - Installing Your Own Python Modules
  • For R packages, see R - Third-Party R Packages
  • For Perl, use cpan with the local::lib module1

Spack on Picotte

If you are installing software on Picotte, we suggest using Spack as it deals with a lot of the non-standard details of many scientific software codebases, and can handle installation and use of multiple compilers and versions of compilers. Spack can also create appropriate modulefiles.

PATH environment variable and ~/bin

Linux looks at the environment variable PATH for a list of directories (separated by colons) which may contain executables. The following modification to ~/.bashrc prepends the directory ~/bin to the existing value of PATH at every login. If you plan to store binaries in a different directory, replace ~/bin with that directory instead. Please note that in the PATH variable, a colon (:) is used to separate different directories.

~/.bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
export PATH=~/bin:${PATH}

Installation Details

We suggest the following layout:

  • base install directory:
    • Picotte: /ifs/groups/myresearchGrp/opt
  • which means that standard GNU-like software installation would have
    • Picotte: PREFIX=/ifs/groups/myresearchGrp/opt
  • create your own Module File[2] so that your users may do something like "module load myresearchGrp-python" to load your group's version of Python

Compiling

As mentioned elsewhere,[3] there are many choices to be made when compiling software. If you wish to have code optimized specifically for Intel CPUs, use the Intel Composer XE toolset. For AMD CPUs, use Open64 and the ACML math library. If you don't want to have such specific versions, you should use the GNU compiler (GCC). By default, all users have the Bright-supplied GCC 4.8.1 module loaded.

GNU-style Software

GNU-style software is distributed with a configure script, which queries the system and environment for prerequisites, and appropriate compiler settings. The main one to change is the prefix, which sets the base directory for installation. Following the recommendation above, a typical invocation would be:

[juser@picotte001 somepkg-3.1.2]$ ./configure --prefix=/ifs/groups/myresearchGrp/opt`

This should result in the following directories, or some subset:

/ifs/groups/myresearchGrp/opt/bin /etc /include /lib /share

You will have to modify your environment to add the bin directory to PATH, and lib to LD_LIBRARY_PATH. We recommend doing this with a modulefile.[4]

References

[2] Creating Your Own Module Files

[3] Compiling Quick Start Guide

[4] Creating Your Own Module Files