Software/Geant4/UCL HEP Cluster: Difference between revisions

From PBTWiki
Jump to navigation Jump to search
m (moved UCL HEP Cluster to Software/Geant4/UCL HEP Cluster: Shouldn't be present in root directory.)
(27 intermediate revisions by 3 users not shown)
Line 21: Line 21:
In order to access these machines, you will need to obtain an account from the UCL HEP Group Computing Support.   
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.
Please contact Dr. Simon Jolly for instructions on obtaining an account.
== Folder structure ==
=== Disk ===
There is a separate (large) disk for PBT work mounted on the Linux system at <code>/unix/pbt</code>. 
When running simulations, you should create a subdirectory with your <code>username</code> at <code>/unix/pbt/username</code>
=== Software ===
All software is enclosed in a folder at <code>/unix/pbt/software</code>.
=== Source code ===
Source code for building and installing software packages is kept in a separate folder at <code>/unix/pbt/software/src</code>.
== 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 <code>/unix/pbt/software/prod-sl6</code>;
* The '''Development''' environment for SL6 is stored in <code>/unix/pbt/software/dev</code>: code is then subdivided into directories by application name;
* The legacy '''Production''' environment for SLC5 is stored in <code>/unix/pbt/software/prod</code>: 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 environments is implemented by a single script, <code>pbt.sh</code>. 
This calls a number of other utility scripts that set up the required PBT environment: these are all stored in <code>/unix/pbt/software/scripts/</code>.
This will auto-detect whether you are running on a newer ContOS7 machine or a legacy SLC6 or SLC5 machine and set up the environment accordingly. 
If you are running on a '''CentOS7''' machine, we reccomand to set up all the required '''EasyBuild''' modules and environment variables sourcing the following script
<pre>
/unix/pbt/software/scripts/eb-centos7/pbt.sh
</pre>
For the PBT '''Production''' and '''Development''' environments on SLC6 or SLC5 machines, you must source the followig
<pre>
/unix/pbt/software/scripts/pbt.sh
</pre>
The steps carried out during setup are as follows:
# Check the environment and whether the user wishes to run in verbose or development mode (see below);
# Launch a new <code>bash</code> shell with the appropriate Scientific Linux Developer Toolset (see below);
# Call the appropriate <code>bashrc</code> script to begin environment setup; this in turn runs the following actions:
## Run the user's own <code>.bashrc</code>;
## Set the environment name;
## Greeting with information for users;
## Define exit function with exit message when user exits environment;
## Call shell script to set up environment.
# The specific shell script then carries out the following actions:
## Set specific environment variables with locations of compiler, Geant4 etc.
## Add locations to path variables and remove duplicates (calls <code>setpaths.sh</code> script);
## Define colours for scripts, prompt, etc (calls <code>definecolours.sh<code> script);
## Check versions of installed software and display results (calls <code>checkversions.sh</code> script);
## Modify prompt to show environment name;
## Run <code>Geant4</code> setup script and set additional settings;
Adding the <code>-v</code> flag enables the scripts to run in verbose mode, which displays the full paths when checking the versions of the installed software. 
The <code>-b</code> flag sources the BDSIM PBT environment: this is only available on CentOS7 machines and using the script version available for EasyBuild modules (stored in <code>/unix/pbt/software/scripts/eb-centos7</code>).
Adding the <code>-d</code> flag enables the '''Development''' environment to allow new software to be built without changing the '''Production''' setup needed by most users: this is only available on SL6 machines.
When <code>pbt.sh</code> is called, its first action after selecting the right environment is to launch a new <code>bash</code> shell that provides a degree of isolation for setting up the desired PBT environment. 
Once the user has finished with the PBT environment, exiting the shell will deposit the user back into their previous environment. 
Launching a new shell also provides access to the correct Scientific Linux Developer Toolset: on CentOS7 this is <code>devtoolset-7</code>, on SL6 this is <code>devtoolset-3</code>, whereas SLC5 uses the older <code>devtoolset-2</code>. 
In either case, the Developer Toolset is a Linux software collection providing various tools for developers, including more up-to-date versions of software required by <code>Geant4</code>, most notably including a newer version of <code>GCC</code> (the '''GNU Compiler Collection''').
The following sub-directories are present within the <code>scripts</code> directory:
* <code>dev</code> &mdash; contains scripts for setting up '''Development''' environment on SL6 machines;
* <code>prod-sl6</code> &mdash; contains scripts for setting up '''Production''' environment on SL6 machines;
* <code>prod-slc5</code> &mdash; contains scripts for setting up '''Production''' environment on SLC5 machines;
* <code>shared</code> &mdash; shared scripts used in the setup of all environments (see below);
* <code>eb-centos7</code> &mdash; contains scripts for setting up PBT environment on CentOS7 machines using EasyBuild modules;
* <code>old</code> &mdash; legacy scripts used in previous environment setup on SLC5.
The first 3 directories contain scripts that are almost identical, with small modifications to suit each environment.
Along with the shared scripts, these are described below: substitute <code>xxx</code> for the particular environment.
The <code>eb-centos7</code> directory contains a version of all these scripts modified to work with EasyBuild modules. 
=== <code>/unix/pbt/software/scripts/xxx/pbt-xxx.sh</code> ===
The 3 <code>pbt-xxx.sh</code> scripts carry out the majority of the customisation for the particular environment. 
In particular, the following tasks are carried out:
# Add locations to path variables;
# Define colours for scripts, prompt, etc.;
# Add locations to path variables and remove duplicates (calls <code>setpaths.sh</code> script);
# Check versions of installed software and display results (calls <code>checkversions.sh</code> script);
# Run Geant4 setup script;
These scripts in turn make use of the following shared scripts.
=== <code>/unix/pbt/software/scripts/shared/definecolours.sh</code> ===
This script defines various variables to represent colours for printing to the terminal and to file.
=== <code>/unix/pbt/software/scripts/shared/setpaths.sh</code> ===
This script sets the various <code>PATH</code> environment variables required for the specific environment and removes any duplicates.
=== <code>/unix/pbt/software/scripts/shared/checkversions.sh</code> ===
This script checks the versions (and optionally the paths/locations) of important software packages used in the PBT environment.
== Installations ==
For CentOS7 machines, each software is installed using EasyBuild.
For SL6 and SL5 machines, the installation procedure for each software package is listed below.
The basic method used is as follows:
# Download the source tarball latest version to the <code>/unix/pbt/software/src</code> folder.
# Extract the tarball to a subfolder within the <code>src</code> folder using <code>tar -xvzf &lt;filename&gt;.tar.gz</code>.
# Create a build folder at <code>/unix/pbt/software/build</code> 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).


== Software Matrix ==
== Software Matrix ==


The following software is installed on the HEP Linux cluster (SL6 machines only).
The following software is installed on the HEP Linux cluster. Starting from CentOS7, the supported procedure requires EasyBuild.
 
CentOS7 Machines: (not supported)


{| class="wikitable"
{| class="wikitable"
Line 40: Line 167:
|-
|-
|'''Qt'''
|'''Qt'''
|5.6.0
|5.9.3
|src/geant4-prerequisites/qt/qt-5.6.0
|src/geant4-prerequisites/qt/qtbase-github
|Yes
|James
|Yes
|James
|Yes
|James
|Yes
|James
|-
|'''cmake'''
|3.9.4
|src/geant4-prerequisites/cmake/cmake-gitlab
|Yes
|Bootstrap (James)
|Yes
|James
|Yes
|Bootstrap (James)
|Yes
|James
|-
|'''xerces-c'''
|3.2.0
|src/geant4-prerequisites/xerces-c/xerces-c-github
|Yes
|James
|Yes
|James
|Yes
|James
|Yes
|James
|-
|'''CLHEP'''
|2.3.4.5
|src/geant4-prerequisites/clhep/clhep-github
|Yes
|James
|Yes
|James
|Yes
|James
|Yes
|James
|-
|'''simage'''
|1.7.1a
|src/geant4-prerequisites/coin3d_mercurial/simage
|Yes
|James
|Yes
|James
|Yes
|James
|Yes
|James
|-
|'''Coin3d'''
|4.0.0a
|src/geant4-prerequisites/coin3d_mercurial/coin-cmake
|Yes
|James
|Yes
|James
|Yes
|James
|Yes
|James
|-
|'''SoQt'''
|1.6.0a
|src/geant4-prerequisites/coin3d_mercurial/soqt
|Yes
|James
|Yes
|James
|Yes - missing config file so says "not found"
|James
|Yes
|James
|-
|'''SoXt'''
|1.3.1
|src/geant4-prerequisites/coin3d_mercurial/soxt
|Yes
|James
|Yes
|James
|Yes
|James
|Yes
|James
|-
|'''Geant4'''
|4.10.03.p02
|src/geant4/geant4-github
|Yes
|James
|Yes
|James
|Yes
|James
|Yes
|James
|-
|'''DAWN'''
|3.90b
|src/geant4-addons/dawn
|Yes
|James
|No
|James
|Yes (can copy from dev)
|James
|No
|Roisin
|-
|'''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)
|-
|'''BDSIM'''
|0.9.9.3
|src/bdsim/bdsim-edited
|Yes
|James
|Yes
|James
|No
|
|
|
|}
 
SL6 Machines:
 
{| class="wikitable"
|'''Software'''
|'''Version'''
|'''Source code'''
|'''Installed in dev?'''
|'''Installed by'''
|'''Working?'''
|'''Checked by'''
|'''Installed in prod?'''
|'''Installed by'''
|'''Working?'''
|'''Checked by'''
|-
|'''Qt'''
|5.5.1
|src/geant4-prerequisites/qt/qt-5.5.1
|Yes
|Yes
|Simon
|Simon
Line 68: Line 379:
|Yes
|Yes
|Simon
|Simon
|
|Yes
|Lawrence (checked v.3.1.1)
|Lawrence
|No
|Yes
|
|Simon
|
|Yes
|
|Lawrence
|-
|-
|'''CLHEP'''
|'''CLHEP'''
|2.3.2.2
|2.3.1.1
|src/geant4-prerequisites/clhep
|src/geant4-prerequisites/clhep
|No
|Yes
|
|Lawrence
|
|Yes
|Lawrence (checked v2.3.1.1)
|Lawrence
|No
|Yes
|
|Lawrence
|
|Yes
|Lawrence (checked v.2.3.1.1)
|Lawrence
|-
|'''simage'''
|1.7.0
|src/geant4-prerequisites/coin3d
|Yes
|Simon
|Yes
|Lawrence
|Yes
|Simon
|Yes
|Lawrence
|-
|-
|'''Coin3d'''
|'''Coin3d'''
Line 92: Line 415:
|Yes
|Yes
|Simon
|Simon
|
|Yes
|
|Lawrence
|No
|
|
|
|-
|'''simage'''
|1.7.0
|src/geant4-prerequisites/coin3d
|Yes
|Yes
|Simon
|Simon
|
|Yes
|
|Lawrence
|No
|
|
|
|-
|-
|'''SoQt'''
|'''SoQt'''
Line 116: Line 427:
|Yes
|Yes
|Simon
|Simon
|
|Yes
|
|Lawrence
|No  
|No  
|
|
Line 128: Line 439:
|Yes
|Yes
|Simon
|Simon
|
|Yes
|
|Lawrence
|No
|Yes
|
|Simon
|
|Yes
|
|Lawrence
|-
|-
|'''Coin3d'''
|'''Geant4'''
|3.1.3
|4.10.02.p01
|src/geant4-prerequisites/coin3d
|src/geant4/geant4.10.02.p01-source
|Yes
|Lawrence
|Yes
|Lawrence
|Yes
|Lawrence
|Yes
|Yes
|Simon
|Lawrence
|
|
|No
|
|
|
|-
|-
|'''DAWN'''
|'''DAWN'''
Line 152: Line 463:
|Yes
|Yes
|Simon
|Simon
|Need to check on SL6 machine
|Yes
|Simon
|Simon
|Yes (can copy from dev)
|Yes (can copy from dev)
|Simon
|Simon
|
|Yes
|
|Roisin
|-
|-
|'''HepRApp'''
|'''HepRApp'''
Line 194: Line 505:
|Unknown
|Unknown
|Simon (Standalone executables)
|Simon (Standalone executables)
|-
|'''BDSIM'''
|0.9.9.3
|src/bdsim/bdsim-edited
|Yes
|James
|Yes
|James
|No
|
|
|
|}
|}
== Folder structure ==
=== Disk ===
There is a separate (large) disk for PBT work mounted on the Linux system at <code>/unix/pbt</code>. 
When running simulations, you should create a subdirectory with your <code>username</code> at <code>/unix/pbt/username</code>
=== Software ===
All software is enclosed in a folder at <code>/unix/pbt/software</code>.
=== Source code ===
Source code for building and installing software packages is kept in a separate folder at <code>/unix/pbt/software/src</code>.
=== GNU Stow ===
Software is installed using the <code>GNU Stow</code> 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 <code>/unix/pbt/software/dev/stow/geant4-10.00.p02</code>) with subfolders under this holding folder for the usual Linux software folders such as <code>bin</code> and <code>lib</code>.
The <code>GNU Stow</code> package then handles linking of the software from the holding folders into the main folders of the relevant system.
For example, the file <code>/unix/pbt/software/dev/bin/geant4-config</code> is a soft link to <code>/unix/pbt/software/dev/stow/geant4-10.00.p02/bin/geant4-config</code>.
Links are added by calling <code>stow</code>, deleted by calling <code>stow -D</code>, and checked by calling <code>chkstow</code>.
See <code>GNU Stow</code> 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 <code>/unix/pbt/software/prod-sl6</code>;
* The '''Development''' environment for SL6 is stored in <code>/unix/pbt/software/dev</code>: code is then subdivided into directories by application name;
* The legacy '''Production''' environment for SLC5 is stored in <code>/unix/pbt/software/prod</code>: 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, <code>pbt.sh</code> and <code>pbt-dev.sh</code>.
These scripts are located in the <code>bin</code> 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 <code>Geant4</code> and related packages.
Aliases can be set up by the users to simplify running the scripts, such as:
<pre>
alias pbt='source /unix/pbt/software/prod/bin/pbt.sh'
alias pbt-dev='source /unix/pbt/software/dev/bin/pbt-dev.sh'
</pre>
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 <code>pbt.bashrc</code>.
The Developer Toolset 2 (<code>devtoolset-2</code>) is a Linux software collection providing various tools for developers, most notably including a newer version of <code>GCC</code> (the '''GNU Compiler Collection''').
=== /unix/pbt/software/prod/bin/pbt.bashrc ===
This is a <code>bash</code> 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 <code>Geant4</code> 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 <code>/unix/pbt/software/src</code> folder.
# Extract the tarball to a subfolder within the <code>src</code> folder using <code>tar -xvzf &lt;filename&gt;.tar.gz</code>.
# Create a build folder at <code>/unix/pbt/software/build</code> 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).

Revision as of 15:16, 14 March 2019

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.

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.

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 environments is implemented by a single script, pbt.sh. This calls a number of other utility scripts that set up the required PBT environment: these are all stored in /unix/pbt/software/scripts/. This will auto-detect whether you are running on a newer ContOS7 machine or a legacy SLC6 or SLC5 machine and set up the environment accordingly.

If you are running on a CentOS7 machine, we reccomand to set up all the required EasyBuild modules and environment variables sourcing the following script

/unix/pbt/software/scripts/eb-centos7/pbt.sh

For the PBT Production and Development environments on SLC6 or SLC5 machines, you must source the followig

/unix/pbt/software/scripts/pbt.sh

The steps carried out during setup are as follows:

  1. Check the environment and whether the user wishes to run in verbose or development mode (see below);
  2. Launch a new bash shell with the appropriate Scientific Linux Developer Toolset (see below);
  3. Call the appropriate bashrc script to begin environment setup; this in turn runs the following actions:
    1. Run the user's own .bashrc;
    2. Set the environment name;
    3. Greeting with information for users;
    4. Define exit function with exit message when user exits environment;
    5. Call shell script to set up environment.
  4. The specific shell script then carries out the following actions:
    1. Set specific environment variables with locations of compiler, Geant4 etc.
    2. Add locations to path variables and remove duplicates (calls setpaths.sh script);
    3. Define colours for scripts, prompt, etc (calls definecolours.sh script);
    4. Check versions of installed software and display results (calls checkversions.sh script);
    5. Modify prompt to show environment name;
    6. Run Geant4 setup script and set additional settings;

Adding the -v flag enables the scripts to run in verbose mode, which displays the full paths when checking the versions of the installed software. The -b flag sources the BDSIM PBT environment: this is only available on CentOS7 machines and using the script version available for EasyBuild modules (stored in /unix/pbt/software/scripts/eb-centos7). Adding the -d flag enables the Development environment to allow new software to be built without changing the Production setup needed by most users: this is only available on SL6 machines.

When pbt.sh is called, its first action after selecting the right environment is to launch a new bash shell that provides a degree of isolation for setting up the desired PBT environment. Once the user has finished with the PBT environment, exiting the shell will deposit the user back into their previous environment. Launching a new shell also provides access to the correct Scientific Linux Developer Toolset: on CentOS7 this is devtoolset-7, on SL6 this is devtoolset-3, whereas SLC5 uses the older devtoolset-2. In either case, the Developer Toolset is a Linux software collection providing various tools for developers, including more up-to-date versions of software required by Geant4, most notably including a newer version of GCC (the GNU Compiler Collection).

The following sub-directories are present within the scripts directory:

  • dev — contains scripts for setting up Development environment on SL6 machines;
  • prod-sl6 — contains scripts for setting up Production environment on SL6 machines;
  • prod-slc5 — contains scripts for setting up Production environment on SLC5 machines;
  • shared — shared scripts used in the setup of all environments (see below);
  • eb-centos7 — contains scripts for setting up PBT environment on CentOS7 machines using EasyBuild modules;
  • old — legacy scripts used in previous environment setup on SLC5.

The first 3 directories contain scripts that are almost identical, with small modifications to suit each environment. Along with the shared scripts, these are described below: substitute xxx for the particular environment. The eb-centos7 directory contains a version of all these scripts modified to work with EasyBuild modules.

/unix/pbt/software/scripts/xxx/pbt-xxx.sh

The 3 pbt-xxx.sh scripts carry out the majority of the customisation for the particular environment. In particular, the following tasks are carried out:

  1. Add locations to path variables;
  2. Define colours for scripts, prompt, etc.;
  3. Add locations to path variables and remove duplicates (calls setpaths.sh script);
  4. Check versions of installed software and display results (calls checkversions.sh script);
  5. Run Geant4 setup script;

These scripts in turn make use of the following shared scripts.

/unix/pbt/software/scripts/shared/definecolours.sh

This script defines various variables to represent colours for printing to the terminal and to file.

/unix/pbt/software/scripts/shared/setpaths.sh

This script sets the various PATH environment variables required for the specific environment and removes any duplicates.

/unix/pbt/software/scripts/shared/checkversions.sh

This script checks the versions (and optionally the paths/locations) of important software packages used in the PBT environment.

Installations

For CentOS7 machines, each software is installed using EasyBuild.

For SL6 and SL5 machines, the installation procedure for each software package is listed below. The basic method used is as follows:

  1. Download the source tarball latest version to the /unix/pbt/software/src folder.
  2. Extract the tarball to a subfolder within the src folder using tar -xvzf <filename>.tar.gz.
  3. Create a build folder at /unix/pbt/software/build and set the working directory here.
  4. Run the specific configure, build and install steps for the package.
  5. 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:

  1. Change working directory to the build folder.
  2. Run the configuration script from the source folder to set the build options, including the customised installation prefix.
  3. Build the code.
  4. Install the code to the sandbox folder.
  5. (Optional) Move the compiled code to the desired location (only possible if the installation prefix cannot be specified).

Software Matrix

The following software is installed on the HEP Linux cluster. Starting from CentOS7, the supported procedure requires EasyBuild.

CentOS7 Machines: (not supported)

Software Version Source code Installed in dev? Installed by Working? Checked by Installed in prod? Installed by Working? Checked by
Qt 5.9.3 src/geant4-prerequisites/qt/qtbase-github Yes James Yes James Yes James Yes James
cmake 3.9.4 src/geant4-prerequisites/cmake/cmake-gitlab Yes Bootstrap (James) Yes James Yes Bootstrap (James) Yes James
xerces-c 3.2.0 src/geant4-prerequisites/xerces-c/xerces-c-github Yes James Yes James Yes James Yes James
CLHEP 2.3.4.5 src/geant4-prerequisites/clhep/clhep-github Yes James Yes James Yes James Yes James
simage 1.7.1a src/geant4-prerequisites/coin3d_mercurial/simage Yes James Yes James Yes James Yes James
Coin3d 4.0.0a src/geant4-prerequisites/coin3d_mercurial/coin-cmake Yes James Yes James Yes James Yes James
SoQt 1.6.0a src/geant4-prerequisites/coin3d_mercurial/soqt Yes James Yes James Yes - missing config file so says "not found" James Yes James
SoXt 1.3.1 src/geant4-prerequisites/coin3d_mercurial/soxt Yes James Yes James Yes James Yes James
Geant4 4.10.03.p02 src/geant4/geant4-github Yes James Yes James Yes James Yes James
DAWN 3.90b src/geant4-addons/dawn Yes James No James Yes (can copy from dev) James No Roisin
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)
BDSIM 0.9.9.3 src/bdsim/bdsim-edited Yes James Yes James No

SL6 Machines:

Software Version Source code Installed in dev? Installed by Working? Checked by Installed in prod? Installed by Working? Checked by
Qt 5.5.1 src/geant4-prerequisites/qt/qt-5.5.1 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 Yes Lawrence Yes Simon Yes Lawrence
CLHEP 2.3.1.1 src/geant4-prerequisites/clhep Yes Lawrence Yes Lawrence Yes Lawrence Yes Lawrence
simage 1.7.0 src/geant4-prerequisites/coin3d Yes Simon Yes Lawrence Yes Simon Yes Lawrence
Coin3d 3.1.3 src/geant4-prerequisites/coin3d Yes Simon Yes Lawrence Yes Simon Yes Lawrence
SoQt 1.5.0 src/geant4-prerequisites/coin3d Yes Simon Yes Lawrence No
SoXt 1.3.0 src/geant4-prerequisites/coin3d Yes Simon Yes Lawrence Yes Simon Yes Lawrence
Geant4 4.10.02.p01 src/geant4/geant4.10.02.p01-source Yes Lawrence Yes Lawrence Yes Lawrence Yes Lawrence
DAWN 3.90b src/geant4-addons/dawn Yes Simon Yes Simon Yes (can copy from dev) Simon Yes Roisin
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)
BDSIM 0.9.9.3 src/bdsim/bdsim-edited Yes James Yes James No