Software/Geant4/UCL HEP Cluster
Introduction
The UCL HEP Linux Cluster consists of a range of machines running Scientific Linux (CERN) 5 and Scientific Linux 6. This cluster provides a pre-compiled installation of Geant4 along with an environment for compiling code, running examples and viewing results.
Although there are over 100 individual machines that can be used — most of which are the individual Linux desktop PCs within the HEP group running SL6 — access from outside the HEP group subnet is only possible through the central Linux server, plus1
, via ssh:
$ ssh -Y username@plus1.hep.ucl.ac.uk
It is then possible to connect to individual Linux desktops, again by ssh. In order to do so, you will need to know the number of the PC you are connecting to:
$ ssh -Y username@pc1XX.hep.ucl.ac.uk
...where 1XX
is the number of the PC you wish to connect to.
In order to access these machines, you will need to obtain an account from the UCL HEP Group Computing Support. Please contact Dr. Simon Jolly for instructions on obtaining an account.
Software Matrix
The following software is installed on the HEP Linux cluster (SL6 machines only).
Software | Version | Source code | Installed in dev? | Installed by | Working? | Checked by | Installed in prod? | Installed by | Working? | Checked by |
Qt | 5.6.0 | src/geant4-prerequisites/qt/qt-5.6.0 | Yes | Simon | Yes | Lawrence | Yes | Simon | Yes | Lawrence |
cmake | 3.5.2 | src/geant4-prerequisites/cmake | Yes | Static binaries (Simon) | Yes | Lawrence | Yes | Static binaries (Simon) | Yes | Lawrence |
xerces-c | 3.1.3 | src/geant4-prerequisites/xerces-c | Yes | Simon | Lawrence (checked v.3.1.1) | No | ||||
CLHEP | 2.3.2.2 | src/geant4-prerequisites/clhep | No | Lawrence (checked v2.3.1.1) | No | Lawrence (checked v.2.3.1.1) | ||||
Coin3d | 3.1.3 | src/geant4-prerequisites/coin3d | Yes | Simon | No | |||||
simage | 1.7.0 | src/geant4-prerequisites/coin3d | Yes | Simon | No | |||||
SoQt | 1.5.0 | src/geant4-prerequisites/coin3d | Yes | Simon | No | |||||
SoXt | 1.3.0 | src/geant4-prerequisites/coin3d | Yes | Simon | No | |||||
Coin3d | 3.1.3 | src/geant4-prerequisites/coin3d | Yes | Simon | No | |||||
DAWN | 3.90b | src/geant4-addons/dawn | Yes | Simon | Need to check on SL6 machine | Simon | Yes (can copy from dev) | Simon | ||
HepRApp | 3.15.4 | src/geant4-addons/heprapp | Yes | Simon | Yes | Simon (Standalone .jar file) | Yes | Simon | Yes | Simon (Standalone .jar file) |
Java Analysis Studio | 3.1.5 | src/geant4-addons/jas | Yes | Simon | Yes | Simon (Standalone executables) | Yes | Simon | Yes | Simon (Standalone executables) |
gMocren | 4 | src/geant4-addons/gmocren | Yes | Simon | Unknown | Simon (Standalone executables) | Yes | Simon | Unknown | Simon (Standalone executables) |
Folder structure
Disk
There is a separate (large) disk for PBT work mounted on the Linux system at /unix/pbt
.
When running simulations, you should create a subdirectory with your username
at /unix/pbt/username
Software
All software is enclosed in a folder at /unix/pbt/software
.
Source code
Source code for building and installing software packages is kept in a separate folder at /unix/pbt/software/src
.
GNU Stow
Software is installed using the GNU Stow
package for separating package code and linking to standard folders.
At installation time, each software package will be installed into a holding folder (such as /unix/pbt/software/dev/stow/geant4-10.00.p02
) with subfolders under this holding folder for the usual Linux software folders such as bin
and lib
.
The GNU Stow
package then handles linking of the software from the holding folders into the main folders of the relevant system.
For example, the file /unix/pbt/software/dev/bin/geant4-config
is a soft link to /unix/pbt/software/dev/stow/geant4-10.00.p02/bin/geant4-config
.
Links are added by calling stow
, deleted by calling stow -D
, and checked by calling chkstow
.
See GNU Stow
package documentation for more details.
Environments
Two separate environments are provide for PBT simulations: the Production environment for general use and the Development environment for testing changes or updates to the code. The Production environment is further subdivided depending on whether the machine you are logged in to is running SLC5 or SL6: the SLC5 legacy environment features an older version of Geant4 and related software that will not be updated.
- The recommended Production environment for SL6 is stored in
/unix/pbt/software/prod-sl6
; - The Development environment for SL6 is stored in
/unix/pbt/software/dev
: code is then subdivided into directories by application name; - The legacy Production environment for SLC5 is stored in
/unix/pbt/software/prod
: this is only accessible for users running on SLC5 machines.
It is possible to select whether the Development or Production environment is launched under SL6 by adding the appropriate flags when calling the setup script (see #Scripts below).
Scripts
Access to the PBT production and development environments is implemented by two scripts, pbt.sh
and pbt-dev.sh
.
These scripts are located in the bin
folders of the production and development environments, respectively, and should be called directly by the user to set up all paths and environment variables required to make use of Geant4
and related packages.
Aliases can be set up by the users to simplify running the scripts, such as:
alias pbt='source /unix/pbt/software/prod/bin/pbt.sh' alias pbt-dev='source /unix/pbt/software/dev/bin/pbt-dev.sh'
Two other scripts are required as functions used by the setup scripts.
/unix/pbt/software/prod/bin/pbt.sh
This is a simple script that launches a new shell (using the Developer Toolset 2) and calls the setup script pbt.bashrc
.
The Developer Toolset 2 (devtoolset-2
) is a Linux software collection providing various tools for developers, most notably including a newer version of GCC
(the GNU Compiler Collection).
/unix/pbt/software/prod/bin/pbt.bashrc
This is a bash
startup script that sets various environment variables and other settings so that all PBT software is available to use.
Steps taken:
- Run the user's own .bashrc
- Add locations to path variables
- Define colours for scripts, prompt, etc
- Greeting with information for users
- Notify user on exiting environment
- Modify prompt to show environment name
- Run
Geant4
setup script and set additional settings - Remove duplicates from path variables
/unix/pbt/software/prod/bin/definecolours.sh
This script defines various variables to represent colours for printing to the terminal and to file.
/unix/pbt/software/prod/bin/checkversions.sh
This script checks the versions (and optionally the paths/locations) of important software packages used in the PBT environment.
Installations
For each software package, the installation information is listed below. The basic method used is as follows:
- Download the source tarball latest version to the
/unix/pbt/software/src
folder. - Extract the tarball to a subfolder within the
src
folder usingtar -xvzf <filename>.tar.gz
. - Create a build folder at
/unix/pbt/software/build
and set the working directory here. - Run the specific configure, build and install steps for the package.
- Remove the build folder and extracted source folder, but keep the source tarball.
The configure, build and install steps may be different for each package, and this is described per package below. However, in most cases the steps follow the general steps below:
- Change working directory to the build folder.
- Run the configuration script from the source folder to set the build options, including the customised installation prefix.
- Build the code.
- Install the code to the sandbox folder.
- (Optional) Move the compiled code to the desired location (only possible if the installation prefix cannot be specified).