This is an old revision of the document!
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 following table provides a brief summary of the most often-used VALET commands. Additional information is available in the VALET software documentation. These commands are available in login shells and batch scripts (since they are run as login shells).
The table below shows the basic informational commands for VALET. In subsequent sections, VALET commands are illustrated in the contexts of application development (e.g., compiling, using libraries) and running IT-installed applications.
Command | Function |
---|---|
vpkg_help | VALET help. |
vpkg_list | List the packages that have VALET configuration files. |
vpkg_versions «pkgid» | List versions available for a single package. |
vpkg_info «pkgid» | Show information for a single package (or package version). |
vpkg_require «versioned-package-id» | Configure environment for one or more VALET packages. |
vpkg_devrequire «pkgid» | 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
.
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_require 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.