Software

Finding Available Software

OIT manages a set of supported software for use on the Hopper Cluster. Software binaries and libraries installed globally by OIT administrators are most often found in the /tools directory, each accompanied with a corresponding Environment Module.

The best way to get started using a piece of software is to take a look at the corresponding module files.

To see what software is currently available on Hopper, you can look in the /tools directory or view available software modules …

$ ls /tools
$ module avail

Each module contains detailed information about the software including a short description, where to obtain documentation, when and how it was installed, and any corresponding changes that are made to your environment when loaded

$ module show <software_name>[/version]

New Software

Any unlicensed open-source software of use to the general user community can be installed by OIT provided that the Hopper Cluster meets the software requirements. Please contact OIT support staff or submit a software request at https://aub.ie/hpcsw.

Licensed software must be legally licensed before it can be installed. Since there are many different types of licenses and different vendor definitions of these licenses, any multi-user licensed software installation needs to be coordinated with OIT support staff. Single-user licensed software should be installed in the user’s /home directory.

Custom software should be built in the user’s /home directory. Users are encouraged to maintain and publish their own local module files to configure the environment for their software.

OIT support staff: hpcadmin@auburn.edu Software request: https://aub.ie/hpcsw

Set the Environment

Using Environment Modules

Different programs require that OS environment variables be correctly defined in order to use them. For example, the commonly used $PATH and $LD_LIBRARY_PATH environment variables assign the locations of available software binaries and the existence of shared libraries, respectively. Most software can be properly executed with the correct manipulation of these variables. More complex software also requires the assignment of additional, custom environment variables.

These variables can be set manually or in the user’s profile through the traditional shell methods…

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/my/library

However, this can be cumbersome when a user wants to use different versions of an application, employ a different compiler, or build against different libraries. A convenient solution is to use environment modules.

Environment modules provide the user a way to easily and dynamically change their environment. With simple commands, modules define the environment variables of your shell environment, so that the correct versions of executables are in the path and compiler toolchains can find the correct libraries.

OIT creates modules for globally installed software in the tools directory. Users must find and load the module(s) needed by their application.

Common Module Commands

Module Command

Description

module avail [module]

List all modules available to be loaded

module whatis <module>

Display info about a module

module list

List modules currently loaded

module load <module>

Load a module

module unload <module>

Unload a module

module swap <existing> <new>

Unload a module

module purge

Remove all modules

Creating your Own Modules

Users should create their own modules for software installed in their /home directory.

To create your own module files, just create a directory named ‘privatemodules’ in your /home directory and put your modules there. Once that directory exists, the module system will search it for module files the next time you login and should be listed as an available.

Users can review existing modules in /tools/modulefiles and use them as a template. More information can be found here:

Modules homepage: http://modules.sourceforge.net/ Modules manual: http://modules.sourceforge.net/man/module.html

Compile Software You are free to compile and run any custom software needed for your research within your home directory, provided that it is from a reputable, trustworthy source and adheres to the acceptable use policies described above.

Hopper provides a variety of development tools that you can use to build software, including several versions of gcc, make, make, and openmpi.

Your software will most likely provide a README or INSTALL file in the source distribution that should provide hints on what tools you will need and what procedure to follow. Alternatively, check the software’s web site or other Internet sources if you encounter problems.

For parallelized software, you will want to compile with your software’s recommended version of openmpi, i.e…

$ module avail openmpi
$ module load openmpi/1.8.3
$ ./configure --prefix=/home/software/build
$ make
$ make install