software:software

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 computationRedHat Enterprise Linux (RHEL)
developmentPrograms that are used to create and refine other programsPortland Compiler Suite, GNU Debugger (gdb)
librariesReusable program fragments that provide additional functionality to programsOpenMPI, ScaLAPACK
applicationsIn HPC, a program that facilitates computation or data analysisMatlab, 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.

Use of some commercial software on the clusters may require that your research group purchase a right-to-use license (e.g. ANSYS, IDL and COMSOL).

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.

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.

In the context of a «versioned-package-id», a blank «version-id» implies the default version of the package (marked with an asterisk *). 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.

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.

In source files containing VALET commands, it is good idea to rollback all packages before the VALET commands.
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.

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.

In an executable, non-login script containing VALET commands, the VALET functions must be setup. Put this source statement before the VALET commands:
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.

  • software/software.txt
  • Last modified: 2024-03-27 09:13
  • by mkyle