BYU

Office of Research Computing

Directions for Software Use

Centrally installed software is typically available through the use of Lmod environment modules. You can install your own software as long as the software license allows for it. The Office of Research Computing, at its discretion, may install software when requested but generally cannot offer help in the usage of particular software.

Lmod

Most software is available via environment modules. When you first log in, no modules will be loaded, and you'll probably want to search for the software you need:

# See all available software (there will be a LOT of output)
module spider
# Search for module names containing "abc"
module spider abc

You can see which modules you currently have loaded with module list.

Modules can be "loaded" (making the software you're looking for available) and "unloaded":

# Before you need to use abc
module load abc/1.2.3
# After you're done with abc
module unload abc/1.2.3

These changes are not persistent across shells--if you log out and back in, you'll need to reload any modules you want to use. If you want persistent changes, you can use module save.

Installing software

If you're using niche software there's a good chance it isn't installed centrally, in which case you may need to install it yourself. Since most software requires modification of at least the PATH environment variable, you may also want to create your own modulefile to use it. Watch out for linking issues.

We will do our best to help users to install and manage applications that are widely used, where system level access is required, and/or where license servers must be set up or accessible. We reserve the right to give up on an installation, though--some software requires excessive effort to install, has design flaws that make it incompatible with our systems, or poses an unacceptable security risk. In those cases, you might have success using a container.

Langauge-specific considerations

C/C++/Fortran

The compilers included with our operating system are old; if you want to build software, we recommend loading a newer compiler--use module spider gcc llvm intel-compilers to see what's available.

Python

Even though a python is available without loading a module, you should use the one made available by module load python for anything non-trivial--an older Python version came with (and is integral to) the supercomputer's operating system, but the versions we've installed make pip, virtualenv, and commonly used packages available. We encourage using virtualenv or Conda to keep sets of packages from polluting your base Python environment.

R

R uses the compilers included with our operating system (which are very old) by default when installing packages. If an installation fails, it's often due to these outdated compilers--it's worth trying to module load gcc and give it another shot.

Perl

As with Python, you should use the Perl that is made available with module load perl rather than the one that came with our operating system. We encourage you to use the included cpanm rather than cpan to install Perl modules.