These scripts are intended to be used for building software products under the Cray PE environment.
There is an additional branch in this repository covering three programming environments on Archer2 (CRAYCLANG, GNU, and AOCC):
- cse-develop
Please commit any relevant updates to this branch (not the master). A further tagged version is available for the standard releases available on the machine.
- I have had to change the
sha256sum
hash for the Trilinos package (cf. the upstream). This I believe is related to the more recent version of git on Archer2 used to generate the tar package. Earlier versions of git produce the original checksum. - A number of tests have been enabled as part of the build stage if the overhead in time (as the likelihood of failure) is low enough.
- An option to build shared libraries has been added to the preamble.
These scripts do not handle dependency resolution, but do rudimentary checks for prerequisites. They will use system libraries if available.
Each script supports a --help
option for convenience:
$ ./sh/tpsl.sh --help
Usage: ./sh/tpsl.sh [OPTIONS]
Default for option is specified in brackets.
Options:
-h, --help Print this help message
--prefix=<DIR> Install package under DIR [/tmp/jdoe/_install]
-j[N], --jobs[=N] Build with up to N processes [1]
Send bug reports to [email protected]
and can be run to install each product, for example:
$ git clone https://github.com/Cray/pe-scripts
$ cd pe-scripts
$ module add PrgEnv-gnu cmake cray-mpich cray-hdf5-parallel cray-netcdf-hdf5parallel
$ prefix=`pwd`/_install
$ ./sh/tpsl.sh --prefix=$prefix --jobs=8
$ ./sh/petsc.sh --prefix=$prefix --jobs=8
$ ./sh/boost.sh --prefix=$prefix --jobs=8
$ ./sh/trilinos.sh --prefix=$prefix --jobs=8
The TPSL libraries can also be built individually, e.g.:
$ ./sh/tpsl/superlu.sh --prefix=$prefix --jobs=8
The TPSL script has a rudimentary inventory system to avoid installing TPSL libraries that have already been installed to the given prefix.
Some package scripts can install one of several different versions.
If this is the case, then the output from --help
will list the
available versions than can be chosen with the --version=...
option,
e.g.:
$ ./sh/petsc.sh --help
Usage: ./sh/petsc.sh [OPTIONS]
Default for option is specified in brackets.
Options:
-h, --help Print this help message
--prefix=<DIR> Install package under DIR [/tmp/jdoe/_install]
-j[N], --jobs[=N] Build with up to N processes [1]
--version[=<VER>] Build and install version VER of petsc.
Must be one of the available versions
listed below. Without argument: print the
current version [3.13.0]
Available versions:
- 3.10.3
- 3.10.5
- 3.11.4
- 3.12.5
- 3.13.0 (*)
Send bug reports to [email protected]
$ ./sh/petsc.sh --version=3.12.5 --prefix=$prefix --jobs=4
For packages such as PETSc or Trilinos, that can satisfy dependencies using packages installed from these scripts, there are no guarantees if using an arbitrary combination of package versions. Generally, the default versions should work properly together, and other combinations may be untested.