Software
IT maintains a wide variety of software on the clusters it supports. There are several categories of software involved:
Category | Description | Examples |
---|---|---|
operating system (OS) | Programs that collectively provide a working environment for computation | RedHat Enterprise Linux (RHEL) |
development | Programs that are used to create and refine other programs | Portland Compiler Suite, GNU Debugger (gdb) |
libraries | Reusable program fragments that provide additional functionality to programs | OpenMPI, ScaLAPACK |
applications | In HPC, a program that facilitates computation or data analysis | Matlab, Gaussian |
IT is solely responsible for maintaining the OS on the HPC systems. A number of development tools, libraries, and applications that are requested by multiple HPC users are also installed/compiled and managed by the IT HPC staff. This area of the site is dedicated to documentation associated with the latter three categories of software.
Availability
Each cluster has a unique complement of development tools, libraries, and applications. Documentation for all software is organized in alphabetical order on the sidebar
A list of installed software that IT builds and maintains for each cluster can be found by logging into the cluster (e.g. Caviness or DARWIN) and using the VALET command vpkg_list
.
Review the nVidia'a GPU-Accelerated Applications list for applications optimized to work with GPUs. These applications would be able to take advantage of nodes equipped with nVidia Tesla K20X coprocessors.
Using software
Preparing the Linux environment for a particular software title usually involves modification of the PATH
or LD_LIBRARY_PATH
variables, setting additional variables in the environment, or even executing scripted commands. Often the documentation for installing such software suggests that the user edit his/her .bashrc
or .bash_profile
file so the changes are made automatically at login. On UD HPC clusters, these tasks are best accomplished using VALET, not by editing your login files.
When IT adds new software to a cluster or upgrades existing software titles the work necessary to configure the environment for that software is modeled in a VALET package file. Later, when a user issues the vpkg_require
command to prepare his/her environment, VALET uses the package file to affect the necessary changes.
VALET commands
The UD-developed VALET system facilitates your use of compilers, libraries, programming tools and application software. It provides a uniform mechanism for setting up a package's required UNIX environment. VALET is a recursive acronym for VALET Automates Linux Environment Tasks. It provides functionality similar to the Modules package used at other HPC sites.
VALET commands set the basic environment for software. This may include the PATH
, MANPATH
, INFOPATH
, LDPATH
, LIBPATH
and LD_LIBRARY_PATH
environment variables, compiler flags, software directory locations, and license paths. This reduces the need for you to set them or update them yourself when changes are made to system and application software. For example, you might find several versions for a single package name, such as Mathematica/8 and Mathematica/8.0.4. You can even apply VALET commands to packages that you install or alter its actions by customizing VALET's configuration files.
The following table provides a brief summary of the most often-used VALET commands. Additional information is available by typing man valet for instructions or see the VALET software documentation for complete details. These commands are available in login shells and batch scripts (since they are run as login shells).
Command | Function |
---|---|
vpkg_help | VALET help. |
vpkg_list | List the packages that have VALET configuration files. |
vpkg_versions «package-id» | List versions available for a single package. |
vpkg_info «package-id» | Show information for a single package (or package version). |
vpkg_require «versioned-package-id» | Configure environment for one or more VALET packages. |
vpkg_devrequire «versioned-package-id» | Configure environment for one or more VALET packages including software development variables such as CPPFLAGS and LDFLAGS . |
vpkg_rollback «# or all» | Each time VALET changes the environment, it makes a snapshot of your environment to which it can return.vpkg_rollback attempts to restore the UNIX environment to its previous state. You can specify a number (# ) to revert one or more prior changes to the environment or all to remove all changes. |
vpkg_history | List the versioned packages that have been added to the environment. |
man valet | Complete documentation of VALET commands. |
A «versioned-package-id» is the combination of a package identifier (found using the vpkg_list
command) with a version/variant identifier (via the vpkg_versions
command). The two pieces are joined using a forward slash (/). For example, the commercial software "Matlab" has a «package-id» of matlab
and the 2012 release has a «version-id» of r2012a
, producing the «versioned-package-id» matlab/r2012a
.
*
). If the 2012 release of Matlab were the default, then using matlab
(or matlab/default
) as the «versioned-package-id» would imply matlab/r2012a
.
VALET environment changes apply to the shell in which the vpkg_require
command is issued; the changes do not "stick" after exiting that shell (by logging-out, for example). Thus, one way to discard changes affected by a vpkg_require
command is to just exit the shell. The vpkg_rollback
command is a more graceful alternative and iteratively discards the changes produced by prior vpkg_require
commands issued in the shell. To undo all changes, vpkg_rollback all
can be used.
A script contains commands to be executed in a shell.
VALET source files
When sourced, the commands in the script are executed in the current shell and any changes to the environment with be in affect when done. You can put VALET commands in a sourced script.
vpkg_rollback all
When the script is done the environment may have been changed. Only source VALET scripts when you want the changes made by VALET to stay in affect.
VALET executable scripts
When executing a script, a new shell is started with all exported variables and functions. This shell does not have the VALET commands, unless it was executed as a login shell.
source /etc/profile.d/valet.sh
When the script is done, or encounters an exit command, the new shell is terminated and the environment is back to the state it was in before execution.