Updated 2020-03-23

An in-depth introduction to local installations of software

Overview

Many times, it will be necessary to install local versions of software on HPC clusters in which users do not have evaluated privileges to install the software globally. In other cases, the particular version of the software is unique to your research needs (i.e. a local modification or experimental version, which means it is not appropriate for other users of the system.

General considerations

Whenever an installation of a piece of software is needed, there are several things to keep in mind:

  • How do I obtain the software?
  • What are the terms of the license?
  • Which toolchain is preferred? Are there any known restrictions, particular versions of compiler and MPI-ecosystem that problematic?
  • What dependencies are needed?
  • Are those pieces of software available on the system?
  • If not, what is involved in obtaining the needed dependencies?
  • If there are multiple possbily sets of dependencies, which should I choose?

In some of the preceding questions, there are no right answers.

Obtaining source code or packages

Source code in most cases will be available via various internet.

Downloading of software archive (e.g. tar.gz, zip)

Some software is distributed as archives. In most cases, these archives can be downloaded directly to the system via wget or curl commands. However, it may be necessary to download the software via normal means to a local machine and then transfer the archive to the remote system.

Git Repositories

Git repositories are a popular way to share code, especially code that is open to contributions from external collaborators.

Specific Examples

LAMMPS

The Large-scale Atomic/Molecular Massively Parallel Simulator is a widely-used