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 Farber) 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 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).

Command Description
vpkg_listList all available packages by their «package-id»
vpkg_versions «package-id»List the versions/variants of a specific package by their «version-id»
vpkg_require «versioned-package-id»Attempt to configure the environment to use the given software
vpkg_rollback «number or all»Roll back a number of package additions, use all for every package

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. 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_require 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: 2019-09-11 07:51
  • by anita