diff --git a/CPMD_Intel_MPI_install b/CPMD_Intel_MPI_install new file mode 100755 index 00000000..62273dc8 --- /dev/null +++ b/CPMD_Intel_MPI_install @@ -0,0 +1,107 @@ +#!/usr/bin/env bash + +############################################### +# Installing CPMD: MPI with Intel compilers +# +# by Brian Alston, May 2017 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. + +VERSION=${VERSION:-4.1} +PLATFORM=${PLATFORM:-INTEL-MPI} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/CPMD/$VERSION/Intel-MPI} +SRC_ARCHIVE_CPMD=${SRC_ARCHIVE_CPMD:-cpmd-v$VERSION.tar.gz} +SRC_ARCHIVE_CPMD2CUBE=${SRC_ARCHIVE_CPMD2CUBE:-cpmd2cube.tar.gz} +SRC_ARCHIVE_LOCATION=${SRC_ARCHIVE_LOCATION:-/shared/ucl/apps/CPMD/sources/} +PATCHES="patch_3808-3812.txt patch_3812-3813.txt patch_3815-3816.txt" +LOG_LOCATION=${LOG_LOCATION:-~/Software/CPMD} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require rcps-core/1.0.0 +require compilers/intel +require mpi/intel + +if [ ! -f $SRC_ARCHIVE_LOCATION/$SRC_ARCHIVE_CPMD ] +then + echo "" + echo "***** ERROR: Cannot find CPMD archive" + echo "" + echo "You need to download the CPMD source archive from the CPMD download portal" + echo "(http://cpmd.org/download) using your license login. Note: both Latest" + echo "Distribution and pathes are needed. Also the additional packages: " + echo "cpmd2cube.tar.gz." + echo "Place them somewhere in your file-system and set the SRC_ARCHIVE_*" + echo "variables appropriately." + echo "" + exit 1 +fi + + +temp_dir=`mktemp -d -p /dev/shm` +cd $temp_dir + +# Firstly CPMD + +echo "***** Building CPMD ..." + +# Unpack source archive, apply patches and configure for building in install location. + +tar xvzf $SRC_ARCHIVE_LOCATION/$SRC_ARCHIVE_CPMD +cd CPMD + +for p in $PATCHES +do + echo "Applying patch $p ..." + patch -p0 < $SRC_ARCHIVE_LOCATION/$p +done + +INSTALL_LOC=$INSTALL_PREFIX +mkdir -p $INSTALL_LOC +./configure.sh -DEST=$INSTALL_LOC LINUX-X86_64-INTEL-MPI + +cd $INSTALL_LOC + +# Need to fix Makefile before building on Legion/Grace/Thomas + +cp Makefile Makefile_orig +sed -e '/CPP =/s/-C//' -e '/FC = /s/mpif90/mpiifort/' -e '/LD =/s/mpif90/mpiifort/' Makefile_orig > Makefile + +# Build in install location. + +echo "Compiling ..." +make 2>&1 | tee $LOG_LOCATION/CPMD_build.log_`date +%d.%m.%Y-%H.%M` + +echo "" +echo "***** Building cpmd2cube ..." + +# Unpack source archive, and configure for building in install location. + +cd $temp_dir +tar xvzf $SRC_ARCHIVE_LOCATION/$SRC_ARCHIVE_CPMD2CUBE +cd cpmd2cube +mkdir -p $INSTALL_LOC/cpmd2cube + +./Configure -DEST=$INSTALL_LOC/cpmd2cube -m Linux-PC-IFORT + +cd $INSTALL_LOC/cpmd2cube + +# Need to fix Makefile before building on Legion/Grace/Thomas + +cp Makefile Makefile_orig +sed -e '/^LFLAGS/s/-i-static/-static-intel/' Makefile_orig > Makefile + +# Build in install location + +echo "Compiling cpmd2cube ..." +make 2>&1 | tee $LOG_LOCATION/cpmd2cube_build.log_`date +%d.%m.%Y-%H.%M` +mv cpmd2cube.x cutcube.x trimcube.x ../bin + +echo "Finished." diff --git a/Cuba-4.2_install b/Cuba-4.2_install new file mode 100755 index 00000000..88541ccb --- /dev/null +++ b/Cuba-4.2_install @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +############################################### +# Installing Cuba 4.2 +# +# by Brian Alston, 2018 +# +# Numerical integration library for Mathematica 11.0.1 +# +# Updated July 2018 to downgrade version of Mathematica +# +# Note: 11.1 is the most recent version of Mathematica +# that Cuba will work with. It is NOT compatible with +# 11.2 or 11.3 see IN03009733 +# +# Will need modules: gcc-libs/4.9.2, compilers/gnu/4.9.2 +# qt/5.4.2/gnu-4.9.2, xorg-utils/X11R7.7, mathematica/11.0.1 + +VERSION=${VERSION:-4.2} +VER=`echo $VERSION | sed 's/\.//'` +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Cuba/${VERSION}_gnu-4.9.2_Math-11.0.1} +MD5=${MD5:-a3eb0751d4872a3f86401694bc5bedae} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.feynarts.de/cuba/Cuba-${VERSION}.tar.gz} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require bison/3.0.4/gnu-4.9.2 +require gperf/3.0.4/gnu-4.9.2 +require qt/5.4.2/gnu-4.9.2 +require xorg-utils/X11R7.7 +require mathematica/11.0.1 + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum Cuba-${VERSION}.tar.gz | awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvzf Cuba-${VERSION}.tar.gz + cd Cuba-${VERSION} + ./configure --prefix=${INSTALL_PREFIX} + make + make check + make install + +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/EPACTS-3.3.0_install b/EPACTS-3.3.0_install new file mode 100755 index 00000000..d9bfc996 --- /dev/null +++ b/EPACTS-3.3.0_install @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +############################################### +# Installing EPACTS 3.3.0 +# +# by Brian Alston, June 2018 +# +# Using Ian's require function to load modules +# +# + +VERSION=${VERSION:-3.3.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/EPACTS/${VERSION}} +SRC_ARCHIVE=${SRC_ARCHIVE:- https://github.com/statgen/EPACTS.git} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require r/recommended +require gnuplot/5.0.1 +require groff/1.22.3/gnu-4.9.2 +require autoconf/2.69 +require automake/1.16.1 + +temp_dir=`mktemp -d -p /dev/shm` +# temp_dir='/home/ccspapp/Software/EPACTS' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir + +git clone $SRC_ARCHIVE + +cd EPACTS +aclocal +autoconf +automake --add-missing +./configure --prefix=$INSTALL_PREFIX +make + +# No make check provided. + +make install diff --git a/Gurobi-7.5.1_install b/Gurobi-7.5.1_install new file mode 100755 index 00000000..c96f3685 --- /dev/null +++ b/Gurobi-7.5.1_install @@ -0,0 +1,39 @@ +#!/bin/bash + +# This script installs Gurobi Optimizer 7.5.1 +# Brian Alston October 2017 + +VERSION=${VERSION:-7.5.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Gurobi} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://packages.gurobi.com/7.5/gurobi${VERSION}_linux64.tar.gz} +MD5=${MD5:-4ec7147562cc5d63b1790019064cd723} + +set -e +startDir=`pwd` +mkdir -p /dev/shm/Gurobi +temp_dir=`mktemp -d -p /dev/shm/Gurobi` + +cd $temp_dir +wget $SRC_ARCHIVE +ARCHIVE=`basename $SRC_ARCHIVE` +CHECKSUM=`md5sum ${ARCHIVE}| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + + # Unpack the archive in the correct location. + + mkdir -p $INSTALL_PREFIX + cd $INSTALL_PREFIX + tar xvzf $temp_dir/$ARCHIVE + + # Set up client license file for UCL. + + echo "TOKENSERVER=lic-gurobi.ucl.ac.uk" > gurobi.lic + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi + diff --git a/Lynx-2.8.9_install b/Lynx-2.8.9_install new file mode 100755 index 00000000..82d78131 --- /dev/null +++ b/Lynx-2.8.9_install @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +############################################### +# Installing Lynx 2.8.9 +# +# by Brian Alston, March 2018 +# Udated 4th May for 2.8.9dev.17 +# +# Will need modules: rcps-core/1.0.0 + +VERSION=${VERSION:-2.8.9dev.17} +VER=`echo $VERSION | sed 's/\.//'` +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Lynx/$VERSION} +MD5=${MD5:-8a8f442138c17bb5ce225218e45eb8f2} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://invisible-island.net/datafiles/release/lynx-cur.tar.gz} +LOCAL_ARCHIVE=${LOCAL_ARCHIVE:-lynx-cur.tar.gz} +export PATH=$INSTALL_PREFIX/bin:$PATH + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum $LOCAL_ARCHIVE | awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvzf $LOCAL_ARCHIVE + cd lynx$VERSION + ./configure --prefix=/shared/ucl/apps/Lynx/$VERSION --with-ssl 2>&1 | tee configure-log + make 2>&1 | tee make-log + make install 2>&1 | tee make_install-log + make install-help 2>&1 | tee -a make_install-log + make install-doc 2>&1 | tee -a make_install-log + +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/Nektar++_OpenMPI_GNU_install b/Nektar++_OpenMPI_GNU_install new file mode 100755 index 00000000..aa0e4289 --- /dev/null +++ b/Nektar++_OpenMPI_GNU_install @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +############################################### +# Installing Nektar++: OpenMPI with GNU compilers +# +# by Brian Alston, March 2017 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. + +VERSION=${VERSION:-4.3.5} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Nektar++/$VERSION/GNU_OpenMPI} +SRC_ARCHIVE=${SRC_ARCHIVE:-nektar++-$VERSION.tar.gz} +SRC_ARCHIVE_LOCATION=${SRC_ARCHIVE_LOCATION:-http://www.nektar.info/downloads/file/nektar-source-tar-gz/} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require rcps-core/1.0.0 +require compilers/gnu +require mpi/openmpi/1.10.1/gnu-4.9.2 +require python3/recommended +require openblas/0.2.14/gnu-4.9.2 +require boost/1_54_0/mpi/gnu-4.9.2-ompi-1.10.1 +require fftw/3.3.4-ompi-1.10.1/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texlive/2015 + +# May be able to use graphicsmagik: gm convert +require libtool/2.4.6 +require perl/5.22.0 +require graphicsmagick/1.3.21 + +# temp_dir=`mktemp -d -p /dev/shm` +temp_dir=`mktemp -d -p ~/Software/Nektar++` +cd $temp_dir + +wget $SRC_ARCHIVE_LOCATION -O $SRC_ARCHIVE +tar xvzf $SRC_ARCHIVE +cd nektar++-$VERSION +mkdir build +cd build +cmake -DNEKTAR_USE_MPI:BOOL=ON -DNEKTAR_BUILD_TIMINGS:BOOL=ON -DNEKTAR_USE_FFTW:BOOL=ON \ + -DNEKTAR_USE_OPENBLAS:BOOL=ON -DNEKTAR_USE_PETSC:BOOL=OFF -DNEKTAR_USE_SCOTCH:BOOL=ON \ + -DNEKTAR_USE_SYSTEM_BLAS_LAPACK:BOOL=OFF -DCONVERT:STRING="gm convert" \ + -DCMAKE_INSTALL_PREFIX:STRING="$INSTALL_PREFIX" ../ +make install diff --git a/Nektar++_OpenMPI_Intel_install b/Nektar++_OpenMPI_Intel_install new file mode 100755 index 00000000..d3dd0023 --- /dev/null +++ b/Nektar++_OpenMPI_Intel_install @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +############################################### +# Installing Nektar++: OpenMPI with Intel compilers +# +# by Brian Alston, March 2017 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. + +VERSION=${VERSION:-4.3.5} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Nektar++/$VERSION/intel_OpenMPI} +SRC_ARCHIVE=${SRC_ARCHIVE:-nektar++-$VERSION.tar.gz} +SRC_ARCHIVE_LOCATION=${SRC_ARCHIVE_LOCATION:-http://www.nektar.info/downloads/file/nektar-source-tar-gz/} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require rcps-core/1.0.0 +require compilers/intel +require mpi/openmpi/1.10.1/intel-2015-update2 +require python3/recommended +module unload openblas/0.2.14/gnu-4.9.2 +require openblas/0.2.14/intel-2015-update2 +require boost/1_54_0/mpi/intel-2015-update2 +require fftw/3.3.4/intel-2015-update2 +require ghostscript/9.19/gnu-4.9.2 +require texlive/2015 + +# May be able to use graphicsmagik: gm convert +require libtool/2.4.6 +require perl/5.22.0 +require graphicsmagick/1.3.21 + +temp_dir=`mktemp -d -p /dev/shm` +cd $temp_dir + +wget $SRC_ARCHIVE_LOCATION -O $SRC_ARCHIVE +tar xvzf $SRC_ARCHIVE +cd nektar++-$VERSION +mkdir build +cd build +cmake -DNEKTAR_USE_MPI:BOOL=ON -DNEKTAR_BUILD_TIMINGS:BOOL=ON -DNEKTAR_USE_FFTW:BOOL=ON \ + -DNEKTAR_USE_OPENBLAS:BOOL=ON -DNEKTAR_USE_PETSC:BOOL=OFF -DNEKTAR_USE_SCOTCH:BOOL=ON \ + -DNEKTAR_USE_SYSTEM_BLAS_LAPACK:BOOL=OFF -DCONVERT:STRING="gm convert" \ + -DCMAKE_SHARED_LINKER_FLAGS:STRING="-lifcore" \ + -DCMAKE_INSTALL_PREFIX:STRING="$INSTALL_PREFIX" ../ +make install diff --git a/Paraview-5.3.0-binary_install b/Paraview-5.3.0-binary_install new file mode 100755 index 00000000..d87e8de9 --- /dev/null +++ b/Paraview-5.3.0-binary_install @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +############################################### +# Installing Paraview binaries +# +# +# + +NAME=${NAME:-paraview} +VERSION=${VERSION:-5.3.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA=${SHA:-ee05d4443f20494b70979ce06f83667be45ffe2dff154c34dc4280d13b83a54f} +ARCHIVE_NAME=${ARCHIVE_NAME:-ParaView-${VERSION}-Qt5-OpenGL2-MPI-Linux-64bit.tar.gz} +SRC_ARCHIVE=${SRC_ARCHIVE:-"http://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v5.3&type=binary&os=linux64&downloadFile=${ARCHIVE_NAME}"} +OPTIONS=${OPTIONS:-""} + +set -e + +mkdir -p /dev/shm/$NAME +temp_dir=`mktemp -d -p /dev/shm/$NAME` + +cd $temp_dir + +wget "$SRC_ARCHIVE" -O $ARCHIVE_NAME +archive=$ARCHIVE_NAME + +CHECKSUM=`sha256sum $archive| awk '{print $1}'` + +if [ "$SHA" == "$CHECKSUM" ] +then + mkdir -p $INSTALL_PREFIX + cd $INSTALL_PREFIX + tar -xvf $temp_dir/$archive + +else + echo "Hash mismatch." + echo "Expected: $SHA" + echo "Got: $CHECKSUM" +fi diff --git a/R-3.3.2_packages_install b/R-3.3.2_packages_install index e81a0ce3..74bf3a89 100755 --- a/R-3.3.2_packages_install +++ b/R-3.3.2_packages_install @@ -59,6 +59,7 @@ require gmt/recommended require proj.4/4.9.1 require geos/3.5.0/gnu-4.9.2 require r/3.3.2-openblas/gnu-4.9.2 +require v8/3.15 temp_dir=`mktemp -d -p /dev/shm` # temp_dir='/home/ccspapp/Software/R' diff --git a/R-3.4.0_MPI_install b/R-3.4.0_MPI_install new file mode 100755 index 00000000..3ddd8b66 --- /dev/null +++ b/R-3.4.0_MPI_install @@ -0,0 +1,93 @@ +#!/usr/bin/env bash + +############################################### +# Installing R and Bioconductor MPI support +# packages. +# +# This replaces the old ~ccaabaa/Software/R/extra-pkgs-order.txt file from +# previous version of R on Legion etc. It will need to be updated each time +# an extra package is added to the current R installation. +# +# For R 3.3.2 Note: R-3.3.2_packages_install should be run first. +# +# This is needed on Grace for the Rmpi package to install correctly: +# +# export OMPI_MCA_mtl=^psm +# +# by Brian Alston, June 2016 +# Updated Nov 2016 for R 3.3.2 +# Updated May 2017 for R 3.4.0 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. + +VERSION=${VERSION:-3.4.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +export RLIB_MAIN=${RLIB_MAIN:-${INSTALL_PREFIX}/lib64/R/library} +export RLIB_DB=${RLIB_DB:-/home/ccspapp/Scratch/R/R-${VERSION}-OpenBLAS/library} +export REPROS=${REPROS:-https://cloud.r-project.org/} +LOCALDIR=${LOCALDIR:-/shared/ucl/apps/build_scripts/files/R_UCL} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.4/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.20/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.30/gnu-4.9.2 +require glpk/4.60/gnu-4.9.2 +require mpi/openmpi/1.10.1/gnu-4.9.2 +require perl/5.22.0 +require libtool/2.4.6 +require graphicsmagick/1.3.21 +require python2/recommended +require gdal/2.0.0 +require gmt/recommended +require proj.4/4.9.1 +require geos/3.5.0/gnu-4.9.2 +require r/3.4.0-openblas/gnu-4.9.2 + +temp_dir=`mktemp -d -p /dev/shm` +# temp_dir='/home/ccspapp/Software/R' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir +mkdir -p $RLIB_DB + + +# Note: some old packages need to be installed from local files that have had minor updates applied eg: +# +# adapt fails to install on R > 3.0.1 with: ERROR: a 'NAMESPACE' file is required +# +# tar xvzf adapt_1.0-4.tar.gz +# cd adapt +# Create NAMESPACE with contents: +# +# exportPattern("^[^\\.]") +# +# cd .. +# tar cvzf adapt_1.0-4-ucl.tar.gz adapt +# +# Do this for all packages that fail with abover error. + +R_input=${LOCALDIR}/R_packages_MPI_1.R +R --no-save < $R_input + diff --git a/R-3.4.0_install b/R-3.4.0_install new file mode 100755 index 00000000..452c17a3 --- /dev/null +++ b/R-3.4.0_install @@ -0,0 +1,92 @@ +#!/usr/bin/env bash + +############################################### +# Installing base R plus recommended packages using GCC + OpenBLAS +# +# R 3.4.0 +# +# by Brian Alston, May 2017 +# +# May 2017 updated for R 3.4.0 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. +# May need to update required modules for the latest R. Modules +# updated: +# +# JAGS + +VERSION=${VERSION:-3.4.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +MD5=${MD5:-75083c23d507b9c16d5c6afbd7a827e7} +# SRC_ARCHIVE=${SRC_ARCHIVE:- http://www.stats.bris.ac.uk/R/src/base/R-3/R-${VERSION}.tar.gz} +LOCAL_ARCHIVE=${LOCAL_ARCHIVE:- 1} +SRC_ARCHIVE=${SRC_ARCHIVE:- /home/ccaabaa/Software/R//R-${VERSION}.tar.gz} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.4/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.20/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +# require jags/3.4.0/gnu.4.9.2-openblas +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.30/gnu-4.9.2 +# +# And for doing the MPI support: +# require mpi/openmpi/1.8.4/gnu-4.9.2 +# require mpi/openmpi/1.10.1/gnu-4.9.2 + +# temp_dir=`mktemp -d -p /dev/shm` +temp_dir='/home/ccspapp/Software/R' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir + +if [[ $LOCAL_ARCHIVE ]] +then + cp $SRC_ARCHIVE . +else + wget $SRC_ARCHIVE +fi + +CHECKSUM=`md5sum R-${VERSION}.tar.gz| awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvzf R-${VERSION}.tar.gz + cd R-${VERSION} + ./configure -C --prefix=${INSTALL_PREFIX} --with-recommended-packages --with-x \ + --with-readline=yes --enable-R-shlib \ + --with-blas="-L/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib -lopenblas" \ + --enable-BLAS-shlib 2>&1 | + tee configure-command-OpenBLAS_log + + make 2>&1 | tee make-OpenBLAS_log + make check 2>&1 | tee make-check-OpenBLAS_log + make pdf 2>&1 | tee make-pdf_log + make install 2>&1 | tee make-install_log + make install-pdf 2>&1 | tee make-install-pdf_log + +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/R-3.4.0_packages_install b/R-3.4.0_packages_install new file mode 100755 index 00000000..e6fede8e --- /dev/null +++ b/R-3.4.0_packages_install @@ -0,0 +1,134 @@ +#!/usr/bin/env bash + +############################################### +# Installing UCL needed additional R and Bioconductor +# packages. +# +# This replaces the old ~ccaabaa/Software/R/extra-pkgs-order.txt file from +# previous version of R on Legion etc. It will need to be updated each time +# an extra package is added to the current R installation. +# +# For R 3.4.0 +# +# by Brian Alston, June 2016 +# Updated Sep 2016 to updated JAGS version +# Updated Nov 2016 for R 3.3.2 and extra modules for rgdal and rgeos packages. +# Updated Dec 2016 to use https://cloud.r-project.org/ as defult repro. +# Updated May 2017 for R 3.4.0 and to add udunits/2.2.20/gnu-4.9.2 module. +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. + +set -e + +VERSION=${VERSION:-3.4.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +export RLIB_MAIN=${RLIB_MAIN:-${INSTALL_PREFIX}/lib64/R/library} +export RLIB_DB=${RLIB_DB:-/home/ccspapp/Scratch/R/R-${VERSION}-OpenBLAS/library} +export REPROS=${REPROS:-https://cloud.r-project.org/} +LOCALDIR=${LOCALDIR:-/shared/ucl/apps/build_scripts/files/R_UCL} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.4/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.20/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.30/gnu-4.9.2 +require glpk/4.60/gnu-4.9.2 +require mpi/openmpi/1.10.1/gnu-4.9.2 +require perl/5.22.0 +require libtool/2.4.6 +require graphicsmagick/1.3.21 +require python2/recommended +require gdal/2.0.0 +require gmt/recommended +require proj.4/4.9.1 +require geos/3.5.0/gnu-4.9.2 +require r/3.4.0-openblas/gnu-4.9.2 +require v8/3.15 + +# temp_dir=`mktemp -d -p /dev/shm` +temp_dir='/home/ccspapp/Software/R/Packages' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir +mkdir -p $RLIB_DB + + +# Note: some old packages need to be installed from local files that have had minor updates applied eg: +# +# adapt fails to install on R > 3.0.1 with: ERROR: a 'NAMESPACE' file is required +# +# tar xvzf adapt_1.0-4.tar.gz +# cd adapt +# Create NAMESPACE with contents: +# +# exportPattern("^[^\\.]") +# +# cd .. +# tar cvzf adapt_1.0-4-ucl.tar.gz adapt +# +# Do this for all packages that fail with abover error. + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/adapt_1.0-4-ucl.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_1.R +R --no-save < $R_input + +# No longer on CRAN current - July 2013 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/Design_2.3-0-ucl.tar.gz + +# So build of RCurl picks up currect version of libcurl + +export PATH=/shared/ucl/apps/curl/7.21.3/bin:$PATH +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH\:/shared/ucl/apps/curl/7.21.3/lib +export PKG_LIBS="-L/shared/ucl/apps/curl/7.21.3/lib" + +R_input=${LOCALDIR}/R_packages_UCL_2.R +R --no-save < $R_input + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/OPE_0.7-ucl.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_3.R +R --no-save < $R_input + +# No longer on CRAN - Aug 2014 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/NetworkAnalysis_0.3-1.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_4.R +R --no-save < $R_input + +# For Julie Bertrand (j.bertrand@ucl.ac.uk) - added Jan 2014 +# No longer on CRAN current - June 2016 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/ridge_2.1-3.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_5.R +R --no-save < $R_input + +# Now to install Bioconductor. + +R_input=${LOCALDIR}/Bioconductor_UCL_1.R +R --no-save < $R_input + diff --git a/R-3.4.2_MPI_install b/R-3.4.2_MPI_install new file mode 100755 index 00000000..480442ef --- /dev/null +++ b/R-3.4.2_MPI_install @@ -0,0 +1,97 @@ +#!/usr/bin/env bash + +############################################### +# Installing R and Bioconductor MPI support +# packages. +# +# This replaces the old ~ccaabaa/Software/R/extra-pkgs-order.txt file from +# previous version of R on Legion etc. It will need to be updated each time +# an extra package is added to the current R installation. +# +# For R 3.3.2 Note: R-3.3.2_packages_install should be run first. +# +# This is needed on Grace for the Rmpi package to install correctly: +# +# export OMPI_MCA_mtl=^psm +# +# by Brian Alston, June 2016 +# Updated Nov 2016 for R 3.3.2 +# Updated May 2017 for R 3.4.0 +# Updated December 2017 for R 3.4.2 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. + +VERSION=${VERSION:-3.4.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +export RLIB_MAIN=${RLIB_MAIN:-${INSTALL_PREFIX}/lib64/R/library} +export RLIB_DB=${RLIB_DB:-/home/ccspapp/Scratch/R/R-${VERSION}-OpenBLAS/library} +export REPROS=${REPROS:-https://cloud.r-project.org/} +LOCALDIR=${LOCALDIR:-/shared/ucl/apps/build_scripts/files/R_UCL} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.4/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.20/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.30/gnu-4.9.2 +require glpk/4.60/gnu-4.9.2 +require mpi/openmpi/1.10.1/gnu-4.9.2 +require perl/5.22.0 +require libtool/2.4.6 +require graphicsmagick/1.3.21 +require python2/recommended +require gdal/2.0.0 +require gmt/recommended +require proj.4/4.9.1 +require geos/3.5.0/gnu-4.9.2 +require r/3.4.2-openblas/gnu-4.9.2 +require v8/3.15 +require protobuf/12-2017/gnu-4.9.2 +require jq/1.5/gnu-4.9.2 + +temp_dir=`mktemp -d -p /dev/shm` +# temp_dir='/home/ccspapp/Software/R' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir +mkdir -p $RLIB_DB + + +# Note: some old packages need to be installed from local files that have had minor updates applied eg: +# +# adapt fails to install on R > 3.0.1 with: ERROR: a 'NAMESPACE' file is required +# +# tar xvzf adapt_1.0-4.tar.gz +# cd adapt +# Create NAMESPACE with contents: +# +# exportPattern("^[^\\.]") +# +# cd .. +# tar cvzf adapt_1.0-4-ucl.tar.gz adapt +# +# Do this for all packages that fail with abover error. + +R_input=${LOCALDIR}/R_packages_MPI_1.R +R --no-save < $R_input + diff --git a/R-3.4.2_install b/R-3.4.2_install new file mode 100755 index 00000000..22b7eda7 --- /dev/null +++ b/R-3.4.2_install @@ -0,0 +1,93 @@ +#!/usr/bin/env bash + +############################################### +# Installing base R plus recommended packages using GCC + OpenBLAS +# +# R 3.4.2 +# +# by Brian Alston, October 2017 +# +# May 2017 updated for R 3.4.0 +# October 2017 updated for R 3.4.2 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. +# May need to update required modules for the latest R. Modules +# updated: +# +# + +VERSION=${VERSION:-3.4.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +MD5=${MD5:-1cd6d37850188e7f190f1eb94a24ca1f} +SRC_ARCHIVE=${SRC_ARCHIVE:- http://www.stats.bris.ac.uk/R/src/base/R-3/R-${VERSION}.tar.gz} +# LOCAL_ARCHIVE=${LOCAL_ARCHIVE:- 1} +# SRC_ARCHIVE=${SRC_ARCHIVE:- /home/ccaabaa/Software/R//R-${VERSION}.tar.gz} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.4/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.20/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +# require jags/3.4.0/gnu.4.9.2-openblas +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.30/gnu-4.9.2 +# +# And for doing the MPI support: +# require mpi/openmpi/1.8.4/gnu-4.9.2 +# require mpi/openmpi/1.10.1/gnu-4.9.2 + +# temp_dir=`mktemp -d -p /dev/shm` +temp_dir='/home/ccspapp/Software/R' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir + +if [[ $LOCAL_ARCHIVE ]] +then + cp $SRC_ARCHIVE . +else + wget $SRC_ARCHIVE +fi + +CHECKSUM=`md5sum R-${VERSION}.tar.gz| awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvzf R-${VERSION}.tar.gz + cd R-${VERSION} + ./configure -C --prefix=${INSTALL_PREFIX} --with-recommended-packages --with-x \ + --with-readline=yes --enable-R-shlib \ + --with-blas="-L/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib -lopenblas" \ + --enable-BLAS-shlib 2>&1 | + tee configure-command-OpenBLAS_log + + make 2>&1 | tee make-OpenBLAS_log + make check 2>&1 | tee make-check-OpenBLAS_log + make pdf 2>&1 | tee make-pdf_log + make install 2>&1 | tee make-install_log + make install-pdf 2>&1 | tee make-install-pdf_log + +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/R-3.4.2_packages_install b/R-3.4.2_packages_install new file mode 100755 index 00000000..b0dbc1de --- /dev/null +++ b/R-3.4.2_packages_install @@ -0,0 +1,137 @@ +#!/usr/bin/env bash + +############################################### +# Installing UCL needed additional R and Bioconductor +# packages. +# +# This replaces the old ~ccaabaa/Software/R/extra-pkgs-order.txt file from +# previous version of R on Legion etc. It will need to be updated each time +# an extra package is added to the current R installation. +# +# For R 3.4.2 +# +# by Brian Alston, June 2016 +# Updated Sep 2016 to updated JAGS version +# Updated Nov 2016 for R 3.3.2 and extra modules for rgdal and rgeos packages. +# Updated Dec 2016 to use https://cloud.r-project.org/ as defult repro. +# Updated May 2017 for R 3.4.0 and to add udunits/2.2.20/gnu-4.9.2 module. +# Updated October 2017 for R 3.4.2 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. + +set -e + +VERSION=${VERSION:-3.4.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +export RLIB_MAIN=${RLIB_MAIN:-${INSTALL_PREFIX}/lib64/R/library} +export RLIB_DB=${RLIB_DB:-/home/ccspapp/Scratch/R/R-${VERSION}-OpenBLAS/library} +export REPROS=${REPROS:-https://cloud.r-project.org/} +LOCALDIR=${LOCALDIR:-/shared/ucl/apps/build_scripts/files/R_UCL} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.4/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.20/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.30/gnu-4.9.2 +require glpk/4.60/gnu-4.9.2 +require mpi/openmpi/1.10.1/gnu-4.9.2 +require perl/5.22.0 +require libtool/2.4.6 +require graphicsmagick/1.3.21 +require python2/recommended +require gdal/2.0.0 +require gmt/recommended +require proj.4/4.9.1 +require geos/3.5.0/gnu-4.9.2 +require r/3.4.2-openblas/gnu-4.9.2 +require v8/3.15 +require protobuf/12-2017/gnu-4.9.2 +require jq/1.5/gnu-4.9.2 + +# temp_dir=`mktemp -d -p /dev/shm` +temp_dir='/home/ccspapp/Software/R/Packages' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir +mkdir -p $RLIB_DB + + +# Note: some old packages need to be installed from local files that have had minor updates applied eg: +# +# adapt fails to install on R > 3.0.1 with: ERROR: a 'NAMESPACE' file is required +# +# tar xvzf adapt_1.0-4.tar.gz +# cd adapt +# Create NAMESPACE with contents: +# +# exportPattern("^[^\\.]") +# +# cd .. +# tar cvzf adapt_1.0-4-ucl.tar.gz adapt +# +# Do this for all packages that fail with abover error. + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/adapt_1.0-4-ucl.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_1.R +R --no-save < $R_input + +# No longer on CRAN current - July 2013 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/Design_2.3-0-ucl.tar.gz + +# So build of RCurl picks up currect version of libcurl + +export PATH=/shared/ucl/apps/curl/7.21.3/bin:$PATH +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH\:/shared/ucl/apps/curl/7.21.3/lib +export PKG_LIBS="-L/shared/ucl/apps/curl/7.21.3/lib" + +R_input=${LOCALDIR}/R_packages_UCL_2.R +R --no-save < $R_input + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/OPE_0.7-ucl.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_3.R +R --no-save < $R_input + +# No longer on CRAN - Aug 2014 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/NetworkAnalysis_0.3-1.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_4.R +R --no-save < $R_input + +# For Julie Bertrand (j.bertrand@ucl.ac.uk) - added Jan 2014 +# No longer on CRAN current - June 2016 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/ridge_2.1-3.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_5.R +R --no-save < $R_input + +# Now to install Bioconductor. + +R_input=${LOCALDIR}/Bioconductor_UCL_1.R +R --no-save < $R_input + diff --git a/R-3.5.0_MPI_install b/R-3.5.0_MPI_install new file mode 100755 index 00000000..9dc58512 --- /dev/null +++ b/R-3.5.0_MPI_install @@ -0,0 +1,99 @@ +#!/usr/bin/env bash + +############################################### +# Installing R and Bioconductor MPI support +# packages. +# +# This replaces the old ~ccaabaa/Software/R/extra-pkgs-order.txt file from +# previous version of R on Legion etc. It will need to be updated each time +# an extra package is added to the current R installation. +# +# For R 3.5.0 Note: R-3.5.0_packages_install should be run first. +# +# This is needed on Grace for the Rmpi package to install correctly: +# +# export OMPI_MCA_mtl=^psm +# +# by Brian Alston, June 2016 +# Updated Nov 2016 for R 3.3.2 +# Updated May 2017 for R 3.4.0 +# Updated December 2017 for R 3.4.2 +# Updated June 2018 for R 3.5.0 +# Updated June 2018 (19th) to fix MPI support - now using mpi/openmpi/3.0.0/gnu-4.9.2 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. + +VERSION=${VERSION:-3.5.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +export RLIB_MAIN=${RLIB_MAIN:-${INSTALL_PREFIX}/lib64/R/library} +export RLIB_DB=${RLIB_DB:-/home/ccspapp/Scratch/R/R-${VERSION}-OpenBLAS/library} +export REPROS=${REPROS:-https://cloud.r-project.org/} +LOCALDIR=${LOCALDIR:-/shared/ucl/apps/build_scripts/files/R_UCL} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.6-pl2/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.20/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.30/gnu-4.9.2-fftw-3.3.6 +require glpk/4.60/gnu-4.9.2 +require mpi/openmpi/3.0.0/gnu-4.9.2 +require perl/5.22.0 +require libtool/2.4.6 +require graphicsmagick/1.3.21 +require python2/recommended +require gdal/2.0.0 +require gmt/5.3.1 +require proj.4/4.9.1 +require geos/3.5.0/gnu-4.9.2 +require r/3.5.0-openblas/gnu-4.9.2 +require v8/3.15 +require protobuf/12-2017/gnu-4.9.2 +require jq/1.5/gnu-4.9.2 + +temp_dir=`mktemp -d -p /dev/shm` +# temp_dir='/home/ccspapp/Software/R' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir +mkdir -p $RLIB_DB + + +# Note: some old packages need to be installed from local files that have had minor updates applied eg: +# +# adapt fails to install on R > 3.0.1 with: ERROR: a 'NAMESPACE' file is required +# +# tar xvzf adapt_1.0-4.tar.gz +# cd adapt +# Create NAMESPACE with contents: +# +# exportPattern("^[^\\.]") +# +# cd .. +# tar cvzf adapt_1.0-4-ucl.tar.gz adapt +# +# Do this for all packages that fail with abover error. + +R_input=${LOCALDIR}/R_packages_MPI_1.R +R --no-save < $R_input + diff --git a/R-3.5.0_install b/R-3.5.0_install new file mode 100755 index 00000000..7b84f03a --- /dev/null +++ b/R-3.5.0_install @@ -0,0 +1,95 @@ +#!/usr/bin/env bash + +############################################### +# Installing base R plus recommended packages using GCC + OpenBLAS +# +# R 3.5.0 +# +# by Brian Alston, May 2018 +# +# May 2017 updated for R 3.4.0 +# October 2017 updated for R 3.4.2 +# May 2018 updated for R 3.5.0 and using fftw 3.3.6 and ROOT built +# using fftw 3.3.6 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. +# May need to update required modules for the latest R. Modules +# updated: +# +# + +VERSION=${VERSION:-3.5.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +MD5=${MD5:-c0455dbfa76ca807e4dfa93d49dcc817} +SRC_ARCHIVE=${SRC_ARCHIVE:- http://www.stats.bris.ac.uk/R/src/base/R-3/R-${VERSION}.tar.gz} +# LOCAL_ARCHIVE=${LOCAL_ARCHIVE:- 1} +# SRC_ARCHIVE=${SRC_ARCHIVE:- /home/ccaabaa/Software/R//R-${VERSION}.tar.gz} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.6-pl2/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.20/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +# require jags/3.4.0/gnu.4.9.2-openblas +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.30/gnu-4.9.2-fftw-3.3.6 +# +# And for doing the MPI support: +# require mpi/openmpi/1.8.4/gnu-4.9.2 +# require mpi/openmpi/1.10.1/gnu-4.9.2 + +# temp_dir=`mktemp -d -p /dev/shm` +temp_dir='/home/ccspapp/Software/R' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir + +if [[ $LOCAL_ARCHIVE ]] +then + cp $SRC_ARCHIVE . +else + wget $SRC_ARCHIVE +fi + +CHECKSUM=`md5sum R-${VERSION}.tar.gz| awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvzf R-${VERSION}.tar.gz + cd R-${VERSION} + ./configure -C --prefix=${INSTALL_PREFIX} --with-recommended-packages --with-x \ + --with-readline=yes --enable-R-shlib \ + --with-blas="-L/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib -lopenblas" \ + --enable-BLAS-shlib 2>&1 | + tee configure-command-OpenBLAS_log + + make 2>&1 | tee make-OpenBLAS_log + make check 2>&1 | tee make-check-OpenBLAS_log + make pdf 2>&1 | tee make-pdf_log + make install 2>&1 | tee make-install_log + make install-pdf 2>&1 | tee make-install-pdf_log + +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/R-3.5.0_packages_install b/R-3.5.0_packages_install new file mode 100755 index 00000000..c8350007 --- /dev/null +++ b/R-3.5.0_packages_install @@ -0,0 +1,139 @@ +#!/usr/bin/env bash + +############################################### +# Installing UCL needed additional R and Bioconductor +# packages. +# +# This replaces the old ~ccaabaa/Software/R/extra-pkgs-order.txt file from +# previous version of R on Legion etc. It will need to be updated each time +# an extra package is added to the current R installation. +# +# For R 3.5.0 +# +# by Brian Alston, June 2016 +# Updated Sep 2016 to updated JAGS version +# Updated Nov 2016 for R 3.3.2 and extra modules for rgdal and rgeos packages. +# Updated Dec 2016 to use https://cloud.r-project.org/ as defult repro. +# Updated May 2017 for R 3.4.0 and to add udunits/2.2.20/gnu-4.9.2 module. +# Updated October 2017 for R 3.4.2 +# Updated May 2018 for R 3.5.0 +# Updated June 2018 to fix MPI support - now using mpi/openmpi/3.0.0/gnu-4.9.2 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. + +set -e + +VERSION=${VERSION:-3.5.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +export RLIB_MAIN=${RLIB_MAIN:-${INSTALL_PREFIX}/lib64/R/library} +export RLIB_DB=${RLIB_DB:-/home/ccspapp/Scratch/R/R-${VERSION}-OpenBLAS/library} +export REPROS=${REPROS:-https://cloud.r-project.org/} +LOCALDIR=${LOCALDIR:-/shared/ucl/apps/build_scripts/files/R_UCL} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.6-pl2/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.20/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.30/gnu-4.9.2-fftw-3.3.6 +require glpk/4.60/gnu-4.9.2 +require mpi/openmpi/3.0.0/gnu-4.9.2 +require perl/5.22.0 +require libtool/2.4.6 +require graphicsmagick/1.3.21 +require python2/recommended +require gdal/2.0.0 +require gmt/5.3.1 +require proj.4/4.9.1 +require geos/3.5.0/gnu-4.9.2 +require r/3.5.0-openblas/gnu-4.9.2 +require v8/3.15 +require protobuf/12-2017/gnu-4.9.2 +require jq/1.5/gnu-4.9.2 + +# temp_dir=`mktemp -d -p /dev/shm` +temp_dir='/home/ccspapp/Software/R/Packages' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir +mkdir -p $RLIB_DB + + +# Note: some old packages need to be installed from local files that have had minor updates applied eg: +# +# adapt fails to install on R > 3.0.1 with: ERROR: a 'NAMESPACE' file is required +# +# tar xvzf adapt_1.0-4.tar.gz +# cd adapt +# Create NAMESPACE with contents: +# +# exportPattern("^[^\\.]") +# +# cd .. +# tar cvzf adapt_1.0-4-ucl.tar.gz adapt +# +# Do this for all packages that fail with abover error. + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/adapt_1.0-4-ucl.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_1.R +R --no-save < $R_input + +# No longer on CRAN current - July 2013 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/Design_2.3-0-ucl.tar.gz + +# So build of RCurl picks up currect version of libcurl + +export PATH=/shared/ucl/apps/curl/7.21.3/bin:$PATH +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH\:/shared/ucl/apps/curl/7.21.3/lib +export PKG_LIBS="-L/shared/ucl/apps/curl/7.21.3/lib" + +R_input=${LOCALDIR}/R_packages_UCL_2.R +R --no-save < $R_input + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/OPE_0.7-ucl.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_3.R +R --no-save < $R_input + +# No longer on CRAN - Aug 2014 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/NetworkAnalysis_0.3-1.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_4.R +R --no-save < $R_input + +# For Julie Bertrand (j.bertrand@ucl.ac.uk) - added Jan 2014 +# No longer on CRAN current - June 2016 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/ridge_2.1-3.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_5.R +R --no-save < $R_input + +# Now to install Bioconductor. + +R_input=${LOCALDIR}/Bioconductor_UCL_1.R +R --no-save < $R_input + diff --git a/R-3.5.1_MPI_install b/R-3.5.1_MPI_install new file mode 100755 index 00000000..bc322da7 --- /dev/null +++ b/R-3.5.1_MPI_install @@ -0,0 +1,102 @@ +#!/usr/bin/env bash + +############################################### +# Installing R and Bioconductor MPI support +# packages. +# +# This replaces the old ~ccaabaa/Software/R/extra-pkgs-order.txt file from +# previous version of R on Legion etc. It will need to be updated each time +# an extra package is added to the current R installation. +# +# For R 3.5.0 and later Note: R-_packages_install should be run first. +# +# This is needed on Grace for the Rmpi package to install correctly: +# +# export OMPI_MCA_mtl=^psm +# +# by Brian Alston, June 2016 +# Updated Nov 2016 for R 3.3.2 +# Updated May 2017 for R 3.4.0 +# Updated December 2017 for R 3.4.2 +# Updated June 2018 for R 3.5.0 +# Updated June 2018 (19th) to fix MPI support - now using mpi/openmpi/3.0.0/gnu-4.9.2 +# Updated September 2018 for R 3.5.1 +# Also for udunits 2.2.26. +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. + +VERSION=${VERSION:-3.5.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +export RLIB_MAIN=${RLIB_MAIN:-${INSTALL_PREFIX}/lib64/R/library} +export RLIB_DB=${RLIB_DB:-/home/ccspapp/Scratch/R/R-${VERSION}-OpenBLAS/library} +export REPROS=${REPROS:-https://cloud.r-project.org/} +LOCALDIR=${LOCALDIR:-/shared/ucl/apps/build_scripts/files/R_UCL} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.6-pl2/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.26/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.36/gnu-4.9.2-fftw-3.3.6 +require glpk/4.60/gnu-4.9.2 +require mpi/openmpi/3.0.0/gnu-4.9.2 +require perl/5.22.0 +require libtool/2.4.6 +require graphicsmagick/1.3.21 +require python2/recommended +require gdal/2.0.0 +require gmt/5.3.1 +require proj.4/4.9.1 +require geos/3.5.0/gnu-4.9.2 +require r/3.5.1-openblas/gnu-4.9.2 +require v8/3.15 +require protobuf/12-2017/gnu-4.9.2 +require jq/1.5/gnu-4.9.2 + +temp_dir=`mktemp -d -p /dev/shm` +# temp_dir='/home/ccspapp/Software/R' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir +mkdir -p $RLIB_DB + +export OMPI_MCA_btl=vader,self + +# Note: some old packages need to be installed from local files that have had minor updates applied eg: +# +# adapt fails to install on R > 3.0.1 with: ERROR: a 'NAMESPACE' file is required +# +# tar xvzf adapt_1.0-4.tar.gz +# cd adapt +# Create NAMESPACE with contents: +# +# exportPattern("^[^\\.]") +# +# cd .. +# tar cvzf adapt_1.0-4-ucl.tar.gz adapt +# +# Do this for all packages that fail with abover error. + +R_input=${LOCALDIR}/R_packages_MPI_1.R +R --no-save < $R_input + diff --git a/R-3.5.1_install b/R-3.5.1_install new file mode 100755 index 00000000..0e8987aa --- /dev/null +++ b/R-3.5.1_install @@ -0,0 +1,95 @@ +#!/usr/bin/env bash + +############################################### +# Installing base R plus recommended packages using GCC + OpenBLAS +# +# R 3.5.1 +# +# by Brian Alston, September 2018 +# +# May 2017 updated for R 3.4.0 +# October 2017 updated for R 3.4.2 +# May 2018 updated for R 3.5.0 and using fftw 3.3.6 and ROOT built +# using fftw 3.3.6 +# Sept 2018 updated for R 3.5.1 and udunits 2.2.26 +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. +# May need to update required modules for the latest R. Modules +# updated: +# +# + +VERSION=${VERSION:-3.5.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +MD5=${MD5:-8620686bc237cf80288afff336fcc93c} +SRC_ARCHIVE=${SRC_ARCHIVE:- http://www.stats.bris.ac.uk/R/src/base/R-3/R-${VERSION}.tar.gz} +# LOCAL_ARCHIVE=${LOCAL_ARCHIVE:- 1} +# SRC_ARCHIVE=${SRC_ARCHIVE:- /home/ccaabaa/Software/R//R-${VERSION}.tar.gz} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.6-pl2/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.26/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.36/gnu-4.9.2-fftw-3.3.6 +# +# And for doing the MPI support: +# +# require mpi/openmpi/3.0.0/gnu-4.9.2 + +# temp_dir=`mktemp -d -p /dev/shm` +temp_dir='/home/ccspapp/Software/R' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir + +if [[ $LOCAL_ARCHIVE ]] +then + cp $SRC_ARCHIVE . +else + wget $SRC_ARCHIVE +fi + +CHECKSUM=`md5sum R-${VERSION}.tar.gz| awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvzf R-${VERSION}.tar.gz + cd R-${VERSION} + ./configure -C --prefix=${INSTALL_PREFIX} --with-recommended-packages --with-x \ + --with-readline=yes --enable-R-shlib \ + --with-blas="-L/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib -lopenblas" \ + --enable-BLAS-shlib 2>&1 | + tee configure-command-OpenBLAS_log + + make 2>&1 | tee make-OpenBLAS_log + make check 2>&1 | tee make-check-OpenBLAS_log + make pdf 2>&1 | tee make-pdf_log + make install 2>&1 | tee make-install_log + make install-pdf 2>&1 | tee make-install-pdf_log + +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/R-3.5.1_packages_install b/R-3.5.1_packages_install new file mode 100755 index 00000000..fa255f25 --- /dev/null +++ b/R-3.5.1_packages_install @@ -0,0 +1,151 @@ +#!/usr/bin/env bash + +############################################### +# Installing UCL needed additional R and Bioconductor +# packages. +# +# This replaces the old ~ccaabaa/Software/R/extra-pkgs-order.txt file from +# previous version of R on Legion etc. It will need to be updated each time +# an extra package is added to the current R installation. +# +# For R 3.5.1 +# +# by Brian Alston, June 2016 +# Updated Sep 2016 to updated JAGS version +# Updated Nov 2016 for R 3.3.2 and extra modules for rgdal and rgeos packages. +# Updated Dec 2016 to use https://cloud.r-project.org/ as defult repro. +# Updated May 2017 for R 3.4.0 and to add udunits/2.2.20/gnu-4.9.2 module. +# Updated October 2017 for R 3.4.2 +# Updated May 2018 for R 3.5.0 +# Updated June 2018 to fix MPI support - now using mpi/openmpi/3.0.0/gnu-4.9.2 +# Updated September 2018 for R 3.5.1 and ROOT 5.34.36 +# Also updated for udunits 2.2.26 +# Updated October 2018 to create ~/.R/Makevars to allow installaion of rstan +# +# Using Ian's require function to load modules +# +# Will need modules: see list of modules below. + +set -e + +VERSION=${VERSION:-3.5.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} +export RLIB_MAIN=${RLIB_MAIN:-${INSTALL_PREFIX}/lib64/R/library} +export RLIB_DB=${RLIB_DB:-/home/ccspapp/Scratch/R/R-${VERSION}-OpenBLAS/library} +export REPROS=${REPROS:-https://cloud.r-project.org/} +LOCALDIR=${LOCALDIR:-/shared/ucl/apps/build_scripts/files/R_UCL} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.6-pl2/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.26/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.36/gnu-4.9.2-fftw-3.3.6 +require glpk/4.60/gnu-4.9.2 +require mpi/openmpi/3.0.0/gnu-4.9.2 +require perl/5.22.0 +require libtool/2.4.6 +require graphicsmagick/1.3.21 +require python2/recommended +require gdal/2.0.0 +require gmt/5.3.1 +require proj.4/4.9.1 +require geos/3.5.0/gnu-4.9.2 +require r/3.5.1-openblas/gnu-4.9.2 +require v8/3.15 +require protobuf/12-2017/gnu-4.9.2 +require jq/1.5/gnu-4.9.2 + +# Set up ~/.R/Makevars for rstan which needs C++ 2014 stuff + +mkdir -p ~/.R +cd ~/.R +cat > Makevars < 3.0.1 with: ERROR: a 'NAMESPACE' file is required +# +# tar xvzf adapt_1.0-4.tar.gz +# cd adapt +# Create NAMESPACE with contents: +# +# exportPattern("^[^\\.]") +# +# cd .. +# tar cvzf adapt_1.0-4-ucl.tar.gz adapt +# +# Do this for all packages that fail with abover error. + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/adapt_1.0-4-ucl.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_1.R +R --no-save < $R_input + +# No longer on CRAN current - July 2013 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/Design_2.3-0-ucl.tar.gz + +# So build of RCurl picks up currect version of libcurl + +export PATH=/shared/ucl/apps/curl/7.21.3/bin:$PATH +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH\:/shared/ucl/apps/curl/7.21.3/lib +export PKG_LIBS="-L/shared/ucl/apps/curl/7.21.3/lib" + +R_input=${LOCALDIR}/R_packages_UCL_2.R +R --no-save < $R_input + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/OPE_0.7-ucl.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_3.R +R --no-save < $R_input + +# No longer on CRAN - Aug 2014 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/NetworkAnalysis_0.3-1.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_4.R +R --no-save < $R_input + +# For Julie Bertrand (j.bertrand@ucl.ac.uk) - added Jan 2014 +# No longer on CRAN current - June 2016 + +R CMD INSTALL -l $RLIB_MAIN ${LOCALDIR}/ridge_2.1-3.tar.gz + +R_input=${LOCALDIR}/R_packages_UCL_5.R +R --no-save < $R_input + +# Now to install Bioconductor. + +R_input=${LOCALDIR}/Bioconductor_UCL_1.R +R --no-save < $R_input + diff --git a/R-Bioconductor_package_install b/R-Bioconductor_package_install index 9a3eea67..4ef29fda 100755 --- a/R-Bioconductor_package_install +++ b/R-Bioconductor_package_install @@ -5,13 +5,15 @@ # # by Brian Alston, November 2016 V1.0 # +# Updated June 2017 for R 3.4.0 / Bioconductor 3.5 +# # usage: R-Bioconductor_package_install # # Will need modules: r/recommended set -e -VERSION=${VERSION:-3.3.2} +VERSION=${VERSION:-3.4.0} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} export RLIB_MAIN=${RLIB_MAIN:-${INSTALL_PREFIX}/lib64/R/library} export RLIB_DB=${RLIB_DB:-/home/ccspapp/Scratch/R/R-${VERSION}-OpenBLAS/library} diff --git a/R-aristotle_sync b/R-aristotle_sync index 4dfc1eb3..821e589b 100755 --- a/R-aristotle_sync +++ b/R-aristotle_sync @@ -3,12 +3,13 @@ ############################################### # Syncs ~ccspapp/Scratch/R/ from Legion to Aristotle # -# Default R vesion is 3.3.0-OpenBLAS +# Default R vesion is 3.4.0-OpenBLAS # # by Brian Alston, August 2016 # +# Updated June 2017 for R 3.4.0 -VERSION=${VERSION:-3.3.0-OpenBLAS} +VERSION=${VERSION:-3.4.0-OpenBLAS} INSTALL_PREFIX=${INSTALL_PREFIX:-~ccspapp/Scratch/R/} REM_PREFIX=${REM_PREFIX:-Scratch/R} diff --git a/R-package_install b/R-package_install index 6904c570..2d5c2907 100755 --- a/R-package_install +++ b/R-package_install @@ -5,14 +5,17 @@ # # by Brian Alston, October 2016 V1.1 # Updated Dec 2016 to use https://cloud.r-project.org/ as defult repro. +# Updated May 2017 to default to R 3.4.0 +# Updated March 2018 to default to R 3.4.2 +# Updated October 2018 to default to R 3.5.1 # # usage: R-package_install # -# Will need modules: r/recommended +# Will need modules: r/recommended or possibly r/new set -e -VERSION=${VERSION:-3.3.2} +VERSION=${VERSION:-3.5.1} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/R/R-${VERSION}-OpenBLAS} export RLIB_MAIN=${RLIB_MAIN:-${INSTALL_PREFIX}/lib64/R/library} export RLIB_DB=${RLIB_DB:-/home/ccspapp/Scratch/R/R-${VERSION}-OpenBLAS/library} @@ -26,8 +29,8 @@ INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} source ${INCLUDES_DIR}/module_maker_inc.sh source ${INCLUDES_DIR}/require_inc.sh -require r/recommended -# require r/new +# require r/recommended +require r/new if [ $# -ne 1 ]; then echo "usage: R-package_install " diff --git a/ROOT-5.34.30-FFTW-3.3.6_install b/ROOT-5.34.30-FFTW-3.3.6_install new file mode 100755 index 00000000..76f03d18 --- /dev/null +++ b/ROOT-5.34.30-FFTW-3.3.6_install @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +############################################### +# Installing ROOT 5.34.30 +# +# by Brian Alston, June 2015 +# +# Updated May 2018 to use fftw 3.3.6 for R 3.5 +# +# Will need modules: rcps-core/1.0.0, compilers/gnu/4.9.2, fftw/3.3.6-pl2/gnu-4.9.2 and gsl/1.16/gnu-4.9.2 + +VERSION=${VERSION:-5.34.30} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/ROOT/$VERSION-FFTW-3.3.6/$COMPILER_TAG} +MD5=${MD5:-1c4bb094a555e71daf6897401218d36c} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://root.cern.ch/download/root_v${VERSION}.source.tar.gz} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum root_v${VERSION}.source.tar.gz| awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvzf root_v${VERSION}.source.tar.gz + cd root + ./configure --prefix=${INSTALL_PREFIX} --etcdir=/shared/ucl/apps/ROOT/5.34.30-FFTW-3.3.6/gnu-4.9.2/etc \ + --enable-shared \ + --with-fftw3-incdir=$FFTWINCLUDE \ + --with-fftw3-libdir=$FFTWLIBDIR + make + make install +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/ROOT-5.34.30_install b/ROOT-5.34.30_install index df35a7d4..b5ed6ae9 100755 --- a/ROOT-5.34.30_install +++ b/ROOT-5.34.30_install @@ -5,7 +5,8 @@ # # by Brian Alston, June 2015 # -# Will need modules: rcps-core/1.0.0, compilers/gnu/4.9.2, fftw/3.3.4/gnu.4.9.2 and gsl/1.16/gnu_4.9.2 +# +# Will need modules: rcps-core/1.0.0, compilers/gnu/4.9.2, fftw/3.3.4/gnu-4.9.2 and gsl/1.16/gnu_4.9.2 VERSION=${VERSION:-5.34.30} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/ROOT/$VERSION/$COMPILER_TAG} diff --git a/ROOT-5.34.36-FFTW-3.3.6_install b/ROOT-5.34.36-FFTW-3.3.6_install new file mode 100755 index 00000000..7533869b --- /dev/null +++ b/ROOT-5.34.36-FFTW-3.3.6_install @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +############################################### +# Installing ROOT 5.34.36 +# +# by Brian Alston, June 2015 +# +# Updated May 2018 to use fftw 3.3.6 for R 3.5 +# Updated September 2018 to version 5.34.36 for R 3.5.1 (Bioconductor xps) +# +# Will need modules: rcps-core/1.0.0, compilers/gnu/4.9.2, fftw/3.3.6-pl2/gnu-4.9.2 and gsl/1.16/gnu-4.9.2 + +VERSION=${VERSION:-5.34.36} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/ROOT/$VERSION-FFTW-3.3.6/$COMPILER_TAG} +MD5=${MD5:-6a1ad549b3b79b10bbb1f116b49067ee} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://root.cern.ch/download/root_v${VERSION}.source.tar.gz} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum root_v${VERSION}.source.tar.gz| awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvzf root_v${VERSION}.source.tar.gz + cd root + ./configure --prefix=${INSTALL_PREFIX} --etcdir=/shared/ucl/apps/ROOT/5.34.36-FFTW-3.3.6/gnu-4.9.2/etc \ + --enable-shared \ + --with-fftw3-incdir=$FFTWINCLUDE \ + --with-fftw3-libdir=$FFTWLIBDIR + make + make install +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/Tephra2-2.0_install b/Tephra2-2.0_install new file mode 100755 index 00000000..32d096c7 --- /dev/null +++ b/Tephra2-2.0_install @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +############################################### +# Installing Tephra2 2.0 +# +# by Brian Alston, August 2018 +# +# Using Ian's require function to load modules +# +# + +VERSION=${VERSION:-2.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Tephra2/${VERSION}} +SRC_ARCHIVE=${SRC_ARCHIVE:- https://github.com/geoscience-community-codes/tephra2.git} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require mpi/openmpi/3.1.1/gnu-4.9.2 +require gmt/recommended + +temp_dir=`mktemp -d -p /dev/shm` +# temp_dir='/home/ccspapp/Software/Tephra2' +echo "Building in $temp_dir ..." +cd $temp_dir +module list +read -p "Press [Enter] key to start ..." + +cd $temp_dir + +git clone $SRC_ARCHIVE + +cd tephra2 +make +if [ ! $? ] +then + echo "***** ERROR: make failed" + exit 1 +fi + +# No make check provided. + +# No make install either. + +mkdir -p $INSTALL_PREFIX/bin +cp tephra2012_inversion tephra2-2012 $INSTALL_PREFIX/bin +cp -r inputs $INSTALL_PREFIX +cp -r plotting_scripts $INSTALL_PREFIX +cp -r probability_scripts $INSTALL_PREFIX + +# Install UCL version of run-inversion script to run all Tephra2 steps. + +cp /shared/ucl/apps/build_scripts/files/Tephra2/run-inversion-UCL $INSTALL_PREFIX/bin + diff --git a/TractoR-3.2.5_install b/TractoR-3.2.5_install new file mode 100755 index 00000000..68ba066e --- /dev/null +++ b/TractoR-3.2.5_install @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +############################################### +# Installing TractoR 3.2.5 +# +# by Brian Alston, October 2018 +# + + +APPNAME=${APPNAME:-TractoR} +VERSION=${VERSION:-3.2.5} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/${VERSION}/$COMPILER_TAG} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.tractor-mri.org.uk/tractor.tar.gz} +LOCAL_ARCHIVE=${LOCAL_ARCHIVE:-tractor.tar.gz} +MD5=${MD5:-e8ae15ef2bf415f9a77f960dda3d9bbf} + +set -e + +# Require the R modules. Using GCC. As far as I know the FSL module is not needed +# during building. + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require r/new + +mkdir -p /dev/shm/$APPNAME +temp_dir=`mktemp -d -p /dev/shm/$APPNAME` + +cd $temp_dir +wget $SRC_ARCHIVE +CHECKSUM=`md5sum $LOCAL_ARCHIVE | awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + # TractoR has to be build in place so: + + mkdir -p $INSTALL_PREFIX + cd $INSTALL_PREFIX + tar -zxvf $temp_dir/$LOCAL_ARCHIVE + cd tractor + make install + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/afni-20151030_install b/afni-20181011_install similarity index 95% rename from afni-20151030_install rename to afni-20181011_install index be2c8f09..e7253558 100755 --- a/afni-20151030_install +++ b/afni-20181011_install @@ -9,10 +9,10 @@ # APPNAME=${APPNAME:-afni} -VERSION=${VERSION:-20151030} +VERSION=${VERSION:-20181011} COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/$VERSION/$COMPILER_TAG} -MD5=${MD5:-9f646f656ad3d1e8aae3af1a542eb1d1} +MD5=${MD5:-522b0feb23057e9362a6f74d2712429a} SRC_ARCHIVE=${SRC_ARCHIVE:-http://afni.nimh.nih.gov/pub/dist/tgz/afni_src.tgz} set -e diff --git a/amber-16_install b/amber-16_install index 5dc0b987..36b928e3 100755 --- a/amber-16_install +++ b/amber-16_install @@ -26,7 +26,7 @@ INCLUDES_DIR=/shared/ucl/apps/build_scripts/includes source ${INCLUDES_DIR}/require_inc.sh require gcc-libs require compilers/intel/2015/update2 -require python2/recommended +require python/2.7.9 require flex if [ "${PARALLEL:-}" = "-mpi" ]; then @@ -51,6 +51,17 @@ fi set -e +# Installl a suitable MPI4PY for MMPBSA +if [ "${PARALLEL:-}" = "-mpi" ]; then + mkdir -p /shared/ucl/apps/amber/support/${VERSION} + pip install --install-option="--prefix=/shared/ucl/apps/amber/support/${VERSION}" mpi4py + +fi + +# Give Amber its own numpy - REMOVE THIS IN >16 VERSIONS +#pip install --install-option="--prefix=/shared/ucl/apps/amber/support/${VERSION}" numpy + + mkdir -p $INSTALL_PREFIX mkdir -p /dev/shm/amber @@ -76,3 +87,6 @@ make install cd $temp_dir rm $AMBERHOME mv $ABNAME $AMBERHOME + + + diff --git a/apr-1.5.2_install b/apr-1.5.2_install index 5a9a6cbe..60ce1e05 100755 --- a/apr-1.5.2_install +++ b/apr-1.5.2_install @@ -10,7 +10,7 @@ VERSION=${VERSION:-1.5.2} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/apr/$VERSION} MD5=${MD5:-4e9769f3349fe11fc0a5e1b224c236aa} -SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.mirrorservice.org/sites/ftp.apache.org//apr/apr-${VERSION}.tar.bz2} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://archive.apache.org/dist/apr/apr-${VERSION}.tar.bz2} set -e diff --git a/aprutil-1.5.4_install b/aprutil-1.5.4_install index e8cf8571..23dc9489 100755 --- a/aprutil-1.5.4_install +++ b/aprutil-1.5.4_install @@ -10,7 +10,7 @@ VERSION=${VERSION:-1.5.4} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/apr-util/$VERSION} MD5=${MD5:-2202b18f269ad606d70e1864857ed93c} -SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.mirrorservice.org/sites/ftp.apache.org//apr/apr-util-${VERSION}.tar.bz2} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://archive.apache.org/dist/apr/apr-util-${VERSION}.tar.bz2} set -e diff --git a/arpack-ng-3.5.0-gnu-serial_install b/arpack-ng-3.5.0-gnu-serial_install new file mode 100755 index 00000000..485ef084 --- /dev/null +++ b/arpack-ng-3.5.0-gnu-serial_install @@ -0,0 +1,80 @@ +#!/usr/bin/env bash + +set -o errexit -o nounset +source includes/source_includes.sh + +package_name="arpack-ng" +package_version="3.5.0" +src_urls="https://github.com/opencollab/arpack-ng/archive/${package_version}.tar.gz" +# Optional: +# package_variant="" +package_description="ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems." + +package_variant="serial" + +actual_file_name=${package_version}.tar.gz +actual_file_md5=9762c9ae6d739a9e040f8201b1578874 + +module purge +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.3.2-serial/gnu-4.9.2 + +_env_setup() { + owd=$(pwd) + package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}/${COMPILER_TAG}" + install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} + build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} + module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} + cd $build_dir +} + +_fetch_files() { + wget ${actual_file_name:+-O $actual_file_name} $src_urls + md5sum -c <<<"$actual_file_md5 $actual_file_name" +} + +_setup_files() { + basename=$(tar -tf $actual_file_name | head -n 1 | sed -e 's_/__') + tar -xf $actual_file_name +} + +_build() { + cd ${basename} + ./bootstrap + ./configure \ + --with-blas=-lopenblas \ + --with-lapack=-lopenblas \ + --prefix="$install_prefix" + make + make check + make install + echo "Installed to: $install_prefix" +} + +_prepare_module() { + make_module -p "$install_prefix" \ + -c "${package_name}" \ + -r "gcc-libs/4.9.2" \ + -r "compilers/gnu/4.9.2" \ + -r "openblas/0.3.2-serial/gnu-4.9.2" \ + -o "$module_dir/$package_label" \ + -w "Adds ${package_name} ${package_version} to your environment. $package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx $module_dir +} + +_clean_up() { + cd $owd + if [ -n "$build_dir" ]; then + rm -Rf ${build_dir} + fi +} + +_env_setup +_fetch_files +_setup_files +_build +_prepare_module +_clean_up + diff --git a/arpack-ng-3.5.0-gnu_install b/arpack-ng-3.5.0-gnu_install new file mode 100755 index 00000000..8c254a16 --- /dev/null +++ b/arpack-ng-3.5.0-gnu_install @@ -0,0 +1,80 @@ +#!/usr/bin/env bash + +set -o errexit -o nounset +source includes/source_includes.sh + +package_name="arpack-ng" +package_version="3.5.0" +src_urls="https://github.com/opencollab/arpack-ng/archive/${package_version}.tar.gz" +# Optional: +# package_variant="" +package_description="ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems." + +package_variant="threaded" + +actual_file_name=${package_version}.tar.gz +actual_file_md5=9762c9ae6d739a9e040f8201b1578874 + +module purge +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.3.2-native-threads/gnu-4.9.2 + +_env_setup() { + owd=$(pwd) + package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}/${COMPILER_TAG}" + install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} + build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} + module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} + cd $build_dir +} + +_fetch_files() { + wget ${actual_file_name:+-O $actual_file_name} $src_urls + md5sum -c <<<"$actual_file_md5 $actual_file_name" +} + +_setup_files() { + basename=$(tar -tf $actual_file_name | head -n 1 | sed -e 's_/__') + tar -xf $actual_file_name +} + +_build() { + cd ${basename} + ./bootstrap + ./configure \ + --with-blas=-lopenblas \ + --with-lapack=-lopenblas \ + --prefix="$install_prefix" + make + make check + make install + echo "Installed to: $install_prefix" +} + +_prepare_module() { + make_module -p "$install_prefix" \ + -c "${package_name}" \ + -r "gcc-libs/4.9.2" \ + -r "compilers/gnu/4.9.2" \ + -r "openblas/0.3.2-serial/gnu-4.9.2" \ + -o "$module_dir/$package_label" \ + -w "Adds ${package_name} ${package_version} to your environment. $package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx $module_dir +} + +_clean_up() { + cd $owd + if [ -n "$build_dir" ]; then + rm -Rf ${build_dir} + fi +} + +_env_setup +_fetch_files +_setup_files +_build +_prepare_module +_clean_up + diff --git a/arpack-ng-3.5.0_install b/arpack-ng-3.5.0_install new file mode 100755 index 00000000..c8820ddf --- /dev/null +++ b/arpack-ng-3.5.0_install @@ -0,0 +1,79 @@ +#!/usr/bin/env bash + +set -o errexit -o nounset +source includes/source_includes.sh + +package_name="arpack-ng" +package_version="3.5.0" +src_urls="https://github.com/opencollab/arpack-ng/archive/${package_version}.tar.gz" +# Optional: +# package_variant="" +package_description="ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems." + +actual_file_name=${package_version}.tar.gz +actual_file_md5=9762c9ae6d739a9e040f8201b1578874 + +module purge +require gcc-libs/4.9.2 +require compilers/intel/2017/update1 +require mpi/intel/2017/update1/intel + +_env_setup() { + owd=$(pwd) + package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}/${COMPILER_TAG}" + install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} + build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} + module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} + cd $build_dir +} + +_fetch_files() { + wget ${actual_file_name:+-O $actual_file_name} $src_urls + md5sum -c <<<"$actual_file_md5 $actual_file_name" +} + +_setup_files() { + basename=$(tar -tf $actual_file_name | head -n 1 | sed -e 's_/__') + tar -xf $actual_file_name +} + +_build() { + cd ${basename} + ./bootstrap + ./configure \ + --with-blas=-mkl \ + --with-lapack=-mkl \ + --enable-mpi \ + --prefix="$install_prefix" + make + make check + make install + echo "Installed to: $install_prefix" +} + +_prepare_module() { + make_module -p "$install_prefix" \ + -c "${package_name}" \ + -r "gcc-libs/4.9.2" \ + -r "compilers/intel/2017" \ + -r "mpi/intel/2017" \ + -o "$module_dir/$package_label" \ + -w "Adds ${package_name} ${package_version} to your environment. $package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx $module_dir +} + +_clean_up() { + cd $owd + if [ -n "$build_dir" ]; then + rm -Rf ${build_dir} + fi +} + +_env_setup +_fetch_files +_setup_files +_build +_prepare_module +_clean_up + diff --git a/arrayfire-3.5.0_install b/arrayfire-3.5.0_install new file mode 100755 index 00000000..440be4d1 --- /dev/null +++ b/arrayfire-3.5.0_install @@ -0,0 +1,65 @@ +#!/usr/bin/env bash + +############################################### +# Installing ArrayFire +# +# by Owain Kenway, 2017 +# + +# NOTE: Due to nVidia trying to get you to avoid openCL, must be built on a +# node with the nVidia *drivers*. + +#prereq gcc-libs/4.9.2 +#prereq glfw/3.2.1/gnu-4.9.2 +#prereq llvm/3.9.1 +#prereq mesa/13.0.6/gnu-4.9.2 +#prereq freeimage/3.17.0/gnu-4.9.2 +#prereq python/3.5.2 +#prereq boost/1_63_0/gnu-4.9.2 +#prereq cuda/8.0.61-patch2/gnu-4.9.2 +#prereq glbinding/2.1.2/gnu-4.9.2 +#prereq forge/1.0.0 +#prereq openblas/0.2.14/gnu-4.9.2 +#prereq fftw/3.3.6-pl2/gnu-4.9.2 + +NAME=${NAME:-arrayfire} +VERSION=${VERSION:-3.5.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG/cuda-8.061} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/arrayfire/arrayfire.git} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +# Clone and switch to our chosen version's tag. +git clone $SRC_ARCHIVE +cd arrayfire +git checkout v${VERSION} + +export GLFW_ROOT=/shared/ucl/apps/glfw/3.2.1/gnu-4.9.2 +export GLFW_DIR=$GLFW_ROOT +export OPENCL_ROOT=/shared/ucl/apps/cuda/8.0.61/gnu-4.9.2 + +mkdir build +cd build + +cmake .. -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DBUILD_CPU=ON -DBUILD_OPENCL=ON -DBUILD_CUDA=ON -DBUILD_EXAMPLES=ON -DOpenCL_INCLUDE_DIR=${OpenCL_INCLUDE_DIR} -DFREEIMAGE_INCLUDE_PATH=/shared/ucl/apps/freeimage/3.17.0/gnu-4.9.2/usr/include -DFREEIMAGE_DYNAMIC_LIBRARY=/shared/ucl/apps/freeimage/3.17.0/gnu-4.9.2/usr/lib/libfreeimage.so -DUSE_SYSTEM_FORGE=ON -DUSE_SYSTEM_GLBINDING=ON + + +# this is a terrible fudge but I can't see any way of getting that variable into the CMake vars for clFFT. Setting the env var described in FindOpenCL.cmake does nothing. +set +e +make +set -e + +cd third_party/clFFT/src/clFFT-ext-build +cmake ../clFFT-ext/src -DOPENCL_INCLUDE_DIRS=${OpenCL_INCLUDE_DIR} + +cd $temp_dir/arrayfire/build + +make +make install diff --git a/autoconf-2.69_install b/autoconf-2.69_install new file mode 100755 index 00000000..6feb93c7 --- /dev/null +++ b/autoconf-2.69_install @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +############################################### +# Installing GNU Autoconf 2.69 +# +# by Brian Alston, May 2018 +# +# +# Will need modules: gcc-libs/4.9.2 + +VERSION=${VERSION:-2.69} +# VER=`echo $VERSION | sed 's/\.//'` +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Autoconf/${VERSION}} +MD5=${MD5:-82d05e03b93e45f5a39b828dc9c6c29b} +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.gnu.org/gnu/autoconf/autoconf-${VERSION}.tar.gz} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum autoconf-${VERSION}.tar.gz| awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvzf autoconf-${VERSION}.tar.gz + cd autoconf-${VERSION} + ./configure --prefix=${INSTALL_PREFIX} + make + # Commented out make check as it takes a long time. + # make check + make install +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/autogen-5.18.12_install b/autogen-5.18.12_install new file mode 100755 index 00000000..275c77aa --- /dev/null +++ b/autogen-5.18.12_install @@ -0,0 +1,78 @@ +#!/usr/bin/env bash + +set -e + +package_name="autogen" +package_version="5.18.12" +package_description="AutoGen is a tool designed to simplify the creation and maintenance of programs that contain large amounts of repetitious text." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs/4.9.2 + require compilers/gnu/4.9.2 + require libbdwgc/7.4.2/gnu-4.9.2 + require guile/2.0.11/gnu-4.9.2 + + make_build_env "" + + package_url="http://ftp.gnu.org/gnu/autogen/rel${package_version}/autogen-${package_version}.tar.xz" + package_file="autogen-${package_version}.tar.xz" + unpack_dir="autogen-${package_version}" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + manifest sha256:be3ba62e883185b6ee8475edae97d7197d701d6b9ad9c3d2df53697110c1bfd8 autogen-5.18.12.tar.xz + + tar -xf "$package_file" + +} + +_pre_build() { + cd "$unpack_dir" + ./configure --prefix="${install_prefix}" + cd .. +} + +_build() { + cd "$unpack_dir" + make + cd .. +} + +_post_build() { + cd "$unpack_dir" + make check + + make install + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -r gcc-libs/4.9.2 \ + -r libbdwgc/7.4.2/gnu-4.9.2 \ + -r guile/2.0.11/gnu-4.9.2 \ + -c "$package_name" \ + -w "$package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx "$module_dir" + cd .. +} + +_clean_up() { + #rm -Rf ${temp_dir:-ERROR_TEMP_DIR_NOT_SET} + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/automake-1.16.1_install b/automake-1.16.1_install new file mode 100755 index 00000000..6f657f84 --- /dev/null +++ b/automake-1.16.1_install @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +############################################### +# Installing GNU Automake 1.16.1 +# +# by Brian Alston, June 2018 +# +# +# Will need modules: gcc-libs/4.9.2 + +VERSION=${VERSION:-1.16.1} +# VER=`echo $VERSION | sed 's/\.//'` +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Automake/${VERSION}} +MD5=${MD5:-83cc2463a4080efd46a72ba2c9f6b8f5} +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.gnu.org/gnu/automake/automake-${VERSION}.tar.gz} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require autoconf/2.69 + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum automake-${VERSION}.tar.gz| awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvzf automake-${VERSION}.tar.gz + cd automake-${VERSION} + ./configure --prefix=${INSTALL_PREFIX} + make + # Commented out make check as it takes a long time. + # make check + make install +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/bazel-0.14.1_install b/bazel-0.14.1_install new file mode 100755 index 00000000..9cd848d6 --- /dev/null +++ b/bazel-0.14.1_install @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-bazel} +VERSION=${VERSION:-0.14.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA512=${SHA512:-02c7125438f060d8e5e25b91ce3ca76fac6681b4f12033d807955a4ca5a5c22a3508a7229581b7349f35f343911f8408f43f8d78d54601277576dd32539e4681} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/bazelbuild/bazel/releases/download/${VERSION}/bazel-${VERSION}-dist.zip} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha512sum -c <<< "$SHA512 $archive" + +unzip $archive + +./compile.sh + +mkdir -p $INSTALL_PREFIX/bin +cp output/bazel $INSTALL_PREFIX/bin diff --git a/bazel-0.7.0_install b/bazel-0.7.0_install new file mode 100755 index 00000000..5d7b6617 --- /dev/null +++ b/bazel-0.7.0_install @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-bazel} +VERSION=${VERSION:-0.7.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA512=${SHA512:-039ab6a04fd4422bd14503187e6cc0d07301723b3ecae906606fa12ccea72190d82237899c103c1adfdf05dc8672887790780ddfb4cce87cd590adbde3d3f6d4} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/bazelbuild/bazel/releases/download/${VERSION}/bazel-${VERSION}-dist.zip} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha512sum -c <<< "$SHA512 $archive" + +unzip $archive + +./compile.sh + +mkdir -p $INSTALL_PREFIX/bin +cp output/bazel $INSTALL_PREFIX/bin diff --git a/bcl2fastq2-v2.19.1_install b/bcl2fastq2-v2.19.1_install new file mode 100755 index 00000000..91c9486c --- /dev/null +++ b/bcl2fastq2-v2.19.1_install @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +############################################### +# Installing bcl2fastq2 +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-bcl2fastq2} +VERSION=${VERSION:-v2.19.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION} +MD5=${MD5:-baba7a02767fd868e87cb36781d2be26} +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://webdata2:*password*@ussd-ftp.illumina.com/downloads/software/bcl2fastq/bcl2fastq2-${VERSION}-tar.zip} + +set -e + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + unzip bcl2fastq2-${VERSION}-tar.zip + tar xvf bcl2fastq2-${VERSION}.403.tar.gz + cd bcl2fastq + mkdir build + cd build + ../src/configure --prefix=$INSTALL_PREFIX + make + make install +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/binutils-2.29.1_install b/binutils-2.29.1_install new file mode 100755 index 00000000..38c8ffbe --- /dev/null +++ b/binutils-2.29.1_install @@ -0,0 +1,84 @@ +#!/usr/bin/env bash + +set -e + +package_name="binutils" +package_version="2.29.1" +package_description="The GNU binutils are a collection of tools for working with binary files and assembling and disassembling machine instructions." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/gnu + + make_build_env "" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.xz" + package_url="http://ftp.gnu.org/gnu/${package_name}/${package_name}-${package_version}.tar.xz" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha512:d748d22306477d60d921078804d21943248c23fca0707aac9b016a352c01c75ca69e82624ae37fb0bbd03af3b17088a94f60dfe1a86a7ff82e18ece3c24f0fd0 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure --prefix="$install_prefix" --enable-shared --disable-gold --disable-ld --enable-install-libiberty + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + # If you try to build in parallel, binutils fails + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + make check + + make install + + # If these become the first in the path, they break gcc + # and cause errors like: + # /usr/bin/ld: /tmp/cc7A0CW5.o: access beyond end of merged section (479) + mv "$install_prefix/bin/as" "$install_prefix/bin/as.x" + mv "$install_prefix/x86_64-pc-linux-gnu/bin/as" "$install_prefix/x86_64-pc-linux-gnu/bin/as.x" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c "${package_name}" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -r gcc-libs + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/boost_1.54.0_install b/boost_1.54.0_install index 5d52a1af..3a8d902a 100755 --- a/boost_1.54.0_install +++ b/boost_1.54.0_install @@ -9,9 +9,11 @@ NAME=${NAME:-boost} COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} VERSION=${VERSION:-1_54_0} +# get the version with dot separators +VERSIONNUM=${VERSION//_/.} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} -MD5=${MD5:-15cb8c0803064faef0c4ddf5bc5ca279} -SRC_ARCHIVE=${SRC_ARCHIVE:-http://sourceforge.net/projects/boost/files/boost/1.54.0/${NAME}_${VERSION}.tar.bz2} +SHA256=${SHA256:-047e927de336af106a24bceba30069980c191529fd76b8dff8eb9a328b48ae1d} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://sourceforge.net/projects/boost/files/boost/${VERSIONNUM}/${NAME}_${VERSION}.tar.bz2} MPI=${MPI:-yes} set -e @@ -30,9 +32,9 @@ cd $temp_dir wget $SRC_ARCHIVE tarfile=$(basename "${SRC_ARCHIVE}") -CHECKSUM=`md5sum $tarfile| awk '{print $1}'` +CHECKSUM=`sha256sum $tarfile| awk '{print $1}'` -if [ "$MD5" == "$CHECKSUM" ] +if [ "$SHA256" == "$CHECKSUM" ] then tar -xvf $tarfile @@ -66,6 +68,6 @@ EOT else echo "Hash mismatch." - echo "Expected: $MD5" + echo "Expected: $SHA256" echo "Got: $CHECKSUM" fi diff --git a/boost_1.63.0_install b/boost_1.63.0_install new file mode 100755 index 00000000..0b70b60d --- /dev/null +++ b/boost_1.63.0_install @@ -0,0 +1,72 @@ +#!/usr/bin/env bash + +############################################### +# Installing BOOST +# +# +# + +NAME=${NAME:-boost} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +VERSION=${VERSION:-1_63_0} +# get the version with dot separators +VERSIONNUM=${VERSION//_/.} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://sourceforge.net/projects/${NAME}/files/${NAME}/${VERSIONNUM}/${NAME}_${VERSION}.tar.bz2} +MPI=${MPI:-yes} + +set -e + +mkdir -p /dev/shm/$NAME +temp_dir=`mktemp -d -p /dev/shm/$NAME` + +cd $temp_dir + +wget $SRC_ARCHIVE +tarfile=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`sha256sum $tarfile| awk '{print $1}'` + +if [ "$SHA256" == "$CHECKSUM" ] +then + tar -xvf $tarfile + + if [ "$MPI" == "no" ] + then + INSTALL_PREFIX=/shared/ucl/apps/$NAME/$VERSION/nompi/$COMPILER_TAG + fi + + cd ${NAME}_${VERSION} + ./bootstrap.sh --with-libraries=all --with-python=python --prefix=$INSTALL_PREFIX + + if [ "$MPI" == "yes" ] + then + # enable mpi support by adding "using mpi ;" to the end of project-config.jam + + cat <> project-config.jam + +# ----------------- +# MPI configuration. +# ----------------- + +using mpi : mpicxx ; +EOT + + fi + + # Build, install and log (if any components fail, it doesn't tell you which at the end) + # You can redo individual ones with ./bjam --with-xxxx install + + if [ "${COMPILER_TAG:0:5}" == "intel" ] + then + b2opts="--toolset=intel" + fi + + ./b2 install $b2opts 2>&1 | tee build.log + +else + echo "Hash mismatch." + echo "Expected: $SHA256" + echo "Got: $CHECKSUM" +fi diff --git a/bwa-0.6.2_install b/bwa-0.6.2_install new file mode 100755 index 00000000..e2b9fe7b --- /dev/null +++ b/bwa-0.6.2_install @@ -0,0 +1,83 @@ +#!/usr/bin/env bash + +set -e + +package_name="bwa" +package_version="0.6.2" + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/gnu + + make_build_env "" + + package_url="https://downloads.sourceforge.net/project/bio-bwa/bwa-${package_version}.tar.bz2" + package_file="bwa-${package_version}.tar.bz2" + unpack_dir="bwa-${package_version}" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha1:fd3d0666a89d189b642d6f1c4cfa9c29123c12bc bwa-0.6.2.tar.bz2 + + tar -xf "$package_file" +} + +_pre_build() { + cd "$unpack_dir" + # Nothing here. + cd .. +} + +_build() { + cd "$unpack_dir" + + make + + cd .. +} + +_post_build() { + cd "$unpack_dir" + #make install + mkdir -p "$install_prefix" + cp ./* "$install_prefix"/ + mkdir -p "$install_prefix"/{bin,man/man1,lib} + + cd "$install_prefix" + + cd bin + for i in ../bwa ../*.pl; do ln -s "$i" ./; done + cd .. + (cd man/man1; ln -s ../../bwa.1 ./) + (cd lib; ln -s ../libbwa.a ./) + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c bwa \ + -w "Adds BWA 0.7.12 to your environment. BWA is a software package for mapping DNA sequences against a large reference genome, such as the human genome. " \ + -r gcc-libs + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd .. +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/caffe-1.0_install b/caffe-1.0_install new file mode 100755 index 00000000..be83e03b --- /dev/null +++ b/caffe-1.0_install @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-caffe} +VERSION=${VERSION:-1.0} +TYPE=${TYPE:-cpu} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$TYPE} +SHA256=${SHA256:-71d3c9eb8a183150f965a465824d01fe82826c22505f7aa314f700ace03fa77f} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/BVLC/caffe/archive/${VERSION}.tar.gz} +TESTS=yes + +set -e + +mkdir -p $INSTALL_PREFIX + +cd $INSTALL_PREFIX + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha256sum -c <<< "$SHA256 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} + +cp /shared/ucl/apps/build_scripts/files/caffe-${TYPE}.Makefile.config Makefile.config +make +make all +if [ "$TESTS" == "yes" ] +then + make test + make runtest +fi diff --git a/cancerit-20180202_install b/cancerit-20180202_install new file mode 100755 index 00000000..8e1c431d --- /dev/null +++ b/cancerit-20180202_install @@ -0,0 +1,136 @@ +#!/usr/bin/env bash + +set -e + +package_name="cancerit" +package_version="20180202" +package_description="The CancerIT Suite is a collection of linked bioinformatics tools." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/gnu/4.9.2 + require python/2.7.12 # prereq for boost module + require boost/1_63_0/gnu-4.9.2 + require pstreams + require perl + require htslib + require curl + + + make_build_env "" + module_dir="$module_dir" + +} + + +_file_setup() { + cd "$build_dir" + + github_download \ + https://github.com/cancerit/alleleCount/archive/v3.3.1.tar.gz \ + https://github.com/cancerit/ascatNgs/archive/v4.1.1.tar.gz \ + https://github.com/cancerit/BRASS/archive/v6.0.6.tar.gz \ + https://github.com/cancerit/CaVEMan/archive/1.11.5.tar.gz \ + https://github.com/cancerit/cgpBigWig/archive/0.4.4.tar.gz \ + https://github.com/cancerit/cgpCaVEManPostProcessing/archive/1.7.2.tar.gz \ + https://github.com/cancerit/cgpPindel/archive/v2.2.4.tar.gz \ + https://github.com/cancerit/cgpVcf/archive/v2.0.4.tar.gz \ + https://github.com/cancerit/grass/archive/v2.1.0.tar.gz \ + https://github.com/cancerit/PCAP-core/archive/4.0.5.tar.gz \ + https://github.com/cancerit/VAGrENT/archive/v3.2.3.tar.gz + + manifest \ + sha256:92335eb071125e3b344e3edfe5e687694f27408aed06d3c970c51355ed00ea7b alleleCount-3.3.1.tar.gz \ + sha256:9e227f35f3dce977d1cff697fc2070028d834a18faec2cde2e8732fe5f72f2ee ascatNgs-4.1.1.tar.gz \ + sha256:ebfb153682e274cef8c5cfc03dd75e1bfcb55152da5e19390f0c2dceb14b6937 BRASS-6.0.6.tar.gz \ + sha256:21d1c85a2f6313571b709765815644ef18a8c287568e92b9ccce183e4417ecb9 CaVEMan-1.11.5.tar.gz \ + sha256:8898fbf1bf980278ff3476299954cb38092c4bde7ac13041f778b4e99a12fed2 cgpBigWig-0.4.4.tar.gz \ + sha256:1526a0257e1d351f5f43c751c1905fad25c67b2cef805f7c3be2d856d6c72862 cgpCaVEManPostProcessing-1.7.2.tar.gz \ + sha256:7cdf4b010ac2225ebbc477fa5814705b15dbf3c5dfda344d32122fe59ca74ded cgpPindel-2.2.4.tar.gz \ + sha256:53054c32ab5561407a7339cff1b664d3e45eb6eaffaac9b676b8df4005be3b01 cgpVcf-2.0.4.tar.gz \ + sha256:6fe5a6660ca876a80ed056b2b1896bf4fa4d79538dff702474acd1ec37db3d4d grass-2.1.0.tar.gz \ + sha256:5f32f88bf2e15fe6fc4357f4091d629855a7b85da89f9d59b966826fcfe44b72 PCAP-core-4.0.5.tar.gz \ + sha256:a34c02a93e2b8ce64288308d950d5ca9035ed6980e4f437151340b6e3599f388 VAGrENT-3.2.3.tar.gz + + for file in \ + alleleCount-3.3.1.tar.gz \ + ascatNgs-4.1.1.tar.gz \ + BRASS-6.0.6.tar.gz \ + CaVEMan-1.11.5.tar.gz \ + cgpBigWig-0.4.4.tar.gz \ + cgpCaVEManPostProcessing-1.7.2.tar.gz \ + cgpPindel-2.2.4.tar.gz \ + cgpVcf-2.0.4.tar.gz \ + grass-2.1.0.tar.gz \ + PCAP-core-4.0.5.tar.gz \ + VAGrENT-3.2.3.tar.gz + do + tar -xf "$file" + /usr/bin/rm "$file" + done +} + +_pre_build() { + cd "$build_dir" + + cd "$owd" +} + +_build() { + cd "$build_dir" + + + # These are in an order that satisfies dependencies. Do not shuffle. + # See: https://user-images.githubusercontent.com/479061/35330098-1b9d07e2-00fa-11e8-9c13-c516bde69646.png + for dir in \ + cgpBigWig-0.4.4 \ + PCAP-core-4.0.5 \ + alleleCount-3.3.1 \ + cgpVcf-2.0.4 \ + ascatNgs-4.1.1 \ + cgpPindel-2.2.4 \ + cgpCaVEManPostProcessing-1.7.2 \ + VAGrENT-3.2.3 \ + grass-2.1.0 \ + BRASS-6.0.6 + do + echo "Running setup in ${dir}..." + (cd "$dir" && ./setup.sh "$install_prefix") + done + + cd "$owd" +} + +_post_build() { + cd "$build_dir" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "${package_name}" \ + -r gcc-libs \ + -r compilers/gnu/4.9.2 \ + -r python/2.7.12 \ + -r boost/1_63_0/gnu-4.9.2 \ + -r perl \ + -r htslib + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/castep-17.21_install b/castep-17.21_install new file mode 100755 index 00000000..5e878d94 --- /dev/null +++ b/castep-17.21_install @@ -0,0 +1,139 @@ +#!/usr/bin/env bash + +set -o errexit + + +package_name="castep" +package_version="17.21" +# Optional: +package_variant="" +package_description="CASTEP is a program that uses density functional theory to calculate the properties of materials from first principles." + +source includes/source_includes.sh + +package_file="CASTEP-Releases-$package_version.tar.gz" + +_env_setup() { + module purge + require gcc-libs + require compilers/intel + require mpi/intel + + # The CASTEP tests are about 2GB so we build in /dev/shm instead of /tmp (the default) + make_build_env "castep" "/dev/shm" + + # Many tests fail on Legion when compiled with the 'fast' setting + if [[ "$(facter domain)" == "data.legion.ucl.ac.uk" ]]; then + build_opt_level="intermediate" + else + build_opt_level="fast" + fi + +} + +_file_setup() { + cd "$build_dir" + + cp "/shared/ucl/apps/pkg-store/$package_file" ./ + manifest sha1:a971a541bce1a190bd9dfe0c160081ce497ecb9b "$package_file" + + tar -xf "$package_file" +} + +_pre_build() { + cd "CASTEP-Releases-${package_version}" + tar -xf "CASTEP-${package_version}.tar.gz" +} + +_build() { + cd "CASTEP-${package_version}" + mkdir -p "$install_prefix/bin" # if it doesn't exist, the make process will read from stdin to ask + make -l 10 -j \ + FFT=mkl \ + MATHLIBS=mkl10 \ + FFTLIBDIR= \ + MATHLIBDIR= \ + BUILD="$build_opt_level" \ + INSTALL_DIR="$install_prefix/bin" + make -l 10 -j \ + FFT=mkl \ + MATHLIBS=mkl10 \ + FFTLIBDIR= \ + MATHLIBDIR= \ + BUILD="$build_opt_level" \ + INSTALL_DIR="$install_prefix/bin" \ + check + make -l 10 -j \ + FFT=mkl \ + MATHLIBS=mkl10 \ + FFTLIBDIR= \ + MATHLIBDIR= \ + BUILD="$build_opt_level" \ + INSTALL_DIR="$install_prefix/bin" \ + install + + make -l 10 -j \ + FFT=mkl \ + MATHLIBS=mkl10 \ + FFTLIBDIR= \ + MATHLIBDIR= \ + COMMS_ARCH=mpi \ + SUBARCH=mpi \ + BUILD="$build_opt_level" \ + INSTALL_DIR="$install_prefix/bin" + make -l 10 -j \ + FFT=mkl \ + MATHLIBS=mkl10 \ + FFTLIBDIR= \ + MATHLIBDIR= \ + COMMS_ARCH=mpi \ + SUBARCH=mpi \ + BUILD=fast \ + INSTALL_DIR="$install_prefix/bin" \ + check + make -l 10 -j \ + FFT=mkl \ + MATHLIBS=mkl10 \ + FFTLIBDIR= \ + MATHLIBDIR= \ + COMMS_ARCH=mpi \ + SUBARCH=mpi \ + BUILD=fast \ + INSTALL_DIR="$install_prefix/bin" \ + install + echo "Installed to: $install_prefix" + echo "Unpacking pseudopotentials..." + cd .. + mkdir -p "$install_prefix/psps" + cd "$install_prefix/psps" + tar -xf "$build_dir/CASTEP-Releases-${package_version}/Opium-Rappe-Bennett-recpots-2012.tar.gz" + tar -xf "$build_dir/CASTEP-Releases-${package_version}/Opium-Kr_Extra_recpots.tar.gz" +} + +_prepare_module() { + make_module -p "$install_prefix" \ + -c "${package_name}" \ + -r gcc-libs \ + -r compilers/intel \ + -r mpi/intel \ + -v "PSPOT_DIR=$install_prefix/psps" \ + -o "$module_dir/$package_label" \ + -w "Adds ${package_name} ${package_version} to your environment. $package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx "$module_dir" +} + +_clean_up() { + cd "$owd" + if [ -n "$build_dir" ]; then + rm -Rf "${build_dir}" + fi +} + +_env_setup +_file_setup +_pre_build +_build +_prepare_module +_clean_up + diff --git a/cesm-1.2.2_install b/cesm-1.2.2_install index 9e2a91ca..53053303 100755 --- a/cesm-1.2.2_install +++ b/cesm-1.2.2_install @@ -51,16 +51,24 @@ then make # build CLM tools which have to be done separately - echo "Building CLM 4.5 tools." - - cd ${INSTALL_PREFIX}/cesm${VERSION}/models/lnd/clm/tools/clm4_5/mksurfdata_map/src export INC_NETCDF=$INSTALL_PREFIX/support/netcdf-2017/include export LIB_NETCDF=$INSTALL_PREFIX/support/netcdf-2017/lib - gmake + + echo "Building CLM 4.5 tools." + + for a in mksurfdata_map interpinic + do + cd ${INSTALL_PREFIX}/cesm${VERSION}/models/lnd/clm/tools/clm4_5/$a/src + gmake + done echo "Building CLM 4.0 tools." - cd ${INSTALL_PREFIX}/cesm${VERSION}/models/lnd/clm/tools/clm4_0/mksurfdata_map/src - gmake + + for a in mksurfdata_map interpinic + do + cd ${INSTALL_PREFIX}/cesm${VERSION}/models/lnd/clm/tools/clm4_0/$a/src + gmake + done fi diff --git a/cesm-patches/Macros.legion b/cesm-patches/Macros.legion index 047dd194..05bee6df 100644 --- a/cesm-patches/Macros.legion +++ b/cesm-patches/Macros.legion @@ -31,7 +31,7 @@ ifeq ($(compile_threaded), true) CPPDEFS += -DTHREADED_OMP endif -FC := mpif90 +FC := mpiifort CC := mpicc #===================================================== @@ -45,11 +45,19 @@ CC := mpicc # Also, review the relative paths of the INC_, LIB_, and MOD_ paths # below. Ignore PNETCDF stuff initially, it's not required. + NETCDF_PATH := /shared/ucl/apps/cesm/support/netcdf-2017 +MPICH_PATH := /shared/ucl/apps/intel/2017.Update1/impi/2017.1.132/intel64 + +# Fix for old compilers. +ifeq ($(COMPILER_TAG), "intel-2015-update2") + NETCDF_PATH := /shared/ucl/apps/cesm/support/netcdf + MPICH_PATH := /shared/ucl/apps/intel/2015/impi/5.0.3.048/intel64 +endif + INC_NETCDF := $(NETCDF_PATH)/include LIB_NETCDF := $(NETCDF_PATH)/lib MOD_NETCDF := $(NETCDF_PATH)/include -MPICH_PATH := /shared/ucl/apps/intel/2015/impi/5.0.3.048/intel64 INC_MPI := $(MPICH_PATH)/include LIB_MPI := $(MPICH_PATH)/lib64 MPI_LIB_NAME := mpi diff --git a/cesm-patches/config_compilers.xml.1_2.patch b/cesm-patches/config_compilers.xml.1_2.patch index 3b67dd3d..1b4913be 100644 --- a/cesm-patches/config_compilers.xml.1_2.patch +++ b/cesm-patches/config_compilers.xml.1_2.patch @@ -1,11 +1,13 @@ ---- config_compilers.xml.old 2015-11-18 16:15:10.000000000 +0000 -+++ config_compilers.xml 2015-11-18 16:16:08.000000000 +0000 -@@ -850,4 +850,9 @@ +--- config_compilers.xml.old 2018-07-12 14:49:05.000000000 +0100 ++++ config_compilers.xml 2018-07-12 14:49:45.000000000 +0100 +@@ -850,4 +850,11 @@ $(TRILINOS_PATH) - + + -+ -L/shared/ucl/apps/HDF/5-1.8.15-Intel_2015/lib -L/shared/ucl/apps/cesm/support/netcdf-2017/lib -lnetcdff -lnetcdf ++ mpiicc ++ mpiifort ++ -L/shared/ucl/apps/HDF/5-1.8.15-Intel_2015/lib -L$(NETCDF_PATH)/lib -lnetcdff -lnetcdf -mkl + + + diff --git a/chemshell-3.7.1-mpi-libgulp_install b/chemshell-3.7.1-mpi-libgulp_install new file mode 100755 index 00000000..cedd5f29 --- /dev/null +++ b/chemshell-3.7.1-mpi-libgulp_install @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +############################################### +# Installing ChemShell 3.7.1 MPI version with libgulp +# Built with Intel compiler and MPI +# Source downloaded previously +# ccspap2 needed for restricted app group. + +NAME=${NAME:-chemshell} +VERSION=${VERSION:-3.7.1} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/chemshell/sources/chemsh-${VERSION}.tar.gz} +GULP_VERSION=${GULP_VERSION:-4.5} +RESERVED_APP_GROUP=${RESERVED_APP_GROUP:-lgchemsh} + +set -e + +# require modules for building +source includes/source_includes.sh +module purge +require gcc-libs +require compilers/intel/2018/update3 +require mpi/intel/2018/update3/intel +require tcl +require gulp/4.5/libgulp/intel-2018 + +# need to set this after compiler module is loaded +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/mpi-gulp$GULP_VERSION/$COMPILER_TAG} + +# builds in place +mkdir -p "$INSTALL_PREFIX" +cd "$INSTALL_PREFIX" +tar -xvf "$SRC_ARCHIVE" +cd chemsh-"${VERSION}"/src/config +# Can't find mpif.h unless MPIINC is set. +CC=mpicc F77=mpif90 F90=mpif90 COMPILER_IS_INTEL=1 MPIINC=-I"$MPI_HOME"/include64 ./configure --with-mpi --with-gulp="$LIBGULP_ROOT" +cd .. +make 2>&1 | tee make.log + +# Tests +cd ../examples +../scripts/chemsh -p 4 validate_buildbot.chm 2>&1 | tee validate_buildbot.log +echo "Test output (4 cores) was saved in $INSTALL_PREFIX/chemsh-${VERSION}/examples/validate_buildbot.log" + +echo "Restricting access to $RESERVED_APP_GROUP" +chgrp "$RESERVED_APP_GROUP" "$INSTALL_PREFIX" +chmod o-rwx "$INSTALL_PREFIX" + diff --git a/chemshell-3.7.1-standalone_install b/chemshell-3.7.1-standalone_install new file mode 100755 index 00000000..47a08831 --- /dev/null +++ b/chemshell-3.7.1-standalone_install @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +############################################### +# Installing ChemShell 3.7.1 standalone serial version +# Built with Intel compiler and MPI +# Source downloaded previously +# ccspap2 needed for this restricted app group. + +NAME=${NAME:-chemshell} +VERSION=${VERSION:-3.7.1} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/chemshell/sources/chemsh-${VERSION}.tar.gz} +RESERVED_APP_GROUP=${RESERVED_APP_GROUP:-lgchemsh} + +set -e + +# require modules for building +source includes/source_includes.sh +module purge +require gcc-libs +require compilers/intel/2018/update3 +require tcl + +# need to set this after compiler module is loaded +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} + +# builds in place +mkdir -p "$INSTALL_PREFIX" +cd "$INSTALL_PREFIX" +tar -xvf "$SRC_ARCHIVE" +cd chemsh-"${VERSION}"/src/config +./configure +cd .. +make 2>&1 | tee make.log + +# Tests: results get written to validate.log +cd ../examples +./run_validation.tcsh +echo "Test output was saved in $INSTALL_PREFIX/chemsh-${VERSION}/examples/validate.log" + +echo "Restricting access to $RESERVED_APP_GROUP" +chgrp "$RESERVED_APP_GROUP" "$INSTALL_PREFIX" +chmod o-rwx "$INSTALL_PREFIX" + diff --git a/chicken-4.13_install b/chicken-4.13_install new file mode 100755 index 00000000..a5288fa2 --- /dev/null +++ b/chicken-4.13_install @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +############################################### +# Installing Chicken Scheme +# +# by Owain Kenway, 2019 +# + +NAME=${NAME:-chicken} +VERSION=${VERSION:-4.13.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-add549619a31363d6608b39e0cf0e68b9d5e6ff2a719b5691ddeba57229c6c43} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://code.call-cc.org/releases/${VERSION}/chicken-${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha256sum -c <<< "$SHA256 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} + +mkdir -p ${INSTALL_PREFIX} +make PLATFORM=linux PREFIX=${INSTALL_PREFIX} +make PLATFORM=linux PREFIX=${INSTALL_PREFIX} install diff --git a/clusteringsuite-2.6.6-bin_install b/clusteringsuite-2.6.6-bin_install new file mode 100755 index 00000000..f7d15938 --- /dev/null +++ b/clusteringsuite-2.6.6-bin_install @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +set -e + +package_name="clusteringsuite" +package_version="2.6.6" +package_description="Clustering Suite is a set of tools to automatically expose the main performance trends in applications' computation structure." + +source includes/source_includes.sh + +_env_setup() { + module purge + + # This is a binary distribution but there's no proper way to handle that at the moment + export COMPILER_TAG="bindist" + make_build_env "" + + package_file="${package_name}-${package_version}-linux_x86_64.tar.gz" + package_url="https://ftp.tools.bsc.es/${package_name}/${package_name}-${package_version}-linux_x86_64.tar.gz" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha512:94e7a3490ac28e14badb1b692719215c61d049adc2971ccd3b41de1c7483c6ec193ba821e5330b12b658d7d50c3cf39f80442a41c07daafd4a10713b65e3459e ${package_file} + +} + +_install() { + mkdir -p "$install_prefix" + cd "$install_prefix" + + tar --strip-components=1 -xf "$build_dir/$package_file" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c "${package_name}" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_install +_clean_up + diff --git a/cmake-3.7.2_install b/cmake-3.7.2_install new file mode 100755 index 00000000..0012f70a --- /dev/null +++ b/cmake-3.7.2_install @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +############################################### +# Installing Cmake +# +# by Owain Kenway, 2015 +# updated for 3.7.2 by Ian Kirker, 2017 +# + +set -o errexit -o nounset +for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +VERSION=${VERSION:-3.7.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/cmake/$VERSION/$COMPILER_TAG} +MD5=${MD5:-79bd7e65cd81ea3aa2619484ad6ff25a} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.cmake.org/files/v${VERSION%\.?}/cmake-${VERSION}.tar.gz} + +require gcc-libs +require compilers/gnu + +export PATH=$INSTALL_PREFIX/bin:$PATH + +temp_dir=`mktemp -d` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum cmake-${VERSION}.tar.gz| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -zxvf cmake-${VERSION}.tar.gz + + cd cmake-${VERSION} + ./bootstrap --prefix=$INSTALL_PREFIX --system-curl + make && make install + + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/cmg-2017.101_install b/cmg-2017.101_install new file mode 100755 index 00000000..de326bd8 --- /dev/null +++ b/cmg-2017.101_install @@ -0,0 +1,69 @@ +#!/bin/bash + +# This script installs CMG Reservoir Simulation Software +# Brian Alston October 2018 + + +# You need to download the CMG installer archive from the Computer Modelling Group +# download portal using a UCL site admin login. The CMG license is owned by Earth +# Sciences. +# Place it somewhere in your file-system and set the SRC_ARCHIVE & CMG_INSTALLER +# variables appropriately. + +VERSION=${VERSION:-2017.101.GU} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/CMG} +# INSTALL_PREFIX=${INSTALL_PREFIX:-/home/ccaabaa/apps/CMG} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/CMG/installers/${VERSION}.zip} +# SRC_ARCHIVE=${SRC_ARCHIVE:-/home/ccaabaa/Software/CMG/installers/${VERSION}.zip} +CMG_INSTALLER=${CMG_INSTALLER:-unixinst.sh} + +set -e +startDir=`pwd` + +if [ ! -f $SRC_ARCHIVE ] +then + echo "" + echo "*** ERROR: Cannot find CMG installer archive" + echo "" + echo "You need to download the CMG installer archive from the Computer Modelling" + echo "Group Download Portal: (https://www.cmgl.ca/downloadsoft) using the UCL" + echo "license holder login (Earth Sciences own the UCL license)." + echo "Place it somewhere in your file-system and set the SRC_ARCHIVE & CMG_INSTALLER" + echo "variables appropriately." + echo "" + exit 1 +fi + +# Unpack the install archive into a temporary location. + +temp_dir=`mktemp -d -p /dev/shm` +cd $temp_dir +unzip -x $SRC_ARCHIVE + +# Run the installer. Installer is only interactive so trying a here document. + +cd $VERSION +cwd=`pwd` +chmod +x $CMG_INSTALLER +mkdir -p $INSTALL_PREFIX +./$CMG_INSTALLER << EOF +$INSTALL_PREFIX/$VERSION +y +$cwd +n +y +n +2 + +y +1 +y +1 +y +1 +y +1 +y +y +n +EOF diff --git a/cp2k-4.1-patches/Linux-x86-64-intel-mic.psmp.patch b/cp2k-4.1-patches/Linux-x86-64-intel-mic.psmp.patch new file mode 100644 index 00000000..fbe3831f --- /dev/null +++ b/cp2k-4.1-patches/Linux-x86-64-intel-mic.psmp.patch @@ -0,0 +1,45 @@ +--- Linux-x86-64-intel-mic.psmp.old 2017-03-20 16:44:46.000000000 +0000 ++++ Linux-x86-64-intel-mic.psmp 2017-03-20 16:47:48.000000000 +0000 +@@ -222,16 +222,16 @@ + $(MKLROOT)/lib/mic/libmkl_intel_lp64.a \ + $(MKLROOT)/lib/mic/libmkl_core.a \ + $(MKLROOT)/lib/mic/libmkl_intel_thread.a \ +- --end-group \ +- $(MKLROOT)/lib/mic/libmkl_blacs_intelmpi_lp64.a" ++ $(MKLROOT)/lib/mic/libmkl_blacs_intelmpi_lp64.a \ ++ --end-group" + LIBS += \ + $(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \ + -Wl,--start-group \ + $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \ + $(MKLROOT)/lib/intel64/libmkl_core.a \ + $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \ +- -Wl,--end-group \ +- $(MKLROOT)/lib/intel64/libmkl_blacs_intelmpi_lp64.a ++ $(MKLROOT)/lib/intel64/libmkl_blacs_intelmpi_lp64.a \ ++ -Wl,--end-group + else + MIC_LDFLAGS += -offload-option,mic,ld," \ + --start-group \ +@@ -274,16 +274,17 @@ + $(MKLROOT)/lib/mic/libmkl_intel_lp64.a \ + $(MKLROOT)/lib/mic/libmkl_core.a \ + $(MKLROOT)/lib/mic/libmkl_sequential.a \ +- --end-group \ +- $(MKLROOT)/lib/mic/libmkl_blacs_intelmpi_lp64.a" ++ $(MKLROOT)/lib/mic/libmkl_blacs_intelmpi_lp64.a \ ++ --end-group" + LIBS += \ + $(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a + -Wl,--start-group \ + $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \ + $(MKLROOT)/lib/intel64/libmkl_core.a \ + $(MKLROOT)/lib/intel64/libmkl_sequential.a \ +- -Wl,--end-group \ +- $(MKLROOT)/lib/intel64/libmkl_blacs_intelmpi_lp64.a ++ $(MKLROOT)/lib/intel64/libmkl_blacs_intelmpi_lp64.a \ ++ -Wl,--end-group ++ + else + MIC_LDFLAGS += -offload-option,mic,ld," \ + --start-group \ diff --git a/cp2k-4.1-patches/QUIP_Makefile.inc b/cp2k-4.1-patches/QUIP_Makefile.inc new file mode 100644 index 00000000..cd39b1a1 --- /dev/null +++ b/cp2k-4.1-patches/QUIP_Makefile.inc @@ -0,0 +1,43 @@ +# Place to override setting elsewhere, in particular things set in Makefile.linux_x86_64_gfortran_openmpi +# look in /home/ccspapp/Scratch/cp2k/QUIP/arch/Makefile.linux_x86_64_gfortran_openmpi for defaults set by arch +# +# F77=mpif77 +# F90=mpif90 +# F95=mpif90 +# CC=mpicc +# CPLUSPLUS=mpiCC +# FPP=gfortran -E -x f95-cpp-input +# LINKER=mpif90 +# OPTIM= +# COPTIM= +# DEBUG= +# LIBTOOL= +# DEBUG=-O0 -g -DDUMP_CORE_ON_ABORT -DDEBUG -fbounds-check +# CDEBUG= +MATH_LINKOPTS=-lopenblas +HAVE_NETCDF=0 +USE_MAKEDEP=1 +MAKEDEP=makedep.py +HAVE_MDCORE=0 +HAVE_ASAP=0 +HAVE_KIM=0 +HAVE_CP2K=1 +HAVE_VASP=0 +HAVE_TB=0 +HAVE_PRECON=1 +HAVE_FX=0 +HAVE_GAP=0 +HAVE_GAP_FILLER=0 +HAVE_QR=1 +HAVE_LOTF=0 +HAVE_ONIOM=0 +HAVE_LOCAL_E_MIX=0 +HAVE_QC=0 +EXTRA_LINKOPTS= +HAVE_CGAL=0 +SIZEOF_FORTRAN_T= 2 +HAVE_THIRDPARTY=0 +HAVE_METIS=0 +HAVE_SCME=0 +HAVE_MTP=0 +HAVE_LMTO_TBE=0 diff --git a/cp2k-4.1-patches/UCL-x86-64-gfortran-libsmm-quip.popt b/cp2k-4.1-patches/UCL-x86-64-gfortran-libsmm-quip.popt new file mode 100644 index 00000000..299ba17c --- /dev/null +++ b/cp2k-4.1-patches/UCL-x86-64-gfortran-libsmm-quip.popt @@ -0,0 +1,25 @@ +# Tested with: GFortran 4.9.2 +CC = mpicc +CPP = +FC = mpif90 +LD = mpif90 +AR = ar -r +ACML_INC = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/include +ACML_LIB = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib +FFTW_INC = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/include +FFTW_LIB = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/lib +LIBINT_INC = /home/ccspapp/Scratch/cp2k/support/include +LIBINT_LIB = /home/ccspapp/Scratch/cp2k/support/lib +LIBXC_INC = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/include +LIBXC_LIB = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/lib +QUIP_LIB = /home/ccspapp/Scratch/cp2k/QUIP/build/linux_x86_64_gfortran_openmpi +SMM_LIB = /home/ccspapp/Scratch/cp2k/cp2k-4.1/cp2k/tools/build_libsmm/lib/libsmm_dnn_linux.gnu.a +SCALAPACK_LIB = /shared/ucl/apps/scalapack/2.0.2/gnu-4.9.2-ompi-1.8.4/openblas/lib +DFLAGS = -D__FFTW3 -D__MPI_VERSION=2 -D__parallel -D__SCALAPACK -D__HAS_smm_dnn -D__QUIP -D__LIBINT -D__LIBXC2 +CPPFLAGS = +FCFLAGS = $(DFLAGS) -pthread -O2 -ffree-form -ffree-line-length-none\ + -ftree-vectorize -funroll-loops\ + -mtune=native\ + -I$(ACML_INC) -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(QUIP_LIB) +LDFLAGS = $(FCFLAGS) -pthread -static-libgfortran +LIBS = $(SMM_LIB) $(QUIP_LIB)/libquip.a $(SCALAPACK_LIB)/libscalapack.a $(ACML_LIB)/libopenblas.a $(FFTW_LIB)/libfftw3.a $(LIBXC_LIB)/libxcf90.a $(LIBXC_LIB)/libxc.a $(LIBINT_LIB)/libderiv.a $(LIBINT_LIB)/libint.a diff --git a/cp2k-4.1-patches/UCL-x86-64-gfortran-libsmm.popt b/cp2k-4.1-patches/UCL-x86-64-gfortran-libsmm.popt new file mode 100644 index 00000000..e296e56e --- /dev/null +++ b/cp2k-4.1-patches/UCL-x86-64-gfortran-libsmm.popt @@ -0,0 +1,23 @@ +# Tested with: GFortran 4.9.2 +CC = mpicc +CPP = +FC = mpif90 +LD = mpif90 +AR = ar -r +ACML_INC = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/include +ACML_LIB = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib +FFTW_INC = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/include +FFTW_LIB = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/lib +LIBINT_INC = /home/ccspapp/Scratch/cp2k/support/include +LIBINT_LIB = /home/ccspapp/Scratch/cp2k/support/lib +LIBXC_INC = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/include +LIBXC_LIB = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/lib +SCALAPACK_LIB = /shared/ucl/apps/scalapack/2.0.2/gnu-4.9.2-ompi-1.8.4/openblas/lib +DFLAGS = -D__FFTW3 -D__MPI_VERSION=2 -D__parallel -D__SCALAPACK -D__HAS_smm_dnn -D__LIBINT -D__LIBXC2 +CPPFLAGS = +FCFLAGS = $(DFLAGS) -pthread -O2 -ffree-form -ffree-line-length-none\ + -ftree-vectorize -funroll-loops\ + -mtune=native\ + -I$(ACML_INC) -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) +LDFLAGS = $(FCFLAGS) -pthread -static-libgfortran +LIBS = /home/ccspapp/Scratch/cp2k/cp2k-4.1/cp2k/tools/build_libsmm/lib/libsmm_dnn_linux.gnu.a $(SCALAPACK_LIB)/libscalapack.a $(ACML_LIB)/libopenblas.a $(FFTW_LIB)/libfftw3.a $(LIBXC_LIB)/libxcf90.a $(LIBXC_LIB)/libxc.a $(LIBINT_LIB)/libderiv.a $(LIBINT_LIB)/libint.a diff --git a/cp2k-4.1-patches/UCL-x86-64-gfortran-nolibs.popt b/cp2k-4.1-patches/UCL-x86-64-gfortran-nolibs.popt new file mode 100644 index 00000000..75d06cd0 --- /dev/null +++ b/cp2k-4.1-patches/UCL-x86-64-gfortran-nolibs.popt @@ -0,0 +1,23 @@ +# Tested with: GFortran 4.9.2 +CC = mpicc +CPP = +FC = mpif90 +LD = mpif90 +AR = ar -r +ACML_INC = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/include +ACML_LIB = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib +FFTW_INC = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/include +FFTW_LIB = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/lib +LIBINT_INC = /home/ccspapp/Scratch/cp2k/support/include +LIBINT_LIB = /home/ccspapp/Scratch/cp2k/support/lib +LIBXC_INC = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/include +LIBXC_LIB = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/lib +SCALAPACK_LIB = /shared/ucl/apps/scalapack/2.0.2/gnu-4.9.2-ompi-1.8.4/openblas/lib +DFLAGS = -D__FFTW3 -D__MPI_VERSION=2 -D__parallel -D__SCALAPACK -D__LIBINT -D__LIBXC2 +CPPFLAGS = +FCFLAGS = $(DFLAGS) -pthread -O2 -ffree-form -ffree-line-length-none\ + -ftree-vectorize -funroll-loops\ + -mtune=native\ + -I$(ACML_INC) -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) +LDFLAGS = $(FCFLAGS) -pthread -static-libgfortran +LIBS = $(SCALAPACK_LIB)/libscalapack.a $(ACML_LIB)/libopenblas.a $(FFTW_LIB)/libfftw3.a $(LIBXC_LIB)/libxcf90.a $(LIBXC_LIB)/libxc.a $(LIBINT_LIB)/libderiv.a $(LIBINT_LIB)/libint.a diff --git a/cp2k-4.1-patches/UCL-x86-64-gfortran.popt b/cp2k-4.1-patches/UCL-x86-64-gfortran.popt new file mode 100644 index 00000000..8acef8a5 --- /dev/null +++ b/cp2k-4.1-patches/UCL-x86-64-gfortran.popt @@ -0,0 +1,30 @@ +# Build options for parallel build on UCL RC platforms. +# Use gnu compilers 4.9.2 +# OpenMPI 1.8.4 + +CC = mpicc +CPP = +FC = mpif90 +LD = mpif90 +AR = ar -r +ACML_INC = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/include +ACML_LIB = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib +FFTW_INC = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/include +FFTW_LIB = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/lib +LIBINT_INC = /shared/ucl/apps/libint/1.1.4/gnu-4.9.2/include +LIBINT_LIB = /shared/ucl/apps/libint/1.1.4/gnu-4.9.2/lib +LIBXC_INC = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/include +LIBXC_LIB = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/lib +QUIP_LIB = /shared/ucl/apps/quip/18c5440/lib +QUIP_INC = /shared/ucl/apps/quip/18c5440/include +DATA_DIR = /shared/ucl/apps/cp2k/4_1/gnu-4.9.2/data +SMM_LIB = /shared/ucl/apps/libsmm/cp2k-4_1/gnu-4.9.2/lib/libsmm_dnn_linux.gnu.a +SCALAPACK_LIB = /shared/ucl/apps/scalapack/2.0.2/gnu-4.9.2-ompi-1.8.4/openblas/lib +DFLAGS = -D__FFTW3 -D__MPI_VERSION=2 -D__parallel -D__SCALAPACK -D__HAS_smm_dnn -D__QUIP -D__LIBINT -D__LIBXC2 +CPPFLAGS = +FCFLAGS = $(DFLAGS) -pthread -O2 -ffree-form -ffree-line-length-none\ + -ftree-vectorize -funroll-loops\ + -mtune=native\ + -I$(ACML_INC) -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(QUIP_INC) +LDFLAGS = $(FCFLAGS) -pthread -static-libgfortran +LIBS = $(SMM_LIB) $(QUIP_LIB)/libquip.a $(SCALAPACK_LIB)/libscalapack.a $(ACML_LIB)/libopenblas.a $(FFTW_LIB)/libfftw3.a $(LIBXC_LIB)/libxcf90.a $(LIBXC_LIB)/libxc.a $(LIBINT_LIB)/libderiv.a $(LIBINT_LIB)/libint.a diff --git a/cp2k-4.1-patches/UCL-x86-64-gfortran.psmp b/cp2k-4.1-patches/UCL-x86-64-gfortran.psmp new file mode 100644 index 00000000..4f21bba0 --- /dev/null +++ b/cp2k-4.1-patches/UCL-x86-64-gfortran.psmp @@ -0,0 +1,30 @@ +# Build options for parallel build on UCL RC platforms. +# Use gnu compilers 4.9.2 +# OpenMPI 1.8.4 + +CC = mpicc +CPP = +FC = mpif90 +LD = mpif90 +AR = ar -r +ACML_INC = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/include +ACML_LIB = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib +FFTW_INC = /shared/ucl/apps/fftw/3.3.4-threads/gnu-4.9.2/include +FFTW_LIB = /shared/ucl/apps/fftw/3.3.4-threads/gnu-4.9.2/lib +LIBINT_INC = /shared/ucl/apps/libint/1.1.4/gnu-4.9.2/include +LIBINT_LIB = /shared/ucl/apps/libint/1.1.4/gnu-4.9.2/lib +LIBXC_INC = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/include +LIBXC_LIB = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/lib +QUIP_LIB = /shared/ucl/apps/quip/18c5440/lib +QUIP_INC = /shared/ucl/apps/quip/18c5440/include +DATA_DIR = /shared/ucl/apps/cp2k/4_1/gnu-4.9.2/data +SMM_LIB = /shared/ucl/apps/libsmm/cp2k-4_1/gnu-4.9.2/lib/libsmm_dnn_linux.gnu.a +SCALAPACK_LIB = /shared/ucl/apps/scalapack/2.0.2/gnu-4.9.2-ompi-1.8.4/openblas/lib +DFLAGS = -D__FFTW3 -D__MPI_VERSION=2 -D__parallel -D__SCALAPACK -D__HAS_smm_dnn -D__QUIP -D__LIBINT -D__LIBXC2 +CPPFLAGS = +FCFLAGS = $(DFLAGS) -pthread -O2 -ffree-form -ffree-line-length-none\ + -fopenmp -ftree-vectorize -funroll-loops\ + -mtune=native\ + -I$(ACML_INC) -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(QUIP_INC) +LDFLAGS = $(FCFLAGS) -pthread -static-libgfortran +LIBS = $(SMM_LIB) $(QUIP_LIB)/libquip.a $(SCALAPACK_LIB)/libscalapack.a $(ACML_LIB)/libopenblas.a $(FFTW_LIB)/libfftw3_threads.a $(FFTW_LIB)/libfftw3.a $(LIBXC_LIB)/libxcf90.a $(LIBXC_LIB)/libxc.a $(LIBINT_LIB)/libderiv.a $(LIBINT_LIB)/libint.a diff --git a/cp2k-4.1-patches/linux.gnu b/cp2k-4.1-patches/linux.gnu new file mode 100644 index 00000000..4332aa2c --- /dev/null +++ b/cp2k-4.1-patches/linux.gnu @@ -0,0 +1,5 @@ +target_compile="gfortran -O2 -funroll-loops -ffree-form -ffree-line-length-none -ftree-vectorize -march=native -cpp -finline-functions -fopenmp" + +blas_linking="-L/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib -lopenblas" + +host_compile="gfortran -O2" diff --git a/cp2k-4.1-patches/linux.gnu-threads b/cp2k-4.1-patches/linux.gnu-threads new file mode 100644 index 00000000..1af02827 --- /dev/null +++ b/cp2k-4.1-patches/linux.gnu-threads @@ -0,0 +1,5 @@ +target_compile="gfortran -O2 -funroll-loops -ffree-form -ffree-line-length-none -ftree-vectorize -march=native -cpp -finline-functions -fopenmp" + +blas_linking="-L/shared/ucl/apps/openblas/0.2.14-threads/gnu-4.9.2/lib -lopenblas" + +host_compile="gfortran -O2" diff --git a/cp2k-5.1-patches/UCL-x86-64-gfortran-plumed.popt b/cp2k-5.1-patches/UCL-x86-64-gfortran-plumed.popt new file mode 100644 index 00000000..3fb41945 --- /dev/null +++ b/cp2k-5.1-patches/UCL-x86-64-gfortran-plumed.popt @@ -0,0 +1,35 @@ +# Build options for parallel build on UCL RC platforms. +# Use gnu compilers 4.9.2 +# OpenMPI 3.0.0 (and have gone to -D__MPI_VERSION=3 below, 2 was necessary with 1.8.4) + +# PLUMED +include /shared/ucl/apps/plumed/2.4.1/gnu-4.9.2/openblas/lib/plumed/src/lib/Plumed.inc +# EXTERNAL_OBJECTS=$(PLUMED_STATIC_DEPENDENCIES) + +CC = mpicc +CPP = +FC = mpif90 +LD = mpif90 +AR = ar -r +ACML_INC = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/include +ACML_LIB = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib +FFTW_INC = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/include +FFTW_LIB = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/lib +LIBINT_INC = /shared/ucl/apps/libint/1.1.4/gnu-4.9.2/include +LIBINT_LIB = /shared/ucl/apps/libint/1.1.4/gnu-4.9.2/lib +LIBXC_INC = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/include +LIBXC_LIB = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/lib +QUIP_LIB = /shared/ucl/apps/quip/18c5440/lib +QUIP_INC = /shared/ucl/apps/quip/18c5440/include +DATA_DIR = /shared/ucl/apps/cp2k/5_1/gnu-4.9.2/data +SMM_LIB = /shared/ucl/apps/libsmm/cp2k-4_1/gnu-4.9.2/lib/libsmm_dnn_linux.gnu.a +SCALAPACK_LIB = /shared/ucl/apps/scalapack/2.0.2/gnu-4.9.2-ompi-1.8.4/openblas/lib +DFLAGS = -D__FFTW3 -D__MPI_VERSION=3 -D__parallel -D__SCALAPACK -D__HAS_smm_dnn -D__QUIP -D__LIBINT -D__LIBXC2 -D__PLUMED2 +CPPFLAGS = +FCFLAGS = $(DFLAGS) -pthread -O2 -ffree-form -ffree-line-length-none\ + -ftree-vectorize -funroll-loops\ + -mtune=native\ + -I$(ACML_INC) -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(QUIP_INC) +LDFLAGS = $(FCFLAGS) -pthread -static-libgfortran -fopenmp +LIBS = $(SMM_LIB) $(QUIP_LIB)/libquip.a $(SCALAPACK_LIB)/libscalapack.a $(ACML_LIB)/libopenblas.a $(FFTW_LIB)/libfftw3.a $(LIBXC_LIB)/libxcf90.a $(LIBXC_LIB)/libxc.a $(LIBINT_LIB)/libderiv.a $(LIBINT_LIB)/libint.a -lz -ldl -lstdc++ -lplumed + diff --git a/cp2k-5.1-patches/UCL-x86-64-gfortran.popt b/cp2k-5.1-patches/UCL-x86-64-gfortran.popt new file mode 100644 index 00000000..eb37b4ef --- /dev/null +++ b/cp2k-5.1-patches/UCL-x86-64-gfortran.popt @@ -0,0 +1,30 @@ +# Build options for parallel build on UCL RC platforms. +# Use gnu compilers 4.9.2 +# OpenMPI 3.0.0 (and have gone to -D__MPI_VERSION=3 below, 2 was necessary with 1.8.4) + +CC = mpicc +CPP = +FC = mpif90 +LD = mpif90 +AR = ar -r +ACML_INC = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/include +ACML_LIB = /shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib +FFTW_INC = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/include +FFTW_LIB = /shared/ucl/apps/fftw/3.3.4/gnu-4.9.2/lib +LIBINT_INC = /shared/ucl/apps/libint/1.1.4/gnu-4.9.2/include +LIBINT_LIB = /shared/ucl/apps/libint/1.1.4/gnu-4.9.2/lib +LIBXC_INC = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/include +LIBXC_LIB = /shared/ucl/apps/libxc/2.2.2/gnu-4.9.2/lib +QUIP_LIB = /shared/ucl/apps/quip/18c5440/lib +QUIP_INC = /shared/ucl/apps/quip/18c5440/include +DATA_DIR = /shared/ucl/apps/cp2k/5_1/gnu-4.9.2/data +SMM_LIB = /shared/ucl/apps/libsmm/cp2k-4_1/gnu-4.9.2/lib/libsmm_dnn_linux.gnu.a +SCALAPACK_LIB = /shared/ucl/apps/scalapack/2.0.2/gnu-4.9.2-ompi-1.8.4/openblas/lib +DFLAGS = -D__FFTW3 -D__MPI_VERSION=3 -D__parallel -D__SCALAPACK -D__HAS_smm_dnn -D__QUIP -D__LIBINT -D__LIBXC2 +CPPFLAGS = +FCFLAGS = $(DFLAGS) -pthread -O2 -ffree-form -ffree-line-length-none\ + -ftree-vectorize -funroll-loops\ + -mtune=native\ + -I$(ACML_INC) -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(QUIP_INC) +LDFLAGS = $(FCFLAGS) -pthread -static-libgfortran +LIBS = $(SMM_LIB) $(QUIP_LIB)/libquip.a $(SCALAPACK_LIB)/libscalapack.a $(ACML_LIB)/libopenblas.a $(FFTW_LIB)/libfftw3.a $(LIBXC_LIB)/libxcf90.a $(LIBXC_LIB)/libxc.a $(LIBINT_LIB)/libderiv.a $(LIBINT_LIB)/libint.a diff --git a/cp2k-5.1_install b/cp2k-5.1_install new file mode 100755 index 00000000..50062c75 --- /dev/null +++ b/cp2k-5.1_install @@ -0,0 +1,81 @@ +#!/usr/bin/env bash + +############################################### +# Installing CP2K +# +# by Owain Kenway, 2017 +# + +# YOU SHOULD BUILD WITH GNU 4.9.2 AND OpenMPI 1.8.4 +# The tests take hours and use 2 cores, so shouldn't be run on a login node. +# SVN checkouts are frequently failing, so probably need to get separately first. + +APPNAME=${APPNAME:-cp2k} +VERSION=${VERSION:-5_1} +TYPE=${TYPE:-popt} +ARCH=${ARCH:-UCL-x86-64-gfortran} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/${VERSION}/$COMPILER_TAG} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://svn.code.sf.net/p/cp2k/code/branches/cp2k-${VERSION}-branch} +LOCAL_ARCHIVE=${LOCAL_ARCHIVE:-/shared/ucl/apps/cp2k/sources/cp2k-${VERSION}} +dotversion=$(echo $VERSION | sed 's|_|\.|g') +REGTEST=${REGTEST:-} +USE_SVN=${USE_SVN:-} +USE_PLUMED=${USE_PLUMED:-} + +if [[ "${USE_PLUMED}" == "yes" ]] +then + ARCH=${ARCH}-plumed + echo ">>> USING PLUMED <<<" + INSTALL_PREFIX=${INSTALL_PREFIX}/plumed +fi + +ARCHFILE=${ARCHFILE:-/shared/ucl/apps/build_scripts/cp2k-${dotversion}-patches/${ARCH}.${TYPE}} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/$APPNAME +temp_dir=`mktemp -d -p /dev/shm/$APPNAME` + +cd $temp_dir + +# Either use local copy of source or get from SVN +if [[ ${USE_SVN} == "yes" ]] +then + svn checkout ${SRC_ARCHIVE} cp2k-${VERSION} +else + cp -r ${LOCAL_ARCHIVE} . +fi + +cd cp2k-${VERSION}/cp2k + +mkdir -p ${INSTALL_PREFIX}/data +cp -R data/* ${INSTALL_PREFIX}/data + +cp ${ARCHFILE} arch + +cd makefiles + +make ARCH=${ARCH} VERSION="${TYPE}" + +# Only run the regression tests somewhere we aren't affecting users. +if [[ ${REGTEST} == "yes" ]] +then + make ARCH=${ARCH} VERSION="${TYPE}" test +else + echo "REGTEST set to no in buildscript so not running tests" +fi + +mkdir -p ${INSTALL_PREFIX}/bin +mkdir -p ${INSTALL_PREFIX}/lib/${TYPE} + +cd .. + +cp exe/${ARCH}/* ${INSTALL_PREFIX}/bin +cp lib/${ARCH}/${TYPE}/*.a ${INSTALL_PREFIX}/lib/${TYPE} + +echo "Finshed building cp2k." + + diff --git a/cp2k-6.1_install b/cp2k-6.1_install new file mode 100755 index 00000000..33412dde --- /dev/null +++ b/cp2k-6.1_install @@ -0,0 +1,75 @@ +#!/usr/bin/env bash + +# CP2K + +## Env setup + +set -o errexit + +package_name=cp2k +package_version=6.1 + +cp2k_build_arch="${ARCH:-UCL-x86-64-gfortran}" +cp2k_build_type="${TYPE:-popt}" +cp2k_arch_file="${ARCHFILE:-cp2k-${package_version}-patches/${cp2k_build_arch}.${cp2k_build_type}}" +run_regression_tests="no" +# ^-- The tests take hours and use 2 cores, so shouldn't be run on a login node. + +source includes/source_includes.sh + +module purge +module load gcc-libs/4.9.2 +module load compilers/gnu/4.9.2 +module load mpi/openmpi/3.1.1/gnu-4.9.2 + +make_build_env --tmp-root="/dev/shm" + +export PATH=$install_prefix/bin:$PATH + +original_working_directory="$(dirname "$0")" + +## Download and copy in our pre-prepared config + +cd "$build_dir" + +wget "https://downloads.sourceforge.net/project/cp2k/cp2k-${package_version}.tar.bz2" + +manifest sha256:af803558e0a6b9e9d9ce8a3ab955ba32bacd179922455424e061c82c9fefa34b "cp2k-6.1.tar.bz2" + +tar -xf "cp2k-${package_version}.tar.bz2" + +cd "cp2k-${package_version}" +cp "${original_working_directory}/${cp2k_arch_file}" arch + + +## Build + +cd "makefiles" + +make ARCH="${ARCH}" VERSION="${TYPE}" + +# Only run the regression tests somewhere we aren't affecting users. +if [[ "${run_regression_tests}" == "yes" ]] +then + make ARCH=${ARCH} VERSION="${TYPE}" test +else + echo "REGTEST set to no in buildscript so not running tests" +fi + + +## Install + +mkdir -p ${INSTALL_PREFIX}/bin +mkdir -p ${INSTALL_PREFIX}/lib/${TYPE} + +mkdir -p ${install_prefix}/data +cp -R ../data/* ${install_prefix}/data + +cd .. + +cp exe/${ARCH}/* ${INSTALL_PREFIX}/bin +cp lib/${ARCH}/${TYPE}/*.a ${INSTALL_PREFIX}/lib/${TYPE} + +echo "Finshed building cp2k." + + diff --git a/crystal14-1.0.4_install b/crystal14-1.0.4_install index 87c102de..afd5e209 100755 --- a/crystal14-1.0.4_install +++ b/crystal14-1.0.4_install @@ -3,6 +3,8 @@ # This script installs Crystal14 Versaion 1.0.4 # Brian Alston Feb 2016 # Updated for V1.0.4 May 2016 - version number and archive name changes +# Updated April 2017 - removed dependency on Intel 2015 +# # Based on spm12_install by Owain Kenway # You need to download the Crystal14 archives from the Crystal14 Licence Portal @@ -10,7 +12,8 @@ # Place it somewhere in your file-system and set the SRC_ARCHIVE etc # variables appropriately. -VERSION=${VERSION:-v1.0.4} +VERSION=${VERSION:-v1.0.4_2} +SRC_VERSION=${SRC_VERSION:-v1.0.4} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Crystal14} SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/Crystal14/archives} CRYSTAL14_ARC=${CRYSTAL14_ARC:-crystal14_v1_0_4_Linux-ifort_openmpi-1.6_emt64_exe.tar.gz} @@ -42,8 +45,8 @@ INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} source ${INCLUDES_DIR}/module_maker_inc.sh source ${INCLUDES_DIR}/require_inc.sh require gcc-libs/4.9.2 -require compilers/intel/2015/update2 -require mpi/openmpi/1.8.4/intel-2015-update2 +require compilers/intel +require mpi/openmpi/1.10.1/intel-2015-update2 echo "Installing into $INSTALL_PREFIX/$VERSION ..." @@ -79,19 +82,21 @@ cd $INSTALL_PREFIX/$VERSION tar xvzf $temp_dir/$CRGRA2006_ARC # Rebuild parallel versions Pcrystal and Ppropertis to work on UCL Clusters with infiniband -# and OpenMPI 1.8.4 +# and OpenMPI 1.10.1 -echo "Rebuilding the parallel versions for OpenMPI 1.8.4 and Infinband ..." +echo "Rebuilding the parallel versions for OpenMPI 1.10.1 and Infinband ..." cd $temp_dir tar xvzf $SRC_ARCHIVE/$CRYSTAL14_PAROBJ cd build/Xmakes cp Linux-ifort_XE_emt64.inc Linux-ifort_XE_emt64.inc_dist -sed '/MPIBIN = /s/$/$(MPI_HOME)\/bin/' Linux-ifort_XE_emt64.inc_dist > Linux-ifort_XE_emt64.inc +sed -e '/MPIBIN = /s/$/$(MPI_HOME)\/bin/' -e '/F90FLAGS =/s/-i-static/-static-intel/' -e '/LDLIBS =/s/$/ -lifcore/' Linux-ifort_XE_emt64.inc_dist > Linux-ifort_XE_emt64.inc +cp Linux-ifort_XE_openmpi_emt64.inc Linux-ifort_XE_openmpi_emt64.inc_dist +sed -e '/F90FLAGS =/s/-i-static/-static-intel/' -e '/LDLIBS =/s/$/ -lifcore/' Linux-ifort_XE_openmpi_emt64.inc_dist > Linux-ifort_XE_openmpi_emt64.inc cd .. make all cd ../bin/Linux-ifort_XE_emt64/v1.0.4/ -cp Pcrystal $INSTALL_PREFIX/$VERSION/bin/Linux-ifort_XE_openmpi_emt64/$VERSION/ -cp Pproperties $INSTALL_PREFIX/$VERSION/bin/Linux-ifort_XE_openmpi_emt64/$VERSION/ +cp Pcrystal $INSTALL_PREFIX/$VERSION/bin/Linux-ifort_XE_openmpi_emt64/$SRC_VERSION/ +cp Pproperties $INSTALL_PREFIX/$VERSION/bin/Linux-ifort_XE_openmpi_emt64/$SRC_VERSION/ # Change ownership to reserved app group diff --git a/crystal17-1.0.1_install b/crystal17-1.0.1_install new file mode 100755 index 00000000..2786afed --- /dev/null +++ b/crystal17-1.0.1_install @@ -0,0 +1,116 @@ +#!/bin/bash + +# This script installs Crystal17 Versaion 1.0.1 +# Brian Alston Jan 2018 +# +# Updated from crystal14-1.0.4_install Jan 2018 +# +# Based on spm12_install by Owain Kenway + +# You need to download the Crystal17 archives from the Crystal17 Licence Portal +# (https://www.crystalsolutions.eu/login.html) using a UK academic login. +# Place it somewhere in your file-system and set the SRC_ARCHIVE etc +# variables appropriately. + +VERSION=${VERSION:-v1.0.1} +SRC_VERSION=${SRC_VERSION:-v1_0_1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Crystal17} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/Crystal17/archives} +CRYSTAL17_ARC=${CRYSTAL17_ARC:-crystal17_${SRC_VERSION}_Linux-ifort17_XE_openmpi2.1_emt64.tar.gz} +UTILS17_ARC=${UTILS17_ARC:-utils17.zip} +INPUTS_ARC=${INPUTS_ARC:-inputs_wf.tar.gz} +CRGRA2006_ARC=${CRGRA2006_ARC:-crgra2006.tar.gz} +CRYSTAL17_PAROBJ=${CRYSTAL17_PAROBJ:-Pdistrib-Linux-ifort_XE_openmpi_avx2-v1.0.tar.gz} + +set -e +startDir=`pwd` + +temp_dir=`mktemp -d -p /dev/shm` +cd $temp_dir + +if [ ! -f $SRC_ARCHIVE/$CRYSTAL17_ARC ] +then + echo "" + echo "*** ERROR: Cannot find Crystal17 archives" + echo "" + echo "You need to download the Crystal17 archives from the Crystal17 Licence Portal" + echo "(https://www.crystalsolutions.eu/login.html) using a UK academic login." + echo "Place it somewhere in your file-system and set the SRC_ARCHIVE etc." + echo "variables appropriately." + echo "" + exit 1 +fi + + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh +require gcc-libs/4.9.2 +require compilers/intel +require mpi/openmpi/2.1.2/intel-2017 + +echo "Installing into $INSTALL_PREFIX/$VERSION ..." + +# Unpack the Crystal17 archive. + +echo "Unpacking the Crystal17 archive ..." +mkdir -p $INSTALL_PREFIX/$VERSION +cd $INSTALL_PREFIX/$VERSION +tar xvzf $SRC_ARCHIVE/$CRYSTAL17_ARC + +# Unpack the utilities archive + +echo "Unpacking the utilities archive ..." +mkdir -p utils17 +cd utils17 +unzip -x $SRC_ARCHIVE/$UTILS17_ARC +chmod a+x run* +cd .. + +# Unpack the input files for the supplied examples + +echo "Unpacking the examples archive ..." +cd $temp_dir +wget http://www.crystal.unito.it/test_cases/$INPUTS_ARC +cd $INSTALL_PREFIX/$VERSION +tar xvzf $temp_dir/$INPUTS_ARC + +# Unpack the crgra2006 untility + +echo "Unpacking the crgra utility archive ..." +cd $temp_dir +wget http://www.crystal.unito.it/crgra2006/crgra2006.tar.gz +cd $INSTALL_PREFIX/$VERSION +tar xvzf $temp_dir/$CRGRA2006_ARC + +# Rebuild parallel versions Pcrystal and Ppropertis to work on UCL Grace/Thomas with infiniband +# and OpenMPI 2.1.2 - version optimised for Thomas by + +echo "Rebuilding the parallel versions for OpenMPI 2.1.2 and Infinband ..." +cd $temp_dir +pwd +tar xvzf $SRC_ARCHIVE/$CRYSTAL17_PAROBJ +cd build/Xmakes +cp Linux-ifort_XE_openmpi_avx2.inc Linux-ifort_XE_openmpi_avx2.inc_dist +sed -e '/MKL=/s/\/apps\/intel\/2017\/compilers_and_libraries_2017.2.174\/linux\/mkl/$(MKLROOT)/' Linux-ifort_XE_openmpi_avx2.inc_dist > Linux-ifort_XE_openmpi_avx2.inc +cd .. +cp Makefile Makefile_dist +sed -e '/VERSION =/s/v1.0/v1.0.1/' Makefile_dist > Makefile + +make all +cd ../bin/Linux-ifort_XE_openmpi_avx2/$VERSION +cp Pcrystal $INSTALL_PREFIX/$VERSION/bin/Linux-ifort17_XE_openmpi2.1.0_emt64/$VERSION/ +cp crystal $INSTALL_PREFIX/$VERSION/bin/Linux-ifort17_XE_openmpi2.1.0_emt64/$VERSION/ +cp Pproperties $INSTALL_PREFIX/$VERSION/bin/Linux-ifort17_XE_openmpi2.1.0_emt64/$VERSION/ +cp properties $INSTALL_PREFIX/$VERSION/bin/Linux-ifort17_XE_openmpi2.1.0_emt64/$VERSION/ + +# Change ownership to reserved app group + +cd $INSTALL_PREFIX/.. +chgrp -R legcryst Crystal17 +chmod -R o-rwx Crystal17 + +echo "Finished." + +cd $startDir diff --git a/crystal17-1.0.1_legion_install b/crystal17-1.0.1_legion_install new file mode 100755 index 00000000..20423b63 --- /dev/null +++ b/crystal17-1.0.1_legion_install @@ -0,0 +1,128 @@ +#!/bin/bash + +# This script installs Crystal17 Versaion 1.0.1 on the older legion +# cluster which cannot run the optimised version installed on Grace and +# Thomas. +# +# Brian Alston Jan 2018 +# +# Updated from crystal17-1.0.1_install Jan 2018 +# +# Based on spm12_install by Owain Kenway + +# You need to download the Crystal17 archives from the Crystal17 Licence Portal +# (https://www.crystalsolutions.eu/login.html) using a UK academic login. +# Place it somewhere in your file-system and set the SRC_ARCHIVE etc +# variables appropriately. + +VERSION=${VERSION:-v1.0.1} +SRC_VERSION=${SRC_VERSION:-v1_0_1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Crystal17} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/Crystal17/archives} +CRYSTAL17_ARC=${CRYSTAL17_ARC:-crystal17_${SRC_VERSION}_Linux-ifort17_XE_openmpi2.1_emt64.tar.gz} +UTILS17_ARC=${UTILS17_ARC:-utils17.zip} +INPUTS_ARC=${INPUTS_ARC:-inputs_wf.tar.gz} +CRGRA2006_ARC=${CRGRA2006_ARC:-crgra2006.tar.gz} + +# For Legion use the un-optimised version. +CRYSTAL17_PAROBJ=${CRYSTAL17_PAROBJ:-crystal17_${SRC_VERSION}_Linux-ifort17_emt64_Pdistrib.tar.gz} + +set -e +startDir=`pwd` + +temp_dir=`mktemp -d -p /dev/shm` +cd $temp_dir + +# Other clusters use the optimised build so only install on Legion. + +if [ $SGE_CLUSTER_NAME != "LegProd" ] +then + echo "" + echo "*** ERROR: Not on Legion so not installing." + echo "" + exit 1 +fi + +if [ ! -f $SRC_ARCHIVE/$CRYSTAL17_ARC ] +then + echo "" + echo "*** ERROR: Cannot find Crystal17 archives" + echo "" + echo "You need to download the Crystal17 archives from the Crystal17 Licence Portal" + echo "(https://www.crystalsolutions.eu/login.html) using a UK academic login." + echo "Place it somewhere in your file-system and set the SRC_ARCHIVE etc." + echo "variables appropriately." + echo "" + exit 1 +fi + + +#dirname=$(dirname $0 2>/dev/null || pwd) +dirname=/shared/ucl/apps/build_scripts +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh +require gcc-libs/4.9.2 +require compilers/intel +require mpi/openmpi/2.1.2/intel-2017 + +echo "Installing into $INSTALL_PREFIX/$VERSION ..." + +# Unpack the Crystal17 archive. + +echo "Unpacking the Crystal17 archive ..." +mkdir -p $INSTALL_PREFIX/$VERSION +cd $INSTALL_PREFIX/$VERSION +tar xvzf $SRC_ARCHIVE/$CRYSTAL17_ARC + +# Unpack the utilities archive + +echo "Unpacking the utilities archive ..." +mkdir -p utils17 +cd utils17 +unzip -x $SRC_ARCHIVE/$UTILS17_ARC +chmod a+x run* +cd .. + +# Unpack the input files for the supplied examples + +echo "Unpacking the examples archive ..." +cd $temp_dir +wget http://www.crystal.unito.it/test_cases/$INPUTS_ARC +cd $INSTALL_PREFIX/$VERSION +tar xvzf $temp_dir/$INPUTS_ARC + +# Unpack the crgra2006 untility + +echo "Unpacking the crgra utility archive ..." +cd $temp_dir +wget http://www.crystal.unito.it/crgra2006/crgra2006.tar.gz +cd $INSTALL_PREFIX/$VERSION +tar xvzf $temp_dir/$CRGRA2006_ARC + +# Rebuild parallel versions Pcrystal and Ppropertis to work on UCL Legion with infiniband +# and OpenMPI 2.1.2 - this is the un-optimised version becuase of the older hardware. + +echo "Rebuilding the parallel versions for OpenMPI 2.1.2 and Infinband for Legion ..." +cd $temp_dir +pwd +tar xvzf $SRC_ARCHIVE/$CRYSTAL17_PAROBJ +cd build/Xmakes +cp Linux-ifort17_XE_emt64.inc Linux-ifort17_XE_emt64.inc_dist +sed -e '/MPIBIN = /s/$/$(MPI_HOME)\/bin/' -e '/F90FLAGS =/s/-i-static/-static-intel/' -e '/LDLIBS =/s/$/ -lifcore/' Linux-ifort17_XE_emt64.inc_dist > Linux-ifort17_XE_emt64.inc +cd .. + +make all +cd ../bin/Linux-ifort17_XE_emt64/$VERSION +cp Pcrystal $INSTALL_PREFIX/$VERSION/bin/Linux-ifort17_XE_openmpi2.1.0_emt64/$VERSION/ +cp Pproperties $INSTALL_PREFIX/$VERSION/bin/Linux-ifort17_XE_openmpi2.1.0_emt64/$VERSION/ + +# Change ownership to reserved app group + +cd $INSTALL_PREFIX/.. +chgrp -R legcryst Crystal17 +chmod -R o-rwx Crystal17 + +echo "Finished." + +cd $startDir diff --git a/cuda-8.0.61-patch2_install b/cuda-8.0.61-patch2_install new file mode 100755 index 00000000..3cb58f03 --- /dev/null +++ b/cuda-8.0.61-patch2_install @@ -0,0 +1,89 @@ +#!/usr/bin/env bash + +set -o errexit -o nounset +for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +package_name="cuda" +package_version="8.0.61" +src_urls=https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run + +src_urls2=https://developer.nvidia.com/compute/cuda/8.0/Prod2/patches/2/cuda_8.0.61.2_linux-run + +# Optional: +# package_variant="" +package_description="This is for compiling CUDA code to run on NVIDIA GPUs." + +actual_file_name=8.0.61_375.26_linux-run +actual_file_md5=33e1bd980e91af4e55f3ef835c103f9b + +actual_file_name2=cuda_8.0.61.2_linux-run +actual_file_md52=09adbda67db5267a7d4444fb5173f182 + + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 + +_env_setup() { + owd=$(pwd) + package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}/${COMPILER_TAG}" + install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} + build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} + module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} + cd $build_dir +} + +_fetch_files() { + wget ${actual_file_name:+-O $actual_file_name} $src_urls + md5sum -c <<<"$actual_file_md5 $actual_file_name" + wget ${actual_file_name2:+-O $actual_file_name2} $src_urls2 + md5sum -c <<<"$actual_file_md52 $actual_file_name2" + +} + +_setup_files() { + : +} + +_build() { + chmod +x $actual_file_name $actual_file_name2 + ./$actual_file_name \ + --silent \ + --verbose \ + --tmpdir=$build_dir \ + --toolkit \ + --toolkitpath=$install_prefix \ + --samples \ + --samplespath=$install_prefix + ./$actual_file_name2 \ + --silent \ + --installdir=$install_prefix \ + --accept-eula + echo "Installed to: $install_prefix" +} + +_prepare_module() { + make_module -p $install_prefix \ + -c "${package_name}" \ + -o $module_dir/$package_label \ + -r gcc-libs/4.9.2 \ + -r compilers/gnu/4.9.2 \ + -e PATH:$install_prefix/libnsight \ + -w "Adds ${package_name} ${package_version} to your environment. $package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx $module_dir +} + +_clean_up() { + cd $owd + if [ -n "$build_dir" ]; then + rm -Rf ${build_dir} + fi +} + +_env_setup +_fetch_files +_setup_files +_build +_prepare_module +_clean_up + diff --git a/cuda-9.0.176-patch3_install b/cuda-9.0.176-patch3_install new file mode 100755 index 00000000..3ab4b4ed --- /dev/null +++ b/cuda-9.0.176-patch3_install @@ -0,0 +1,111 @@ +#!/usr/bin/env bash + +set -o errexit -o nounset +for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +package_name="cuda" +package_version="9.0.176" +src_urls=https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run + +src_urls2=https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/1/cuda_9.0.176.1_linux-run + +src_urls3=https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/2/cuda_9.0.176.2_linux-run + +src_urls4=https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/3/cuda_9.0.176.3_linux-run + + +# Optional: +# package_variant="" +package_description="This is for compiling CUDA code to run on NVIDIA GPUs." + +actual_file_name=cuda_9.0.176_384.81_linux-run +actual_file_md5=7a00187b2ce5c5e350e68882f42dd507 + +actual_file_name2=cuda_9.0.176.1_linux-run +actual_file_md52=8477e5733c8250dd3e110ee127002b9c + +actual_file_name3=cuda_9.0.176.2_linux-run +actual_file_md53=4d3113ffd68a4c67511ca66e497badba + +actual_file_name4=cuda_9.0.176.3_linux-run +actual_file_md54=0d7d07dc3084e0f0ce7d861b5a642f19 + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 + +_env_setup() { + owd=$(pwd) + package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}/${COMPILER_TAG}" + install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} + build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} + module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} + cd $build_dir +} + +_fetch_files() { + wget ${actual_file_name:+-O $actual_file_name} $src_urls + md5sum -c <<<"$actual_file_md5 $actual_file_name" + wget ${actual_file_name2:+-O $actual_file_name2} $src_urls2 + md5sum -c <<<"$actual_file_md52 $actual_file_name2" + wget ${actual_file_name3:+-O $actual_file_name3} $src_urls3 + md5sum -c <<<"$actual_file_md53 $actual_file_name3" + wget ${actual_file_name4:+-O $actual_file_name4} $src_urls4 + md5sum -c <<<"$actual_file_md54 $actual_file_name4" + +} + +_setup_files() { + : +} + +_build() { + chmod +x $actual_file_name $actual_file_name2 $actual_file_name3 $actual_file_name4 + ./$actual_file_name \ + --silent \ + --verbose \ + --tmpdir=$build_dir \ + --toolkit \ + --toolkitpath=$install_prefix \ + --samples \ + --samplespath=$install_prefix + ./$actual_file_name2 \ + --silent \ + --installdir=$install_prefix \ + --accept-eula + ./$actual_file_name3 \ + --silent \ + --installdir=$install_prefix \ + --accept-eula + ./$actual_file_name4 \ + --silent \ + --installdir=$install_prefix \ + --accept-eula + echo "Installed to: $install_prefix" +} + +_prepare_module() { + make_module -p $install_prefix \ + -c "${package_name}" \ + -o $module_dir/$package_label \ + -r gcc-libs/4.9.2 \ + -r compilers/gnu/4.9.2 \ + -e PATH:$install_prefix/libnsight \ + -w "Adds ${package_name} ${package_version} to your environment. $package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx $module_dir +} + +_clean_up() { + cd $owd + if [ -n "$build_dir" ]; then + rm -Rf ${build_dir} + fi +} + +_env_setup +_fetch_files +_setup_files +_build +_prepare_module +_clean_up + diff --git a/cudnn-5.1_install.sh b/cudnn-5.1_install.sh new file mode 100755 index 00000000..714de80f --- /dev/null +++ b/cudnn-5.1_install.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-cudnn} +VERSION=${VERSION:-5.1} +CUDA_VERSION=${CUDA_VERSION:-8.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$CUDA_VERSION/$COMPILER_TAG} + +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/cudnn/installers/cudnn-${CUDA_VERSION}-linux-x64-v${VERSION}.tgz} + +set -e + +mkdir -p $INSTALL_PREFIX +cd $INSTALL_PREFIX + +tar -xvf $SRC_ARCHIVE diff --git a/deeptools-3.0.2_install b/deeptools-3.0.2_install new file mode 100755 index 00000000..2e384a99 --- /dev/null +++ b/deeptools-3.0.2_install @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# +set -e + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh + + +module purge +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require python/3.6.3 + +NAME=${NAME:-deeptools} +VERSION=${VERSION:-3.0.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} + + +virtualenv $INSTALL_PREFIX +source $INSTALL_PREFIX/bin/activate + +pip3 install deeptools==${VERSION} + +rm -rf ${INSTALL_PREFIX}/bin/pip* +rm -rf ${INSTALL_PREFIX}/bin/python* +rm -rf ${INSTALL_PREFIX}/bin/activate* +rm -rf ${INSTALL_PREFIX}/bin/easy_install* +rm -rf ${INSTALL_PREFIX}/bin/__pycache__ + +cd ${INSTALL_PREFIX}/bin + +for a in * ; do sed -i 's|/shared/ucl/apps/deeptools/3.0.2/gnu-4.9.2/bin/python3.6|/usr/bin/env python3|g' $a; done + diff --git a/delly-0.7.8-bindist_install b/delly-0.7.8-bindist_install new file mode 100755 index 00000000..47f52870 --- /dev/null +++ b/delly-0.7.8-bindist_install @@ -0,0 +1,70 @@ +#!/usr/bin/env bash + +set -e + +package_name="delly" +package_version="0.7.8" +package_description="Delly is an integrated structural variant (SV) prediction method that can discover, genotype and visualize deletions, tandem duplications, inversions and translocations at single-nucleotide resolution in short-read massively parallel sequencing data." +package_variant="bindist" + +source includes/source_includes.sh + +_env_setup() { + module purge + + make_build_env "" + + package_url="https://github.com/dellytools/delly/releases/download/v0.7.8/delly_v${package_version}_parallel_linux_x86_64bit" + package_file="delly_v${package_version}_parallel_linux_x86_64bit" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + manifest sha256:0ea0dcc5d068d42eeef05369602e612fb106c5495db24b7a051e088b99b27461 "${package_file}" +} + +_pre_build() { + : +} + +_build() { + : +} + +_post_build() { + cd "$build_dir" + + mkdir -p "$install_prefix/bin" + cp "$package_file" "$install_prefix/bin/" + + pushd "$install_prefix/bin" + chmod a+x "$package_file" + ln -s "$package_file" delly + popd + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c "$package_name" \ + -w "$package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx "$module_dir" + cd .. + cd .. +} + +_clean_up() { + #rm -Rf ${temp_dir:-ERROR_TEMP_DIR_NOT_SET} + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/dftbplus-17.1_install b/dftbplus-17.1_install new file mode 100755 index 00000000..17ef3bac --- /dev/null +++ b/dftbplus-17.1_install @@ -0,0 +1,82 @@ +#!/usr/bin/env bash + +set -e + +package_name="dftbplus" +package_version="17.1" +package_description="DFTB+ is a quantum mechanical simulation software package, based on the Density Functional Tight Binding (DFTB) method." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/intel/2017 + require mpi/intel/2017 + require arpack-ng + require python2 + + make_build_env "" + + package_url="https://github.com/dftbplus/dftbplus/archive/${package_version}.tar.gz" + package_file="${package_version}.tar.gz" + unpack_dir="dftbplus-${package_version}" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + tar -xf "$package_file" +} + +_pre_build() { + cd "$unpack_dir" + cp sys/make.x86_64-linux-intel ./make.arch + ./utils/get_opt_externals dftd3 + ./utils/get_opt_externals slakos + cd .. +} + +_build() { + cd "$unpack_dir" + make LIB_BLAS=-mkl MKL_LIBDIR= OTHERLIBS=-qopenmp LNOPT= INSTALLDIR="$install_prefix" + cd .. +} + +_post_build() { + cd "$unpack_dir" + # This sed removes two tests that aren't implemented in 17.1 and + # would otherwise mark the test process as failed. + sed -i -e '/^sockets\/H2O/d' -e '/^sockets\/diamond/d' test/prog/dftb+/tests + make test + + make INSTALLDIR="$install_prefix" install + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -r gcc-libs \ + -r compilers/intel/2017 \ + -r mpi/intel/2017 \ + -r arpack-ng \ + -r python2 \ + -c "$package_name" \ + -w "$package_description" + cd .. +} + +_clean_up() { + #rm -Rf ${temp_dir:-ERROR_TEMP_DIR_NOT_SET} + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/dftbplus-18.2_install b/dftbplus-18.2_install new file mode 100755 index 00000000..689861a5 --- /dev/null +++ b/dftbplus-18.2_install @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +set -o errexit \ + -o nounset + +package_name=dftbplus +package_version=18.2 +package_description="DFTB+ is a software package for carrying out fast quantum mechanical atomistic calculations based on the Density Functional Tight Binding method." + +source includes/source_includes.sh +require gcc-libs/4.9.2 +require compilers/intel/2018/update3 +require mpi/intel/2018/update3 +require python2/recommended + +make_build_env "" + +cd "$build_dir" + +wget "http://www.dftbplus.org/fileadmin/DFTBPLUS/public/dftbplus/$package_version/$package_name-$package_version.tar.xz" + +manifest sha256:a0cb147915ff50404e58cf6202e9002038a8d027ca6508a2ec557cfef7af4e68 dftbplus-18.2.tar.xz + +tar -xf "$package_name-$package_version.tar.xz" +cd "$package_name-$package_version" + +utils/get_opt_externals ALL <<<"y" + +cp sys/make.x86_64-linux-intel make.arch + +make \ + INSTALLDIR="$install_prefix" \ + WITH_MPI=1 \ + WITH_DFTD3=1 + +# Test without *and* with DFTD3 +make \ + INSTALLDIR="$install_prefix" \ + WITH_MPI=1 \ + TEST_MPI_PROCS=4 \ + TEST_OMP_THREADS=2 \ + test +make \ + INSTALLDIR="$install_prefix" \ + WITH_MPI=1 \ + WITH_DFTD3=1 \ + TEST_MPI_PROCS=4 \ + TEST_OMP_THREADS=2 \ + test + +make \ + INSTALLDIR="$install_prefix" \ + WITH_MPI=1 \ + WITH_DFTD3=1 \ + install + +make_module \ + -o "$module_dir/$package_label" \ + -w "$package_description" \ + -p "$install_prefix" \ + -c "dftb+" \ + -c "dftbplus" \ + -e PYTHONPATH:"$install_prefix/lib/python2.7" \ + -r "gcc-libs/4.9.2" \ + -r "compilers/intel/2018/update3" \ + -r "mpi/intel/2018/update3" \ + -r "python2/recommended" + +chmod -R +rX "$module_dir" diff --git a/dftbplus-dev_install b/dftbplus-dev_install new file mode 100755 index 00000000..c3c9ae22 --- /dev/null +++ b/dftbplus-dev_install @@ -0,0 +1,88 @@ +#!/usr/bin/env bash + +set -e + +package_name="dftbplus" +package_version="d07f92e3256022a584cab079a9a76aad7b5a8b66" +package_description="DFTB+ is a quantum mechanical simulation software package, based on the Density Functional Tight Binding (DFTB) method." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/intel/2017/update1 + require mpi/intel/2017/update1/intel + require arpack-ng + require python2 + + make_build_env "" + + package_url="https://github.com/dftbplus/dftbplus.git" + unpack_dir="dftbplus" +} + + +_file_setup() { + cd "$build_dir" + + git clone $package_url + + +} + +_pre_build() { + cd "$unpack_dir" + git submodule update --init --recursive + git checkout $package_version + cp sys/make.x86_64-linux-intel ./make.arch + sed -i.bak "s|mpif90|mpiifort|g" make.arch + ./utils/get_opt_externals dftd3 + ./utils/get_opt_externals slakos + cd .. +} + +_build() { + cd "$unpack_dir" + make WITH_MPI=1 WITH_SOCKETS=0 LIB_BLAS=-mkl INSTALLDIR="$install_prefix" + cd .. +} + +_post_build() { + cd "$unpack_dir" + # This sed removes two tests that aren't implemented in 17.1 and + # would otherwise mark the test process as failed. + + # remove via make system + # sed -i -e '/^sockets\/H2O/d' -e '/^sockets\/diamond/d' test/prog/dftb+/tests + + # should also set value for TESTPROC if more than 1 processor required : + make test WITH_MPI=1 WITH_SOCKETS=0 + + make INSTALLDIR="$install_prefix" install + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -r gcc-libs \ + -r compilers/intel/2017 \ + -r mpi/intel/2017 \ + -r arpack-ng \ + -r python2 \ + -c "$package_name" \ + -w "$package_description" + cd .. +} + +_clean_up() { + #rm -Rf ${temp_dir:-ERROR_TEMP_DIR_NOT_SET} + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/dimemas-5.3.3-bin_install b/dimemas-5.3.3-bin_install new file mode 100755 index 00000000..2210cd60 --- /dev/null +++ b/dimemas-5.3.3-bin_install @@ -0,0 +1,57 @@ +#!/usr/bin/env bash + +set -e + +package_name="dimemas" +package_version="5.3.3" +package_description="Dimemas is an abstracted network simulator for message-passing programs." + +source includes/source_includes.sh + +_env_setup() { + module purge + + # This is a binary distribution but there's no proper way to handle that at the moment + export COMPILER_TAG="bindist" + make_build_env "" + + #unpack_dir="wx${package_name}-${package_version}-Linux_x86_64" + package_file="${package_name}-${package_version}-Linux_x86_64.tar.bz2" + package_url="https://ftp.tools.bsc.es/${package_name}/${package_name}-${package_version}-Linux_x86_64.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha512:ecc67505d0b9d2f3a897022253361929e91f3312abb6997319bf86ca4ad83165a66bd0e3148f19ad789c9fa653d4e1ccc22b7750a7fe8b65c4c28a090390f79d ${package_file} + +} + +_install() { + mkdir -p "$install_prefix" + cd "$install_prefix" + + tar --strip-components=1 -xf "$build_dir/$package_file" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c "${package_name}" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_install +_clean_up + diff --git a/dl_poly-4.08-plumed_install b/dl_poly-4.08-plumed_install new file mode 100755 index 00000000..f2df0ff2 --- /dev/null +++ b/dl_poly-4.08-plumed_install @@ -0,0 +1,112 @@ +#!/usr/bin/env bash + +set -e + +package_name="dl_poly" +package_version="4.08" +package_description="DL_POLY is a general purpose classical molecular dynamics (MD) simulation software developed at Daresbury Laboratory. This version has been linked against the PLUMED metadynamics library." +package_variant="plumed-2.3.1" + +access_control_group="lgdlp408" + +source includes/source_includes.sh + + +_env_setup() { + module purge + require gcc-libs + # NB: ideally we'd use the same compiler as GROMACS here for user convenience, + # but this has old, no-longer-on-standard C++, and won't compile with the Intel compiler at all + # or the GNU compiler without specific flags + require compilers/intel/2017/update1 + require cmake + require mpi/intel/2017/update1/intel + require openblas/0.2.14/intel-2015-update2 + require flex/2.5.39 + require libmatheval/1.1.11 + require plumed/2.3.1/intel-2017-update1 + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}_${package_version}" + package_file="${package_name}_${package_version}.zip" + package_url="ftp://ftp.dl.ac.uk/ccp5/DL_POLY/TRANSFERS/${package_name}_${package_version}.zip" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha256:afccfd4c4aa5592f355251144070bb4dae957a022872040a4603bcf9ac5eebdf ${package_file} + + # The zip file is password protected. + unzip -P "$(cat /shared/ucl/apps/pkg-store/dl_poly_4.08_pass)" ${package_name}_${package_version}.zip +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + mkdir a_build + cd a_build + + # I don't know why, but using `which mpif90` instead of mpiifort fails to build the communications module + # Also, the string values with backslashes here aren't quoted properly when used so you have + # to get the strings *into* the values C_C + cmake ../ \ + -DWITH_PLUMED=ON \ + -DWITH_MPI=ON \ + -DHOST=\\\"login01\\\" \ + -DBUILDER=\\\"'UCL_RCPS_Build_Script'\\\" \ + -DCMAKE_INSTALL_PREFIX="$install_prefix" \ + -DCMAKE_Fortran_COMPILER="$(which mpiifort)" \ + -DBUILD_SHARED_LIBS=ON + + make + +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + cd a_build + + make install + + # The correct legdlp group needs to have been created and ccspapp has to be in it + chgrp -Rv "$access_control_group" "$install_prefix" + chmod -Rv o-rwx "$install_prefix" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "$package_name" \ + -r gcc-libs \ + -r compilers/intel/2017/update1 \ + -r mpi/intel/2017/update1/intel \ + -r openblas/0.2.14/intel-2015-update2 \ + -r plumed/2.3.1/intel-2017-update1 + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up diff --git a/dl_poly-4.08_install b/dl_poly-4.08_install new file mode 100755 index 00000000..9b6cab33 --- /dev/null +++ b/dl_poly-4.08_install @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +############################################### +# Installing DL_POLY +# +# +# + +NAME=${NAME:-dl_poly} +VERSION=${VERSION:-4.08} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-71f270e6d7d1a1ccfc7f937fdf418d5c} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/dl_poly/sources/dl_poly_4.08.zip} +GROUP=${GROUP:-lgdlp408} + +set -e + +export PATH=$INSTALL_PREFIX/execute:$PATH + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +unzip ${SRC_ARCHIVE} + +cd ${NAME}_${VERSION}/source +cp ../build/Makefile_MPI Makefile +make hpc + +mkdir -p $INSTALL_PREFIX +cp -R ../execute $INSTALL_PREFIX + +# The correct legdlp group needs to have been created and ccspapp has to be in it +chgrp -Rv $GROUP $INSTALL_PREFIX +chmod -Rv o-rwx $INSTALL_PREFIX + diff --git a/dl_poly-4.09_install b/dl_poly-4.09_install new file mode 100755 index 00000000..653db2ae --- /dev/null +++ b/dl_poly-4.09_install @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +############################################### +# Installing DL_POLY +# +# You will need the password for the zip file and to install as +# ccspap2 for the lgdlp409 group. + +NAME=${NAME:-dl_poly} +VERSION=${VERSION:-4.09} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/dl_poly/sources/dl_poly_4.09.zip} +BUILD_DIR=${BUILD_DIR:-$(mktemp -d -p /dev/shm -t "${NAME}"-build.XXXXXXXX)} +GROUP=${GROUP:-lgdlp409} + +set -e + +# require modules for building +source includes/source_includes.sh +module purge +require gcc-libs +require compilers/intel +require mpi/intel +require cmake/3.7.2 + +mkdir -p "$INSTALL_PREFIX" +cd "$BUILD_DIR" + +# this will ask you for the password +unzip "${SRC_ARCHIVE}" + +cd "${NAME}_${VERSION}" + +# If you want to test, add -DBUILD_TESTING=ON and make test. +# This takes some time to download the tests. +cmake . +make + +cp -r "$BUILD_DIR/${NAME}_${VERSION}"/* "$INSTALL_PREFIX" + +# The correct legdlp group needs to have been created and the installing user has to be in it +chgrp -Rv "$GROUP" "$INSTALL_PREFIX" +chmod -Rv o-rwx "$INSTALL_PREFIX" + diff --git a/dssp-3.0.0_install b/dssp-3.0.0_install new file mode 100755 index 00000000..eed3484f --- /dev/null +++ b/dssp-3.0.0_install @@ -0,0 +1,91 @@ +#!/usr/bin/env bash + +set -e + +package_name="dssp" +package_version="3.0.0" +package_description="DSSP calculates DSSP entries from Protein Databank (PDB) entries." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + # NB: ideally we'd use the same compiler as GROMACS here for user convenience, + # but this has old, no-longer-on-standard C++, and won't compile with the Intel compiler at all + # or the GNU compiler without specific flags + require compilers/gnu/4.9.2 + require python/2.7.12 # prereq for boost module + require boost/1_63_0/gnu-4.9.2 + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tgz" + package_url="ftp://ftp.cmbi.ru.nl/pub/software/dssp/${package_name}-${package_version}.tgz" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha256:25d39a2107767b622a59dd9fa790112c1516564b8518fc6ac0fab081d5ac3ab0 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + # The makefile tries to build a static version, but we don't have static installations + # of libz and libbz2 it needs, so rather than install new versions with static options, + # making it build with dynamic linking seemed more sensible. + sed -i -e 's/-static//' makefile + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + # The version in the makefile is 2.1.1 but the release on the website is labelled 3.0.0 so *shrug* + make \ + CXX="$CXX -std=c++0x" \ + VERSION=3.0.0 \ + DEST_DIR="$install_prefix" + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + + make install DEST_DIR="$install_prefix" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "dssp" \ + -r gcc-libs \ + -r boost/1_63_0/gnu-4.9.2 + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/dyninst-9.3.2_install b/dyninst-9.3.2_install new file mode 100755 index 00000000..4e9061df --- /dev/null +++ b/dyninst-9.3.2_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +set -e + +package_name="dyninst" +package_version="9.3.2" +package_description="DynInst is a library for performing dynamic instrumentation of executables." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/gnu + require elfutils + require libdwarf + require python/2.7.12 # <- for boost + require boost/1_63_0/gnu-4.9.2 + require cmake + + make_build_env "" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.gz" + package_url="https://github.com/dyninst/dyninst/archive/v${package_version}.tar.gz" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + mv "v${package_version}.tar.gz" "$package_file" + + manifest sha512:336ebf3a3ec123af2bf148dbfb9e0308be0bd93c81dcd1fa995c88d0eb865a85337aac976909aba4a589224b0872c601f52f20bc3f5f523f4588522308b563cd ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + mkdir -p build + cd build + + cmake \ + -DCMAKE_INSTALL_PREFIX="$install_prefix" \ + ../ + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/build" + + # If you try to build in parallel, binutils fails + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/build" + ## dyninst has no tests :( + # make check + + make install + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c "${package_name}" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -r gcc-libs \ + -r elfutils \ + -r libdwarf \ + -r python/2.7.12 \ + -r boost + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/elfutils-0.170_install b/elfutils-0.170_install new file mode 100755 index 00000000..83d0fcb9 --- /dev/null +++ b/elfutils-0.170_install @@ -0,0 +1,77 @@ +#!/usr/bin/env bash + +set -e + +package_name="elfutils" +package_version="0.170" + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/gnu + + make_build_env "" + + unpack_dir="elfutils-${package_version}" + package_file="${unpack_dir}.tar.bz2" + package_url="https://sourceware.org/elfutils/ftp/${package_version}/${package_file}" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha512:aca0b5e271138eaf86e36505ffb101181207b151e833e6cd7c18986ac50678542a5ecd2250f8dd6923ca497142f197c8b08fd225e4130b16b6203c24013d6d28 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure \ + --prefix="$install_prefix" + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + make check + make install + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c libelf \ + -c elfutils \ + -w "Adds elfutils ${package_version} to your environment. Elfutils provides utilities for manipulating binary ELF files, and is one possible provider of libelf." \ + -r gcc-libs + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/elk-4.0.15_install b/elk-4.0.15_install new file mode 100755 index 00000000..95e12b7f --- /dev/null +++ b/elk-4.0.15_install @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +############################################### +# Installing ELK +# + +NAME=${NAME:-elk} +VERSION=${VERSION:-4.0.15} +SHA256=${SHA256:-0abbbe15f3c0cf1f03b552ef54b3611d432b0d119fc21c69b4d505ef4d53b7be} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://sourceforge.net/projects/elk/files/elk-${VERSION}.tgz} + +source includes/source_includes.sh + +module purge +module load gcc-libs/4.9.2 +module load compilers/intel/2018/update3 +module load mpi/intel/2018/update3/intel +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} + +set -e + +mkdir -p "$INSTALL_PREFIX" + +owd="$(pwd)" +cd "$INSTALL_PREFIX" + +wget "$SRC_ARCHIVE" +archive=$(basename "${SRC_ARCHIVE}") + +sha256sum -c <<< "$SHA256 $archive" + +tar -xvf "$archive" + +cd "${NAME}-${VERSION}" + +cp "$owd/elk-patches/make.inc.${VERSION}" make.inc + +# Library fixing +# This step is referenced in make.inc +cp /shared/ucl/apps/libxc/2.2.2/intel-2015-update2/lib/libxcf90.a src +cp /shared/ucl/apps/libxc/2.2.2/intel-2015-update2/lib/libxc.a src + +make +make test diff --git a/elk-4.3.6_install b/elk-4.3.6_install new file mode 100755 index 00000000..bbe1eca0 --- /dev/null +++ b/elk-4.3.6_install @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +############################################### +# Installing ELK +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-elk} +VERSION=${VERSION:-4.3.6} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-02e5a38e8b074ab95ecdd224448c009e} +SHA1=${SHA1:-0f3f32d146c5477fd684c62ca520443bd5bc1a35} +SHA256=${SHA256:-efd2893a55143ac045656d2acd1407becf773408a116c90771ed3ee9fede35c9} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://sourceforge.net/projects/elk/files/elk-${VERSION}.tgz} + +set -e + +mkdir -p $INSTALL_PREFIX + +cd $INSTALL_PREFIX + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" +sha1sum -c <<< "$SHA1 $archive" +sha256sum -c <<< "$SHA256 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} + +cp /shared/ucl/apps/build_scripts/elk-patches/make.inc.${VERSION} make.inc + +# Library fixing +# This step is referenced in make.inc +cp /shared/ucl/apps/libxc/2.2.2/intel-2015-update2/lib/libxcf90.a src +cp /shared/ucl/apps/libxc/2.2.2/intel-2015-update2/lib/libxc.a src + +make +make test diff --git a/elk-patches/make.inc.4.0.15 b/elk-patches/make.inc.4.0.15 new file mode 100644 index 00000000..f19a1875 --- /dev/null +++ b/elk-patches/make.inc.4.0.15 @@ -0,0 +1,16 @@ +MAKE = make +F90 = mpiifort +F90_OPTS = -O3 -ip -qopenmp -fp-model precise -fma -I$(MKLROOT)/include +F77 = mpiifort +F77_OPTS = -O3 -ip -qopenmp -fp-model precise -fma +AR = ar +LIB_SYS = +LIB_LPK = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm -qopenmp -fp-model precise -fma +SRC_MPI = +LIB_libxc = libxcf90.a libxc.a +SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90 +SRC_FFT = zfftifc_fftw.f90 + +# It's not clear whether we need mkl_dfti.f90 as the instructions are contradictory +#SRC_FFT = mkl_dfti.f90 zfftifc_mkl.f90 + diff --git a/elk-patches/make.inc.4.3.6 b/elk-patches/make.inc.4.3.6 new file mode 100644 index 00000000..a485e93e --- /dev/null +++ b/elk-patches/make.inc.4.3.6 @@ -0,0 +1,17 @@ +MKLROOT = /shared/ucl/apps/intel/2017.Update1/compilers_and_libraries_2017.1.132/linux/mkl +MAKE = make +F90 = mpiifort +F90_OPTS = -O3 -ip -qopenmp -fp-model precise -fma -I$(MKLROOT)/include +F77 = mpiifort +F77_OPTS = -O3 -ip -qopenmp -fp-model precise -fma +AR = ar +LIB_SYS = +LIB_LPK = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm -qopenmp -fp-model precise -fma +SRC_MPI = +LIB_libxc = libxcf90.a libxc.a +SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90 +SRC_FFT = zfftifc_fftw.f90 + +# It's not clear whether we need mkl_dfti.f90 as the instructions are contradictory +#SRC_FFT = mkl_dfti.f90 zfftifc_mkl.f90 + diff --git a/emacs-24.5_install b/emacs-24.5_install index de7bad05..53efdf80 100755 --- a/emacs-24.5_install +++ b/emacs-24.5_install @@ -10,7 +10,7 @@ NAME=${NAME:-emacs} VERSION=${VERSION:-24.5} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} MD5=${MD5:-50560ee00bac9bb9cf0e822764cd0832} -SRC_ARCHIVE=${SRC_ARCHIVE:-http://ftp.heanet.ie/mirrors/gnu/emacs/emacs-${VERSION}.tar.xz} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://ftp.gnu.org/gnu/emacs/emacs-${VERSION}.tar.xz} set -e diff --git a/extrae-3.5.2_install b/extrae-3.5.2_install new file mode 100755 index 00000000..b30d3e02 --- /dev/null +++ b/extrae-3.5.2_install @@ -0,0 +1,123 @@ +#!/usr/bin/env bash + +set -e + +package_name="extrae" +package_version="3.5.2" +package_description="Extrae is an instrumentation framework to generate execution traces of the most used parallel runtimes." + +source includes/source_includes.sh + +_env_setup() { + module purge + # This is a bit tricky so we're being explicit with our dependency versions + require gcc-libs/4.9.2 + require compilers/intel/2017/update1 + require mpi/intel/2017/update1/intel + require elfutils/0.170/gnu-4.9.2 + require binutils/2.29.1/gnu-4.9.2 + require libdwarf/20170709/gnu-4.9.2 + require python/2.7.12 + require boost/1_63_0/mpi/intel-2017-update1 + require dyninst/9.3.2/gnu-4.9.2 + require papi/5.5.1/gnu-4.9.2 + require fftw/3.3.6-pl2/gnu-4.9.2 + require spectral/3.4.0/bindist + require clusteringsuite/2.6.6/bindist + require libxml2/2.9.4/gnu-4.9.2 + + make_build_env "" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}-src.tar.bz2" + package_url="https://ftp.tools.bsc.es/${package_name}/${package_name}-${package_version}-src.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha512:cb980ed5d90a0b24693a17ad0a8558eeeb2cb7a07feff6628d0fdb0db9e4c7f66dc501dce8c13c80ec6eba1fc7b2265da714b34cbf49b6725d0a92af03d98b1d ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure \ + --prefix="$install_prefix" \ + --with-mpi="$MPI_HOME" \ + --without-unwind \ + --with-boost=/shared/ucl/apps/boost/1_63_0/intel-2017/ \ + --with-dwarf=/shared/ucl/apps/libdwarf/20170709/gnu-4.9.2/ \ + --with-elf=/shared/ucl/apps/elfutils/0.170/gnu-4.9.2/ \ + --with-dyninst=/shared/ucl/apps/dyninst/9.3.2/gnu-4.9.2/ \ + --with-papi=/shared/ucl/apps/papi/5.5.1/gnu-4.9.2/ \ + --with-binutils=/shared/ucl/apps/binutils/2.29.1/gnu-4.9.2/ \ + --with-clustering=/shared/ucl/apps/clusteringsuite/2.6.6/bindist/ \ + --with-fft=/shared/ucl/apps/fftw/3.3.6-pl2/gnu-4.9.2/ \ + --with-spectral=/shared/ucl/apps/spectral/3.4.0/bindist/ \ + --enable-sampling \ + --enable-inotify + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + make check \ + || echo "BUILD SCRIPT NOTE: In testing, 4 tests failed: + check_clock_sleep + check_clock_nanosleep + check_Extrae_getcaller_depth2.sh + check_Extrae_user_function.sh" + + make install + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c "${package_name}" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -r gcc-libs \ + -r gcc-libs/4.9.2 \ + -r compilers/intel/2017/update1 \ + -r mpi/intel/2017/update1/intel \ + -r elfutils/0.170/gnu-4.9.2 \ + -r binutils/2.29.1/gnu-4.9.2 \ + -r libdwarf/20170709/gnu-4.9.2 \ + -r python/2.7.12 \ + -r boost/1_63_0/mpi/intel-2017-update1 \ + -r dyninst/9.3.2/gnu-4.9.2 \ + -r papi/5.5.1/gnu-4.9.2 \ + -r fftw/3.3.6-pl2/gnu-4.9.2 \ + -r spectral/3.4.0/bindist \ + -r clusteringsuite/2.6.6/bindist \ + -r libxml2 + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/fftw-3.3.4-impi_install b/fftw-3.3.4-impi_install index 4beb41fc..e4ee5666 100755 --- a/fftw-3.3.4-impi_install +++ b/fftw-3.3.4-impi_install @@ -2,7 +2,7 @@ PACKAGE_NAME="fftw" PACKAGE_VERSION="3.3.4" -PACKAGE_VARIANT="impi" +PACKAGE_VARIANT=${PACKAGE_VARIANT:-impi} set -e @@ -10,8 +10,13 @@ dirname=$(dirname $0 2>/dev/null) INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} source ${INCLUDES_DIR}/module_maker_inc.sh source ${INCLUDES_DIR}/require_inc.sh -require compilers/gnu/4.9.2 -require mpi/intel/2015/update3/gnu-4.9.2 +if [ "${COMPILER_TAG}" == "gnu-4.9.2" ]; then + require compilers/gnu/4.9.2 + require mpi/intel/2015/update3/gnu-4.9.2 +elif [ "${COMPILER_TAG}" == "intel-2017" ]; then + require compilers/intel/2017/update1 + require mpi/intel/2017/update1/intel +fi _env_setup() { OWD=$(pwd) @@ -61,7 +66,6 @@ _build() { _prepare_module() { make_module -p $INSTALL_PREFIX \ - -n "${PACKAGE_NAME}" \ -c "${PACKAGE_NAME}" \ -r "gcc-libs/4.9.2" \ -r "mpi/intel/2015/update3/gnu-4.9.2" \ @@ -81,4 +85,4 @@ _fetch_files _setup_files _build _prepare_module - +_clean_up diff --git a/fftw-3.3.4-ompi_install b/fftw-3.3.4-ompi_install index e85067e2..8c00b3a4 100755 --- a/fftw-3.3.4-ompi_install +++ b/fftw-3.3.4-ompi_install @@ -2,7 +2,8 @@ PACKAGE_NAME="fftw" PACKAGE_VERSION="3.3.4" -PACKAGE_VARIANT="ompi" +OMPI_VERSION=${OMPI_VERSION:-1.8.4} +PACKAGE_VARIANT=${PACKAGE_VARIANT:-ompi} set -e @@ -11,7 +12,7 @@ INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} source ${INCLUDES_DIR}/module_maker_inc.sh source ${INCLUDES_DIR}/require_inc.sh require compilers/gnu/4.9.2 -require mpi/openmpi/1.8.4/gnu-4.9.2 +require mpi/openmpi/${OMPI_VERSION}/gnu-4.9.2 _env_setup() { OWD=$(pwd) @@ -61,7 +62,6 @@ _build() { _prepare_module() { make_module -p $INSTALL_PREFIX \ - -n "${PACKAGE_NAME}" \ -c "${PACKAGE_NAME}" \ -r "gcc-libs/4.9.2" \ -r "mpi/openmpi/1.8.4/gnu-4.9.2" \ @@ -81,4 +81,4 @@ _fetch_files _setup_files _build _prepare_module - +_clean_up diff --git a/fftw-3.3.4-threads_install b/fftw-3.3.4-threads_install new file mode 100755 index 00000000..142e05a9 --- /dev/null +++ b/fftw-3.3.4-threads_install @@ -0,0 +1,75 @@ +#!/usr/bin/env bash + +############################################### +# Installing FFTW +# +# by Owain Kenway, 2015 +# + +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +VERSION=${VERSION:-3.3.4} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/fftw/${VERSION}-threads/${COMPILER_TAG}} +MD5=${MD5:-2edab8c06b24feeb3b82bbb3ebf3e7b3} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.fftw.org/fftw-${VERSION}.tar.gz} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +temp_dir=`mktemp -d` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum fftw-${VERSION}.tar.gz| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then +# Single precision + mkdir single + cd single + tar -zxvf ../fftw-${VERSION}.tar.gz + + cd fftw-${VERSION} + ./configure --prefix=$INSTALL_PREFIX --enable-float --enable-threads + make && make install + + cd ../.. + +# Double precision + mkdir double + cd double + tar -zxvf ../fftw-${VERSION}.tar.gz + + cd fftw-${VERSION} + ./configure --prefix=$INSTALL_PREFIX --enable-threads + make && make install + + cd ../.. + +# Single precision + mkdir single-shared + cd single-shared + tar -zxvf ../fftw-${VERSION}.tar.gz + + cd fftw-${VERSION} + ./configure --prefix=$INSTALL_PREFIX --enable-float --enable-shared --enable-threads + make && make install + + cd ../.. + +# Double precision + mkdir double-shared + cd double-shared + tar -zxvf ../fftw-${VERSION}.tar.gz + + cd fftw-${VERSION} + ./configure --prefix=$INSTALL_PREFIX --enable-shared --enable-threads + make && make install + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/fftw-3.3.6_install b/fftw-3.3.6_install new file mode 100755 index 00000000..2882d550 --- /dev/null +++ b/fftw-3.3.6_install @@ -0,0 +1,92 @@ +#!/usr/bin/env bash + +############################################### +# Installing FFTW +# +# Builds serial, OpenMP, threaded at various precisions +# + +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +VERSION=${VERSION:-3.3.6-pl2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/fftw/$VERSION/$COMPILER_TAG} +MD5=${MD5:-927e481edbb32575397eb3d62535a856} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.fftw.org/fftw-${VERSION}.tar.gz} +# --enabled-shared builds shared libraries in addition to static at the moment +COMMON_FLAGS=${COMMON_FLAGS:-"--enable-shared --enable-threads --enable-openmp"} +LEGION_SSE=${LEGION_SSE:-yes} +# If wanting to build SSE2-only for Legion, add --enable-sse2 +if [ "$LEGION_SSE" == "yes" ] +then + SSE_FLAG="--enable-sse2" +fi + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/$NAME +temp_dir=`mktemp -d -p /dev/shm/$NAME` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum fftw-${VERSION}.tar.gz| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then +# Single precision + mkdir single + cd single + tar -zxvf ../fftw-${VERSION}.tar.gz + + cd fftw-${VERSION} + ./configure --prefix=$INSTALL_PREFIX $COMMON_FLAGS $SSE_FLAG --enable-float + make && make install + + cd ../.. + +# Double precision + mkdir double + cd double + tar -zxvf ../fftw-${VERSION}.tar.gz + + cd fftw-${VERSION} + ./configure --prefix=$INSTALL_PREFIX $COMMON_FLAGS $SSE_FLAG + make && make install + + cd ../.. + +# Long-double precision +# Don't build long and quad if using SSE2 + if [ "$LEGION_SSE" != "yes" ] + then + mkdir long-double + cd long-double + tar -zxvf ../fftw-${VERSION}.tar.gz + + cd fftw-${VERSION} + ./configure --prefix=$INSTALL_PREFIX $COMMON_FLAGS --enable-long-double + make && make install + + cd ../.. + fi + +# Quad precision __float128 +# only works with GCC + if [ ${COMPILER_TAG:0:3} == "gnu" ] && [ "$LEGION_SSE" != "yes" ] + then + mkdir quad + cd quad + tar -zxvf ../fftw-${VERSION}.tar.gz + + cd fftw-${VERSION} + ./configure --prefix=$INSTALL_PREFIX $COMMON_FLAGS --enable-quad-precision + make && make install + fi + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/fftw-3.3.8-impi_install b/fftw-3.3.8-impi_install new file mode 100755 index 00000000..0e396dc0 --- /dev/null +++ b/fftw-3.3.8-impi_install @@ -0,0 +1,89 @@ +#!/usr/bin/env bash + +package_name="fftw" +package_version=3.3.8 +package_variant=impi + +set -o errexit \ + -o nounset \ + -o pipefail + +source includes/source_includes.sh + +module purge +require gcc-libs/4.9.2 +require compilers/intel/2018/update3 +require mpi/intel/2018/update3/intel + +make_build_env "" + +cd "$build_dir" +wget http://www.fftw.org/fftw-${package_version}.tar.gz + +manifest md5:8aac833c943d8e90d51b697b27d4384d fftw-3.3.8.tar.gz \ + sha256:6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303 fftw-3.3.8.tar.gz + + +# Unpack and build +tar -xf fftw-${package_version}.tar.gz + +__sub_build() { + mkdir "$BUILD_LABEL" + cd "$BUILD_LABEL" + "../fftw-${package_version}/configure" --prefix="$install_prefix" ${CONFIGURE_ADD_OPTS} + make + # make wisdom # use this for single-arch, single node-class systems + make check + make install + cd "$build_dir" +} + +common_opts="--enable-shared --enable-openmp --enable-threads --enable-mpi" + +arch_opts="" +for feature in sse2 avx avx2 avx512; do + if grep "$feature" /proc/cpuinfo >/dev/null; then + arch_opts+=" --enable-$feature" + fi +done + +# Apparently the long-double build is incompatible with the vectorisation ops settings, +# so we make a separate variable for things we only use for long-doubles +if grep "fma" /proc/cpuinfo >/dev/null; then + arch_opts+=" --enable-fma" + ld_arch_opts=" --enable-fma" +else + ld_arch_opts="" +fi + +BUILD_LABEL="single" CONFIGURE_ADD_OPTS="$common_opts $arch_opts --enable-float" __sub_build +BUILD_LABEL="double" CONFIGURE_ADD_OPTS="$common_opts $arch_opts " __sub_build +BUILD_LABEL="lngdbl" CONFIGURE_ADD_OPTS="$common_opts $ld_arch_opts --enable-long-double" __sub_build + +# Quad precision not supported with MPI +# Neither are any of the vector extension options, just FTR +#BUILD_LABEL="quad" CONFIGURE_ADD_OPTS="$common_opts --enable-fma --enable-quad-precision" __sub_build + +# Builds complete, make an env module + +make_module -p "$install_prefix" \ + -c "$package_name" \ + -r gcc-libs/4.9.2 \ + -r compilers/intel/2018/update3 \ + -r mpi/intel/2018/update3/intel \ + -v FFTWLIBDIR="$install_prefix/lib" \ + -v FFTWINCLUDE="$install_prefix/include" \ + -v FFTWLIB=fftw \ + -o "$module_dir/$package_label" \ + -w "Adds ${package_name} ${package_name} (built with Intel MPI) to your environment." + +echo +chmod a+rx "$module_dir" +echo "Module files put in: $module_dir" >&2 + + +# clean up +if [ -n "$build_dir" ]; then + rm -Rf "$build_dir" +fi + diff --git a/fgbio-0.6.1_install b/fgbio-0.6.1_install new file mode 100755 index 00000000..23cab418 --- /dev/null +++ b/fgbio-0.6.1_install @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +############################################### +# Installing fgbio and creating a wrapper script +# + +NAME=${NAME:-fgbio} +VERSION=${VERSION:-0.6.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/fulcrumgenomics/fgbio/releases/download/${VERSION}/${NAME}-${VERSION}.jar} +SHA256SUM=${SHA256SUM:-c35286ccf82158ffcc8944a063461b9aa8636499bb99f9df92a592adba95c854} + +set -e + +source includes/tools_inc.sh + +mkdir -p "$INSTALL_PREFIX" +cd "$INSTALL_PREFIX" +wget "$SRC_ARCHIVE" + +archive=$(basename "${SRC_ARCHIVE}") + +manifest sha256:"$SHA256SUM" "$archive" + +# Wrapper script with the options fgbio recommends to use as default +cat > fgbio <tephra2.out" +`$EXE tephra2.conf $GRID wind_levels.out >tephra2.out` +# +# Parse the output data and create a plotting file +echo "perl $T2PLOTS/parse_tephra.out.pl tephra2.out >tephra2.out.xyz" +`perl $T2PLOTS/parse_tephra.out.pl tephra2.out >tephra2.out.xyz` +# +# Plot a contour map of the tephra deposit from tephra2 model +RUN="perl $T2PLOTS/plot_tephra_contours.gmt.pl $INPUT tephra2.out.xyz contours.eps $VENT" +echo $RUN +$RUN diff --git a/files/caffe-cpu.Makefile.config b/files/caffe-cpu.Makefile.config new file mode 100644 index 00000000..8c9b0ca8 --- /dev/null +++ b/files/caffe-cpu.Makefile.config @@ -0,0 +1,120 @@ +## Refer to http://caffe.berkeleyvision.org/installation.html +# Contributions simplifying and improving our build system are welcome! + +# cuDNN acceleration switch (uncomment to build with cuDNN). +# USE_CUDNN := 1 + +# CPU-only switch (uncomment to build without GPU support). +CPU_ONLY := 1 + +# uncomment to disable IO dependencies and corresponding data layers +# USE_OPENCV := 0 +# USE_LEVELDB := 0 +# USE_LMDB := 0 + +# uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary) +# You should not set this flag if you will be reading LMDBs with any +# possibility of simultaneous read and write +# ALLOW_LMDB_NOLOCK := 1 + +# Uncomment if you're using OpenCV 3 + OPENCV_VERSION := 3 + +# To customize your choice of compiler, uncomment and set the following. +# N.B. the default for Linux is g++ and the default for OSX is clang++ +# CUSTOM_CXX := g++ + +# CUDA directory contains bin/ and lib/ directories that we need. +CUDA_DIR := /shared/ucl/apps/cuda/8.0.61/gnu-4.9.2 +# On Ubuntu 14.04, if cuda tools are installed via +# "sudo apt-get install nvidia-cuda-toolkit" then use this instead: +# CUDA_DIR := /usr + +# CUDA architecture setting: going with all of them. +# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility. +# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility. +CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ + -gencode arch=compute_20,code=sm_21 \ + -gencode arch=compute_30,code=sm_30 \ + -gencode arch=compute_35,code=sm_35 \ + -gencode arch=compute_50,code=sm_50 \ + -gencode arch=compute_52,code=sm_52 \ + -gencode arch=compute_60,code=sm_60 \ + -gencode arch=compute_61,code=sm_61 \ + -gencode arch=compute_61,code=compute_61 + +# BLAS choice: +# atlas for ATLAS (default) +# mkl for MKL +# open for OpenBlas +BLAS := open +# Custom (MKL/ATLAS/OpenBLAS) include and lib directories. +# Leave commented to accept the defaults for your choice of BLAS +# (which should work)! +# BLAS_INCLUDE := /path/to/your/blas +# BLAS_LIB := /path/to/your/blas + +# Homebrew puts openblas in a directory that is not on the standard search path +# BLAS_INCLUDE := $(shell brew --prefix openblas)/include +# BLAS_LIB := $(shell brew --prefix openblas)/lib + +# This is required only if you will compile the matlab interface. +# MATLAB directory should contain the mex binary in /bin. +# MATLAB_DIR := /usr/local +# MATLAB_DIR := /Applications/MATLAB_R2012b.app + +# NOTE: this is required only if you will compile the python interface. +# We need to be able to find Python.h and numpy/arrayobject.h. +PYTHON_INCLUDE := /shared/ucl/apps/python/bundles/python3-3.0.0/venv/include \ + /shared/ucl/apps/python/bundles/python3-3.0.0/venv/lib/python3.6/site-packages/numpy/core/include +# Anaconda Python distribution is quite popular. Include path: +# Verify anaconda location, sometimes it's in root. +# ANACONDA_HOME := $(HOME)/anaconda +# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ + # $(ANACONDA_HOME)/include/python2.7 \ + # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include + +# Uncomment to use Python 3 (default is Python 2) +# PYTHON_LIBRARIES := boost_python3 python3.5m +# PYTHON_INCLUDE := /usr/include/python3.5m \ +# /usr/lib/python3.5/dist-packages/numpy/core/include + +# We need to be able to find libpythonX.X.so or .dylib. +PYTHON_LIB := /shared/ucl/apps/python/bundles/python3-3.0.0/venv/lib +# PYTHON_LIB := $(ANACONDA_HOME)/lib + +# Homebrew installs numpy in a non standard path (keg only) +# PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include +# PYTHON_LIB += $(shell brew --prefix numpy)/lib + +# Uncomment to support layers written in Python (will link against Python libs) +# WITH_PYTHON_LAYER := 1 + +# Whatever else you find you need goes here. +INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include +LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib + +# If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies +# INCLUDE_DIRS += $(shell brew --prefix)/include +# LIBRARY_DIRS += $(shell brew --prefix)/lib + +# NCCL acceleration switch (uncomment to build with NCCL) +# https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0) +# USE_NCCL := 1 + +# Uncomment to use `pkg-config` to specify OpenCV library paths. +# (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.) +# USE_PKG_CONFIG := 1 + +# N.B. both build and distribute dirs are cleared on `make clean` +BUILD_DIR := build +DISTRIBUTE_DIR := distribute + +# Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171 +# DEBUG := 1 + +# The ID of the GPU that 'make runtest' will use to run unit tests. +TEST_GPUID := 0 + +# enable pretty build (comment to see full commands) +Q ?= @ diff --git a/files/caffe-cudnn.Makefile.config b/files/caffe-cudnn.Makefile.config new file mode 100644 index 00000000..08cce5aa --- /dev/null +++ b/files/caffe-cudnn.Makefile.config @@ -0,0 +1,120 @@ +## Refer to http://caffe.berkeleyvision.org/installation.html +# Contributions simplifying and improving our build system are welcome! + +# cuDNN acceleration switch (uncomment to build with cuDNN). +USE_CUDNN := 1 + +# CPU-only switch (uncomment to build without GPU support). +CPU_ONLY :=1 + +# uncomment to disable IO dependencies and corresponding data layers +# USE_OPENCV := 0 +# USE_LEVELDB := 0 +# USE_LMDB := 0 + +# uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary) +# You should not set this flag if you will be reading LMDBs with any +# possibility of simultaneous read and write +# ALLOW_LMDB_NOLOCK := 1 + +# Uncomment if you're using OpenCV 3 + OPENCV_VERSION := 3 + +# To customize your choice of compiler, uncomment and set the following. +# N.B. the default for Linux is g++ and the default for OSX is clang++ +# CUSTOM_CXX := g++ + +# CUDA directory contains bin/ and lib/ directories that we need. +CUDA_DIR := /shared/ucl/apps/cuda/7.5.18/gnu-4.9.2 +# On Ubuntu 14.04, if cuda tools are installed via +# "sudo apt-get install nvidia-cuda-toolkit" then use this instead: +# CUDA_DIR := /usr + +# CUDA architecture setting: going with all of them. +# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility. +# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility. +CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ + -gencode arch=compute_20,code=sm_21 \ + -gencode arch=compute_30,code=sm_30 \ + -gencode arch=compute_35,code=sm_35 \ + -gencode arch=compute_50,code=sm_50 \ + -gencode arch=compute_52,code=sm_52 +# -gencode arch=compute_60,code=sm_60 \ +# -gencode arch=compute_61,code=sm_61 \ +# -gencode arch=compute_61,code=compute_61 + +# BLAS choice: +# atlas for ATLAS (default) +# mkl for MKL +# open for OpenBlas +BLAS := open +# Custom (MKL/ATLAS/OpenBLAS) include and lib directories. +# Leave commented to accept the defaults for your choice of BLAS +# (which should work)! +# BLAS_INCLUDE := /path/to/your/blas +# BLAS_LIB := /path/to/your/blas + +# Homebrew puts openblas in a directory that is not on the standard search path +# BLAS_INCLUDE := $(shell brew --prefix openblas)/include +# BLAS_LIB := $(shell brew --prefix openblas)/lib + +# This is required only if you will compile the matlab interface. +# MATLAB directory should contain the mex binary in /bin. +# MATLAB_DIR := /usr/local +# MATLAB_DIR := /Applications/MATLAB_R2012b.app + +# NOTE: this is required only if you will compile the python interface. +# We need to be able to find Python.h and numpy/arrayobject.h. +PYTHON_INCLUDE := /shared/ucl/apps/python/bundles/python3-3.0.0/venv/include \ + /shared/ucl/apps/python/bundles/python3-3.0.0/venv/lib/python3.6/site-packages/numpy/core/include +# Anaconda Python distribution is quite popular. Include path: +# Verify anaconda location, sometimes it's in root. +# ANACONDA_HOME := $(HOME)/anaconda +# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ + # $(ANACONDA_HOME)/include/python2.7 \ + # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include + +# Uncomment to use Python 3 (default is Python 2) +# PYTHON_LIBRARIES := boost_python3 python3.5m +# PYTHON_INCLUDE := /usr/include/python3.5m \ +# /usr/lib/python3.5/dist-packages/numpy/core/include + +# We need to be able to find libpythonX.X.so or .dylib. +PYTHON_LIB := /shared/ucl/apps/python/bundles/python3-3.0.0/venv/lib +# PYTHON_LIB := $(ANACONDA_HOME)/lib + +# Homebrew installs numpy in a non standard path (keg only) +# PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include +# PYTHON_LIB += $(shell brew --prefix numpy)/lib + +# Uncomment to support layers written in Python (will link against Python libs) +# WITH_PYTHON_LAYER := 1 + +# Whatever else you find you need goes here. +INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include +LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib + +# If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies +# INCLUDE_DIRS += $(shell brew --prefix)/include +# LIBRARY_DIRS += $(shell brew --prefix)/lib + +# NCCL acceleration switch (uncomment to build with NCCL) +# https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0) +# USE_NCCL := 1 + +# Uncomment to use `pkg-config` to specify OpenCV library paths. +# (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.) +# USE_PKG_CONFIG := 1 + +# N.B. both build and distribute dirs are cleared on `make clean` +BUILD_DIR := build +DISTRIBUTE_DIR := distribute + +# Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171 +# DEBUG := 1 + +# The ID of the GPU that 'make runtest' will use to run unit tests. +TEST_GPUID := 0 + +# enable pretty build (comment to see full commands) +Q ?= @ diff --git a/files/caffe-gpu.Makefile.config b/files/caffe-gpu.Makefile.config new file mode 100644 index 00000000..e0d15dfe --- /dev/null +++ b/files/caffe-gpu.Makefile.config @@ -0,0 +1,121 @@ +## Refer to http://caffe.berkeleyvision.org/installation.html +# Contributions simplifying and improving our build system are welcome! + +# cuDNN acceleration switch (uncomment to build with cuDNN). +# USE_CUDNN := 1 + +# CPU-only switch (uncomment to build without GPU support). +CPU_ONLY :=1 + +# uncomment to disable IO dependencies and corresponding data layers +# USE_OPENCV := 0 +# USE_LEVELDB := 0 +# USE_LMDB := 0 + +# uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary) +# You should not set this flag if you will be reading LMDBs with any +# possibility of simultaneous read and write +# ALLOW_LMDB_NOLOCK := 1 + +# Uncomment if you're using OpenCV 3 + OPENCV_VERSION := 3 + +# To customize your choice of compiler, uncomment and set the following. +# N.B. the default for Linux is g++ and the default for OSX is clang++ +# CUSTOM_CXX := g++ + +# CUDA directory contains bin/ and lib/ directories that we need. +#CUDA_DIR := /shared/ucl/apps/cuda/8.0.61/gnu-4.9.2 +CUDA_DIR := /shared/ucl/apps/cuda/7.5.18/gnu-4.9.2 +# On Ubuntu 14.04, if cuda tools are installed via +# "sudo apt-get install nvidia-cuda-toolkit" then use this instead: +# CUDA_DIR := /usr + +# CUDA architecture setting: going with all of them. +# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility. +# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility. +CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ + -gencode arch=compute_20,code=sm_21 \ + -gencode arch=compute_30,code=sm_30 \ + -gencode arch=compute_35,code=sm_35 \ + -gencode arch=compute_50,code=sm_50 \ + -gencode arch=compute_52,code=sm_52 +# -gencode arch=compute_60,code=sm_60 \ +# -gencode arch=compute_61,code=sm_61 \ +# -gencode arch=compute_61,code=compute_61 + +# BLAS choice: +# atlas for ATLAS (default) +# mkl for MKL +# open for OpenBlas +BLAS := open +# Custom (MKL/ATLAS/OpenBLAS) include and lib directories. +# Leave commented to accept the defaults for your choice of BLAS +# (which should work)! +# BLAS_INCLUDE := /path/to/your/blas +# BLAS_LIB := /path/to/your/blas + +# Homebrew puts openblas in a directory that is not on the standard search path +# BLAS_INCLUDE := $(shell brew --prefix openblas)/include +# BLAS_LIB := $(shell brew --prefix openblas)/lib + +# This is required only if you will compile the matlab interface. +# MATLAB directory should contain the mex binary in /bin. +# MATLAB_DIR := /usr/local +# MATLAB_DIR := /Applications/MATLAB_R2012b.app + +# NOTE: this is required only if you will compile the python interface. +# We need to be able to find Python.h and numpy/arrayobject.h. +PYTHON_INCLUDE := /shared/ucl/apps/python/bundles/python3-3.0.0/venv/include \ + /shared/ucl/apps/python/bundles/python3-3.0.0/venv/lib/python3.6/site-packages/numpy/core/include +# Anaconda Python distribution is quite popular. Include path: +# Verify anaconda location, sometimes it's in root. +# ANACONDA_HOME := $(HOME)/anaconda +# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ + # $(ANACONDA_HOME)/include/python2.7 \ + # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include + +# Uncomment to use Python 3 (default is Python 2) +# PYTHON_LIBRARIES := boost_python3 python3.5m +# PYTHON_INCLUDE := /usr/include/python3.5m \ +# /usr/lib/python3.5/dist-packages/numpy/core/include + +# We need to be able to find libpythonX.X.so or .dylib. +PYTHON_LIB := /shared/ucl/apps/python/bundles/python3-3.0.0/venv/lib +# PYTHON_LIB := $(ANACONDA_HOME)/lib + +# Homebrew installs numpy in a non standard path (keg only) +# PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include +# PYTHON_LIB += $(shell brew --prefix numpy)/lib + +# Uncomment to support layers written in Python (will link against Python libs) +# WITH_PYTHON_LAYER := 1 + +# Whatever else you find you need goes here. +INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include +LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib + +# If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies +# INCLUDE_DIRS += $(shell brew --prefix)/include +# LIBRARY_DIRS += $(shell brew --prefix)/lib + +# NCCL acceleration switch (uncomment to build with NCCL) +# https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0) +# USE_NCCL := 1 + +# Uncomment to use `pkg-config` to specify OpenCV library paths. +# (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.) +# USE_PKG_CONFIG := 1 + +# N.B. both build and distribute dirs are cleared on `make clean` +BUILD_DIR := build +DISTRIBUTE_DIR := distribute + +# Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171 +# DEBUG := 1 + +# The ID of the GPU that 'make runtest' will use to run unit tests. +TEST_GPUID := 0 + +# enable pretty build (comment to see full commands) +Q ?= @ diff --git a/files/mathematica_UCL/Parallel_Preferences.m_UCL b/files/mathematica_UCL/Parallel_Preferences.m_UCL index b7fa41f7..27d2744f 100644 --- a/files/mathematica_UCL/Parallel_Preferences.m_UCL +++ b/files/mathematica_UCL/Parallel_Preferences.m_UCL @@ -4,7 +4,7 @@ {"EnginePath" -> "/opt/sge", "KernelOptions" -> "-subkernel -mathlink \ -LinkMode Connect -LinkProtocol TCPIP -LinkName `linkname`", "KernelProgram" -> - "/shared/ucl/apps/Mathematica/11.0.1/bin/math", + "/shared/ucl/apps/Mathematica/11.2/bin/math", "NativeSpecification" -> "", "NetworkInterface" -> "", "ToQueue" -> False}, {"Legion", False, False}]}, Parallel`Palette`paletteConfig["enabledImplementations"] -> diff --git a/files/mathematica_UCL/Tunnel/scripts/tunnel.m b/files/mathematica_UCL/Tunnel/scripts/tunnel.m new file mode 100644 index 00000000..54f2c1fb --- /dev/null +++ b/files/mathematica_UCL/Tunnel/scripts/tunnel.m @@ -0,0 +1,214 @@ +(* kernel init file which allows for tunneling MathLink connections to a remote Mathematica kernel through SSH. *) +(* See https://github.com/sakra/Tunnel/blob/master/MANUAL.md for usage hints. *) +(* Copyright 2015-2016 Sascha Kratky, see accompanying license file. *) + +(* Modified for UCL Legion and Grace - Jan 2017 *) + +BeginPackage["MathLink`Tunnel`"] + +SetupTunnelKernelConfiguration::usage = "SetupTunnelKernelConfiguration creates a tunneled controller kernel configuration." +SetupTunnelKernelConfiguration::missing = "Required tunnel launch script `1` does not exist." +SetupTunnelKernelConfiguration::name = "Invalid configuration name \"`1`\"." + +RemoteMachineTunnel::usage = "RemoteMachineTunnel creates a compute kernel RemoteMachine description using a tunneled connection." +RemoteMachineTunnel::missing = "Required tunnel launch script `1` does not exist." + +Begin["`Private`"] + +CreateFrontEndLinkHost[] := Module[ + {pos,linkName,linkNameComponents,linkHost,IP4AddressPattern,IP4AddrToInteger,candidates}, + If[ValueQ[$ParentLink] && Head[$ParentLink] === LinkObject, + (* extract linkHost from parent link *) + linkName = $ParentLink[[1]]; + linkNameComponents = StringSplit[ linkName , {"@", ","} ]; + (* if not a TCPIP linkname, default to automatic selection of LinkHost *) + If [ Length[linkNameComponents] != 4, Return[Automatic]]; + linkHost = linkNameComponents[[2]], + (*Else*) + (* search for -linkhost option on command line *) + pos=Position[ToLowerCase[$CommandLine], "-linkhost"]; + pos=If[Length[pos]==1,pos[[1]][[1]] +1,Length[$CommandLine] + 1]; + (* if no -linkhost option on command line, default to automatic selection of LinkHost *) + If[pos>Length[$CommandLine],Return[Automatic]]; + linkHost=$CommandLine[[pos]] + ]; + (* if linkhost is the loopback interface, we are done *) + If[linkHost=="127.0.0.1", Return[linkHost]]; + (* heuristic: search for best matching IP4 address in $MachineAddresses on the same subnet *) + IP4AddressPattern = RegularExpression["\\d{1,3}(\\.\\d{1,3}){3,3}"]; + IP4AddrToInteger = FromDigits[ToExpression[StringSplit[#,"."]],256]&; + candidates = BitXor[ + IP4AddrToInteger /@ Select[$MachineAddresses, StringMatchQ[#, IP4AddressPattern] &], + IP4AddrToInteger @ linkHost] + // Ordering[#, 1]& + // Part[ $MachineAddresses,#]&; + If[Length[candidates]>0, + (* best candidate is first in list *) + First[candidates], + (*Else*) + (* no candidate, default to Automatic selection of LinkHost *) + Return[Automatic] + ] +] + +CreateFrontEndLinkName[] := Module[ + {pos,linkName,linkNameComponents}, + If [ !ValueQ[MathLink`$PortNumber], + If[ValueQ[$ParentLink] && Head[$ParentLink] === LinkObject, + (* extract linkHost from parent link *) + linkName = $ParentLink[[1]], + (*Else*) + (* search for -linkname option on command line *) + pos = Position[ ToLowerCase[$CommandLine], "-linkname" ]; + pos = If[ Length[pos]==1,pos[[1]][[1]] +1, Length[$CommandLine] + 1]; + (* if no -linkname option on command line, default to automatic selection of LinkName *) + If[ pos>Length[$CommandLine], Return[Automatic] ]; + linkName=$CommandLine[[pos]] + ]; + linkNameComponents = StringSplit[ linkName , {"@", ","} ]; + (* check if link has been created on loopback interface *) + If [ Length[linkNameComponents] === 4 && linkNameComponents[[2]] === "127.0.0.1", + (* initialize port number from main link name *) + (* port numbers beyond the parsed one are assumed to be properly forwarded over SSH *) + MathLink`$PortNumber = Max[ + ToExpression[linkNameComponents[[1]]], + ToExpression[linkNameComponents[[3]]] + ], + (*Else*) + Return[Automatic] + ] + ]; + Return [ StringJoin[ + {ToString[++MathLink`$PortNumber], "@127.0.0.1,", + ToString[++MathLink`$PortNumber], "@127.0.0.1"}] + ] +] + +KernelVersionStr[versionNumber_] := ToString[NumberForm[versionNumber, {3,1}]] + +(* We need to fix the paths for the instllation in /shared/ucl/apps on Legion and Grace. *) +(* Should really be using $InstallationDirectory *) + + +VersionedKernelPath[system_String, versionNumber_] := + Which[ + system === "MacOSX" && versionNumber >= 10.0, + "/Applications/Mathematica " <> KernelVersionStr[versionNumber] <> ".app/Contents/MacOS/WolframKernel", + system === "MacOSX", + "/Applications/Mathematica " <> KernelVersionStr[versionNumber] <> ".app/Contents/MacOS/MathKernel", + system === "Windows" && versionNumber >= 10.0, + "C:\\Program Files\\Wolfram Research\\Mathematica\\" <> KernelVersionStr[versionNumber] <> "\\WolframKernel.exe", + system === "Windows", + "C:\\Program Files\\Wolfram Research\\Mathematica\\" <> KernelVersionStr[versionNumber] <> "\\MathKernel.exe", + versionNumber >= 10.0, + $InstallationDirectory <> "/Executables/WolframKernel", + True, (* default to Unix conventions *) + $InstallationDirectory <> "/Executables/MathKernel" + ] + +DefaultKernelPath[system_String, versionNumber_] := + Which[ + system === "MacOSX" && versionNumber >= 10.0, + "/Applications/Mathematica.app/Contents/MacOS/WolframKernel", + system === "MacOSX", + "/Applications/Mathematica.app/Contents/MacOS/MathKernel", + system === "Windows" && versionNumber >= 10.0, + "WolframKernel.exe", + system === "Windows", + "MathKernel.exe", + versionNumber >= 10.0, + $InstallationDirectory <> "/bin/WolframKernel", + True, (* default to Unix conventions *) + $InstallationDirectory <> "/bin/MathKernel" + ] + +SetupTunnelKernelConfiguration[name_String, remoteMachine_String, OptionsPattern[]] := Module[ + {configName,operatingSystem,versionNumber,evaluatorNames,tunnelScriptPath,kernelPath,config,configPos}, + If[$FrontEnd === Null, Message[FrontEndObject::notavail]; Return[$Failed]]; + configName = StringTrim[name]; + If[configName === "", Message[SetupTunnelKernelConfiguration::name, configName]; Return[$Failed]]; + operatingSystem = OptionValue["OperatingSystem"] /. { Automatic -> SystemInformation["FrontEnd", "OperatingSystem"] }; + versionNumber = OptionValue["VersionNumber"] /. { Automatic -> SystemInformation["FrontEnd", "VersionNumber"] }; + tunnelScriptPath = If[ SystemInformation["FrontEnd","OperatingSystem"] === "Windows", + "`userbaseDirectory`\\FrontEnd\\tunnel.bat", + "`userbaseDirectory`/FrontEnd/tunnel.sh"]; + kernelPath = OptionValue["KernelPath"] /. { + Automatic -> VersionedKernelPath[operatingSystem, versionNumber], + Default -> DefaultKernelPath[operatingSystem, versionNumber] + }; + (* check for installed tunnel script only if front end is using a local kernel *) + If [ SystemInformation["FrontEnd", "MachineID"] === SystemInformation["Kernel", "MachineID"], + StringReplace[tunnelScriptPath, "`userbaseDirectory`" -> $UserBaseDirectory] // + If[ Not@FileExistsQ[#], Message[SetupTunnelKernelConfiguration::missing, #] ]& + ]; + config = { + "RemoteMachine"->True, + "TranslateReturns"->True, + "AppendNameToCellLabel"->True, + "AutoStartOnLaunch"->False, + "MLOpenArguments"->"-LinkMode Listen -LinkProtocol TCPIP -LinkOptions MLDontInteract -LinkHost 127.0.0.1", + "LoginScript"->"\"" <> tunnelScriptPath <> "\" \"" <> remoteMachine <> "\" \"" <> kernelPath <> "\" \"`linkname`\"" + }; + evaluatorNames = EvaluatorNames /. Options[$FrontEnd] /. {EvaluatorNames -> {"Local" -> {"AutoStartOnLaunch" -> True}}}; + configPos = Position[evaluatorNames, Rule[configName, _]]; + (* upsert config in list of EvaluatorNames *) + evaluatorNames = If[configPos==={}, + Print["New configuration \"" <> configName <> "\" added to kernel configuration options."]; + Append[evaluatorNames, Rule[configName, config]], + (*Else*) + Print["Existing configuration \"" <> configName <> "\" updated in kernel configuration options."]; + ReplacePart[evaluatorNames, First[configPos]->Rule[configName, config]] + ]; + (* persist updated list of EvaluatorNames *) + SetOptions[$FrontEnd, EvaluatorNames->evaluatorNames]; + Rule[configName, config] +] +Options[SetupTunnelKernelConfiguration] = {"OperatingSystem"->Automatic, "VersionNumber"->Automatic, "KernelPath"->Automatic} + +RemoteMachineTunnel[remoteMachine_String, kernelCount_Integer:1, OptionsPattern[]] := Module[ + {operatingSystem,versionNumber,kernelPath,host,tunnelScriptPath,loginScript}, + operatingSystem = OptionValue["OperatingSystem"] /. { Automatic -> $OperatingSystem }; + versionNumber = OptionValue["VersionNumber"] /. { Automatic -> $VersionNumber }; + kernelPath = OptionValue["KernelPath"] /. { + Automatic -> VersionedKernelPath[operatingSystem, versionNumber], + Default -> DefaultKernelPath[operatingSystem, versionNumber] + }; + host = Last@StringSplit[remoteMachine, "@"]; + tunnelScriptPath = FileNameJoin[{ + $UserBaseDirectory, "FrontEnd", + If[ $OperatingSystem === "Windows", "tunnel_sub.bat", "tunnel_sub.sh" ] + }]; + If[ Not@FileExistsQ[tunnelScriptPath], Message[RemoteMachineTunnel::missing, tunnelScriptPath] ]; + loginScript = "\"" <> tunnelScriptPath <> "\" \"" <> remoteMachine <> "\" \"" <> kernelPath <> "\" \"`2`\""; + (* Windows needs a set of extra quotes around command to make processing with cmd.exe /C work *) + If[ $OperatingSystem === "Windows", loginScript = "\"" <> loginScript <> "\""]; + SubKernels`RemoteKernels`RemoteMachine[ host, loginScript, kernelCount, LinkHost->"127.0.0.1", System`KernelSpeed->OptionValue["KernelSpeed"] ] +] +Options[RemoteMachineTunnel] = {"OperatingSystem"->Automatic, "VersionNumber"->Automatic, "KernelPath"->Automatic, "KernelSpeed" -> 1} + +(* override built-in function MathLink`CreateFrontEndLink with tunneling aware one *) + +Unprotect[MathLink`CreateFrontEndLink] + +MathLink`CreateFrontEndLink[] := Module[ {linkName, link}, + linkName = CreateFrontEndLinkName[]; + link = If [ linkName === Automatic, + LinkCreate[ + LinkMode->Listen, + LinkProtocol->MathLink`CreateFrontEndLinkProtocol[], + LinkHost->CreateFrontEndLinkHost[] ], + (*Else*) + LinkCreate[ + linkName, + LinkMode->Listen, + LinkProtocol->"TCPIP" ] + ]; + MathLink`LinkSetPrintFullSymbols[link, True]; + Return[link] +] + +Protect[MathLink`CreateFrontEndLink] + +End[] + +EndPackage[] diff --git a/files/mathematica_UCL/init.m b/files/mathematica_UCL/init.m index 2e63309a..f47a363e 100644 --- a/files/mathematica_UCL/init.m +++ b/files/mathematica_UCL/init.m @@ -7,6 +7,6 @@ $ProcessorCount = ToExpression [Environment["OMP_NUM_THREADS"]] protected = Protect [$ProcessorCount] -WriteString [$Output, "Mathematica running on Legion at UCL"] +WriteString [$Output, "Mathematica running on Legion, Grace and Aristotle at UCL"] End[] diff --git a/files/mpirun b/files/mpirun index 74124b7d..8d86b379 100755 --- a/files/mpirun +++ b/files/mpirun @@ -12,16 +12,16 @@ MPI_LAUNCHER=$MPI_RUN # for it and it breaks on the single-node job nodes). if [[ "$NHOSTS" == "1" ]] then - $MPI_LAUNCHER -mca pml ob1 -mca btl tcp,sm,self $* + $MPI_LAUNCHER -mca pml ob1 -mca btl tcp,sm,self "$@" # If the job is running interactively, disable Infiniband (i.e. login # nodes). elif [[ "$NHOSTS" == "" ]] then - $MPI_LAUNCHER -mca pml ob1 -mca btl tcp,sm,self $* + $MPI_LAUNCHER -mca pml ob1 -mca btl tcp,sm,self "$@" # Otherwise, business as usual (Infiniband). else - $MPI_LAUNCHER $* + $MPI_LAUNCHER "$@" fi diff --git a/files/mpirun.intel.ib b/files/mpirun.intel.ib new file mode 100755 index 00000000..9592ba21 --- /dev/null +++ b/files/mpirun.intel.ib @@ -0,0 +1,23 @@ +#!/bin/bash + +# This version is for Intel IB clusters where we must disable psm2. + +# Owain Kenway, UCL, 2/2/2018 + +MPI_LAUNCHER=$INTEL_MPI_PATH/intel64/bin/mpirun + +# If the job is running on one node only. +if [[ "$NHOSTS" == "1" ]] +then + $MPI_LAUNCHER "$@" + +# If the job is running interactively. +elif [[ "$NHOSTS" == "" ]] +then + $MPI_LAUNCHER "$@" + +# Otherwise, disbale PSM2 as usual (Infiniband). +else + $MPI_LAUNCHER -psm "$@" +fi + diff --git a/files/mpirun.openmpi.ib b/files/mpirun.openmpi.ib new file mode 100755 index 00000000..49a4deb1 --- /dev/null +++ b/files/mpirun.openmpi.ib @@ -0,0 +1,29 @@ +#!/bin/bash + +# This wrapper "fixes" the OpenMPI mpirun on the single node job nodes. +# It does this by using the SGE variable $NHOSTS to determine if this +# is a multi-node job or not an enabling/disabling infinipath support. + +# This version is for Intel IB clusters where we must disable psm2. + +# Owain Kenway, UCL, 2/2/2018 + +MPI_LAUNCHER=$MPI_RUN + +# If the job is running on one node only, disable Infiniband (no need +# for it and it breaks on the single-node job nodes). +if [[ "$NHOSTS" == "1" ]] +then + $MPI_LAUNCHER -mca pml ob1 -mca btl tcp,sm,self "$@" + +# If the job is running interactively, disable Infiniband (i.e. login +# nodes). +elif [[ "$NHOSTS" == "" ]] +then + $MPI_LAUNCHER -mca pml ob1 -mca btl tcp,sm,self "$@" + +# Otherwise, business as usual (Infiniband). +else + $MPI_LAUNCHER --mca mtl '^psm2' -mca pml cm "$@" +fi + diff --git a/files/mpirun.openmpi3.ib b/files/mpirun.openmpi3.ib new file mode 100755 index 00000000..6d973393 --- /dev/null +++ b/files/mpirun.openmpi3.ib @@ -0,0 +1,31 @@ +#!/bin/bash + +# This wrapper "fixes" the OpenMPI mpirun on the single node job nodes. +# It does this by using the SGE variable $NHOSTS to determine if this +# is a multi-node job or not an enabling/disabling infinipath support. + +# This version is for Intel IB clusters where we must disable psm2. + +# This version is for openmpi 3+ where sm has been replaced with "vader". + +# Owain Kenway, UCL, 1/5/2018 + +MPI_LAUNCHER=$MPI_RUN + +# If the job is running on one node only, disable Infiniband (no need +# for it and it breaks on the single-node job nodes). +if [[ "$NHOSTS" == "1" ]] +then + $MPI_LAUNCHER -mca pml ob1 -mca btl tcp,vader,self "$@" + +# If the job is running interactively, disable Infiniband (i.e. login +# nodes). +elif [[ "$NHOSTS" == "" ]] +then + $MPI_LAUNCHER -mca pml ob1 -mca btl tcp,vader,self "$@" + +# Otherwise, business as usual (Infiniband). +else + $MPI_LAUNCHER --mca mtl '^psm2' -mca pml cm "$@" +fi + diff --git a/files/siesta_4.0.1_arch.make b/files/siesta_4.0.1_arch.make new file mode 100644 index 00000000..80848033 --- /dev/null +++ b/files/siesta_4.0.1_arch.make @@ -0,0 +1,211 @@ +# +# Copyright (C) 1996-2016 The SIESTA group +# This file is distributed under the terms of the +# GNU General Public License: see COPYING in the top directory +# or http://www.gnu.org/copyleft/gpl.txt. +# See Docs/Contributors.txt for a list of contributors. +# +#------------------------------------------------------------------- +# DOCUMENTED arch.make +# +# The most useful makefile symbols are explained. Use this file as +# a guide when you are looking at the .make files in this directory, +# or after 'configure' has produced a draft arch.make for you. +# +# This block tells make to consider only these suffixes in its operation +# It is included in most makefiles in the source tree, but it does not +# hurt to have it here too. +.SUFFIXES: +.SUFFIXES: .f .F .o .c .a .f90 .F90 + +# This string will be copied to the executable, you may write any +# descriptive statement regarding the compilation setup +SIESTA_ARCH = thomas-intel2017update1-intelmpi-mkl + +# CC is the C-compiler. +# This currently need not be an MPI C-compiler for MPI compilation. +CC = icc + +# In case your compiler does not understand the special meaning of +# the .F and .F90 extensions ("files in need of preprocessing"), you +# will need to use an explicit preprocessing step. +# Typically this is sufficient to be the compiler with -E -P -x c +FPP = $(FC) -E -P -x c + +# FC is typically the name of your fortran compiler. It is not always +# a good idea to add options here, except when they are essential for +# a proper operation. +# In case of MPI compilation this should be the mpi compiler (mpifort). +FC = mpif90 + +# The FC_SERIAL symbol is useful in at least two cases: +# 1. When the "MPI compiler environment" is so complex that it might +# trick the configure scripts. +# 2. When executables compiled with a (parallel) FC are flagged by +# the computer centers as "queuing-system-only". +# Most utilities are thus compiled with FC_SERIAL, which in practice +# defaults to FC if it is not defined. +FC_SERIAL = ifort + +# Here we should put mainly optimization flags +FFLAGS = -O2 -fPIC -ftree-vectorize -xHost + +# If you want to use a specific archive function you may specify it here +# Note that if you use LTO(gcc)/IPO(intel) specifying the correct AR +# is REQUIRED +AR = ar +# Extra flags for library creation by the 'ar' command +ARFLAGS_EXTRA = + +# Some systems do not have 'ranlib'. If so, use "echo" instead of "ranlib" +RANLIB = ranlib + +# A compiler-specific file holding special versions of some routines +# For most f95 compilers, "nag" should work. (The name is historical) +# The currently supported systems are: +# nag (generic) +# bsd +# ibm +# ibm_pessl +# sgi +# t3e +# xlf +SYS = nag + +# These symbols should not need to be specified. They will be detected +# automatically at the time of compiling the MPI interface. Set them +# only if the automatic detection fails and you are sure of their values. +SP_KIND = 4 +DP_KIND = 8 +KINDS = $(SP_KIND) $(DP_KIND) + +# Some compilers (notably IBM's) are not happy with the standard +# syntax for definition of preprocessor symbols ( -DSOME_SYMBOL), +# and thy need a prefix (i.e. -WF,-DSOME_SYMBOL). This is used +# in some utility makefiles. +# Typically this need not be defined +DEFS_PREFIX = + +# Used only at the linking stage. For example, you might need "-static" +LDFLAGS = + +# These symbols help to keep the building rules concise +# This enables specific compilation options for certain +# source files. +FCFLAGS_fixed_f = +FCFLAGS_free_f90 = +FPPFLAGS_fixed_F = +FPPFLAGS_free_F90 = + +# This is the most installation-dependent part +# We can make things a bit easier by grouping symbols, and maybe +# using the -L flag to define search directories (see examples +# in this directory). +# For the most simplistic compilation one requires the following +# libraries: +# BLAS +# LAPACK +# ScaLAPACK (only for MPI compilation) +BLAS_LIBS = +LAPACK_LIBS = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core + +# The most recent ScaLAPACK versions have built in the BLACS library. +# If BLACS is not included in the ScaLAPACK library you are +# required to add it here as well: +SCALAPACK_LIBS = -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 + +# If you do not have BLAS/LAPACK installed on your machine +# you may use the shipped BLAS/LAPACK versions. +# +# If you do not have the LAPACK library you may do: +# COMP_LIBS = libsiestaLAPACK.a +# If you have neither the BLAS, nor LAPACK library you may do: +# COMP_LIBS = libsiestaLAPACK.a libsiestaBLAS.a +# +# You are HIGHLY encouraged to use an optimized BLAS/LAPACK +# library as SIESTA performance is mainly governed by these +# libraries. +COMP_LIBS = + +# For netCDF support. Make sure you get a version compatible +# with the other options (for example, 32/64 bit). Don't forget +# to set -DCDF below. +# To use NetCDF define the installation directory of the library. +# By default NetCDF is not used, but it may become mandatory in +# later versions of SIESTA. +#NETCDF_ROOT = /opt/netcdf/4.4.0 +#NETCDF_INCFLAGS = -I$(NETCDF_ROOT)/include +#NETCDF_LIBS = -L$(NETCDF_ROOT)/lib -lnetcdff -lnetcdf + +# This (as well as the -DMPI definition) is essential for MPI support +MPI_INTERFACE = libmpi_f90.a +MPI_INCLUDE = . + +# Preprocessor definitions or flags. +# Here we use FPPFLAGS (as 'configure' calls them), but historically +# it was very common to use DEFS. Try to use only FPPFLAGS from now on, +# converting any old arch.make files you might have lying around, and +# remember that you have to change the final building rules at the end +# to use only FPPFLAGS. DEFS is deprecated. + +# CDF and MPI are self-explanatory +# Other definitions might be needed to work around some glitch in the compiler +# See the manual for more details. +FPPFLAGS = $(DEFS_PREFIX)-DFC_HAVE_ABORT +FPPFLAGS += -DMPI + +# We put here all the neeeded libraries. +# Sometimes the BLAS are included in LAPACK (or it could be that everything +# is included in SCALAPACK...). You might need to experiment if you find +# duplicate symbols. See examples in this directory. +# +LIBS = $(NETCDF_LIBS) $(SCALAPACK_LIBS) $(LAPACK_LIBS) $(MPI_LIBS) $(COMP_LIBS) + +# Dependency rules --------- + +# Some compilers are not able to compile certain files with full optimization, +# or they produce wrong results if they do. For example, the PGI compiler +# has trouble with atom.f and electrostatic.f. In these cases, we need to +# insert extra lines. Use exactly the format shown, as it is general enough +# to work with VPATH. +# +FFLAGS_DEBUG = -g -O0 # your appropriate flags here... + +# The atom.f code is very vulnerable. Particularly the Intel compiler +# will make an erroneous compilation of atom.f with high optimization +# levels. +atom.o: atom.F + $(FC) -c $(FFLAGS_DEBUG) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $< + +# Finally, the default building rules which will be used everywhere, +# unless overriden. +# These were created by a former run of 'configure'. +# See other examples in this directory. If you cut and paste, +# MAKE SURE that there are TABS, not spaces, at the beginning. +# +# Important points to note: +# - INCFLAGS must be present. It is used in several utility makefiles +# - Either FPPFLAGS (preferred) or DEFS (deprecated) must be present +# (see above) -- Note that the use of DEFS might break Util compilations. +# - If your compiler does not recognize .F and .F90 extensions as in +# need of preprocessing, you will need to use an intermediate +# preprocessing step (see above about FPP). For example: +## +#.F90.o: +# $(FPP) $(FPPFLAGS) $< > tmp_$*.f90 +# $(FC) -c $(FFLAGS) $(INCFLAGS) tmp_$*.f90 +# @mv tmp_$*.o $*.o +# @rm -f tmp_$*.f90 +# +#---------------- Example of actual rules +.c.o: + $(CC) -c $(CFLAGS) $(INCFLAGS) $(CPPFLAGS) $< +.F.o: + $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $< +.F90.o: + $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $< +.f.o: + $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f) $< +.f90.o: + $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90) $< + diff --git a/forge-1.0.0_install b/forge-1.0.0_install new file mode 100755 index 00000000..90460c3c --- /dev/null +++ b/forge-1.0.0_install @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +# Modules: +# glfw/3.2.1/gnu-4.9.2 +# llvm/3.9.1 +# mesa/13.0.6/gnu-4.9.2 +# glbinding/2.1.2 +# freeimage + +NAME=${NAME:-forge} +VERSION=${VERSION:-1.0.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-f72023e15fffa806e26565fb4edb4379} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/arrayfire/forge/archive/v${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} +mkdir build +cd build + +export GLFW_ROOT=/shared/ucl/apps/glfw/3.2.1/gnu-4.9.2 +export GLFW_DIR=$GLFW_ROOT + +cmake .. -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DGLFW_INCLUDE_DIR=${GLFW_DIR}/include -DGLFW_LIBRARY=${GLFW_DIR}/lib/libglfw.so -DFREEIMAGE_INCLUDE_PATH=/shared/ucl/apps/freeimage/3.17.0/gnu-4.9.2/usr/include -DFREEIMAGE_DYNAMIC_LIBRARY=/shared/ucl/apps/freeimage/3.17.0/gnu-4.9.2/usr/lib/libfreeimage.so -DUSE_SYSTEM_GLBINDING=ON + + +make +make install diff --git a/freeimage-3.17.0_install b/freeimage-3.17.0_install new file mode 100755 index 00000000..cf5bdec8 --- /dev/null +++ b/freeimage-3.17.0_install @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-freeimage} +VERSION=${VERSION:-3.17.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-459e15f0ec75d6efa3c7bd63277ead86} + +SRC_ARCHIVE=${SRC_ARCHIVE:-http://downloads.sourceforge.net/freeimage/FreeImage${VERSION//./}.zip} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" + +unzip $archive + +cd FreeImage + +# Fix root requirement. + +sed -i 's|-o root -g wheel| |g' Makefile.* +sed -i 's|-o root -g root| |g' Makefile.* + + +make +make DESTDIR=${INSTALL_PREFIX} install diff --git a/fsl-5.0.9_install b/fsl-5.0.10_install similarity index 51% rename from fsl-5.0.9_install rename to fsl-5.0.10_install index c6c99e14..9fe2a53e 100755 --- a/fsl-5.0.9_install +++ b/fsl-5.0.10_install @@ -3,19 +3,18 @@ ############################################### # Installing FSL # -# by Heather Kelly, 2015 -# NAME=${NAME:-fsl} -VERSION=${VERSION:-5.0.9} +VERSION=${VERSION:-5.0.10} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} -MD5=${MD5:-45ff914dd3509a9deba21caabea260f4} +MD5=${MD5:-7f114cbf2d9155f45994b627523418fd} SRC_ARCHIVE=${SRC_ARCHIVE:-http://fsl.fmrib.ox.ac.uk/fsldownloads/fsl-${VERSION}-sources.tar.gz} PATCHES=${PATCHES:-/shared/ucl/apps/build_scripts/fsl-patches} set -e -temp_dir=`mktemp -d -p /dev/shm` +mkdir -p /dev/shm/fsl +temp_dir=`mktemp -d -p /dev/shm/fsl` cd $temp_dir @@ -31,7 +30,7 @@ then cp $PATCHES/*.patch $FSLDIR cd $FSLDIR - patch -p0 -i fsl-5.0.9_fslconf.patch + patch -p0 -i fsl-${VERSION}_fslconf.patch . ${FSLDIR}/etc/fslconf/fsl.sh cp -r $FSLDIR/config/linux_64-gcc4.4 $FSLDIR/config/$FSLMACHTYPE @@ -39,11 +38,23 @@ then # patch systemvars after above copy #patch -p0 -i fsl-5.0.9_systemvars.patch + sed -i.bak 's|scl enable devtoolset-2 -- c++|g++|g' $FSLDIR/config/$FSLMACHTYPE/systemvars.mk + sed -i.bak 's|c++|g++|g' $FSLDIR/config/$FSLMACHTYPE/systemvars.mk + + sed -i.bak 's|/home/fs0/cowboy/var/caper_linux_64-gcc4.4/VTK7/include/vtk-7.0|/shared/ucl/apps/vtk/6.2.0/gnu-4.9.2/include/vtk-6.2|g' $FSLDIR/config/$FSLMACHTYPE/externallibs.mk + sed -i.bak 's|/home/fs0/cowboy/var/caper_linux_64-gcc4.4/VTK7/lib|/shared/ucl/apps/vtk/6.2.0/gnu-4.9.2/lib|g' $FSLDIR/config/$FSLMACHTYPE/externallibs.mk + sed -i.bak 's|VTKSUFFIX = -7.0|VTKSUFFIX = -6.2|g' $FSLDIR/config/$FSLMACHTYPE/externallibs.mk + + ./build mkdir -p $INSTALL_PREFIX cp -r $FSLDIR $INSTALL_PREFIX +# Disable until fixed for 5.0.10 +cd $INSTALL_PREFIX/fsl/bin +patch -p0 -i ../fsl-${VERSION}_parallel.patch + else echo "Hash mismatch." echo "Expected: $MD5" diff --git a/fsl-patches/fsl-5.0.10_fslconf.patch b/fsl-patches/fsl-5.0.10_fslconf.patch new file mode 100644 index 00000000..2c1a74bf --- /dev/null +++ b/fsl-patches/fsl-5.0.10_fslconf.patch @@ -0,0 +1,16 @@ +--- etc/fslconf/fsl.sh.old 2015-10-01 15:01:17.703211488 +0100 ++++ etc/fslconf/fsl.sh 2015-10-01 15:12:11.221398204 +0100 +@@ -49,10 +49,10 @@ + + # Set up development variables (not for the faint-hearted) + # Uncomment the following if you wish to compile FSL source code +-#FSLCONFDIR=$FSLDIR/config +-#FSLMACHTYPE=`$FSLDIR/etc/fslconf/fslmachtype.sh` ++FSLCONFDIR=$FSLDIR/config ++FSLMACHTYPE=`$FSLDIR/etc/fslconf/fslmachtype.sh` + +-#export FSLCONFDIR FSLMACHTYPE ++export FSLCONFDIR FSLMACHTYPE + + + ################################################### diff --git a/fsl-patches/fsl-5.0.10_parallel.patch b/fsl-patches/fsl-5.0.10_parallel.patch new file mode 100644 index 00000000..641af442 --- /dev/null +++ b/fsl-patches/fsl-5.0.10_parallel.patch @@ -0,0 +1,274 @@ +--- bedpostx.bak 2018-06-06 15:00:57.000000000 +0100 ++++ bedpostx 2018-06-06 15:55:45.000000000 +0100 +@@ -10,7 +10,8 @@ + # Imaging of the Brain), Department of Clinical Neurology, Oxford + # University, Oxford, UK + # +-# ++# Modified for use on UCL Legion OS upgrade - January 2015 by BAA ++# + # LICENCE + # + # FMRIB Software Library, Release 5.0 (c) 2012, The University of +@@ -65,6 +66,8 @@ + # Innovation@innovation.ox.ac.uk quoting reference DE/9564. + export LC_ALL=C + ++# Added support for user specified runtime for Legion jobs. ++ + Usage() { + echo "" + echo "Usage: bedpostx [options]" +@@ -78,6 +81,7 @@ + echo "-b (burnin period, default 1000)" + echo "-j (number of jumps, default 1250)" + echo "-s (sample every, default 25)" ++ echo "-T (wallclock time for each job in minutes, default 15)" + echo "-model (Deconvolution model. 1: with sticks, 2: with sticks with a range of diffusivities (default), 3: with zeppelins)" + echo "-g (consider gradient nonlinearities, default off)" + #echo "-c do not use CUDA capable hardware/queue (if found)" +@@ -169,6 +173,7 @@ + model=2 + gflag=0 + nocuda=0 ++wallclock=15 # Added for Legion + other="" + + shift +@@ -180,6 +185,7 @@ + -b) burnin=$2;shift;; + -j) njumps=$2;shift;; + -s) sampleevery=$2;shift;; ++ -T) wallclock=$2; shift;; + -model) model=$2;shift;; + -g) gflag=1;; + -c) nocuda=1;; +@@ -190,19 +196,22 @@ + opts="--nf=$nfibres --fudge=$fudge --bi=$burnin --nj=$njumps --se=$sampleevery --model=$model" + defopts="--cnonlinear" + opts="$opts $defopts $other" +-if [ -n "$SGE_ROOT" ]; then +- # Look for an SGE queue +- if [ -n "$FSLGECUDAQ" -a "$nocuda" -eq 0 ]; then +- # Test that the queue exists +- qconf -sq $FSLGECUDAQ 2>&1 >/dev/null +- if [ $? -eq 0 ]; then +- # CUDA queue exists +- if [ -x $0_gpu ]; then +- exec $0_gpu $myopts +- fi +- fi +- fi +-fi ++ ++# Commented out on legion - no user queues ++# ++#if [ -n "$SGE_ROOT" ]; then ++# # Look for an SGE queue ++# if [ -n "$FSLGECUDAQ" -a "$nocuda" -eq 0 ]; then ++# # Test that the queue exists ++# qconf -sq $FSLGECUDAQ 2>&1 >/dev/null ++# if [ $? -eq 0 ]; then ++# # CUDA queue exists ++# if [ -x $0_gpu ]; then ++# exec $0_gpu $myopts ++# fi ++# fi ++# fi ++#fi + + echo subjectdir is $subjdir + +@@ -262,9 +271,9 @@ + mkdir -p ${subjdir}.bedpostX/logs/monitor + mkdir -p ${subjdir}.bedpostX/xfms + +-mailto=`whoami`@fmrib.ox.ac.uk ++mailto=`whoami`@ucl.ac.uk # updated for UCL + echo Queuing preprocessing stages +-preprocid=`${FSLDIR}/bin/fsl_sub -T 60 -m as -N bpx_preproc -l ${subjdir}.bedpostX/logs ${FSLDIR}/bin/bedpostx_preproc.sh ${subjdir} ${gflag}` ++preprocid=`${FSLDIR}/bin/fsl_sub -T ${wallclock} -m as -N bpx_preproc -l ${subjdir}.bedpostX/logs ${FSLDIR}/bin/bedpostx_preproc.sh ${subjdir} ${gflag}` + + echo Queuing parallel processing stage + nslices=`${FSLDIR}/bin/fslval ${subjdir}/data dim3` +@@ -293,10 +302,10 @@ + fi + slice=$(($slice + 1)) + done +-bedpostid=`${FSLDIR}/bin/fsl_sub -j $preprocid -l ${subjdir}.bedpostX/logs -M $mailto -N bedpostx -t ${subjdir}.bedpostX/commands.txt` ++bedpostid=`${FSLDIR}/bin/fsl_sub -j $preprocid -T ${wallclock} -l ${subjdir}.bedpostX/logs -M $mailto -N bedpostx -t ${subjdir}.bedpostX/commands.txt` + + echo Queuing post processing stage +-mergeid=`${FSLDIR}/bin/fsl_sub -j $bedpostid -T 60 -m as -N bpx_postproc -l ${subjdir}.bedpostX/logs ${FSLDIR}/bin/bedpostx_postproc.sh $subjdir` ++mergeid=`${FSLDIR}/bin/fsl_sub -j $bedpostid -T ${wallclock} -m as -N bpx_postproc -l ${subjdir}.bedpostX/logs ${FSLDIR}/bin/bedpostx_postproc.sh $subjdir` + + echo $mergeid > ${subjdir}.bedpostX/logs/postproc_ID + +--- fsl_sub.bak 2018-06-06 15:00:57.000000000 +0100 ++++ fsl_sub 2018-06-06 15:48:41.000000000 +0100 +@@ -11,6 +11,8 @@ + # Imaging of the Brain), Department of Clinical Neurology, Oxford + # University, Oxford, UK + # ++# Modified for use on UCL Legion OS upgrade - January 2015 by BAA ++# + # + # LICENCE + # +@@ -125,12 +127,27 @@ + else + queue=verylong.q + fi +- queueCmd=" -q $queue " ++ ++ # No user queues on Legion ++ queueCmd="" + + #echo "Estimated time was $1 mins: queue name is $queue" + } + + ########################################################################### ++# ++# Convert FSL runtimne in minutes to h_rt=hrs:mins:secs for Legion ++# ++########################################################################### ++ ++mins_conv () ++{ ++ hours=$(($1/60)) ++ mins=$(($1%60)) ++ h_rt="$hours:$mins:0" ++} ++ ++########################################################################### + # Don't change the following (but keep scrolling down!) + ########################################################################### + +@@ -139,6 +156,8 @@ + export POSIXLY_CORRECT + command=`basename $0` + ++##### Modified for Legion to remove reference to queues etc. ++# + usage () + { + cat < + + $command gzip *.img *.hdr +-$command -q short.q gzip *.img *.hdr + $command -a darwin regscript rawdata outputdir ... + + -T Estimated job length in minutes, used to auto-set queue name +- -q Possible values for are "verylong.q", "long.q" +- and "short.q". See below for details +- Default is "long.q". +- -a Architecture [e.g., darwin or lx24-amd64] ++ -a Architecture [e.g., darwin (not Legion) or lx24-amd64] + -p Lower priority [0:-1024] default = 0 +- -M Who to email, default = `whoami`@fmrib.ox.ac.uk ++ -M Who to email, default = `whoami`@ucl.ac.uk + -j Place a hold on this task until job jid has completed + -t Specify a task file of commands to execute in parallel + -N Specify jobname as it will appear on queue +@@ -166,25 +181,11 @@ + -m Change the SGE mail options, see qsub for details + -z If image or file already exists, do nothing and exit + -F Use flags embedded in scripts to set SGE queuing options +- -s , Submit a multi-threaded task - requires a PE () to be +- configured for the requested queues. ++ -s , Submit a multi-threaded task - requires PE () to be ++ smp for Legion. + specifies the number of threads to run + -v Verbose mode. + +-Queues: +- +-There are several batch queues configured on the cluster, each with defined CPU +-time limits. All queues, except bigmem.q, have a 8GB memory limit. +- +-veryshort.q:This queue is for jobs which last under 30mins. +-short.q: This queue is for jobs which last up to 4h. +-long.q: This queue is for jobs which last less than 24h. Jobs run with a +- nice value of 10. +-verylong.q: This queue is for jobs which will take longer than 24h CPU time. +- There is one slot per node, and jobs on this queue have a nice value +- of 15. +-bigmem.q: This queue is like the verylong.q but has no memory limits. +- + EOF + + exit 1 +@@ -216,7 +217,8 @@ + # Note, we support openmp tasks even when Grid Engine is not in use. + ########################################################################### + +-omp_pe='openmp' ++# Set for Legion ++omp_pe='smp' + + ########################################################################### + # The following sets up the default queue name, which you may want to +@@ -224,8 +226,8 @@ + ########################################################################### + + queue=long.q +-queueCmd=" -q long.q " +-mailto=`whoami`@`hostname -f | cut -d . -f 2-` ++queueCmd="" # no user queues on Legion ++mailto=`whoami`@ucl.ac.uk # changed for UCL + MailOpts="a" + + +@@ -270,11 +272,13 @@ + exit 0 + fi + shift;; +- -T) +- map_qname $2 ++ -T) # For Legion convert given minutes to ht_rt value ++ mins_conv $2 + shift;; + -q) + queue=$2 ++ echo "Queue must not be specified on Legion" ++ exit 127 + queueCmd=" -q $queue " + $QCONF -sq $queue >/dev/null 2>&1 + if [ $? -eq 1 ]; then +@@ -328,7 +332,7 @@ + JobName=$2; + shift;; + -R) +- RAM="-l mem_free=${2}M" ++ RAM="-l mem=${2}M" + shift;; + -m) + MailOpts=$2; +@@ -355,6 +359,7 @@ + -s) + pe_string=$2; + peName=`echo $pe_string | cut -d',' -f 1` ++ peName='smp' # must be smp on legion + peThreads=`echo $pe_string | cut -d',' -f 2` + shift;; + esac +@@ -451,7 +456,7 @@ + + if [ "x$tasks" = "x" ] ; then + if [ $scriptmode -ne 1 ] ; then +- sge_command="qsub -V -cwd -shell n -b y -r y $queueCmd $pe_options -M $mailto -N $JobName -m $MailOpts $LogOpts $sge_arch $RAM $sge_hold" ++ sge_command="qsub -V -cwd -shell n -b y -r y $queueCmd -l h_rt=$h_rt $pe_options -M $mailto -N $JobName -m $MailOpts $LogOpts $sge_arch $RAM $sge_hold" + else + sge_command="qsub $LogOpts $sge_arch $sge_hold" + fi +@@ -461,7 +466,7 @@ + fi + exec $sge_command $@ | awk '{print $3}' + else +- sge_command="qsub -V -cwd $queueCmd $pe_options -M $mailto -N $JobName -m $MailOpts $LogOpts $sge_arch $RAM $sge_hold $sge_tasks" ++ sge_command="qsub -V -cwd $queueCmd $pe_options -M $mailto -N $JobName -l h_rt=$h_rt -m $MailOpts $LogOpts $sge_arch $RAM $sge_hold $sge_tasks" + if [ $verbose -eq 1 ] ; then + echo sge_command: $sge_command >&2 + echo control file: $taskfile >&2 diff --git a/fsl-patches/fsl-5.0.10_systemvars.patch b/fsl-patches/fsl-5.0.10_systemvars.patch new file mode 100644 index 00000000..f5733b4e --- /dev/null +++ b/fsl-patches/fsl-5.0.10_systemvars.patch @@ -0,0 +1,11 @@ +--- config/linux_64-gcc4.9/systemvars.mk.old 2015-10-02 10:18:37.958888025 +0100 ++++ config/linux_64-gcc4.9/systemvars.mk 2015-10-02 10:18:55.757193258 +0100 +@@ -4,7 +4,7 @@ + + # System dependent commands (NB: the first two are the most platform dependent) + +-INSTALL = ginstall -p ++INSTALL = install -p + RANLIB = ranlib + + RM = /bin/rm diff --git a/fsl-patches/fsl-5.0.9_parallel.patch b/fsl-patches/fsl-5.0.9_parallel.patch index b56ff76f..c1b41aa0 100644 --- a/fsl-patches/fsl-5.0.9_parallel.patch +++ b/fsl-patches/fsl-5.0.9_parallel.patch @@ -1,26 +1,26 @@ ---- bin/fsl_sub-dist 2016-01-19 14:40:58.000000000 +0000 -+++ bin/fsl_sub 2016-01-19 16:55:24.000000000 +0000 +--- fsl_sub.bak 2018-06-06 15:02:10.000000000 +0100 ++++ fsl_sub 2018-06-06 15:09:27.000000000 +0100 @@ -11,6 +11,8 @@ # Imaging of the Brain), Department of Clinical Neurology, Oxford # University, Oxford, UK - # + # +# Modified for use on UCL Legion OS upgrade - January 2015 by BAA +# - # + # # LICENCE - # + # @@ -125,12 +127,27 @@ else - queue=verylong.q + queue=verylong.q fi - queueCmd=" -q $queue " + + # No user queues on Legion + queueCmd="" - + #echo "Estimated time was $1 mins: queue name is $queue" } - + ########################################################################### +# +# Convert FSL runtimne in minutes to h_rt=hrs:mins:secs for Legion @@ -37,11 +37,11 @@ +########################################################################### # Don't change the following (but keep scrolling down!) ########################################################################### - + @@ -139,6 +156,8 @@ export POSIXLY_CORRECT command=`basename $0` - + +##### Modified for Legion to remove reference to queues etc. +# usage () @@ -49,18 +49,18 @@ cat < - + $command gzip *.img *.hdr -$command -q short.q gzip *.img *.hdr $command -a darwin regscript rawdata outputdir ... - + -T Estimated job length in minutes, used to auto-set queue name - -q Possible values for are "verylong.q", "long.q" - and "short.q". See below for details - Default is "long.q". - -a Architecture [e.g., darwin or lx24-amd64] + -a Architecture [e.g., darwin (not Legion) or lx24-amd64] - -p Lower priority [0:-1024] default = 0 + -p Lower priority [0:-1024] default = 0 - -M Who to email, default = `whoami`@fmrib.ox.ac.uk + -M Who to email, default = `whoami`@ucl.ac.uk -j Place a hold on this task until job jid has completed @@ -76,7 +76,7 @@ + smp for Legion. specifies the number of threads to run -v Verbose mode. - + -Queues: - -There are several batch queues configured on the cluster, each with defined CPU @@ -92,29 +92,29 @@ -bigmem.q: This queue is like the verylong.q but has no memory limits. - EOF - + exit 1 @@ -215,7 +216,8 @@ # Note, we support openmp tasks even when Grid Engine is not in use. ########################################################################### - + -omp_pe='openmp' +# Set for Legion +omp_pe='smp' - + ########################################################################### # The following sets up the default queue name, which you may want to @@ -223,8 +225,8 @@ ########################################################################### - + queue=long.q -queueCmd=" -q long.q " -mailto=`whoami`@fmrib.ox.ac.uk -+queueCmd="" # no user queues on Legion -+mailto=`whoami`@ucl.ac.uk # changed for UCL ++queueCmd="" # no user queues on Legion ++mailto=`whoami`@ucl.ac.uk # changed for UCL MailOpts="a" - - + + @@ -269,11 +271,13 @@ exit 0 fi @@ -128,51 +128,51 @@ queue=$2 + echo "Queue must not be specified on Legion" + exit 127 - queueCmd=" -q $queue " + queueCmd=" -q $queue " $QCONF -sq $queue >/dev/null 2>&1 if [ $? -eq 1 ]; then @@ -351,6 +355,7 @@ -s) pe_string=$2; peName=`echo $pe_string | cut -d',' -f 1` -+ peName='smp' # must be smp on legion ++ peName='smp' # must be smp on legion peThreads=`echo $pe_string | cut -d',' -f 2` shift;; esac @@ -447,7 +452,7 @@ - - if [ "x$tasks" = "x" ] ; then - if [ $scriptmode -ne 1 ] ; then -- sge_command="qsub -V -cwd -shell n -b y -r y $queueCmd $pe_options -M $mailto -N $JobName -m $MailOpts $LogOpts $sge_arch $sge_hold" -+ sge_command="qsub -V -cwd -shell n -b y -r y $queueCmd -l h_rt=$h_rt $pe_options -M $mailto -N $JobName -m $MailOpts $LogOpts $sge_arch $sge_hold" - else - sge_command="qsub $LogOpts $sge_arch $sge_hold" - fi + + if [ "x$tasks" = "x" ] ; then + if [ $scriptmode -ne 1 ] ; then +- sge_command="qsub -V -cwd -shell n -b y -r y $queueCmd $pe_options -M $mailto -N $JobName -m $MailOpts $LogOpts $sge_arch $sge_hold" ++ sge_command="qsub -V -cwd -shell n -b y -r y $queueCmd -l h_rt=$h_rt $pe_options -M $mailto -N $JobName -m $MailOpts $LogOpts $sge_arch $sge_hold" + else + sge_command="qsub $LogOpts $sge_arch $sge_hold" + fi @@ -457,7 +462,7 @@ - fi - exec $sge_command $@ | awk '{print $3}' - else -- sge_command="qsub -V -cwd $queueCmd $pe_options -M $mailto -N $JobName -m $MailOpts $LogOpts $sge_arch $sge_hold $sge_tasks" -+ sge_command="qsub -V -cwd $queueCmd $pe_options -M $mailto -N $JobName -l h_rt=$h_rt -m $MailOpts $LogOpts $sge_arch $sge_hold $sge_tasks" - if [ $verbose -eq 1 ] ; then - echo sge_command: $sge_command >&2 - echo control file: $taskfile >&2 ---- bin/bedpostx-dist 2016-01-19 15:13:08.000000000 +0000 -+++ bin/bedpostx 2016-01-19 15:14:04.000000000 +0000 + fi + exec $sge_command $@ | awk '{print $3}' + else +- sge_command="qsub -V -cwd $queueCmd $pe_options -M $mailto -N $JobName -m $MailOpts $LogOpts $sge_arch $sge_hold $sge_tasks" ++ sge_command="qsub -V -cwd $queueCmd $pe_options -M $mailto -N $JobName -l h_rt=$h_rt -m $MailOpts $LogOpts $sge_arch $sge_hold $sge_tasks" + if [ $verbose -eq 1 ] ; then + echo sge_command: $sge_command >&2 + echo control file: $taskfile >&2 +--- bedpostx.bak 2018-06-06 15:02:10.000000000 +0100 ++++ bedpostx 2018-06-06 15:12:44.000000000 +0100 @@ -10,7 +10,8 @@ # Imaging of the Brain), Department of Clinical Neurology, Oxford # University, Oxford, UK - # + # -# +# Modified for use on UCL Legion OS upgrade - January 2015 by BAA +# # LICENCE - # + # # FMRIB Software Library, Release 5.0 (c) 2012, The University of @@ -65,6 +66,8 @@ # innovation@isis.ox.ac.uk quoting reference DE/9564. export LC_ALL=C - + +# Added support for user specified runtime for Legion jobs. + Usage() { @@ -190,9 +190,9 @@ model=2 gflag=0 nocuda=0 -+wallclock=15 # Added for Legion ++wallclock=15 # Added for Legion other="" - + shift @@ -180,6 +185,7 @@ -b) burnin=$2;shift;; @@ -207,47 +207,47 @@ defopts="--cnonlinear" opts="$opts $defopts $other" -if [ -n "$SGE_ROOT" ]; then -- # Look for an SGE queue -- if [ -n "$FSLGECUDAQ" -a "$nocuda" -eq 0 ]; then -- # Test that the queue exists -- qconf -sq $FSLGECUDAQ 2>&1 >/dev/null -- if [ $? -eq 0 ]; then -- # CUDA queue exists -- if [ -x $0_gpu ]; then -- exec $0_gpu $myopts -- fi -- fi -- fi +- # Look for an SGE queue +- if [ -n "$FSLGECUDAQ" -a "$nocuda" -eq 0 ]; then +- # Test that the queue exists +- qconf -sq $FSLGECUDAQ 2>&1 >/dev/null +- if [ $? -eq 0 ]; then +- # CUDA queue exists +- if [ -x $0_gpu ]; then +- exec $0_gpu $myopts +- fi +- fi +- fi -fi + +# Commented out on legion - no user queues +# +#if [ -n "$SGE_ROOT" ]; then -+# # Look for an SGE queue -+# if [ -n "$FSLGECUDAQ" -a "$nocuda" -eq 0 ]; then -+# # Test that the queue exists -+# qconf -sq $FSLGECUDAQ 2>&1 >/dev/null -+# if [ $? -eq 0 ]; then -+# # CUDA queue exists -+# if [ -x $0_gpu ]; then -+# exec $0_gpu $myopts -+# fi -+# fi -+# fi ++# # Look for an SGE queue ++# if [ -n "$FSLGECUDAQ" -a "$nocuda" -eq 0 ]; then ++# # Test that the queue exists ++# qconf -sq $FSLGECUDAQ 2>&1 >/dev/null ++# if [ $? -eq 0 ]; then ++# # CUDA queue exists ++# if [ -x $0_gpu ]; then ++# exec $0_gpu $myopts ++# fi ++# fi ++# fi +#fi - + echo subjectdir is $subjdir - + @@ -262,9 +271,9 @@ mkdir -p ${subjdir}.bedpostX/logs/monitor mkdir -p ${subjdir}.bedpostX/xfms - + -mailto=`whoami`@fmrib.ox.ac.uk -+mailto=`whoami`@ucl.ac.uk # updated for UCL ++mailto=`whoami`@ucl.ac.uk # updated for UCL echo Queuing preprocessing stages -preprocid=`${FSLDIR}/bin/fsl_sub -T 60 -m as -N bpx_preproc -l ${subjdir}.bedpostX/logs ${FSLDIR}/bin/bedpostx_preproc.sh ${subjdir} ${gflag}` +preprocid=`${FSLDIR}/bin/fsl_sub -T ${wallclock} -m as -N bpx_preproc -l ${subjdir}.bedpostX/logs ${FSLDIR}/bin/bedpostx_preproc.sh ${subjdir} ${gflag}` - + echo Queuing parallel processing stage nslices=`${FSLDIR}/bin/fslval ${subjdir}/data dim3` @@ -293,10 +302,10 @@ @@ -256,10 +256,10 @@ done -bedpostid=`${FSLDIR}/bin/fsl_sub -j $preprocid -l ${subjdir}.bedpostX/logs -M $mailto -N bedpostx -t ${subjdir}.bedpostX/commands.txt` +bedpostid=`${FSLDIR}/bin/fsl_sub -j $preprocid -T ${wallclock} -l ${subjdir}.bedpostX/logs -M $mailto -N bedpostx -t ${subjdir}.bedpostX/commands.txt` - + echo Queuing post processing stage -mergeid=`${FSLDIR}/bin/fsl_sub -j $bedpostid -T 60 -m as -N bpx_postproc -l ${subjdir}.bedpostX/logs ${FSLDIR}/bin/bedpostx_postproc.sh $subjdir` +mergeid=`${FSLDIR}/bin/fsl_sub -j $bedpostid -T ${wallclock} -m as -N bpx_postproc -l ${subjdir}.bedpostX/logs ${FSLDIR}/bin/bedpostx_postproc.sh $subjdir` - + echo $mergeid > ${subjdir}.bedpostX/logs/postproc_ID - + diff --git a/ga-5.7-8BInts_install b/ga-5.7-8BInts_install new file mode 100755 index 00000000..b781d649 --- /dev/null +++ b/ga-5.7-8BInts_install @@ -0,0 +1,51 @@ +#!/bin/env bash + +set -o errexit \ + -o nounset \ + -o pipefail + +package_name="ga" +package_version="5.7" +package_variant="8BInts" +package_description="Global Arrays (GA) is a library that provides a Partitioned Global Address Space (PGAS) programming model. This version has been compiled with 8-byte integers in the Fortran code." + +package_source="https://github.com/GlobalArrays/ga/archive/v${package_version}.tar.gz" + +source includes/source_includes.sh +module purge +require gcc-libs/4.9.2 +require compilers/intel/2018/update3 +require mpi/intel/2018/update3/intel + +make_build_env "" + +cd "$build_dir" +wget "$package_source" +manifest sha256:92548ca30c72c54c72b17140f77cc717529acd847d459960c55d54236d6bb73a "v${package_version}.tar.gz" + +tar -xzf "v${package_version}.tar.gz" +cd "${package_name}-${package_version}" + +autoreconf -i +./configure --prefix="$install_prefix" --enable-shared --with-mpi --with-mpi3 --with-blas=-mkl --enable-i8 --with-blas8="-mkl" --with-scalapack=-mkl --with-lapack=-mkl LIBS=-mkl + +make + +# The GA tests are broken. See: https://github.com/UCL-RITS/rcps-buildscripts/issues/204 +#make checkprogs MPIEXEC="mpirun -np %NP% -m \$TMPDIR/machines" + +make install + + +make_module \ + -o "$module_dir/$package_label" \ + -c "$package_name" \ + -r "gcc-libs/4.9.2" \ + -r "compilers/intel/2018/update3" \ + -r "mpi/intel/2018/update3/intel" \ + -v "GAROOT=$install_prefix" \ + -p "$install_prefix" \ + -w "$package_description" + +chmod -R a+rX "$module_dir" +echo "Modules are in: $module_dir" diff --git a/ga-5.7_install b/ga-5.7_install new file mode 100755 index 00000000..3122c901 --- /dev/null +++ b/ga-5.7_install @@ -0,0 +1,50 @@ +#!/bin/env bash + +set -o errexit \ + -o nounset \ + -o pipefail + +package_name="ga" +package_version="5.7" +package_description="Global Arrays (GA) is a library that provides a Partitioned Global Address Space (PGAS) programming model." + +package_source="https://github.com/GlobalArrays/ga/archive/v${package_version}.tar.gz" + +source includes/source_includes.sh +module purge +require gcc-libs/4.9.2 +require compilers/intel/2018/update3 +require mpi/intel/2018/update3/intel + +make_build_env "" + +cd "$build_dir" +wget "$package_source" +manifest sha256:92548ca30c72c54c72b17140f77cc717529acd847d459960c55d54236d6bb73a "v${package_version}.tar.gz" + +tar -xzf "v${package_version}.tar.gz" +cd "${package_name}-${package_version}" + +autoreconf -i +./configure --prefix="$install_prefix" --enable-shared --with-mpi --with-mpi3 --with-blas=-mkl --with-scalapack=-mkl --with-lapack=-mkl LIBS=-mkl + +make + +# The GA tests are broken. See: https://github.com/UCL-RITS/rcps-buildscripts/issues/204 +#make checkprogs MPIEXEC="mpirun -np %NP% -m \$TMPDIR/machines" + +make install + + +make_module \ + -o "$module_dir/$package_label" \ + -c "$package_name" \ + -r "gcc-libs/4.9.2" \ + -r "compilers/intel/2018/update3" \ + -r "mpi/intel/2018/update3/intel" \ + -v "GAROOT=$install_prefix" \ + -p "$install_prefix" \ + -w "$package_description" + +chmod -R a+rX "$module_dir" +echo "Modules are in: $module_dir" diff --git a/gatk-3.4-46_install b/gatk-3.8-0_install similarity index 70% rename from gatk-3.4-46_install rename to gatk-3.8-0_install index 54c345c3..f1d59a67 100755 --- a/gatk-3.4-46_install +++ b/gatk-3.8-0_install @@ -18,9 +18,9 @@ # to prove to us they have read and agreed to license. APPNAME=${APPNAME:-gatk} -VERSION=${VERSION:-3.4-46} +VERSION=${VERSION:-3.8-0} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/$VERSION} -SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/gatk/sources/GenomeAnalysisTK-3.4-46.tar.bz2} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/gatk/sources/GenomeAnalysisTK-${VERSION}.tar.bz2} GATK_GROUP=${GATK_GROUP:-leggatk} set -e @@ -30,11 +30,22 @@ cd ${INSTALL_PREFIX} tar jxvf $SRC_ARCHIVE +if [ ! -f $INSTALL_PREFIX/GenomeAnalysisTK.jar ]; then + echo "WARNING: The Developers have packaged the jar file in a sub-dir for reasons." + echo -n "Locating... " + gatk_silly_location=`find . -name GenomeAnalysisTK.jar` + # should exit here if it fails thanks to -e + echo "Found: ${gatk_silly_location}" + echo -n "Correcting... " + mv ${gatk_silly_location} ./GenomeAnalysisTK.jar + echo "Done." +fi + # Wrapper scripts cat > GenomeAnalysisTK <&1 | tee make.log + +# now build Linda version +cd $g16root/g16 +tar -xvf $SRC_ARCHIVE_LINDA +bsd/fixlinda + +# This script does not play well with set -e +set +e +source $g16root/g16/bsd/g16.profile +set -e + +# these are missing from g16.profile +mname="`set-mflags x`" +mflags="`set-mflags`" +export mg="${mname} -f bsd/g16.make $mflags" + +# FIX LINDA +# For "reasons" linda has gfortran hard coded in to its build, which the build +# process then tries to pass PGI options to. +cd linda9.0/linux64bit/bin/ +sed -i.bak 's/gfortran/pgf77/g' * +rm *.bak +sed -i.bak 's/-fno-second-underscore/ /g' * +rm *.bak + +cd $g16root/g16 +$mg linda 2>&1 | tee makelinda.log + +# Clear out install prefix hopefully fixes permission problems. If not, check +# out gaussian-g09-d01_fix script. +rm -rf $INSTALL_PREFIX +mkdir -p $INSTALL_PREFIX + +cp -r $g16root/g16 $INSTALL_PREFIX + +# Linda job setup +cp /shared/ucl/apps/build_scripts/files/gaussian_linda.perl $INSTALL_PREFIX/linda.perl +cd $INSTALL_PREFIX + +for a in clc c++lc flc LindaLauncher ntsnet pmbuild vntsnet +do + echo "Patching ${a}..." + sed -i.bak 's|'"$temp_dir"'|'"$INSTALL_PREFIX"'|' g16/linda9.0/linux64bit/bin/$a +done + +chgrp -R $GROUP $INSTALL_PREFIX +chmod -R o-rwx $INSTALL_PREFIX + +echo Install of Gaussian $VERSION complete in $INSTALL_PREFIX diff --git a/gaussian-patches/gaussian_g16-a03_profile.patch b/gaussian-patches/gaussian_g16-a03_profile.patch new file mode 100644 index 00000000..aa806b8e --- /dev/null +++ b/gaussian-patches/gaussian_g16-a03_profile.patch @@ -0,0 +1,11 @@ +--- g16.profile.old 2017-05-16 15:23:16.631474857 +0100 ++++ g16.profile 2017-05-16 15:24:11.729874921 +0100 +@@ -16,7 +16,7 @@ + export GAUSS_LEXEDIR="$gr/g16/linda-exe" + export GAUSS_ARCHDIR="$gr/g16/arch" + export GAUSS_BSDDIR="$gr/g16/bsd" +-export GV_DIR="$gr/gv" ++# export GV_DIR="$gr/gv" + if [ -e "$GV_DIR/gview.app" ]; then + alias gv='open $GV_DIR/gview.app' + elif [ -e "$GV_DIR/gview.csh" ]; then diff --git a/gaussview-gv6_install b/gaussview-gv6_install new file mode 100755 index 00000000..db4bd4d8 --- /dev/null +++ b/gaussview-gv6_install @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +############################################### +# Installing GaussView 6 +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-gaussview} +VERSION=${VERSION:-gv6} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/gaussian/$NAME} +MD5=${MD5:-9baa2e34de08fad4e47c41f8fb6dda7d} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/gaussian/sources/Gaussian16/GaussView_6/Linux/tar/gv-6016-Linux-x86_64.tbz} +SRC_SCRIPT=${SRC_SCRIPT:-/shared/ucl/apps/gaussian/sources/} +GROUP=${GROUP:-legg16} + +set -e + +CHECKSUM=`md5sum "${SRC_ARCHIVE}"| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + + mkdir -p $INSTALL_PREFIX + cd $INSTALL_PREFIX + tar -xvf $SRC_ARCHIVE + + # put in version specific directory + mv gv gv6 + + # Legion specific configuration of gview.csh + # cp $SRC_SCRIPT/gview6.csh $INSTALL_PREFIX/$VERSION/gview.csh + # ln -s gview.csh gview + + chgrp -R $GROUP $VERSION + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/gcc-4.9.2_install b/gcc-4.9.2_install new file mode 100755 index 00000000..63d4b29a --- /dev/null +++ b/gcc-4.9.2_install @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +############################################### +# Installing GCC 4.9.2 +# This needs a very simple build script as it happens before anything else +# is built. +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-gcc} +VERSION=${VERSION:-4.9.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION} +SHA512=${SHA512:-35a1386ae2b8629cd464383fbb3c61e94a07f3691f48b8029b97cc62a60c792ffb870aad2343b2ad8185bf46f77e1e1dd62309ecdadc42f919874c6e2c58b936} + +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-${VERSION}/gcc-${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha512sum -c <<< "$SHA512 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} +./configure --prefix=$INSTALL_PREFIX --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-libgcj-multifile --enable-languages=c,c++,fortran,java,lto,objc --disable-multilib +make -j 4 + +make check + +make install diff --git a/gcc-7.3.0_install b/gcc-7.3.0_install new file mode 100755 index 00000000..fd4db8e4 --- /dev/null +++ b/gcc-7.3.0_install @@ -0,0 +1,124 @@ +#!/usr/bin/env bash + +set -e + +package_name="gcc" +package_version="7.3.0" +package_description="The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages (libstdc++,...)." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs/4.9.2 + require compilers/gnu/4.9.2 + + # Autogen is required for tests, guile and libbdwgc are deps for autogen + require libbdwgc/7.4.2/gnu-4.9.2 + require guile/2.0.11/gnu-4.9.2 + require autogen/5.18.12/gnu-4.9.2 + + unset COMPILER_TAG + # Otherwise it'll end up in the module def + + make_build_env --tmp-root="/dev/shm" + package_url="ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-${package_version}/gcc-${package_version}.tar.xz" + package_file="gcc-${package_version}.tar.xz" + unpack_dir="gcc-${package_version}" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + manifest sha256:832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c gcc-7.3.0.tar.xz + + tar -xf "$package_file" + +} + +_pre_build() { + cd "$unpack_dir" + contrib/download_prerequisites + + # There's currently a bug where the MPFR tests fail because they look for the system GMP header, + # and compare that to the just-compiled in-tree library version. + # The system version is currently 6.0.0, and the in-tree auto-download one is 6.1.0, and using + # the system one seems to pass all tests, so the line below deletes the auto-downloaded copy + # before it's built. + # For reference, the test failure looks like this: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84554 + rm -Rf gmp gmp-* + + ./configure \ + --prefix="${install_prefix}" \ + --enable-libssp \ + --with-quad \ + --disable-multilib \ + --enable-lto \ + --enable-languages=c,c++,fortran,lto,brig,objc,obj-c++ \ + --enable-bootstrap \ + --enable-stage1-checking + #--with-system-zlib \ + + cd .. +} + +_build() { + cd "$unpack_dir" + make -j 4 + cd .. +} + +_post_build() { + cd "$unpack_dir" + + export CPATH="$(pwd)/host-x86_64-pc-linux-gnu/gmp/gmp.h:$CPATH" + export INCLUDE_PATH="$(pwd)/host-x86_64-pc-linux-gnu/gmp/gmp.h:$INCLUDE_PATH" + make check + + make install + + make_module \ + -o "${module_dir}/gcc-libs/${package_version}" \ + -d \ + -e LIBRARY_PATH:"$install_prefix/lib" \ + -e LIBRARY_PATH:"$install_prefix/lib64" \ + -e LD_LIBRARY_PATH:"$install_prefix/lib" \ + -e LD_LIBRARY_PATH:"$install_prefix/lib64" \ + -e PATH:"$install_prefix/bin" \ + -e MANPATH:"$install_prefix/man" \ + -p "$install_prefix" \ + -c "gcc-libs" \ + -w "Base module for $package_name ${package_version} -- does not set the standard compiler environment variables. $package_description" + make_module \ + -o "${module_dir}/compilers/gnu/${package_version}" \ + -v CC=gcc \ + -v CXX=g++ \ + -v FC=gfortran \ + -v F90=gfortran \ + -v F77=gfortran \ + -v COMPILER_TAG=gnu-${package_version} \ + -r gcc-libs/${package_version} \ + -d \ + -p "$install_prefix" \ + -c "compilers" \ + -c "$package_name" \ + -w "$package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx "$module_dir" + cd .. +} + +_clean_up() { + #rm -Rf ${temp_dir:-ERROR_TEMP_DIR_NOT_SET} + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/gflags-2.2.1_install b/gflags-2.2.1_install new file mode 100755 index 00000000..ef469a2c --- /dev/null +++ b/gflags-2.2.1_install @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-gflags} +VERSION=${VERSION:-2.2.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-b98e772b4490c84fc5a87681973f75d1} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/gflags/gflags/archive/v${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} + +mkdir build +cd build + +cmake ../ -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="$INSTALL_PREFIX" +make +make install diff --git a/git-2.3.5_install b/git-2.10.2_install similarity index 86% rename from git-2.3.5_install rename to git-2.10.2_install index a59e3e8f..8f9d214f 100755 --- a/git-2.3.5_install +++ b/git-2.10.2_install @@ -7,9 +7,10 @@ # COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} -VERSION=${VERSION:-2.3.5} +VERSION=${VERSION:-2.10.2} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/git/$VERSION/$COMPILER_TAG} -MD5=${MD5:-be8c0bbb0c5ee6ab7cdcffd2c9375fe6} +#MD5=${MD5:-be8c0bbb0c5ee6ab7cdcffd2c9375fe6} +MD5=${MD5:-3cd1dca37be60668f482545716923b72} SRC_ARCHIVE=${SRC_ARCHIVE:-https://www.kernel.org/pub/software/scm/git/git-${VERSION}.tar.xz} set -e diff --git a/glbinding-2.1.2_install b/glbinding-2.1.2_install new file mode 100755 index 00000000..5fc68286 --- /dev/null +++ b/glbinding-2.1.2_install @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +# Modules: +# glfw/3.2.1/gnu-4.9.2 +# llvm/3.9.1 +# mesa/13.0.6/gnu-4.9.2 + +NAME=${NAME:-glbinding} +VERSION=${VERSION:-2.1.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-d453d375d3e578fc5990ec41ad648d2ad3de73917a448ff6042bd9f555c0c0c0} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/cginternals/glbinding/archive/v${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha256sum -c <<< "$SHA256 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} +mkdir build +cd build + +export GLFW_ROOT=/shared/ucl/apps/glfw/3.2.1/gnu-4.9.2 +export GLFW_DIR=$GLFW_ROOT + + +cmake .. -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DCMAKE_BUILD_TYPE=Release -DOPTION_BUILD_TESTS=OFF + +make + +make install diff --git a/glfw-3.2.1_install b/glfw-3.2.1_install new file mode 100755 index 00000000..0b70d918 --- /dev/null +++ b/glfw-3.2.1_install @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-glfw} +VERSION=${VERSION:-3.2.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-91b8250b6edcc26c9f5205555070a504} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/glfw/glfw/archive/${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} +mkdir build +cd build +cmake .. -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DBUILD_SHARED_LIBS=ON +make +make install diff --git a/glog-0.3.5_install b/glog-0.3.5_install new file mode 100755 index 00000000..aa012f7a --- /dev/null +++ b/glog-0.3.5_install @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +############################################### +# Installing glog +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-glog} +VERSION=${VERSION:-0.3.5} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-5df6d78b81e51b90ac0ecd7ed932b0d4} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/google/glog/archive/v${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} + +./configure --prefix=$INSTALL_PREFIX +make +make install diff --git a/go-1.10.3_install b/go-1.10.3_install new file mode 100755 index 00000000..55e0157e --- /dev/null +++ b/go-1.10.3_install @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +set -o errexit -o nounset +for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +package_name="go" +package_version="1.10.3" +src_urls="https://storage.googleapis.com/golang/go${package_version}.linux-amd64.tar.gz" +# Optional: +# package_variant="" +package_description="Go is an open-source, compiled, statically-typed language with garbage collection, limited structural typing, memory safety features and CSP-style concurrent programming features added." + +actual_file_name=go${package_version}.linux-amd64.tar.gz +actual_file_sha256=fa1b0e45d3b647c252f51f5e1204aba049cde4af177ef9f2181f43004f901035 + +module purge + +_env_setup() { + owd=$(pwd) + package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}" + install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} + build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} + module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} + cd $build_dir +} + +_fetch_files() { + wget ${actual_file_name:+-O $actual_file_name} $src_urls + sha256sum -c <<<"$actual_file_sha256 $actual_file_name" +} + +_setup_files() { + basename=$(tar -tf $actual_file_name | head -n 1 | sed -e 's_/__') + tar -xf $actual_file_name +} + +_build() { + mkdir -p "${install_prefix%/*}" + mv go "${install_prefix}" + echo "Installed to: $install_prefix" +} + +_prepare_module() { + make_module -p "$install_prefix" \ + -c "${package_name}" \ + -o "$module_dir/$package_label" \ + -v GOROOT="$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. $package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx $module_dir +} + +_clean_up() { + cd $owd + if [ -n "$build_dir" ]; then + rm -Rf ${build_dir} + fi +} + +_env_setup +_fetch_files +_setup_files +_build +_prepare_module +_clean_up + diff --git a/groff-1.22.3_install b/groff-1.22.3_install new file mode 100755 index 00000000..745b2c0a --- /dev/null +++ b/groff-1.22.3_install @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +############################################### +# Installing GNU groff 1.22.3 +# +# by Brian Alston, April 2018 +# +# +# Will need modules: rcps-core/1.0.0, compilers/gnu/4.9.2 and perl/5.22.0 + +VERSION=${VERSION:-1.22.3} +# VER=`echo $VERSION | sed 's/\.//'` +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/groff/${VERSION}} +MD5=${MD5:-cc825fa64bc7306a885f2fb2268d3ec5} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://ftp.gnu.org/gnu/groff/groff-${VERSION}.tar.gz} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require perl/5.22.0 + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum groff-${VERSION}.tar.gz| awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvzf groff-${VERSION}.tar.gz + cd groff-${VERSION} + ./configure --prefix=${INSTALL_PREFIX} + make + make install +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/gromacs-2016.3-plumed_install b/gromacs-2016.3-plumed_install new file mode 100755 index 00000000..0135da5e --- /dev/null +++ b/gromacs-2016.3-plumed_install @@ -0,0 +1,79 @@ +#!/usr/bin/env bash + +############################################### +# Installing GROMACS with PLUMED +# +# NOTE: build with UCL_PLATFORM_OPTS="-DGMX_SIMD=SSE4.1" on Legion + +NAME=${NAME:-gromacs} +VERSION=${VERSION:-2016.3} +SHA1=${SHA1:-1ae1ea922b94c74f43ee066e3ea64bafa1c6c3b6} +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.gromacs.org/pub/gromacs/gromacs-$VERSION.tar.gz} + +for i in $(dirname -- "$0" 2>/dev/null)/includes/{module_maker,require}_inc.sh; do . $i; done +module purge +require gcc-libs +require compilers/intel/2017/update1 +require mpi/intel/2017/update1/intel +require libmatheval +require flex +require openblas/0.2.14/intel-2015-update2 +require plumed/2.3.1/intel-2017-update1 + +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/plumed/$COMPILER_TAG} + +set -e + +# Check if PLUMED_KERNEL is empty or unset, returns error if it is +: "${PLUMED_KERNEL:?"parameter null or not set, need to load a plumed module"}" + +temp_dir=$(mktemp -d -p /dev/shm) + +cd "$temp_dir" + +wget "$SRC_ARCHIVE" +tarfile=$(basename "${SRC_ARCHIVE}") + +echo "Checking hashes:" +sha1sum -c <<<"$SHA1 $tarfile" + +tar -xf "$tarfile" + +cd "${NAME}-${VERSION}" + +echo "Running PLUMED's interactive patch tool" +plumed patch -p --shared + +mkdir build +cd build + +# Only build the MPI versions of GROMACS with PLUMED +# need to tell it to build shared libs or it won't since it didn't do a serial build first + +echo "Building and installing MPI, double precision GROMACS" +cmake .. -DGMX_DOUBLE=on -DGMX_MPI=on -DGMX_BUILD_MDRUN_ONLY=OFF -DGMX_FFT_LIBRARY=mkl $UCL_PLATFORM_OPTS -DCMAKE_INSTALL_PREFIX="$INSTALL_PREFIX" -DBUILD_SHARED_LIBS=ON +make +make install + +# PLUMED 2 always uses double precision, even if GROMACS is running in single +echo "Building and installing MPI, single precision GROMACS" +cmake .. -DGMX_DOUBLE=off -DGMX_MPI=on -DGMX_BUILD_MDRUN_ONLY=OFF -DGMX_FFT_LIBRARY=mkl $UCL_PLATFORM_OPTS -DCMAKE_INSTALL_PREFIX="$INSTALL_PREFIX" -DBUILD_SHARED_LIBS=ON +make +make install + +module_dir=$(mktemp -d -p /dev/shm) +make_module -r gcc-libs \ + -r compilers/intel/2017/update1 \ + -r mpi/intel/2017/update1/intel \ + -r libmatheval \ + -r flex \ + -r openblas/0.2.14/intel-2015-update2 \ + -r plumed/2.3.1/intel-2017-update1 \ + -p "$INSTALL_PREFIX" \ + -c "$NAME" \ + -w "GROMACS 5.1.3 molecular dynamics package, built with Intel 2017u1 compilers, PLUMED 2.3.1 patches (including libmatheval), and OpenBLAS 0.2.14." \ + -o "$module_dir/$NAME/$VERSION/plumed/$COMPILER_TAG" +echo "Modules created in $module_dir" + + + diff --git a/gromacs-2016.3_install b/gromacs-2016.3_install new file mode 100755 index 00000000..e90b6ba9 --- /dev/null +++ b/gromacs-2016.3_install @@ -0,0 +1,62 @@ +#!/usr/bin/env bash + +############################################### +# Installing GROMACS with PLUMED +# +# NOTE: build with UCL_PLATFORM_OPTS="-DGMX_SIMD=SSE4.1" on Legion + +NAME=${NAME:-gromacs} +VERSION=${VERSION:-2016.3} +SHA1=${SHA1:-1ae1ea922b94c74f43ee066e3ea64bafa1c6c3b6} +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.gromacs.org/pub/gromacs/gromacs-$VERSION.tar.gz} + +for i in $(dirname -- "$0" 2>/dev/null)/includes/{module_maker,require}_inc.sh; do . $i; done +module purge +require gcc-libs +require compilers/intel/2017/update1 +require mpi/intel/2017/update1/intel + +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} + +set -e + +temp_dir=$(mktemp -d -p /dev/shm) + +cd "$temp_dir" + +wget "$SRC_ARCHIVE" +tarfile=$(basename "${SRC_ARCHIVE}") + +echo "Checking hashes:" +sha1sum -c <<<"$SHA1 $tarfile" + +tar -xf "$tarfile" + +cd "${NAME}-${VERSION}" + +mkdir build +cd build + +echo "Building and installing full, serial, single precision GROMACS with gmx view" +cmake .. -DGMX_FFT_LIBRARY=mkl $UCL_PLATFORM_OPTS -DGMX_X11=ON -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX $CMAKE_FLAGS +make +make install + +echo "Building and installing full, serial, double precision GROMACS with gmx view" +cmake .. -DGMX_DOUBLE=on -DGMX_FFT_LIBRARY=mkl $UCL_PLATFORM_OPTS -DGMX_X11=ON -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX $CMAKE_FLAGS +make +make install + +echo "Building and installing mdrun-only, MPI, single precision GROMACS" +cmake .. -DGMX_DOUBLE=off -DGMX_MPI=on -DGMX_BUILD_MDRUN_ONLY=ON -DGMX_FFT_LIBRARY=mkl $UCL_PLATFORM_OPTS -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX $CMAKE_FLAGS +make +make install + +echo "Building and installing mdrun-only, MPI, double precision GROMACS" +cmake .. -DGMX_DOUBLE=on -DGMX_MPI=on -DGMX_BUILD_MDRUN_ONLY=ON -DGMX_FFT_LIBRARY=mkl $UCL_PLATFORM_OPTS -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX $CMAKE_FLAGS +make +make install + + + + diff --git a/gromacs-2016.4-plumed_install b/gromacs-2016.4-plumed_install new file mode 100755 index 00000000..73523734 --- /dev/null +++ b/gromacs-2016.4-plumed_install @@ -0,0 +1,79 @@ +#!/usr/bin/env bash + +############################################### +# Installing GROMACS with PLUMED +# 2016.4 and plumed 2.4.1 make hrex available. +# NOTE: build with UCL_PLATFORM_OPTS="-DGMX_SIMD=SSE4.1" on Legion + +NAME=${NAME:-gromacs} +VERSION=${VERSION:-2016.4} +SHA256=${SHA256:-4be9d3bfda0bdf3b5c53041e0b8344f7d22b75128759d9bfa9442fe65c289264} +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.gromacs.org/pub/gromacs/gromacs-$VERSION.tar.gz} + +for i in $(dirname -- "$0" 2>/dev/null)/includes/{module_maker,require}_inc.sh; do . $i; done +module purge +require gcc-libs +require compilers/intel/2017/update4 +require mpi/intel/2017/update3/intel +require libmatheval +require flex +require openblas/0.2.14/intel-2015-update2 +require plumed/2.4.1/intel-2017-update4 + +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/plumed/$COMPILER_TAG} + +set -e + +# Check if PLUMED_KERNEL is empty or unset, returns error if it is +: "${PLUMED_KERNEL:?"parameter null or not set, need to load a plumed module"}" + +temp_dir=$(mktemp -d -p /dev/shm) + +cd "$temp_dir" + +wget "$SRC_ARCHIVE" +tarfile=$(basename "${SRC_ARCHIVE}") + +echo "Checking hashes:" +sha256sum -c <<<"$SHA256 $tarfile" + +tar -xf "$tarfile" + +cd "${NAME}-${VERSION}" + +echo "Running PLUMED's interactive patch tool" +plumed patch -p --shared + +mkdir build +cd build + +# Only build the MPI versions of GROMACS with PLUMED +# need to tell it to build shared libs or it won't since it didn't do a serial build first + +echo "Building and installing MPI, double precision GROMACS" +cmake .. -DGMX_DOUBLE=on -DGMX_MPI=on -DGMX_BUILD_MDRUN_ONLY=OFF -DGMX_FFT_LIBRARY=mkl $UCL_PLATFORM_OPTS -DCMAKE_INSTALL_PREFIX="$INSTALL_PREFIX" -DBUILD_SHARED_LIBS=ON +make +make install + +# PLUMED 2 always uses double precision, even if GROMACS is running in single +echo "Building and installing MPI, single precision GROMACS" +cmake .. -DGMX_DOUBLE=off -DGMX_MPI=on -DGMX_BUILD_MDRUN_ONLY=OFF -DGMX_FFT_LIBRARY=mkl $UCL_PLATFORM_OPTS -DCMAKE_INSTALL_PREFIX="$INSTALL_PREFIX" -DBUILD_SHARED_LIBS=ON +make +make install + +module_dir=$(mktemp -d -p /dev/shm) +make_module -r gcc-libs \ + -r compilers/intel/2017/update4 \ + -r mpi/intel/2017/update3/intel \ + -r libmatheval \ + -r flex \ + -r openblas/0.2.14/intel-2015-update2 \ + -r plumed/2.4.1/intel-2017-update4 \ + -p "$INSTALL_PREFIX" \ + -c "$NAME" \ + -w "GROMACS 2016.4 molecular dynamics package, built with Intel 2017u4 compilers, PLUMED 2.4.1 patches (including libmatheval) with hrex, and OpenBLAS 0.2.14." \ + -o "$module_dir/$NAME/$VERSION/plumed/$COMPILER_TAG" +echo "Modules created in $module_dir" + + + diff --git a/gromacs-2018.2_install b/gromacs-2018.2_install new file mode 100755 index 00000000..09240dd0 --- /dev/null +++ b/gromacs-2018.2_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +############################################### +# Installing GROMACS with PLUMED +# +# NOTE: build with UCL_PLATFORM_OPTS="-DGMX_SIMD=SSE4.1" on Legion + +package_name="gromacs" +package_version="2018.2" +package_description="GROMACS is a package for performing molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles." +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.gromacs.org/pub/gromacs/gromacs-$package_version.tar.gz} + +source includes/source_includes.sh +module purge +require gcc-libs +require cmake +require compilers/intel/2018/update3 +require mpi/intel/2018/update3/intel + +make_build_env "" + +set -e + +cd "$build_dir" + +wget "$SRC_ARCHIVE" +tarfile=$(basename "${SRC_ARCHIVE}") + +manifest md5:7087462bb08393aec4ce3192fa4cd8df ${tarfile} + +tar -xf "$tarfile" + +cd "${package_name}-${package_version}" + +mkdir build +cd build + +echo "Building and installing full, serial, single precision GROMACS with gmx view" +cmake .. \ + -DGMX_FFT_LIBRARY=mkl \ + $UCL_PLATFORM_OPTS \ + -DGMX_X11=ON \ + -DCMAKE_INSTALL_PREFIX=$install_prefix \ + $CMAKE_FLAGS +make +make install + +echo "Building and installing full, serial, double precision GROMACS with gmx view" +cmake .. \ + -DGMX_DOUBLE=on \ + -DGMX_FFT_LIBRARY=mkl \ + $UCL_PLATFORM_OPTS \ + -DGMX_X11=ON \ + -DCMAKE_INSTALL_PREFIX=$install_prefix \ + $CMAKE_FLAGS +make +make install + +echo "Building and installing mdrun-only, MPI, single precision GROMACS" +cmake .. \ + -DGMX_DOUBLE=off \ + -DGMX_MPI=on \ + -DGMX_BUILD_MDRUN_ONLY=ON \ + -DGMX_FFT_LIBRARY=mkl \ + $UCL_PLATFORM_OPTS \ + -DCMAKE_INSTALL_PREFIX=$install_prefix \ + $CMAKE_FLAGS +make +make install + +echo "Building and installing mdrun-only, MPI, double precision GROMACS" +cmake .. \ + -DGMX_DOUBLE=on \ + -DGMX_MPI=on \ + -DGMX_BUILD_MDRUN_ONLY=ON \ + -DGMX_FFT_LIBRARY=mkl \ + $UCL_PLATFORM_OPTS \ + -DCMAKE_INSTALL_PREFIX=$install_prefix \ + $CMAKE_FLAGS +make +make install + +make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "$package_name" \ + -r gcc-libs \ + -r compilers/intel/2017/update1 \ + -r mpi/intel/2017/update1/intel + +chmod -R a+rX "${module_dir}" +echo "Modules in: ${module_dir}" + diff --git a/gromacs-2018_install b/gromacs-2018_install new file mode 100755 index 00000000..437450ca --- /dev/null +++ b/gromacs-2018_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +############################################### +# Installing GROMACS with PLUMED +# +# NOTE: build with UCL_PLATFORM_OPTS="-DGMX_SIMD=SSE4.1" on Legion + +package_name="gromacs" +package_version="2018" +package_description="GROMACS is a package for performing molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles." +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.gromacs.org/pub/gromacs/gromacs-$package_version.tar.gz} + +source includes/source_includes.sh +module purge +require gcc-libs +require cmake +require compilers/intel/2017/update1 +require mpi/intel/2017/update1/intel + +make_build_env "" + +set -e + +cd "$build_dir" + +wget "$SRC_ARCHIVE" +tarfile=$(basename "${SRC_ARCHIVE}") + +manifest sha256:deb5d0b749a52a0c6083367b5f50a99e08003208d81954fb49e7009e1b1fd0e9 ${tarfile} + +tar -xf "$tarfile" + +cd "${package_name}-${package_version}" + +mkdir build +cd build + +echo "Building and installing full, serial, single precision GROMACS with gmx view" +cmake .. \ + -DGMX_FFT_LIBRARY=mkl \ + $UCL_PLATFORM_OPTS \ + -DGMX_X11=ON \ + -DCMAKE_INSTALL_PREFIX=$install_prefix \ + $CMAKE_FLAGS +make +make install + +echo "Building and installing full, serial, double precision GROMACS with gmx view" +cmake .. \ + -DGMX_DOUBLE=on \ + -DGMX_FFT_LIBRARY=mkl \ + $UCL_PLATFORM_OPTS \ + -DGMX_X11=ON \ + -DCMAKE_INSTALL_PREFIX=$install_prefix \ + $CMAKE_FLAGS +make +make install + +echo "Building and installing mdrun-only, MPI, single precision GROMACS" +cmake .. \ + -DGMX_DOUBLE=off \ + -DGMX_MPI=on \ + -DGMX_BUILD_MDRUN_ONLY=ON \ + -DGMX_FFT_LIBRARY=mkl \ + $UCL_PLATFORM_OPTS \ + -DCMAKE_INSTALL_PREFIX=$install_prefix \ + $CMAKE_FLAGS +make +make install + +echo "Building and installing mdrun-only, MPI, double precision GROMACS" +cmake .. \ + -DGMX_DOUBLE=on \ + -DGMX_MPI=on \ + -DGMX_BUILD_MDRUN_ONLY=ON \ + -DGMX_FFT_LIBRARY=mkl \ + $UCL_PLATFORM_OPTS \ + -DCMAKE_INSTALL_PREFIX=$install_prefix \ + $CMAKE_FLAGS +make +make install + +make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "$package_name" \ + -r gcc-libs \ + -r compilers/intel/2017/update1 \ + -r mpi/intel/2017/update1/intel + +chmod -R a+rX "${module_dir}" +echo "Modules in: ${module_dir}" + diff --git a/gsl-1.16_install b/gsl-1.16_install index 16e93434..b45eafd8 100755 --- a/gsl-1.16_install +++ b/gsl-1.16_install @@ -3,14 +3,15 @@ ############################################### # Installing GSL 1.16 # -# by Brian Alston, 2015 +# by Brian Alston, 2015 +# Updated May 2018 for new SRC_ARCHIVE location. # # Will need modules: rcps-core/1.0.0 and compilers/gnu/4.9.2 VERSION=${VERSION:-1.16} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/gsl/$VERSION/gcc} MD5=${MD5:-e49a664db13d81c968415cd53f62bc8b} -SRC_ARCHIVE=${SRC_ARCHIVE:-http://ftp.heanet.ie/mirrors/gnu/gsl/gsl-${VERSION}.tar.gz} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/gsl/gsl-${VERSION}.tar.gz} export PATH=$INSTALL_PREFIX/bin:$PATH diff --git a/gsl-2.4_install b/gsl-2.4_install new file mode 100755 index 00000000..2df814c1 --- /dev/null +++ b/gsl-2.4_install @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +############################################### +# Installing gsl 2.4 +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-gsl} +VERSION=${VERSION:-2.4} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA1=${SHA1:-5db17d71306139b811a218d8a8cf98e12e1f58ae} + +SRC_ARCHIVE=${SRC_ARCHIVE:-http://ftp.gnu.org/gnu/gsl/gsl-${VERSION}.tar.gz} + +OPTS="" + + +set -e + + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha1sum -c <<< "$SHA1 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} + +if [ "${COMPILER_TAG:0:5}" == "intel" ]; then + echo "DETECTED INTEL COMPILERS - SETTING FP MODEL TO PRECISE" + ./configure --prefix=$INSTALL_PREFIX CFLAGS="-O2 -fp-model precise" +elif [ "${COMPILER_TAG}" == "gnu-4.9.2" ]; then + echo "DETECTED BUGGY GNU COMPILERS - DISABLING OPTIMIZATION" + ./configure --prefix=$INSTALL_PREFIX CFLAGS="-O1" + +else + ./configure --prefix=$INSTALL_PREFIX +fi +make +make check +make install diff --git a/gstreamer-1.12.0_install b/gstreamer-1.12.0_install new file mode 100755 index 00000000..f6bb9d81 --- /dev/null +++ b/gstreamer-1.12.0_install @@ -0,0 +1,75 @@ +#!/usr/bin/env bash + +set -o errexit + +for i in ${includes_dir:=$(dirname "$0" 2>/dev/null)/includes}/{module_maker,require,tools}_inc.sh; do source "$i"; done + +package_name=gstreamer +package_version=1.12.0 +package_variant="" +package_description="GStreamer is a library for constructing graphs of media-handling components, including codecs for various audio and video formats." + +module purge +require gcc-libs +require bison +require flex +require nasm + +# If you don't do this, some of the tests fire up X +unset DISPLAY + +owd="$(pwd)" +package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}${COMPILER_TAG:+/$COMPILER_TAG}" +install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} +build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} +module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} +cd "$build_dir" + +wget \ + https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.12.0.tar.xz \ + https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.12.0.tar.xz \ + https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.12.0.tar.xz \ + https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.12.0.tar.xz + +manifest \ + sha256:39d1477f642ee980b008e78d716b16801eec9a6e5958c5a6cdc0cb04ab0750c4 gst-libav-1.12.0.tar.xz \ + sha256:345fc6877f54b8b6e97aacf2996be37a51a0e369f53fc2cf83108af9f764364d gst-plugins-base-1.12.0.tar.xz \ + sha256:8a1d734db7338e00c28b794a7f0a5a9e67d1c5c8b0074075b50638207d372ebc gst-plugins-good-1.12.0.tar.xz \ + sha256:14d5eef8297d2bf2a728d38fa43cd92cc267a0ad260cf83d770215212aff4302 gstreamer-1.12.0.tar.xz + +add_prefix_to_env "$install_prefix" + +for src_file in gstreamer-1.12.0.tar.xz gst-plugins-base-1.12.0.tar.xz gst-plugins-good-1.12.0.tar.xz gst-libav-1.12.0.tar.xz; do + tar -xJf "$src_file" + cd "${src_file%%.tar.xz}" + ./configure --prefix="$install_prefix" + make + make check || echo -e "----------------------------------\n Not all tests passed \n----------------------------------------" + make install + cd "$build_dir" +done + +# Two tests fail: + +# In gst-plugins-good: +# FAIL: elements/rtp-payloading + +# In gst-plugins-base: +# FAIL: elements/playbin-complex + +# I don't know whether either of these is significant but +# neither can I find any useful information on fixing them +# so I'm going to hope that no one hits whatever is causing these +# if it's not just an API movement problem + +echo "Installed to: $install_prefix" + +make_module \ + -p "$install_prefix" \ + -c gstreamer \ + -r gcc-libs \ + -o "$module_dir/$package_label" \ + -w "$package_description" + +echo "Modules in: $module_dir/$package_label" + diff --git a/gulp-4.5-libgulp_install b/gulp-4.5-libgulp_install new file mode 100755 index 00000000..c87a1049 --- /dev/null +++ b/gulp-4.5-libgulp_install @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +############################################### +# Installing GULP 4.5 libgulp version for ChemShell integration +# +# Built with Intel compiler and MPI +# Source downloaded previously with website credentials +# + +NAME=${NAME:-gulp} +VERSION=${VERSION:-4.5} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/gulp/sources/$NAME-$VERSION.tgz} +PATCH=${PATCH:-/shared/ucl/apps/build_scripts/patches/GULP4.5_getengine_mpi_chemshell.patch} + +set -e + +# require modules for building +source includes/source_includes.sh +module purge +require gcc-libs +require compilers/intel/2018/update3 +require mpi/intel/2018/update3/intel + +# need to set this after compiler module is loaded +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/chemshell/$COMPILER_TAG} + +# builds in place +mkdir -p "$INSTALL_PREFIX" +cd "$INSTALL_PREFIX" +tar -xvf "$SRC_ARCHIVE" +cd "${NAME}"-"${VERSION}"/Src + +# patch getmachine to tell it to build with MPI, No FoX and no lapack.o +patch -p0 -i "$PATCH" +make lib 2>&1 | tee makelib.log + diff --git a/gulp-4.5_install b/gulp-4.5_install new file mode 100755 index 00000000..681fd679 --- /dev/null +++ b/gulp-4.5_install @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +############################################### +# Installing GULP 4.5 +# Built with Intel compiler and MPI +# Source downloaded previously with website credentials +# + +NAME=${NAME:-gulp} +VERSION=${VERSION:-4.5} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/gulp/sources/$NAME-$VERSION.tgz} +BUILD_DIR=${BUILD_DIR:-$(mktemp -d -p /dev/shm -t "${NAME}"-build.XXXXXXXX)} +PATCH=${PATCH:-/shared/ucl/apps/build_scripts/patches/GULP4.5_getengine_mpi.patch} + +set -e + +# require modules for building +source includes/source_includes.sh +module purge +require gcc-libs +require compilers/intel/2018/update3 +require mpi/intel/2018/update3/intel + +# need to set this after compiler module is loaded +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} + +# builds in place +mkdir -p "$INSTALL_PREFIX" +cd "$INSTALL_PREFIX" +tar -xvf "$SRC_ARCHIVE" +cd "${NAME}"-"${VERSION}"/Src + +# patch getmachine to tell it to build with MPI +patch -p0 -i "$PATCH" +make 2>&1 | tee make.log + diff --git a/hdf5-1.10.2-serial_install b/hdf5-1.10.2-serial_install new file mode 100755 index 00000000..bace95cf --- /dev/null +++ b/hdf5-1.10.2-serial_install @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +############################################### +# Installing HDF5 1.10.2 Serial Version with currently loaded compiler +# +# by Owain Kenway, 2018 +# +VERSION=${VERSION:-5-1.10.2} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/HDF/${VERSION}/serial/${COMPILER_TAG}} +MD5=${MD5:-41fb9347801b546fba323523a1c1af51} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://support.hdfgroup.org/ftp/HDF5/releases/hdf${VERSION:0:6}/hdf${VERSION}/src/hdf${VERSION}.tar.bz2} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/hdf5 +temp_dir=`mktemp -d -p /dev/shm/hdf5` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum hdf${VERSION}.tar.bz2| awk '{print $1}'` + +if [[ "$MD5" == "$CHECKSUM" ]] +then + tar xvf hdf${VERSION}.tar.bz2 + cd hdf${VERSION} + ./configure --prefix=${INSTALL_PREFIX} --enable-fortran --enable-cxx + make + make check + make install + +else + echo "***** Hash mismatch," + echo " Expected: $MD5" + echo " Got: $CHECKSUM" +fi diff --git a/hdf5-1.8.15_GCC_S_install b/hdf5-1.8.15_GCC_S_install index 614f310d..fb06aafe 100755 --- a/hdf5-1.8.15_GCC_S_install +++ b/hdf5-1.8.15_GCC_S_install @@ -30,7 +30,7 @@ if [[ "$MD5" == "$CHECKSUM" ]] then tar xvzf hdf${VERSION}.tar.gz cd hdf${VERSION} - ./configure --prefix=${INSTALL_PREFIX} --enable-threadsafe + ./configure --prefix=${INSTALL_PREFIX} --enable-threadsafe make make check-s make install diff --git a/hopspack-2.0.2_install b/hopspack-2.0.2_install index a1e2b565..1d204eb6 100755 --- a/hopspack-2.0.2_install +++ b/hopspack-2.0.2_install @@ -35,8 +35,13 @@ cd build-serial cmake ../ -Dmpi=OFF -Ddebug=OFF -DLAPACK_LIBS=/shared/ucl/apps/atlas/3.10.2/gnu-4.9.2/lib/libsatlas.so make cp HOPSPACK_main_serial $INSTALL_PREFIX/bin + +mkdir -p $INSTALL_PREFIX/lib-serial +cp src/*/*.a $INSTALL_PREFIX/lib-serial + cd ../build-mpi cmake ../ -Dmpi=ON -Ddebug=OFF -DLAPACK_LIBS=/shared/ucl/apps/atlas/3.10.2/gnu-4.9.2/lib/libsatlas.so make cp HOPSPACK_main_mpi $INSTALL_PREFIX/bin - +mkdir -p $INSTALL_PREFIX/lib-mpi +cp src/*/*.a $INSTALL_PREFIX/lib-mpi diff --git a/hopspack-2.0.2_intel_install b/hopspack-2.0.2_intel_install new file mode 100755 index 00000000..bbab4f62 --- /dev/null +++ b/hopspack-2.0.2_intel_install @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +############################################### +# Installing HOPSPACK +# +# by Owain Kenway, 2015 +# + +# You need to register for this package and download it, place the tar.gz in +# $SRC_ARCHIVE + +APPNAME=${APPNAME:-hopspack} +VERSION=${VERSION:-2.0.2} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/$VERSION/$COMPILER_TAG} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/hopspack/sources/${APPNAME}-${VERSION}-src.tar.gz} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/$APPNAME +temp_dir=`mktemp -d -p /dev/shm/$APPNAME` + +mkdir -p $INSTALL_PREFIX/bin + +cd $temp_dir + +tar -zxvf $SRC_ARCHIVE + +cd ${APPNAME}-${VERSION}-src +mkdir build-serial +mkdir build-mpi +cd build-serial +echo LAPACK_LIBS:FILEPATH=-mkl > CMakeCache.txt +cmake ../ -Dmpi=OFF -Ddebug=OFF +make +cp HOPSPACK_main_serial $INSTALL_PREFIX/bin +mkdir -p $INSTALL_PREFIX/lib-serial +cp src/*/*.a $INSTALL_PREFIX/lib-serial + + +cd ../build-mpi +echo LAPACK_LIBS:FILEPATH=-mkl > CMakeCache.txt +cmake ../ -Dmpi=ON -Ddebug=OFF +make +cp HOPSPACK_main_mpi $INSTALL_PREFIX/bin +mkdir -p $INSTALL_PREFIX/lib-mpi +cp src/*/*.a $INSTALL_PREFIX/lib-mpi + diff --git a/hypre-2.11.2_install b/hypre-2.11.2_install new file mode 100755 index 00000000..7da5a818 --- /dev/null +++ b/hypre-2.11.2_install @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +############################################### +# Installing HYPRE +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-hypre} +VERSION=${VERSION:-2.11.2} +MPI_TAG=${MPI_TAG:-openmpi-3.1.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG/$MPI_TAG} +SHA256=${SHA256:-25b6c1226411593f71bb5cf3891431afaa8c3fd487bdfe4faeeb55c6fdfb269e} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://computation.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods/download/${NAME}-${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha256sum -c <<< "$SHA256 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION}/src + +./configure --prefix=$INSTALL_PREFIX --with-blas-lib=-mkl --with-lapack-lib=-mkl +make +make install diff --git a/includes/module_maker_inc.sh b/includes/module_maker_inc.sh index dd4048f6..69b61773 100755 --- a/includes/module_maker_inc.sh +++ b/includes/module_maker_inc.sh @@ -49,7 +49,7 @@ make_module() { send_help_and_quit="y" ;; *) - echo "Invalid argument specified: $flag" >&2 + echo "Module maker: Invalid argument specified: $flag" >&2 exit 5 ;; esac diff --git a/includes/source_includes.sh b/includes/source_includes.sh new file mode 100644 index 00000000..fe5547ad --- /dev/null +++ b/includes/source_includes.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +## Add standard list of includes here, *relative to main directory*. +## Intended to make sourcing them simpler. + +source includes/module_maker_inc.sh +source includes/require_inc.sh +source includes/tools_inc.sh diff --git a/includes/tools_inc.sh b/includes/tools_inc.sh new file mode 100644 index 00000000..07105db0 --- /dev/null +++ b/includes/tools_inc.sh @@ -0,0 +1,188 @@ +#!/usr/bin/env bash + +# Could have $1 as digest type instead, then could do mass file check and could also copy/paste results instead of having to prepend type to each line + +function manifest() { + local digest + local file + local digest_type + while [[ -n "${1:-}" ]] && [[ -n "${2:-}" ]]; do + digest="$1" + file="$2" + + digest_type="${digest%:*}" + if [[ "$digest_type" == "$digest" ]]; then + echo "Error: argument '$digest' should be a digest and is not" >&2 + return 1 + fi + digest="${digest#*:}" + + case "$digest_type" in + "md5") + md5sum -c <<<"$digest $file" + ;; + "sha1") + shasum -c <<<"$digest $file" + ;; + "sha224") + shasum -a 224 -c <<<"$digest $file" + ;; + "sha256") + shasum -a 256 -c <<<"$digest $file" + ;; + "sha384") + shasum -a 384 -c <<<"$digest $file" + ;; + "sha512") + shasum -a 512 -c <<<"$digest $file" + ;; + *) + : + ;; + esac + shift 2 + done + if [[ -n "${1:-}" && -z "${2:-}" ]]; then + echo "Error: improper number of arguments" + return 2 + fi +} + +add_prefix_to_env () +{ + if [ -z "$1" ] || [ ! -d "$1" ]; then + echo "Error: invalid path specified" 1>&2; + else + CMAKE_PREFIX_PATH="$1:$CMAKE_PREFIX_PATH"; + export CMAKE_PREFIX_PATH + if [ -d "$1/bin" ]; then + PATH="$1/bin:$PATH"; + export PATH + fi; + if [ -d "$1/man" ]; then + MANPATH="$1/man:$MANPATH"; + export MANPATH + fi; + if [ -d "$1/share/man" ]; then + MANPATH="$1/share/man:$MANPATH"; + export MANPATH + fi; + if [ -d "$1/lib" ]; then + LIBRARY_PATH="$1/lib:$LIBRARY_PATH"; + LD_LIBRARY_PATH="$1/lib:$LD_LIBRARY_PATH"; + export LIBRARY_PATH + export LD_LIBRARY_PATH + fi; + if [ -d "$1/lib64" ]; then + LIBRARY_PATH="$1/lib64:$LIBRARY_PATH"; + LD_LIBRARY_PATH="$1/lib64:$LD_LIBRARY_PATH"; + export LIBRARY_PATH + export LD_LIBRARY_PATH + fi; + if [ -d "$1/lib/pkgconfig" ]; then + PKG_CONFIG_PATH="$1/lib/pkgconfig:$PKG_CONFIG_PATH"; + export PKG_CONFIG_PATH + fi; + if [ -d "$1/include" ]; then + CPATH="$1/include:$CPATH"; + INCLUDE_PATH="$1/include:$INCLUDE_PATH"; + export CPATH + export INCLUDE_PATH + fi; + fi +} + +make_build_env () { + local prefix + local tmp_root_dir + local prod_apps_dir + + prod_apps_dir="/shared/ucl/apps" + service_user="ccspapp" + + prefix="${package_name:-tmp.}" + tmp_root_dir="${TMPDIR:-/tmp}" + + if [[ -n "${1:-}" ]]; then + if [[ "${1:0:2}" == "--" ]] && [[ ${#1} -gt 2 ]]; then + while [[ -n "${1:-}" ]]; do + case "$1" in + --tmp-root=*) + tmp_root_dir="${1#--tmp-root=}" + ;; + --prefix=*) + prefix="${1#--prefix=}" + ;; + *) + echo "Error: unrecognised option passed to make_build_env" >&2 + exit 1 + ;; + esac + shift + done + else + prefix="$1" + if [[ -n "${2:-}" ]]; then + tmp_root_dir="$2" + fi + fi + fi + + + # These definitions are intended to leave the function + # but are *not* exported because only *bash* needs them + owd=$(pwd) + build_dir="${BUILD_DIR:-"$(mktemp -d -p "$tmp_root_dir" -t "$prefix-build.XXXXXXXXXX")"}" + module_dir="${MODULE_DIR:-"$(mktemp -d -p "$tmp_root_dir" -t "$prefix-modules.XXXXXXXXXX")"}" + + if [[ -n "${package_name:-}" ]] && [[ -n "${package_version:-}" ]]; then + package_label="${package_name}/${package_version}${package_variant:+-${package_variant:-}}${COMPILER_TAG:+/$COMPILER_TAG}" + else + echo "Error: package name and package version variables have not been set." >&2 + exit 1 + fi + + if [[ -n "${IS_TEST_RUN:-}" ]]; then + reason_for_test_install="IS_TEST_RUN was set" + elif [[ "${LOGNAME:-}" != "$service_user" ]]; then + reason_for_test_install="current user is not service user" + fi + + default_install_prefix="${INSTALL_PREFIX:-${prod_apps_dir}/${package_label}}" + if [[ -n "${reason_for_test_install:-}" ]]; then + echo "Warning: default install prefix is a temporary directory because $reason_for_test_install" + echo " otherwise install prefix would have been $default_install_prefix" + install_prefix="${INSTALL_PREFIX:-"$(mktemp -d -p "$tmp_root_dir" -t "$prefix-test-prefix.XXXXXXXXXX")"}" + else + install_prefix="$default_install_prefix" + fi + + cat </dev/null)/includes}/{module_maker,require,tools}_inc.sh; do source "$i"; done + +package_name=inetutils +package_version=1.9.4 +package_variant="" +package_description="GNU inetutils is a package of utilities for performing a range of network tasks including FTP and telnet clients." + +module purge + +owd="$(pwd)" +package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}${COMPILER_TAG:+/$COMPILER_TAG}" +install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} +build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} +module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} +cd "$build_dir" + +src_url="http://ftp.gnu.org/gnu/inetutils/inetutils-1.9.4.tar.xz" +src_file="inetutils-1.9.4.tar.xz" +wget "$src_url" +tar -xJf "$src_file" + +cd "inetutils-1.9.4" + +# We disable a *lot* of parts here, because they're not things we want people to use. + +./configure \ + --disable-servers \ + --disable-dnsdomainname \ + --disable-hostname \ + --disable-rcp \ + --disable-rexec \ + --disable-rlogin \ + --disable-rsh \ + --disable-whois \ + --disable-ifconfig \ + --disable-ping \ + --disable-ping6 \ + --disable-traceroute \ + --disable-talk \ + --disable-logger \ + --prefix="$install_prefix" \ + +make +make check +make install + +echo "Executables in: $install_prefix/bin" + +make_module \ + -p "$install_prefix" \ + -c inetutils \ + -o "$module_dir/$package_label" \ + -w "$package_description" + +echo "Modules in: $module_dir/$package_label" + diff --git a/intel-compilers-2017-update1_install b/intel-compilers-2017-update1_install index 867cac0c..1076cc1f 100755 --- a/intel-compilers-2017-update1_install +++ b/intel-compilers-2017-update1_install @@ -88,6 +88,9 @@ EOF done echo "Installed to: $install_prefix" + + echo "Now load the module for this install and the relevant Intel MPI" + echo "and run intel-compilers-interfaces_install to install the interfaces." } _prepare_module() { diff --git a/intel-compilers-2017-update3_install b/intel-compilers-2017-update3_install new file mode 100755 index 00000000..237aa39a --- /dev/null +++ b/intel-compilers-2017-update3_install @@ -0,0 +1,151 @@ +#!/usr/bin/env bash + +set \ + -o errexit + +source includes/source_includes.sh + +package_name="intel" +package_version="2017.Update3" +package_description="This is the package for the Intel C, C++, and Fortran compilers." + +intel_license="28518@lic-intel.ucl.ac.uk" + +src_file=l_psxe_2017.3.053.tgz + +module purge +require gcc-libs +require compilers/gnu +# Needs a GCC installation to use its C++ headers ¯\_(o_o)_/¯ + +if [ -d ~/intel ]; then + echo "WARNING: this installer may not behave as expected because this installer likes to read settings in from ~/intel . Delete this directory to get expected results." >&2 + sleep 3 +fi + +# At peak, this uses more than 12 GB of storage during the install +# which is too big for /dev/shm and too big for /tmp +# (I don't know how *much* more yet) +mkdir -p "$HOME/temporary-intel-dirs" +unset COMPILER_TAG +make_build_env "$package_name" "$HOME/temporary-intel-dirs" + +# Package label is set by make_build_env but we need to override it +# (to include the compilers top-level) +package_label="compilers/intel/$package_version" + + +cd "$build_dir" + +cp "/shared/ucl/apps/pkg-store/$src_file" ./ +manifest sha1:9e219e9b2755069dfa5904be813d8d6253da5535 l_psxe_2017.3.053.tgz + +tar -xf "$src_file" + +cd "$build_dir" +cat > silent_config_file.cfg <&2 +chmod a+rx "$module_dir" + +cd "$owd" +if [ -n "$build_dir" ]; then + rm -Rf "${build_dir}" +fi + + diff --git a/intel-compilers-2017-update4_install b/intel-compilers-2017-update4_install new file mode 100755 index 00000000..e875560c --- /dev/null +++ b/intel-compilers-2017-update4_install @@ -0,0 +1,207 @@ +#!/usr/bin/env bash + +set \ + -o errexit + +source includes/source_includes.sh + +package_name="intel" +package_version="2017.Update4" +numeric_version="2017.4.196" +mpi_package_version="2017.3.196" +package_description="This is the package for the Intel C, C++, and Fortran compilers." + +intel_license="28518@lic-intel.ucl.ac.uk" + +src_file=parallel_studio_xe_2017_update4.tgz + +module purge +require gcc-libs +require compilers/gnu +# Needs a GCC installation to use its C++ headers ¯\_(o_o)_/¯ + +if [ -d ~/intel ]; then + echo "WARNING: this installer may not behave as expected because this installer likes to read settings in from ~/intel . Delete this directory to get expected results." >&2 + sleep 3 +fi + +# At peak, this uses more than 12 GB of storage during the install +# which is too big for /dev/shm and too big for /tmp +# (I don't know how *much* more yet) +mkdir -p "$HOME/temporary-intel-dirs" +unset COMPILER_TAG +make_build_env "$package_name" "$HOME/temporary-intel-dirs" + +# Package label is set by make_build_env but we need to override it +# (to include the compilers top-level) +package_label="compilers/intel/$package_version" +mpi_package_label="mpi/intel/2017/update3/intel" + +cd "$build_dir" + +cp "/shared/ucl/apps/pkg-store/$src_file" ./ +manifest sha1:84a169359eb70563b8cf8c8fabc92e0c14f2e796 parallel_studio_xe_2017_update4.tgz + +tar -xf "$src_file" + +cd "$build_dir" +cat > silent_config_file.cfg <>"${module_dir}/${mpi_package_label}" <<'EOF' + +# Check to see whether this is running in a scheduled environment (NHOSTS>1) and +# if not, set shared memory only. +if { [info exists ::env(NHOSTS) ] } { + + # Scheduled. + # Check to see whether we have more than one host and if so set tmi and shared + # memory, otherwise, set shared memory. + if { $::env(NHOSTS) > 1} { + + # Multi-node, scheduled. + setenv I_MPI_FABRICS shm:tmi + } else { + + # Single node, scheduled. + setenv I_MPI_FABRICS shm + } +} else { + + # Not scheduled. + setenv I_MPI_FABRICS shm +} + +EOF + +echo "Module files put in: $module_dir" >&2 +chmod a+rx "$module_dir" + +cd "$owd" +if [ -n "$build_dir" ]; then + rm -Rf "$build_dir" +fi + + diff --git a/intel-compilers-2018-update3_install b/intel-compilers-2018-update3_install new file mode 100755 index 00000000..1da63dd8 --- /dev/null +++ b/intel-compilers-2018-update3_install @@ -0,0 +1,211 @@ +#!/usr/bin/env bash + +# This needs to installed on a LOGIN node on Legion because as part of the +# license check it writes to ~/intel. +# Insert suitable face here. + +set \ + -o errexit + +source includes/source_includes.sh + +package_name="intel" +package_version="2018.Update3" +numeric_version="2018.3.222" +mpi_package_version="2018.3.222" +package_description="This is the package for the Intel C, C++, and Fortran compilers." + +intel_license="28518@lic-intel.ucl.ac.uk" + +src_file=parallel_studio_xe_2018_update3_cluster_edition.tgz + +module purge +require gcc-libs +require compilers/gnu +# Needs a GCC installation to use its C++ headers ¯\_(o_o)_/¯ + +if [ -d ~/intel ]; then + echo "WARNING: this installer may not behave as expected because this installer likes to read settings in from ~/intel . Delete this directory to get expected results." >&2 + sleep 3 +fi + +# At peak, this uses more than 12 GB of storage during the install +# which is too big for /dev/shm and too big for /tmp +# (I don't know how *much* more yet) +mkdir -p "${HOME}/temporary-intel-dirs" +unset COMPILER_TAG +make_build_env "$package_name" "${HOME}/temporary-intel-dirs" + +# Package label is set by make_build_env but we need to override it +# (to include the compilers top-level) +package_label="compilers/intel/$package_version" +mpi_package_label="mpi/intel/2018/update3/intel" + +cd "$build_dir" + +cp "/shared/ucl/apps/intel/installers/$src_file" ./ +manifest sha1:423dc2f6383b59b9d78f98970a8561c50f808edc $src_file + +tar -xf "$src_file" + +cd "$build_dir" +cat > silent_config_file.cfg <>"${module_dir}/${mpi_package_label}" <<'EOF' + +# Check to see whether this is running in a scheduled environment (NHOSTS>1) and +# if not, set shared memory only. +if { [info exists ::env(NHOSTS) ] } { + + # Scheduled. + # Check to see whether we have more than one host and if so set tmi and shared + # memory, otherwise, set shared memory. + if { $::env(NHOSTS) > 1} { + + # Multi-node, scheduled. + setenv I_MPI_FABRICS shm:tmi + } else { + + # Single node, scheduled. + setenv I_MPI_FABRICS shm + } +} else { + + # Not scheduled. + setenv I_MPI_FABRICS shm +} + +EOF + +echo "Module files put in: $module_dir" >&2 +chmod a+rx "$module_dir" + +cd "$owd" +if [ -n "$build_dir" ]; then + rm -Rf "$build_dir" +fi + + diff --git a/intel-compilers-interfaces_install b/intel-compilers-interfaces_install new file mode 100755 index 00000000..bc980c09 --- /dev/null +++ b/intel-compilers-interfaces_install @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +# Build the fftw, blas, lapack interfaces for an Intel compiler, after installing it + +# module prereqs for building +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +prereq gcc-libs +prereq compilers/intel +prereq mpi/intel + +# The Intel compiler module should set $MKLROOT +cd $MKLROOT/interfaces +for dir in */; do + echo "Building $dir:" + cd $dir + make libintel64 compiler=intel INSTALL_DIR=$MKLROOT/lib/intel64 + cd .. +done + diff --git a/intltool-0.51.0_install b/intltool-0.51.0_install new file mode 100755 index 00000000..e306d429 --- /dev/null +++ b/intltool-0.51.0_install @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +############################################### +# Installing intltool +# +# +# + +NAME=${NAME:-intltool} +VERSION=${VERSION:-0.51.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-12e517cac2b57a0121cda351570f1e63} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://launchpad.net/intltool/trunk/0.51.0/+download/${NAME}-${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/$NAME +temp_dir=`mktemp -d -p /dev/shm/$NAME` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + + tar -xvf $archive + + cd ${NAME}-${VERSION} + ./configure --prefix=$INSTALL_PREFIX + make 2>&1 | tee make.log + make install + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/iva-pip3_install b/iva-pip3_install index 0f21ee5f..b00950b7 100755 --- a/iva-pip3_install +++ b/iva-pip3_install @@ -8,14 +8,14 @@ set -e VERSION=${VERSION:-`python3 /shared/ucl/apps/build_scripts/files/pypiver.py iva`} -INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/iva/$VERSION} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/iva/$VERSION/python$PYTHON_VERSION_TAG} # Note, you need the following packages loaded to build this: dirname=$(dirname $0 2>/dev/null) INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} source ${INCLUDES_DIR}/require_inc.sh prereq compilers/gnu -prereq python3 +prereq python3/$PYTHON_VERSION_TAG prereq kmc prereq mummer prereq trimmomatic diff --git a/jansson-2.11_install.sh b/jansson-2.11_install.sh new file mode 100755 index 00000000..32075607 --- /dev/null +++ b/jansson-2.11_install.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-jansson} +VERSION=${VERSION:-2.11} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-783132e2fc970feefc2fa54199ef65ee020bd8e0e991a78ea44b8586353a0947} + +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.digip.org/jansson/releases/jansson-${VERSION}.tar.bz2} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha256sum -c <<< "$SHA256 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} + +./configure --prefix=$INSTALL_PREFIX +make +make install diff --git a/jq-1.5_install b/jq-1.5_install new file mode 100755 index 00000000..1b970f08 --- /dev/null +++ b/jq-1.5_install @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +############################################### +# Installing JQ +# +# Primarily for R + + +# +# by Brian Alston, 2017 +# +# Will need modules: rcps-core/1.0.0 and compilers/gnu/4.9.2 + +VERSION=${VERSION:-1.5} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/jq/$VERSION/gnu-4.9.2} +SRC_ARCHIVE=${SRC_ARCHIVE:- https://github.com/stedolan/jq/releases/download/jq-$VERSION/jq-$VERSION.tar.gz} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +# Use the same environment used for building R + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.4/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.20/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.30/gnu-4.9.2 + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +wget $SRC_ARCHIVE +tar xvzf jq-$VERSION.tar.gz +cd jq-$VERSION +./configure --prefix=${INSTALL_PREFIX} +make | tee make_log +make check | tee make-check_log +make install | tee make-install_log + + + diff --git a/julia-0.6.0_install b/julia-0.6.0_install new file mode 100755 index 00000000..7f85d919 --- /dev/null +++ b/julia-0.6.0_install @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +############################################### +# Installing julia +# +# by Owain Kenway, 2016 +# + + +VERSION=${VERSION:-0.6.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/julia/$VERSION} +SHA256=${SHA256:-1c62bfce8075acf2b5b02355520a61210690324eceb021030681459d18a3a665} +ARCHIVENAME=${ARCHIVENAME:-julia-${VERSION}.tar.gz} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/JuliaLang/julia/releases/download/v${VERSION}/${ARCHIVENAME}} +EXTDIR=${EXTDIR:-julia-${VERSION}} + +# Target architecture +# Need to set this so that when built on Legion it builds for nehalem. +LEGION=${LEGION:-no} +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/julia +temp_dir=`mktemp -d -p /dev/shm/julia` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`sha256sum ${ARCHIVENAME}| awk '{print $1}'` + +if [ "$SHA256" != "$CHECKSUM" ] +then + echo "Hash mismatch." + echo "Expected: $SHA256" + echo "Got: $CHECKSUM" + exit 1 +fi + +tar -zxvf ${ARCHIVENAME} +cd $EXTDIR + +if [ "$LEGION" == "yes" ] +then + TARGET_ARCH=${TARGET_ARCH:-nehalem} + echo "JULIA_CPU_TARGET = ${TARGET_ARCH}" > Make.user + echo "MARCH = ${TARGET_ARCH}" >> Make.user +fi + +make +echo prefix=${INSTALL_PREFIX} >> Make.user +make install diff --git a/julia-0.7.0_install b/julia-0.7.0_install new file mode 100755 index 00000000..37c166b5 --- /dev/null +++ b/julia-0.7.0_install @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +############################################### +# Installing julia +# +# by Owain Kenway, 2018 +# + + +VERSION=${VERSION:-0.7.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/julia/$VERSION} +SHA256=${SHA256:-991672bf03b1d9a131c7e170518330022eb05069409d51e48317071597eb096b} +ARCHIVENAME=${ARCHIVENAME:-julia-${VERSION}.tar.gz} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/JuliaLang/julia/releases/download/v${VERSION}/${ARCHIVENAME}} +EXTDIR=${EXTDIR:-julia} + +# Target architecture +# Need to set this so that when built on Legion it builds for nehalem. +LEGION=${LEGION:-no} +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/julia +temp_dir=`mktemp -d -p /dev/shm/julia` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`sha256sum ${ARCHIVENAME}| awk '{print $1}'` + +if [ "$SHA256" != "$CHECKSUM" ] +then + echo "Hash mismatch." + echo "Expected: $SHA256" + echo "Got: $CHECKSUM" + exit 1 +fi + +tar -zxvf ${ARCHIVENAME} +cd $EXTDIR + +if [ "$LEGION" == "yes" ] +then + TARGET_ARCH=${TARGET_ARCH:-nehalem} + echo "JULIA_CPU_TARGET = ${TARGET_ARCH}" > Make.user + echo "MARCH = ${TARGET_ARCH}" >> Make.user +fi + +make +echo prefix=${INSTALL_PREFIX} >> Make.user +make install diff --git a/julia-1.0.0_install b/julia-1.0.0_install new file mode 100755 index 00000000..5d760e8f --- /dev/null +++ b/julia-1.0.0_install @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +############################################### +# Installing julia +# +# by Owain Kenway, 2018 +# + + +VERSION=${VERSION:-1.0.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/julia/$VERSION} +SHA256=${SHA256:-0e44c99b88c958c1711d7009cf6dd3fc2f0c79bc5b0c0f8ee5401f45d6f0f39b} +ARCHIVENAME=${ARCHIVENAME:-julia-${VERSION}.tar.gz} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/JuliaLang/julia/releases/download/v${VERSION}/${ARCHIVENAME}} +EXTDIR=${EXTDIR:-julia} + +# Target architecture +# Need to set this so that when built on Legion it builds for nehalem. +LEGION=${LEGION:-no} +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/julia +temp_dir=`mktemp -d -p /dev/shm/julia` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`sha256sum ${ARCHIVENAME}| awk '{print $1}'` + +if [ "$SHA256" != "$CHECKSUM" ] +then + echo "Hash mismatch." + echo "Expected: $SHA256" + echo "Got: $CHECKSUM" + exit 1 +fi + +tar -zxvf ${ARCHIVENAME} +cd $EXTDIR + +if [ "$LEGION" == "yes" ] +then + TARGET_ARCH=${TARGET_ARCH:-nehalem} + echo "JULIA_CPU_TARGET = ${TARGET_ARCH}" > Make.user + echo "MARCH = ${TARGET_ARCH}" >> Make.user +fi + +make +echo prefix=${INSTALL_PREFIX} >> Make.user +make install diff --git a/lammps-10Feb2015_install b/lammps-10Feb2015_install index b543b8b5..b2ecb5c9 100755 --- a/lammps-10Feb2015_install +++ b/lammps-10Feb2015_install @@ -38,13 +38,24 @@ then elif hostname -A | grep -q grace then cluster="grace" + elif hostname -A | grep -q thomas + then + cluster="thomas" else echo "Unknown machine, exiting: $(hostname -A)" exit 1 fi # Copy in appropriate Makefile with correct architecture flags - cp /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-${COMPILER_TAG} MAKE/MINE/Makefile.$cluster + # For compiler type use the fully-specified compiler version if a makefile exists for it + # otherwise use the one for intel, gnu etc. + if [ -e /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-${COMPILER_TAG} ] + then + cp /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-${COMPILER_TAG} MAKE/MINE/Makefile.$cluster + else + compiler_type=$(echo $COMPILER_TAG | cut -d- -f1) + cp /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-$compiler_type MAKE/MINE/Makefile.$cluster + fi # Add some necessary packages that aren't included by default for some reason make yes-kspace diff --git a/lammps-16Mar18-USERINTEL_install b/lammps-16Mar18-USERINTEL_install new file mode 100755 index 00000000..8f6fcace --- /dev/null +++ b/lammps-16Mar18-USERINTEL_install @@ -0,0 +1,121 @@ +#!/usr/bin/env bash + +############################################### +# Installing LAMMPS +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-lammps} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +VERSION=${VERSION:-16Mar18} +TYPE=${TYPE:-USERINTEL} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/lammps/${VERSION}/${TYPE}/$COMPILER_TAG} +MD5=${MD5:-8059f1cac17ac74c099ba6c5a5e3a558} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://lammps.sandia.gov/tars/lammps-${VERSION}.tar.gz} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/$NAME +temp_dir=`mktemp -d -p /dev/shm/$NAME` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -zxvf $archive + + cd lammps-${VERSION}/src + + # Get host machine + if hostname -A | grep -q legion + then + cluster="legion" + elif hostname -A | grep -q grace + then + cluster="grace" + elif hostname -A | grep -q thomas + then + cluster="thomas" + elif hostname -A | grep -q myriad + then + cluster="myriad" + else + echo "Unknown machine, exiting: $(hostname -A)" + exit 1 + fi + + # Copy in appropriate Makefile with correct architecture flags + + if [ -e /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-intel-${TYPE} ] + then + cp /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-intel-${TYPE} MAKE/MINE/Makefile.$cluster + fi +# Add some necessary packages that aren't included by default for some reason +# All the packages which don't need external libs. + for a in asphere body class2 colloid compress coreshell dipole granular kspace manybody mc misc molecule mpiio peri qeq replica rigid shock snap srd + do + make yes-${a} + done + +# These packages need external libs but provide the source with LAMMPS +# for a in meam poems reax + for a in meam poems reax + do + # Some of the makefiles incorrectly refer to mpifort instead of mpiifort + sed -i "s|mpifort|mpiifort|g" ../lib/${a}/Makefile.mpi + make lib-${a} args="-m mpi" + make yes-${a} + done + + +# Voro++ + cd ../lib/voronoi + wget http://math.lbl.gov/voro++/download/dir/voro++-0.4.6.tar.gz + md5sum -c <<<"2338b824c3b7b25590e18e8df5d68af9 voro++-0.4.6.tar.gz" + tar zxvf voro++-0.4.6.tar.gz + cd voro++-0.4.6 + sed -i.bak "s|CXX=g++|CXX=icpc|g" config.mk + make + cd .. + ln -s voro++-0.4.6/src includelink + ln -s voro++-0.4.6/src liblink + + cd ../../src + make yes-voronoi + +# Intel optimisations + make yes-user-intel + +# Make binaries, libraries + make $cluster + +# Put them outside the source tree + mkdir ../bin + mv lmp_${cluster} ../bin + +# Wipe out our old object files. + make clean-all + +# Move install into /shared + cd ../.. + rm -rf $INSTALL_PREFIX + mkdir -p $INSTALL_PREFIX + mv lammps-${VERSION} $INSTALL_PREFIX + +# Make default binary symlink + cd $INSTALL_PREFIX/lammps-${VERSION}/bin + ln -s lmp_${cluster} lmp_default + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/lammps-16Mar18-basic_install b/lammps-16Mar18-basic_install new file mode 100755 index 00000000..a10b5357 --- /dev/null +++ b/lammps-16Mar18-basic_install @@ -0,0 +1,123 @@ +#!/usr/bin/env bash + +############################################### +# Installing LAMMPS +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-lammps} +TYPE=${TYPE:-basic} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +VERSION=${VERSION:-16Mar18} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/lammps/${VERSION}/${TYPE}/$COMPILER_TAG} +MD5=${MD5:-8059f1cac17ac74c099ba6c5a5e3a558} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://lammps.sandia.gov/tars/lammps-${VERSION}.tar.gz} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/$NAME +temp_dir=`mktemp -d -p /dev/shm/$NAME` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -zxvf $archive + + cd lammps-${VERSION}/src + + # Get host machine + if hostname -A | grep -q legion + then + cluster="legion" + elif hostname -A | grep -q grace + then + cluster="grace" + elif hostname -A | grep -q thomas + then + cluster="thomas" + elif hostname -A | grep -q myriad + then + cluster="myriad" + else + echo "Unknown machine, exiting: $(hostname -A)" + exit 1 + fi + + # Copy in appropriate Makefile with correct architecture flags + # For compiler type use the fully-specified compiler version if a makefile exists for it + # otherwise use the one for intel, gnu etc. + if [ -e /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-${COMPILER_TAG} ] + then + cp /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-${COMPILER_TAG} MAKE/MINE/Makefile.$cluster + else + compiler_type=$(echo $COMPILER_TAG | cut -d- -f1) + cp /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-$compiler_type MAKE/MINE/Makefile.$cluster + fi + +# Add some necessary packages that aren't included by default for some reason +# All the packages which don't need external libs. + for a in asphere body class2 colloid compress coreshell dipole granular kspace manybody mc misc molecule mpiio peri qeq replica rigid shock snap srd + do + make yes-${a} + done + +# These packages need external libs but provide the source with LAMMPS +# for a in meam poems reax + for a in meam poems reax + do + # Some of the makefiles incorrectly refer to mpifort instead of mpiifort + sed -i "s|mpifort|mpiifort|g" ../lib/${a}/Makefile.mpi + make lib-${a} args="-m mpi" + make yes-${a} + done + + +# Voro++ + cd ../lib/voronoi + wget http://math.lbl.gov/voro++/download/dir/voro++-0.4.6.tar.gz + md5sum -c <<<"2338b824c3b7b25590e18e8df5d68af9 voro++-0.4.6.tar.gz" + tar zxvf voro++-0.4.6.tar.gz + cd voro++-0.4.6 + sed -i.bak "s|CXX=g++|CXX=icpc|g" config.mk + make + cd .. + ln -s voro++-0.4.6/src includelink + ln -s voro++-0.4.6/src liblink + + cd ../../src + make yes-voronoi + +# Make binaries, libraries + make $cluster + +# Put them outside the source tree + mkdir ../bin + mv lmp_${cluster} ../bin + +# Wipe out our old object files. + make clean-all + +# Move install into /shared + cd ../.. + rm -rf $INSTALL_PREFIX + mkdir -p $INSTALL_PREFIX + mv lammps-${VERSION} $INSTALL_PREFIX + +# Make default binary symlink + cd $INSTALL_PREFIX/lammps-${VERSION}/bin + ln -s lmp_${cluster} lmp_default + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/lammps-16Mar18-gpu_install b/lammps-16Mar18-gpu_install new file mode 100755 index 00000000..2fe37e7f --- /dev/null +++ b/lammps-16Mar18-gpu_install @@ -0,0 +1,132 @@ +#!/usr/bin/env bash + +############################################### +# Installing LAMMPS +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-lammps} +TYPE=${TYPE:-gpumixed} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +VERSION=${VERSION:-16Mar18} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/lammps/${VERSION}/${TYPE}/$COMPILER_TAG} +MD5=${MD5:-8059f1cac17ac74c099ba6c5a5e3a558} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://lammps.sandia.gov/tars/lammps-${VERSION}.tar.gz} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/$NAME +temp_dir=`mktemp -d -p /dev/shm/$NAME` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -zxvf $archive + + cd lammps-${VERSION}/src + + # Get host machine + if hostname -A | grep -q legion + then + cluster="legion" + elif hostname -A | grep -q grace + then + cluster="grace" + elif hostname -A | grep -q thomas + then + cluster="thomas" + elif hostname -A | grep -q myriad + then + cluster="myriad" + else + echo "Unknown machine, exiting: $(hostname -A)" + exit 1 + fi + + # Copy in appropriate Makefile with correct architecture flags + # For compiler type use the fully-specified compiler version if a makefile exists for it + # otherwise use the one for intel, gnu etc. + if [ -e /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-${COMPILER_TAG} ] + then + cp /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-${COMPILER_TAG} MAKE/MINE/Makefile.$cluster + else + compiler_type=$(echo $COMPILER_TAG | cut -d- -f1) + cp /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-$compiler_type MAKE/MINE/Makefile.$cluster + fi + + pwd + cp /shared/ucl/apps/build_scripts/lammps-patches/Makefile.${cluster}-gpu ../lib/gpu/Makefile.uclgpu + cd ../lib/gpu + make -f Makefile.uclgpu + cd ../../src + +# Add some necessary packages that aren't included by default for some reason +# All the packages which don't need external libs. + for a in asphere body class2 colloid compress coreshell dipole granular kspace manybody mc misc molecule mpiio peri qeq replica rigid shock snap srd + do + make yes-${a} + done + +# These packages need external libs but provide the source with LAMMPS +# for a in meam poems reax + for a in meam poems reax + do + # Some of the makefiles incorrectly refer to mpifort instead of mpiifort + sed -i "s|mpifort|mpiifort|g" ../lib/${a}/Makefile.mpi + make lib-${a} args="-m mpi" + make yes-${a} + done + + +# Voro++ + cd ../lib/voronoi + wget http://math.lbl.gov/voro++/download/dir/voro++-0.4.6.tar.gz + md5sum -c <<<"2338b824c3b7b25590e18e8df5d68af9 voro++-0.4.6.tar.gz" + tar zxvf voro++-0.4.6.tar.gz + cd voro++-0.4.6 + sed -i.bak "s|CXX=g++|CXX=icpc|g" config.mk + make + cd .. + ln -s voro++-0.4.6/src includelink + ln -s voro++-0.4.6/src liblink + + cd ../../src + make yes-voronoi + +# GPU optimisations + make yes-gpu + +# Make binaries, libraries + make $cluster + +# Put them outside the source tree + mkdir ../bin + mv lmp_${cluster} ../bin + +# Wipe out our old object files. + make clean-all + +# Move install into /shared + cd ../.. + rm -rf $INSTALL_PREFIX + mkdir -p $INSTALL_PREFIX + mv lammps-${VERSION} $INSTALL_PREFIX + +# Make default binary symlink + cd $INSTALL_PREFIX/lammps-${VERSION}/bin + ln -s lmp_${cluster} lmp_default + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/lammps-16Mar18_install b/lammps-16Mar18_install new file mode 100755 index 00000000..6f999e56 --- /dev/null +++ b/lammps-16Mar18_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +############################################### +# Installing LAMMPS +# +# by Owain Kenway, 2018 +# +NAME=${NAME:-lammps} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +VERSION=${VERSION:-16Mar18} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/lammps/$VERSION/$COMPILER_TAG} +MD5=${MD5:-8059f1cac17ac74c099ba6c5a5e3a558} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://lammps.sandia.gov/tars/lammps-${VERSION}.tar.gz} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/$NAME +temp_dir=`mktemp -d -p /dev/shm/$NAME` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -zxvf $archive + + cd lammps-${VERSION}/src + + # Get host machine + if hostname -A | grep -q legion + then + cluster="legion" + elif hostname -A | grep -q grace + then + cluster="grace" + elif hostname -A | grep -q thomas + then + cluster="thomas" + elif hostname -A | grep -q myriad + then + cluster="myriad" + else + echo "Unknown machine, exiting: $(hostname -A)" + exit 1 + fi + + # Copy in appropriate Makefile with correct architecture flags + # For compiler type use the fully-specified compiler version if a makefile exists for it + # otherwise use the one for intel, gnu etc. + if [ -e /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-${COMPILER_TAG} ] + then + cp /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-${COMPILER_TAG} MAKE/MINE/Makefile.$cluster + else + compiler_type=$(echo $COMPILER_TAG | cut -d- -f1) + cp /shared/ucl/apps/build_scripts/lammps-patches/Makefile.$cluster-$compiler_type MAKE/MINE/Makefile.$cluster + fi + +# Add some necessary packages that aren't included by default for some reason + make yes-kspace + make yes-replica + make yes-rigid + make yes-class2 + +# Make binaries, libraries + make $cluster + +# Put them outside the source tree + mkdir ../bin + mv lmp_${cluster} ../bin + +# Wipe out our old object files. + make clean-all + +# Move install into /shared + cd ../.. + rm -rf $INSTALL_PREFIX + mkdir -p $INSTALL_PREFIX + mv lammps-${VERSION} $INSTALL_PREFIX + +# Make default binary symlink + cd $INSTALL_PREFIX/lammps-${VERSION}/bin + ln -s lmp_${cluster} lmp_default + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/lammps-patches/Makefile.grace-intel b/lammps-patches/Makefile.grace-intel new file mode 100755 index 00000000..a745b5ee --- /dev/null +++ b/lammps-patches/Makefile.grace-intel @@ -0,0 +1,115 @@ +# legion-intel-2015-update2 = Grace, Intel MPI, MKL FFT + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = mpiicpc +CCFLAGS = -O3 -qopenmp -DLAMMPS_MEMALIGN=64 -qno-offload \ + -xHost -fno-alias -ansi-alias -restrict -qoverride-limits +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = mpiicpc +LINKFLAGS = -O3 -qopenmp -xHost -lifcore +LIB = +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_MKL +FFT_PATH = +FFT_LIB = -L${MKLROOT}/lib/intel64/ -lmkl_intel_ilp64 \ + -lmkl_intel_thread -lmkl_core + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = -ljpeg + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +DEPENDS = $(OBJ:.o=.d) +sinclude $(DEPENDS) diff --git a/lammps-patches/Makefile.grace-intel-2015-update2 b/lammps-patches/Makefile.grace-intel-2015-update2 index 001c143d..81d6bfc5 100755 --- a/lammps-patches/Makefile.grace-intel-2015-update2 +++ b/lammps-patches/Makefile.grace-intel-2015-update2 @@ -53,7 +53,7 @@ MPI_LIB = FFT_INC = -DFFT_MKL FFT_PATH = -FFT_LIB = -L$MKLROOT/lib/intel64/ -lmkl_intel_ilp64 \ +FFT_LIB = -L${MKLROOT}/lib/intel64/ -lmkl_intel_ilp64 \ -lmkl_intel_thread -lmkl_core # JPEG and/or PNG library diff --git a/lammps-patches/Makefile.grace-intel-USERINTEL b/lammps-patches/Makefile.grace-intel-USERINTEL new file mode 100755 index 00000000..6c6a3050 --- /dev/null +++ b/lammps-patches/Makefile.grace-intel-USERINTEL @@ -0,0 +1,114 @@ +# legion-intel-2015-update2 = Grace, Intel MPI, MKL FFT + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = mpiicpc +CCFLAGS = -O3 -qopenmp -DLAMMPS_MEMALIGN=64 -qno-offload -xHost -fno-alias -ansi-alias -restrict -qoverride-limits -DLMP_INTEL_USELRT -DLMP_USE_MKL_RNG +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = mpiicpc +LINKFLAGS = -O3 -qopenmp -xHost -lifcore +LIB = -ltbbmalloc +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_MKL +FFT_PATH = +FFT_LIB = -L${MKLROOT}/lib/intel64/ -lmkl_intel_ilp64 \ + -lmkl_intel_thread -lmkl_core + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = -ljpeg + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +DEPENDS = $(OBJ:.o=.d) +sinclude $(DEPENDS) diff --git a/lammps-patches/Makefile.legion-gpu b/lammps-patches/Makefile.legion-gpu new file mode 100644 index 00000000..87713859 --- /dev/null +++ b/lammps-patches/Makefile.legion-gpu @@ -0,0 +1,52 @@ +# /* ---------------------------------------------------------------------- +# Generic Linux Makefile for CUDA +# - Change CUDA_ARCH for your GPU +# ------------------------------------------------------------------------- */ + +# which file will be copied to Makefile.lammps + +EXTRAMAKE = Makefile.lammps.standard + +ifeq ($(CUDA_HOME),) +CUDA_HOME = /shared/ucl/apps/cuda/9.0.176/gnu-4.9.2 +endif + +NVCC = nvcc + +# Tesla CUDA +CUDA_ARCH = -arch=sm_50 +# newer CUDA +#CUDA_ARCH = -arch=sm_13 +# older CUDA +#CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE +#CUDA_ARCH = -arch=sm_35 + +# this setting should match LAMMPS Makefile +# one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL + +LMP_INC = -DLAMMPS_SMALLBIG + +# precision for GPU calculations +# -D_SINGLE_SINGLE # Single precision for all calculations +# -D_DOUBLE_DOUBLE # Double precision for all calculations +# -D_SINGLE_DOUBLE # Accumulation of forces, etc. in double + +CUDA_PRECISION = -D_SINGLE_DOUBLE + +CUDA_INCLUDE = -I$(CUDA_HOME)/include +CUDA_LIB = -L$(CUDA_HOME)/lib64 +CUDA_OPTS = -DUNIX -O3 -Xptxas -v --use_fast_math $(LMP_INC) -Xcompiler -fPIC + +CUDR_CPP = mpicxx -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1 -fPIC +CUDR_OPTS = -O2 $(LMP_INC) # -xHost -no-prec-div -ansi-alias + +BIN_DIR = ./ +OBJ_DIR = ./ +LIB_DIR = ./ +AR = ar +BSH = /bin/sh + +CUDPP_OPT = -DUSE_CUDPP -Icudpp_mini + +include Nvidia.makefile + diff --git a/lammps-patches/Makefile.legion-intel b/lammps-patches/Makefile.legion-intel new file mode 100755 index 00000000..bee785ea --- /dev/null +++ b/lammps-patches/Makefile.legion-intel @@ -0,0 +1,115 @@ +# legion-intel-2015-update2 = Legion, Intel MPI, MKL FFT + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = mpiicpc +CCFLAGS = -O3 -qopenmp -DLAMMPS_MEMALIGN=64 -qno-offload \ + -xSSE4.2 -fno-alias -ansi-alias -restrict -qoverride-limits +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = mpiicpc +LINKFLAGS = -O3 -qopenmp -xSSE4.2 -lifcore +LIB = +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_MKL +FFT_PATH = +FFT_LIB = -L${MKLROOT}/lib/intel64/ -lmkl_intel_ilp64 \ + -lmkl_intel_thread -lmkl_core + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = -ljpeg + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +DEPENDS = $(OBJ:.o=.d) +sinclude $(DEPENDS) diff --git a/lammps-patches/Makefile.legion-intel-2015-update2 b/lammps-patches/Makefile.legion-intel-2015-update2 index 1ea2f02d..f3d30d75 100755 --- a/lammps-patches/Makefile.legion-intel-2015-update2 +++ b/lammps-patches/Makefile.legion-intel-2015-update2 @@ -53,7 +53,7 @@ MPI_LIB = FFT_INC = -DFFT_MKL FFT_PATH = -FFT_LIB = -L$MKLROOT/lib/intel64/ -lmkl_intel_ilp64 \ +FFT_LIB = -L${MKLROOT}/lib/intel64/ -lmkl_intel_ilp64 \ -lmkl_intel_thread -lmkl_core # JPEG and/or PNG library diff --git a/lammps-patches/Makefile.legion-intel-USERINTEL b/lammps-patches/Makefile.legion-intel-USERINTEL new file mode 100755 index 00000000..26d319a3 --- /dev/null +++ b/lammps-patches/Makefile.legion-intel-USERINTEL @@ -0,0 +1,114 @@ +# legion-intel-2015-update2 = Grace, Intel MPI, MKL FFT + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = mpiicpc +CCFLAGS = -O3 -qopenmp -DLAMMPS_MEMALIGN=64 -qno-offload -xSSE4.2 -fno-alias -ansi-alias -restrict -qoverride-limits -DLMP_INTEL_USELRT -DLMP_USE_MKL_RNG +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = mpiicpc +LINKFLAGS = -O3 -qopenmp -xSSE4.2 -lifcore +LIB = -ltbbmalloc +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_MKL +FFT_PATH = +FFT_LIB = -L${MKLROOT}/lib/intel64/ -lmkl_intel_ilp64 \ + -lmkl_intel_thread -lmkl_core + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = -ljpeg + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +DEPENDS = $(OBJ:.o=.d) +sinclude $(DEPENDS) diff --git a/lammps-patches/Makefile.myriad-gpu b/lammps-patches/Makefile.myriad-gpu new file mode 100644 index 00000000..dabcf998 --- /dev/null +++ b/lammps-patches/Makefile.myriad-gpu @@ -0,0 +1,52 @@ +# /* ---------------------------------------------------------------------- +# Generic Linux Makefile for CUDA +# - Change CUDA_ARCH for your GPU +# ------------------------------------------------------------------------- */ + +# which file will be copied to Makefile.lammps + +EXTRAMAKE = Makefile.lammps.standard + +ifeq ($(CUDA_HOME),) +CUDA_HOME = /shared/ucl/apps/cuda/9.0.176/gnu-4.9.2 +endif + +NVCC = nvcc + +# Tesla CUDA +CUDA_ARCH = -arch=sm_60 +# newer CUDA +#CUDA_ARCH = -arch=sm_13 +# older CUDA +#CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE +#CUDA_ARCH = -arch=sm_35 + +# this setting should match LAMMPS Makefile +# one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL + +LMP_INC = -DLAMMPS_SMALLBIG + +# precision for GPU calculations +# -D_SINGLE_SINGLE # Single precision for all calculations +# -D_DOUBLE_DOUBLE # Double precision for all calculations +# -D_SINGLE_DOUBLE # Accumulation of forces, etc. in double + +CUDA_PRECISION = -D_SINGLE_DOUBLE + +CUDA_INCLUDE = -I$(CUDA_HOME)/include +CUDA_LIB = -L$(CUDA_HOME)/lib64 +CUDA_OPTS = -DUNIX -O3 -Xptxas -v --use_fast_math $(LMP_INC) -Xcompiler -fPIC + +CUDR_CPP = mpicxx -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1 -fPIC +CUDR_OPTS = -O2 $(LMP_INC) # -xHost -no-prec-div -ansi-alias + +BIN_DIR = ./ +OBJ_DIR = ./ +LIB_DIR = ./ +AR = ar +BSH = /bin/sh + +CUDPP_OPT = -DUSE_CUDPP -Icudpp_mini + +include Nvidia.makefile + diff --git a/lammps-patches/Makefile.myriad-intel b/lammps-patches/Makefile.myriad-intel new file mode 100755 index 00000000..a745b5ee --- /dev/null +++ b/lammps-patches/Makefile.myriad-intel @@ -0,0 +1,115 @@ +# legion-intel-2015-update2 = Grace, Intel MPI, MKL FFT + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = mpiicpc +CCFLAGS = -O3 -qopenmp -DLAMMPS_MEMALIGN=64 -qno-offload \ + -xHost -fno-alias -ansi-alias -restrict -qoverride-limits +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = mpiicpc +LINKFLAGS = -O3 -qopenmp -xHost -lifcore +LIB = +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_MKL +FFT_PATH = +FFT_LIB = -L${MKLROOT}/lib/intel64/ -lmkl_intel_ilp64 \ + -lmkl_intel_thread -lmkl_core + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = -ljpeg + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +DEPENDS = $(OBJ:.o=.d) +sinclude $(DEPENDS) diff --git a/lammps-patches/Makefile.myriad-intel-USERINTEL b/lammps-patches/Makefile.myriad-intel-USERINTEL new file mode 100755 index 00000000..6c6a3050 --- /dev/null +++ b/lammps-patches/Makefile.myriad-intel-USERINTEL @@ -0,0 +1,114 @@ +# legion-intel-2015-update2 = Grace, Intel MPI, MKL FFT + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = mpiicpc +CCFLAGS = -O3 -qopenmp -DLAMMPS_MEMALIGN=64 -qno-offload -xHost -fno-alias -ansi-alias -restrict -qoverride-limits -DLMP_INTEL_USELRT -DLMP_USE_MKL_RNG +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = mpiicpc +LINKFLAGS = -O3 -qopenmp -xHost -lifcore +LIB = -ltbbmalloc +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_MKL +FFT_PATH = +FFT_LIB = -L${MKLROOT}/lib/intel64/ -lmkl_intel_ilp64 \ + -lmkl_intel_thread -lmkl_core + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = -ljpeg + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +DEPENDS = $(OBJ:.o=.d) +sinclude $(DEPENDS) diff --git a/lammps-patches/Makefile.thomas-intel b/lammps-patches/Makefile.thomas-intel new file mode 100755 index 00000000..a745b5ee --- /dev/null +++ b/lammps-patches/Makefile.thomas-intel @@ -0,0 +1,115 @@ +# legion-intel-2015-update2 = Grace, Intel MPI, MKL FFT + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = mpiicpc +CCFLAGS = -O3 -qopenmp -DLAMMPS_MEMALIGN=64 -qno-offload \ + -xHost -fno-alias -ansi-alias -restrict -qoverride-limits +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = mpiicpc +LINKFLAGS = -O3 -qopenmp -xHost -lifcore +LIB = +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_MKL +FFT_PATH = +FFT_LIB = -L${MKLROOT}/lib/intel64/ -lmkl_intel_ilp64 \ + -lmkl_intel_thread -lmkl_core + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = -ljpeg + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +DEPENDS = $(OBJ:.o=.d) +sinclude $(DEPENDS) diff --git a/lammps-patches/Makefile.thomas-intel-USERINTEL b/lammps-patches/Makefile.thomas-intel-USERINTEL new file mode 100755 index 00000000..6c6a3050 --- /dev/null +++ b/lammps-patches/Makefile.thomas-intel-USERINTEL @@ -0,0 +1,114 @@ +# legion-intel-2015-update2 = Grace, Intel MPI, MKL FFT + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = mpiicpc +CCFLAGS = -O3 -qopenmp -DLAMMPS_MEMALIGN=64 -qno-offload -xHost -fno-alias -ansi-alias -restrict -qoverride-limits -DLMP_INTEL_USELRT -DLMP_USE_MKL_RNG +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = mpiicpc +LINKFLAGS = -O3 -qopenmp -xHost -lifcore +LIB = -ltbbmalloc +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_MKL +FFT_PATH = +FFT_LIB = -L${MKLROOT}/lib/intel64/ -lmkl_intel_ilp64 \ + -lmkl_intel_thread -lmkl_core + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = -ljpeg + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +DEPENDS = $(OBJ:.o=.d) +sinclude $(DEPENDS) diff --git a/lapack-3.8.0_install b/lapack-3.8.0_install new file mode 100755 index 00000000..8e7764cc --- /dev/null +++ b/lapack-3.8.0_install @@ -0,0 +1,91 @@ +#!/usr/bin/env bash + +set -e + +package_name="lapack" +package_version="3.8.0" +package_description="LAPACK is a reference library of routines for Linear Algebra. It is not recommended for use, as its ABI is replicated in the much higher-performance libraries OpenBLAS, MKL, or ATLAS instead." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs/4.9.2 + require compilers/gnu/4.9.2 + + make_build_env "" + + package_url="http://www.netlib.org/lapack/lapack-${package_version}.tar.gz" + package_file="lapack-${package_version}.tar.gz" + unpack_dir="lapack-${package_version}" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + manifest sha256:deb22cc4a6120bff72621155a9917f485f96ef8319ac074a7afbc68aab88bcf6 lapack-3.8.0.tar.gz + + tar -xf "$package_file" + +} + +_pre_build() { + cd "$unpack_dir" + mkdir build + cd build + cmake \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_INSTALL_PREFIX="$install_prefix" \ + -DCBLAS=ON \ + -DBUILD_TESTING=ON \ + .. + cd .. + cd .. +} + +_build() { + cd "$unpack_dir" + cd build + + # This can build in parallel and otherwise takes a little while. + use_nprocs="$(( $(nproc) - 1 ))" + if [[ "$use_nprocs" -lt 1 ]]; then use_nprocs=1; fi + + make -l "$use_nprocs" -j + cd .. + cd .. +} + +_post_build() { + cd "$unpack_dir" + cd build + make test + + make install + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -r gcc-libs \ + -c "$package_name" \ + -w "$package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx "$module_dir" + cd .. + cd .. +} + +_clean_up() { + #rm -Rf ${temp_dir:-ERROR_TEMP_DIR_NOT_SET} + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/leptonica-1.74.4_install b/leptonica-1.74.4_install new file mode 100755 index 00000000..cdbc8857 --- /dev/null +++ b/leptonica-1.74.4_install @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-leptonica} +VERSION=${VERSION:-1.74.4} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-2092e126652ff07bc2569971a1d6c6411e1d481539d39c98031534c6f83dfc82} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/DanBloomberg/leptonica/archive/${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha256sum -c <<< "$SHA256 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} +./autobuild +./configure --prefix=${INSTALL_PREFIX} +make +make install diff --git a/leveldb-1.20_install b/leveldb-1.20_install new file mode 100755 index 00000000..7a594ef5 --- /dev/null +++ b/leveldb-1.20_install @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-leveldb} +VERSION=${VERSION:-1.20} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA1=${SHA1:-df11440c30deed5987263730180225db98de9f57} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/google/leveldb/archive/v${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha1sum -c <<< "$SHA1 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} + +# Note - in the development branch they have moved to CMAKE + +make + +mkdir -p $INSTALL_PREFIX +cp -R ./* $INSTALL_PREFIX diff --git a/libdwarf-20170709_install b/libdwarf-20170709_install new file mode 100755 index 00000000..4f86ca78 --- /dev/null +++ b/libdwarf-20170709_install @@ -0,0 +1,89 @@ +#!/usr/bin/env bash + +set -e + +package_name="libdwarf" +package_version="20170709" +package_description="libdwarf is a library for interacting with debugging info in the DWARF 2, 3, and 5 formats." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/gnu + require elfutils # Note, not needed in module + + make_build_env "" + + unpack_dir="${package_name#lib}-${package_version}" + package_file="${package_name}-${package_version}.tar.gz" + package_url="https://www.prevanders.net/${package_file}" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha512:afff6716ef1af5d8aae2b887f36b9a6547fb576770bc6f630b82725ed1e59cbd387779aa729bbd1a5ae026a25ac76aacf64b038cd898b2419a8676f9aa8c59f1 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure \ + --prefix="$install_prefix" \ + --enable-shared + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make all + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + ## libdwarf only has tests in the git repo + # make check + + ## and has no make install + # make install + + # which means we have to do the install ourselves + mkdir -p "$install_prefix"/{bin,lib,share/man/man1,include} + cp dwarfdump/dwarfdump dwarfgen/dwarfgen "$install_prefix/bin" + cp dwarfdump/dwarfdump.1 "$install_prefix/share/man/man1" + cp libdwarf/libdwarf.so libdwarf/libdwarf.so.1 libdwarf/libdwarf.a "$install_prefix/lib" + cp libdwarf/libdwarf.h libdwarf/dwarf.h "$install_prefix/include" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c "${package_name}" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -r gcc-libs + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/libelf-0.8.13_install b/libelf-0.8.13_install index 8a37a488..7d181e18 100755 --- a/libelf-0.8.13_install +++ b/libelf-0.8.13_install @@ -56,6 +56,7 @@ _install() { -n "${PACKAGE_NAME}" \ -c "${PACKAGE_NAME}" \ -r "gcc-libs/4.9.2" \ + -c "elfutils" \ -o $MODULE_DIR/${PACKAGE_NAME}/${PACKAGE_VERSION}/${COMPILER_TAG} \ -w "Adds libelf 0.8.13 to your environment." echo "Module files put in: $MODULE_DIR" >&2 diff --git a/libint-1.1.4_install b/libint-1.1.4_install new file mode 100755 index 00000000..4bbe75b7 --- /dev/null +++ b/libint-1.1.4_install @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +############################################### +# Installing libint 1.1.4 +# +# by Owain Kenway, 2015 +# +# This is provided to make it possible to build CP2K +# You should use the same compiler as you intend to build CP2K with. + +APPNAME=${APPNAME:-libint} +VERSION=${VERSION:-1.1.4} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-6bc36ba047e23e16b5bc9c0cc8f4a9f7} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://sourceforge.net/projects/libint/files/v1-releases/libint-1.1.4.tar.gz} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/$APPNAME +temp_dir=`mktemp -d -p /dev/shm/$APPNAME` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum ${APPNAME}-${VERSION}.tar.gz| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -zxvf ${APPNAME}-${VERSION}.tar.gz + + cd ${APPNAME}-${VERSION} + ./configure --prefix=$INSTALL_PREFIX + make && make install +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/libsmm-cp2k4.1-threads_install b/libsmm-cp2k4.1-threads_install new file mode 100755 index 00000000..c6bf7889 --- /dev/null +++ b/libsmm-cp2k4.1-threads_install @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2015 +# + +APPNAME=${APPNAME:-libsmm} +VERSION=${VERSION:-4_1} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/cp2k-${VERSION}/psmp/$COMPILER_TAG} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://svn.code.sf.net/p/cp2k/code/branches/cp2k-${VERSION}-branch} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/$APPNAME +temp_dir=`mktemp -d -p /dev/shm/$APPNAME` + +cd $temp_dir + +svn checkout ${SRC_ARCHIVE} cp2k-${VERSION} +cd cp2k-${VERSION} +cd cp2k/tools +cd build_libsmm + +cp /shared/ucl/apps/build_scripts/cp2k-4.1-patches/linux.gnu-threads config/linux.gnu + +./generate -c config/linux.gnu -j 10 -t 16 -w none tiny1 +./generate -c config/linux.gnu tiny2 +./generate -c config/linux.gnu -j 0 -t 16 small1 +./generate -c config/linux.gnu -j 0 -t 16 lib + +mkdir -p $INSTALL_PREFIX/lib + +cp lib/*.a $INSTALL_PREFIX/lib + +echo "Finshed building libsmm." + + diff --git a/libsmm-cp2k4.1_install b/libsmm-cp2k4.1_install new file mode 100755 index 00000000..4795456e --- /dev/null +++ b/libsmm-cp2k4.1_install @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2015 +# + +APPNAME=${APPNAME:-libsmm} +VERSION=${VERSION:-4_1} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/cp2k-${VERSION}/$COMPILER_TAG} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://svn.code.sf.net/p/cp2k/code/branches/cp2k-${VERSION}-branch} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/$APPNAME +temp_dir=`mktemp -d -p /dev/shm/$APPNAME` + +cd $temp_dir + +svn checkout ${SRC_ARCHIVE} cp2k-${VERSION} +cd cp2k-${VERSION} +cd cp2k/tools +cd build_libsmm + +cp /shared/ucl/apps/build_scripts/cp2k-4.1-patches/linux.gnu config + +./generate -c config/linux.gnu -j 10 -t 16 -w none tiny1 +./generate -c config/linux.gnu tiny2 +./generate -c config/linux.gnu -j 0 -t 16 small1 +./generate -c config/linux.gnu -j 0 -t 16 lib + +mkdir -p $INSTALL_PREFIX/lib + +cp lib/*.a $INSTALL_PREFIX/lib + +echo "Finshed building libsmm." + + diff --git a/libxc-4.2.3-gcc_install b/libxc-4.2.3-gcc_install new file mode 100755 index 00000000..dcaddaf8 --- /dev/null +++ b/libxc-4.2.3-gcc_install @@ -0,0 +1,43 @@ +#!/bin/bash + +set -o errexit + +package_name="libxc" +package_version="4.2.3" +package_description="libxc is a library of routines implementing a range of exchange-correlation functionals for density-functional theory calculations." + +source includes/source_includes.sh + +module purge +module load gcc-libs/4.9.2 +module load compilers/gnu/4.9.2 + +make_build_env "" + +cd "$build_dir" + +curl -L --verbose -O "http://www.tddft.org/programs/octopus/down.php?file=libxc/${package_version}/libxc-${package_version}.tar.gz" + +manifest sha256:02e49e9ba7d21d18df17e9e57eae861e6ce05e65e966e1e832475aa09e344256 libxc-4.2.3.tar.gz + +tar -xf "libxc-${package_version}.tar.gz" + +cd "libxc-${package_version}" + +./configure \ + --enable-shared \ + --enable-static \ + --prefix="$install_prefix" +make +make check +make install + +make_module \ + -p "$install_prefix" \ + -r "gcc-libs/4.9.2" \ + -r "compilers/gnu/4.9.2" \ + -c "libxc" \ + -o "$module_dir/$package_label" \ + -w "$package_description" + +chmod -R 755 "$module_dir" diff --git a/libxc-4.2.3_install b/libxc-4.2.3_install new file mode 100755 index 00000000..305a49bb --- /dev/null +++ b/libxc-4.2.3_install @@ -0,0 +1,43 @@ +#!/bin/bash + +set -o errexit + +package_name="libxc" +package_version="4.2.3" +package_description="libxc is a library of routines implementing a range of exchange-correlation functionals for density-functional theory calculations." + +source includes/source_includes.sh + +module purge +module load gcc-libs/4.9.2 +module load compilers/intel/2018/update3 + +make_build_env "" + +cd "$build_dir" + +curl -L --verbose -O "http://www.tddft.org/programs/octopus/down.php?file=libxc/${package_version}/libxc-${package_version}.tar.gz" + +manifest sha256:02e49e9ba7d21d18df17e9e57eae861e6ce05e65e966e1e832475aa09e344256 libxc-4.2.3.tar.gz + +tar -xf "libxc-${package_version}.tar.gz" + +cd "libxc-${package_version}" + +./configure \ + --enable-shared \ + --enable-static \ + --prefix="$install_prefix" +make +make check +make install + +make_module \ + -p "$install_prefix" \ + -r "gcc-libs/4.9.2" \ + -c "libxc" \ + -r "compilers/intel/2018/update3" \ + -o "$module_dir/$package_label" \ + -w "$package_description" + +chmod -R 755 "$module_dir" diff --git a/lists/perl_modules.list b/lists/perl_modules.list index b6f93763..8b2ff67a 100644 --- a/lists/perl_modules.list +++ b/lists/perl_modules.list @@ -163,3 +163,4 @@ Config::IniFiles JSON Proc::PID::File Term::UI +Term::ReadKey diff --git a/lists/pypy-3.list b/lists/pypy-3.list new file mode 100755 index 00000000..1bd4fb77 --- /dev/null +++ b/lists/pypy-3.list @@ -0,0 +1 @@ +pyfastaq diff --git a/lists/pypy-shared.list b/lists/pypy-shared.list new file mode 100755 index 00000000..1d67c893 --- /dev/null +++ b/lists/pypy-shared.list @@ -0,0 +1,41 @@ +Cython +requests +nose +numpy +scipy +matplotlib +biopython +acora +python-Levenshtein +# Segfaults in testing +# pandas +qutip +# +# Commented out because their C extensions need some testing with pypy +# ephem +# cvxopt +networkx +obspy +cutadapt +lxml +astropy +pyspglib +scikit-learn +scikit-image +weblogo +nibabel +Pmw +ipython +tabulate +sshpubkeys +appdirs +rply +astor +clint +hy +xlsxwriter +xlutils +emcee +mpmath +hankel +regex diff --git a/lists/python-2.list b/lists/python-2.list index c2187eaf..141fd5f4 100755 --- a/lists/python-2.list +++ b/lists/python-2.list @@ -3,3 +3,5 @@ MACS2 MACS mercurial misopy +qiime +GromacsWrapper diff --git a/lists/python-shared.list b/lists/python-shared.list index 179374af..0907a13d 100755 --- a/lists/python-shared.list +++ b/lists/python-shared.list @@ -1,3 +1,5 @@ +pysam==0.13 +pysamstats requests nose numpy @@ -10,16 +12,33 @@ python-Levenshtein pandas ephem networkx -pysam==0.9.1 obspy cvxopt cutadapt lxml -pysamstats astropy pyspglib scikit-learn +scikit-image weblogo nibabel Pmw ipython +tabulate +sshpubkeys +appdirs +rply +astor +clint +hy +qutip +xlsxwriter +xlutils +emcee +mpmath +hankel +ninja +mako +regex +cyvcf2 +seaborn diff --git a/lists/python-shared37-fixed.list b/lists/python-shared37-fixed.list new file mode 100755 index 00000000..1a755470 --- /dev/null +++ b/lists/python-shared37-fixed.list @@ -0,0 +1,41 @@ +pysam +requests +nose +numpy +scipy +matplotlib +Cython +biopython +acora +python-Levenshtein +pandas +ephem +networkx +obspy +cvxopt +cutadapt +lxml +astropy +pyspglib +scikit-learn +scikit-image +weblogo +nibabel +Pmw +ipython +tabulate +sshpubkeys +appdirs +rply +astor +clint +hy +qutip +xlsxwriter +xlutils +emcee +mpmath +hankel +ninja +mako +regex diff --git a/lists/xorg-all.list b/lists/xorg-all.list new file mode 100644 index 00000000..058472d8 --- /dev/null +++ b/lists/xorg-all.list @@ -0,0 +1,377 @@ +# All current versions as of 2018-07-06 +# Things we definitely don't need are commented out (mostly drivers and fonts) +# Use grep -v "^#" xorg-all.list | grep -v "^$" to remove comments and empty lines. + +#app +https://www.x.org/releases/individual/app/appres-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/bdftopcf-1.1.tar.bz2 +https://www.x.org/releases/individual/app/beforelight-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/bitmap-1.0.8.tar.bz2 +https://www.x.org/releases/individual/app/compiz-0.7.8.tar.gz +https://www.x.org/releases/individual/app/constype-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/editres-1.0.7.tar.bz2 +https://www.x.org/releases/individual/app/fonttosfnt-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/fslsfonts-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/fstobdf-1.0.6.tar.bz2 +https://www.x.org/releases/individual/app/grandr-0.1.tar.bz2 +https://www.x.org/releases/individual/app/iceauth-1.0.8.tar.bz2 +https://www.x.org/releases/individual/app/ico-1.0.5.tar.bz2 +#https://www.x.org/releases/individual/app/intel-gpu-tools-1.22.tar.xz +https://www.x.org/releases/individual/app/lbxproxy-1.0.3.tar.bz2 +https://www.x.org/releases/individual/app/listres-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/luit-1.1.1.tar.bz2 +https://www.x.org/releases/individual/app/mkcfm-1.0.1.tar.bz2 +https://www.x.org/releases/individual/app/mkcomposecache-1.2.tar.bz2 +https://www.x.org/releases/individual/app/mkfontdir-1.0.7.tar.bz2 +https://www.x.org/releases/individual/app/mkfontscale-1.1.3.tar.bz2 +https://www.x.org/releases/individual/app/oclock-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/proxymngr-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/rendercheck-1.5.tar.bz2 +https://www.x.org/releases/individual/app/rgb-1.0.6.tar.bz2 +https://www.x.org/releases/individual/app/rstart-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/scripts-1.0.1.tar.bz2 +https://www.x.org/releases/individual/app/sessreg-1.1.1.tar.bz2 +https://www.x.org/releases/individual/app/setxkbmap-1.3.1.tar.bz2 +https://www.x.org/releases/individual/app/showfont-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/smproxy-1.0.6.tar.bz2 +https://www.x.org/releases/individual/app/transset-1.0.2.tar.bz2 +https://www.x.org/releases/individual/app/twm-1.0.10.tar.bz2 +https://www.x.org/releases/individual/app/viewres-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/x11perf-1.6.0.tar.bz2 +https://www.x.org/releases/individual/app/xauth-1.0.10.tar.bz2 +https://www.x.org/releases/individual/app/xbacklight-1.2.2.tar.bz2 +https://www.x.org/releases/individual/app/xbiff-1.0.3.tar.bz2 +https://www.x.org/releases/individual/app/xbitmaps-1.1.0.tar.bz2 +https://www.x.org/releases/individual/app/xcalc-1.0.6.tar.bz2 +https://www.x.org/releases/individual/app/xclipboard-1.1.3.tar.bz2 +https://www.x.org/releases/individual/app/xclock-1.0.7.tar.bz2 +https://www.x.org/releases/individual/app/xcmsdb-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/xcompmgr-1.1.7.tar.bz2 +https://www.x.org/releases/individual/app/xconsole-1.0.7.tar.bz2 +https://www.x.org/releases/individual/app/xcursorgen-1.0.6.tar.bz2 +https://www.x.org/releases/individual/app/xdbedizzy-1.1.0.tar.bz2 +https://www.x.org/releases/individual/app/xditview-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/xdm-1.1.11.tar.bz2 +https://www.x.org/releases/individual/app/xdpyinfo-1.3.2.tar.bz2 +https://www.x.org/releases/individual/app/xdriinfo-1.0.6.tar.bz2 +https://www.x.org/releases/individual/app/xedit-1.2.2.tar.bz2 +https://www.x.org/releases/individual/app/xev-1.2.2.tar.bz2 +https://www.x.org/releases/individual/app/xeyes-1.1.2.tar.bz2 +https://www.x.org/releases/individual/app/xf86dga-1.0.3.tar.bz2 +https://www.x.org/releases/individual/app/xfd-1.1.2.tar.bz2 +https://www.x.org/releases/individual/app/xfindproxy-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/xfontsel-1.0.6.tar.bz2 +https://www.x.org/releases/individual/app/xfs-1.2.0.tar.bz2 +https://www.x.org/releases/individual/app/xfsinfo-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/xfwp-1.0.3.tar.bz2 +https://www.x.org/releases/individual/app/xgamma-1.0.6.tar.bz2 +https://www.x.org/releases/individual/app/xgc-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/xhost-1.0.7.tar.bz2 +https://www.x.org/releases/individual/app/xinit-1.4.0.tar.bz2 +https://www.x.org/releases/individual/app/xinput-1.6.2.tar.bz2 +https://www.x.org/releases/individual/app/xkbcomp-1.4.2.tar.bz2 +https://www.x.org/releases/individual/app/xkbevd-1.1.4.tar.bz2 +https://www.x.org/releases/individual/app/xkbprint-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/xkbutils-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/xkill-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/xload-1.1.3.tar.bz2 +https://www.x.org/releases/individual/app/xlogo-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/xlsatoms-1.1.2.tar.bz2 +https://www.x.org/releases/individual/app/xlsclients-1.1.4.tar.bz2 +https://www.x.org/releases/individual/app/xlsfonts-1.0.6.tar.bz2 +https://www.x.org/releases/individual/app/xmag-1.0.6.tar.bz2 +https://www.x.org/releases/individual/app/xman-1.1.4.tar.bz2 +https://www.x.org/releases/individual/app/xmessage-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/xmh-1.0.3.tar.bz2 +https://www.x.org/releases/individual/app/xmodmap-1.0.9.tar.bz2 +https://www.x.org/releases/individual/app/xmore-1.0.2.tar.bz2 +https://www.x.org/releases/individual/app/xphelloworld-1.0.1.tar.bz2 +https://www.x.org/releases/individual/app/xplsprinters-1.0.1.tar.bz2 +https://www.x.org/releases/individual/app/xpr-1.0.5.tar.bz2 +https://www.x.org/releases/individual/app/xprehashprinterlist-1.0.1.tar.bz2 +https://www.x.org/releases/individual/app/xprop-1.2.3.tar.bz2 +https://www.x.org/releases/individual/app/xrandr-1.5.0.tar.bz2 +https://www.x.org/releases/individual/app/xrdb-1.1.1.tar.bz2 +https://www.x.org/releases/individual/app/xrefresh-1.0.6.tar.bz2 +https://www.x.org/releases/individual/app/xrx-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/xscope-1.4.1.tar.bz2 +https://www.x.org/releases/individual/app/xset-1.2.4.tar.bz2 +https://www.x.org/releases/individual/app/xsetmode-1.0.0.tar.bz2 +https://www.x.org/releases/individual/app/xsetpointer-1.0.1.tar.bz2 +https://www.x.org/releases/individual/app/xsetroot-1.1.2.tar.bz2 +https://www.x.org/releases/individual/app/xsm-1.0.4.tar.bz2 +https://www.x.org/releases/individual/app/xstdcmap-1.0.3.tar.bz2 +https://www.x.org/releases/individual/app/xtrap-1.0.3.tar.bz2 +https://www.x.org/releases/individual/app/xvidtune-1.0.3.tar.bz2 +https://www.x.org/releases/individual/app/xvinfo-1.1.3.tar.bz2 +https://www.x.org/releases/individual/app/xwd-1.0.7.tar.bz2 +https://www.x.org/releases/individual/app/xwininfo-1.1.4.tar.bz2 +https://www.x.org/releases/individual/app/xwud-1.0.5.tar.bz2 + +#data +https://www.x.org/releases/individual/data/xbitmaps-1.1.2.tar.bz2 +https://www.x.org/releases/individual/data/xcursor-themes-1.0.5.tar.bz2 +https://www.x.org/releases/individual/data/xkbdata-1.0.1.tar.bz2 +https://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.24.tar.bz2 + +#doc +https://www.x.org/releases/individual/doc/xorg-docs-1.7.1.tar.bz2 +https://www.x.org/releases/individual/doc/xorg-sgml-doctools-1.11.tar.bz2 + +# evdev driver should cover most things +https://www.x.org/releases/individual/driver/glamor-egl-0.6.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-acecad-1.5.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-aiptek-1.4.1.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-calcomp-1.1.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-citron-2.2.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-digitaledge-1.1.1.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-dmc-1.1.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-dynapro-1.1.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-elo2300-1.1.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-elographics-1.4.1.tar.bz2 +https://www.x.org/releases/individual/driver/xf86-input-evdev-2.10.6.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-fpit-1.4.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-hyperpen-1.4.1.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-jamstudio-1.2.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-joystick-1.6.3.tar.bz2 +https://www.x.org/releases/individual/driver/xf86-input-keyboard-1.9.0.tar.bz2 +https://www.x.org/releases/individual/driver/xf86-input-libinput-0.27.1.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-magellan-1.2.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-magictouch-1.0.0.5.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-microtouch-1.2.0.tar.bz2 +https://www.x.org/releases/individual/driver/xf86-input-mouse-1.9.3.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-mutouch-1.3.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-palmax-1.2.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-penmount-1.5.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-spaceorb-1.1.1.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-summa-1.2.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-synaptics-1.9.1.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-tek4957-1.2.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-ur98-1.1.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2 +https://www.x.org/releases/individual/driver/xf86-input-void-1.4.1.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-amd-2.7.7.7.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-amdgpu-18.0.1.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-apm-1.2.5.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-ark-0.7.5.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-ast-1.1.5.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-ati-18.0.1.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-chips-1.2.7.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-cirrus-1.5.3.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-cyrix-1.1.0.tar.bz2 +https://www.x.org/releases/individual/driver/xf86-video-dummy-0.3.8.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-fbdev-0.5.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-freedreno-1.4.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-geode-2.11.19.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-glide-1.2.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-glint-1.2.9.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-i128-1.3.6.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-i740-1.3.6.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-i810-1.7.4.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-impact-0.2.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-imstt-1.1.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-intel-2.99.917.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-mach64-6.9.6.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-mga-1.6.5.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-modesetting-0.9.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-neomagic-1.2.9.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-newport-0.2.4.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-nouveau-1.0.15.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-nsc-2.8.3.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-nv-2.1.21.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-omap-0.4.5.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-openchrome-0.6.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-opentegra-0.7.0.tar.xz +#https://www.x.org/releases/individual/driver/xf86-video-qxl-0.1.5.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-r128-6.10.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-radeonhd-1.3.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-rendition-4.2.7.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-s3-0.6.5.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-s3virge-1.10.7.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-savage-2.3.9.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-siliconmotion-1.7.9.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-sis-0.10.9.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-sisusb-0.9.7.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-sunbw2-1.1.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-suncg3-1.1.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-suncg6-1.1.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-suncg14-1.1.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-sunffb-1.2.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-sunleo-1.2.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-suntcx-1.1.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-tdfx-1.4.7.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-tga-1.2.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-trident-1.3.8.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-tseng-1.2.5.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-v4l-0.2.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-vboxvideo-1.0.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-vermilion-1.0.1.tar.bz2 +https://www.x.org/releases/individual/driver/xf86-video-vesa-2.4.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-vga-4.1.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-via-0.2.2.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-vmware-13.3.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-wsfb-0.4.0.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-xgi-1.6.1.tar.bz2 +#https://www.x.org/releases/individual/driver/xf86-video-xgixp-1.8.1.tar.bz2 + +#font +https://www.x.org/releases/individual/font/encodings-1.0.4.tar.bz2 +https://www.x.org/releases/individual/font/font-adobe-75dpi-1.0.3.tar.bz2 +https://www.x.org/releases/individual/font/font-adobe-100dpi-1.0.3.tar.bz2 +https://www.x.org/releases/individual/font/font-adobe-utopia-75dpi-1.0.4.tar.bz2 +https://www.x.org/releases/individual/font/font-adobe-utopia-100dpi-1.0.4.tar.bz2 +https://www.x.org/releases/individual/font/font-adobe-utopia-type1-1.0.4.tar.bz2 +https://www.x.org/releases/individual/font/font-alias-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-arabic-misc-1.0.3.tar.bz2 +https://www.x.org/releases/individual/font/font-bh-75dpi-1.0.3.tar.bz2 +https://www.x.org/releases/individual/font/font-bh-100dpi-1.0.3.tar.bz2 +https://www.x.org/releases/individual/font/font-bh-lucidatypewriter-75dpi-1.0.3.tar.bz2 +https://www.x.org/releases/individual/font/font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2 +https://www.x.org/releases/individual/font/font-bh-ttf-1.0.3.tar.bz2 +https://www.x.org/releases/individual/font/font-bh-type1-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-bitstream-75dpi-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-bitstream-100dpi-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-bitstream-speedo-1.0.2.tar.bz2 +#https://www.x.org/releases/individual/font/font-bitstream-type1-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-cronyx-cyrillic-1.0.3.tar.bz2 +https://www.x.org/releases/individual/font/font-cursor-misc-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-daewoo-misc-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-dec-misc-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-ibm-type1-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-isas-misc-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-jis-misc-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-micro-misc-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-misc-cyrillic-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-misc-ethiopic-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-misc-meltho-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-misc-misc-1.1.2.tar.bz2 +#https://www.x.org/releases/individual/font/font-mutt-misc-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-schumacher-misc-1.1.2.tar.bz2 +#https://www.x.org/releases/individual/font/font-screen-cyrillic-1.0.4.tar.bz2 +#https://www.x.org/releases/individual/font/font-sony-misc-1.0.3.tar.bz2 +#https://www.x.org/releases/individual/font/font-sun-misc-1.0.3.tar.bz2 +https://www.x.org/releases/individual/font/font-util-1.3.1.tar.bz2 +#https://www.x.org/releases/individual/font/font-winitzki-cyrillic-1.0.3.tar.bz2 +https://www.x.org/releases/individual/font/font-xfree86-type1-1.0.4.tar.bz2 + +#lib +https://www.x.org/releases/individual/lib/hsakmt-1.0.0.tar.bz2 +#https://www.x.org/releases/individual/lib/libAppleWM-1.4.1.tar.bz2 +https://www.x.org/releases/individual/lib/libFS-1.0.7.tar.bz2 +https://www.x.org/releases/individual/lib/libICE-1.0.9.tar.bz2 +https://www.x.org/releases/individual/lib/libSM-1.2.2.tar.bz2 +https://www.x.org/releases/individual/lib/libWindowsWM-1.0.1.tar.bz2 +https://www.x.org/releases/individual/lib/libX11-1.6.5.tar.bz2 +https://www.x.org/releases/individual/lib/libXScrnSaver-1.2.3.tar.bz2 +https://www.x.org/releases/individual/lib/libXTrap-1.0.1.tar.bz2 +https://www.x.org/releases/individual/lib/libXau-1.0.8.tar.bz2 +https://www.x.org/releases/individual/lib/libXaw-1.0.13.tar.bz2 +https://www.x.org/releases/individual/lib/libXaw3d-1.6.3.tar.bz2 +https://www.x.org/releases/individual/lib/libXcomposite-0.4.4.tar.bz2 +https://www.x.org/releases/individual/lib/libXcursor-1.1.15.tar.bz2 +https://www.x.org/releases/individual/lib/libXdamage-1.1.tar.bz2 +https://www.x.org/releases/individual/lib/libXdmcp-1.1.2.tar.bz2 +https://www.x.org/releases/individual/lib/libXevie-1.0.3.tar.bz2 +https://www.x.org/releases/individual/lib/libXext-1.3.3.tar.bz2 +https://www.x.org/releases/individual/lib/libXfixes-5.0.3.tar.bz2 +https://www.x.org/releases/individual/lib/libXfont-1.5.4.tar.bz2 +https://www.x.org/releases/individual/lib/libXfont2-2.0.3.tar.bz2 +https://www.x.org/releases/individual/lib/libXfontcache-1.0.5.tar.bz2 +https://www.x.org/releases/individual/lib/libXft-2.3.2.tar.bz2 +https://www.x.org/releases/individual/lib/libXi-1.7.9.tar.bz2 +https://www.x.org/releases/individual/lib/libXinerama-1.1.4.tar.bz2 +https://www.x.org/releases/individual/lib/libXmu-1.1.2.tar.bz2 +https://www.x.org/releases/individual/lib/libXp-1.0.3.tar.bz2 +https://www.x.org/releases/individual/lib/libXpm-3.5.12.tar.bz2 +https://www.x.org/releases/individual/lib/libXpresent-1.0.0.tar.bz2 +https://www.x.org/releases/individual/lib/libXprintAppUtil-1.0.1.tar.bz2 +https://www.x.org/releases/individual/lib/libXprintUtil-1.0.1.tar.bz2 +https://www.x.org/releases/individual/lib/libXrandr-1.5.1.tar.bz2 +https://www.x.org/releases/individual/lib/libXrender-0.9.10.tar.bz2 +https://www.x.org/releases/individual/lib/libXres-1.2.0.tar.bz2 +https://www.x.org/releases/individual/lib/libXt-1.1.5.tar.bz2 +https://www.x.org/releases/individual/lib/libXtst-1.2.3.tar.bz2 +https://www.x.org/releases/individual/lib/libXv-1.0.11.tar.bz2 +https://www.x.org/releases/individual/lib/libXvMC-1.0.10.tar.bz2 +https://www.x.org/releases/individual/lib/libXxf86dga-1.1.4.tar.bz2 +https://www.x.org/releases/individual/lib/libXxf86misc-1.0.4.tar.bz2 +https://www.x.org/releases/individual/lib/libXxf86vm-1.1.4.tar.bz2 +https://www.x.org/releases/individual/lib/libdmx-1.1.4.tar.bz2 +https://www.x.org/releases/individual/lib/libfontenc-1.1.3.tar.bz2 +https://www.x.org/releases/individual/lib/liblbxutil-1.1.0.tar.bz2 +https://www.x.org/releases/individual/lib/liboldX-1.0.1.tar.bz2 +https://www.x.org/releases/individual/lib/libpciaccess-0.14.tar.bz2 +https://www.x.org/releases/individual/lib/libpthread-stubs-0.1.tar.bz2 +https://www.x.org/releases/individual/lib/libxkbfile-1.0.9.tar.bz2 +https://www.x.org/releases/individual/lib/libxkbui-1.0.2.tar.bz2 +https://www.x.org/releases/individual/lib/libxshmfence-1.3.tar.bz2 +https://www.x.org/releases/individual/lib/pixman-0.34.0.tar.bz2 +https://www.x.org/releases/individual/lib/xtrans-1.3.5.tar.bz2 + +#proto +https://www.x.org/releases/individual/proto/applewmproto-1.4.2.tar.bz2 +https://www.x.org/releases/individual/proto/bigreqsproto-1.1.2.tar.bz2 +https://www.x.org/releases/individual/proto/compositeproto-0.4.2.tar.bz2 +https://www.x.org/releases/individual/proto/damageproto-1.2.1.tar.bz2 +https://www.x.org/releases/individual/proto/dmxproto-2.3.1.tar.bz2 +https://www.x.org/releases/individual/proto/dri2proto-2.8.tar.bz2 +https://www.x.org/releases/individual/proto/dri3proto-1.0.tar.bz2 +https://www.x.org/releases/individual/proto/evieext-1.1.1.tar.bz2 +https://www.x.org/releases/individual/proto/fixesproto-5.0.tar.bz2 +https://www.x.org/releases/individual/proto/fontcacheproto-0.1.3.tar.bz2 +https://www.x.org/releases/individual/proto/fontsproto-2.1.3.tar.bz2 +https://www.x.org/releases/individual/proto/glproto-1.4.17.tar.bz2 +https://www.x.org/releases/individual/proto/inputproto-2.3.2.tar.bz2 +https://www.x.org/releases/individual/proto/kbproto-1.0.7.tar.bz2 +https://www.x.org/releases/individual/proto/presentproto-1.1.tar.bz2 +https://www.x.org/releases/individual/proto/printproto-1.0.5.tar.bz2 +https://www.x.org/releases/individual/proto/randrproto-1.5.0.tar.bz2 +https://www.x.org/releases/individual/proto/recordproto-1.14.2.tar.bz2 +https://www.x.org/releases/individual/proto/renderproto-0.11.1.tar.bz2 +https://www.x.org/releases/individual/proto/resourceproto-1.2.0.tar.bz2 +https://www.x.org/releases/individual/proto/scrnsaverproto-1.2.2.tar.bz2 +https://www.x.org/releases/individual/proto/trapproto-3.4.3.tar.bz2 +https://www.x.org/releases/individual/proto/videoproto-2.3.3.tar.bz2 +https://www.x.org/releases/individual/proto/windowswmproto-1.0.4.tar.bz2 +https://www.x.org/releases/individual/proto/xcmiscproto-1.2.2.tar.bz2 +https://www.x.org/releases/individual/proto/xextproto-7.3.0.tar.bz2 +https://www.x.org/releases/individual/proto/xf86bigfontproto-1.2.0.tar.bz2 +https://www.x.org/releases/individual/proto/xf86driproto-2.1.1.tar.bz2 +https://www.x.org/releases/individual/proto/xf86miscproto-0.9.3.tar.bz2 +https://www.x.org/releases/individual/proto/xf86rushproto-1.1.2.tar.bz2 +https://www.x.org/releases/individual/proto/xf86vidmodeproto-2.3.1.tar.bz2 +https://www.x.org/releases/individual/proto/xineramaproto-1.2.1.tar.bz2 +https://www.x.org/releases/individual/proto/xorgproto-2018.4.tar.bz2 +https://www.x.org/releases/individual/proto/xproto-7.0.31.tar.bz2 +https://www.x.org/releases/individual/proto/xproxymanagementprotocol-1.0.3.tar.bz2 + +#test +https://www.x.org/releases/individual/test/xorg-gtest-0.7.1.tar.bz2 +https://www.x.org/releases/individual/test/xts-0.99.1.tar.bz2 + +#util +https://www.x.org/releases/individual/util/gccmakedep-1.0.3.tar.bz2 +https://www.x.org/releases/individual/util/imake-1.0.7.tar.bz2 +https://www.x.org/releases/individual/util/lndir-1.0.3.tar.bz2 +https://www.x.org/releases/individual/util/makedepend-1.0.5.tar.bz2 +https://www.x.org/releases/individual/util/util-macros-1.19.2.tar.bz2 +https://www.x.org/releases/individual/util/xorg-cf-files-1.0.6.tar.bz2 + +#xcb +https://www.x.org/releases/individual/xcb/libpthread-stubs-0.4.tar.bz2 +https://www.x.org/releases/individual/xcb/libxcb-1.13.tar.bz2 +https://www.x.org/releases/individual/xcb/xcb-demo-0.1.tar.bz2 +https://www.x.org/releases/individual/xcb/xcb-proto-1.13.tar.bz2 +https://www.x.org/releases/individual/xcb/xcb-util-0.4.0.tar.bz2 +https://www.x.org/releases/individual/xcb/xcb-util-cursor-0.1.3.tar.bz2 +https://www.x.org/releases/individual/xcb/xcb-util-errors-1.0.tar.bz2 +https://www.x.org/releases/individual/xcb/xcb-util-image-0.4.0.tar.bz2 +https://www.x.org/releases/individual/xcb/xcb-util-keysyms-0.4.0.tar.bz2 +https://www.x.org/releases/individual/xcb/xcb-util-renderutil-0.3.9.tar.bz2 +https://www.x.org/releases/individual/xcb/xcb-util-wm-0.4.1.tar.bz2 +https://www.x.org/releases/individual/xcb/xpyb-1.3.1.tar.bz2 + +#xorg-server +https://www.x.org/releases/individual/xserver/xorg-server-1.20.0.tar.bz2 + diff --git a/llvm-3.3_install b/llvm-3.3_install new file mode 100755 index 00000000..a6571de7 --- /dev/null +++ b/llvm-3.3_install @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +############################################### +# Installing LLVM +# Built with GCC +# +# + +NAME=${NAME:-llvm} +VERSION=${VERSION:-3.3} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-68766b1e70d05a25e2f502e997a3cb3937187a3296595cf6e0977d5cd6727578} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://releases.llvm.org/${VERSION}/${NAME}-${VERSION}.src.tar.gz} + +set -e + +# require modules for building +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +prereq gcc-libs +prereq compilers/gnu +prereq cmake/3.7.2 + +mkdir -p /dev/shm/${NAME} +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`sha256sum $archive| awk '{print $1}'` + +if [ "$SHA256" == "$CHECKSUM" ] +then + tar -xvf $archive + cd ${NAME}-${VERSION}.src + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_INSTALL_UTILS=ON \ + -DLLVM_TARGETS_TO_BUILD:STRING=X86 .. + make -j 12 2>&1 | tee make.log + make install + +else + echo "Hash mismatch." + echo "Expected: $SHA256" + echo "Got: $CHECKSUM" +fi + diff --git a/llvm-3.9.1_install b/llvm-3.9.1_install new file mode 100755 index 00000000..0c05cf3b --- /dev/null +++ b/llvm-3.9.1_install @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +############################################### +# Installing LLVM +# Built with GCC +# +# + +NAME=${NAME:-llvm} +VERSION=${VERSION:-3.9.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-3259018a7437e157f3642df80f1983ea} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://releases.llvm.org/${VERSION}/${NAME}-${VERSION}.src.tar.xz} + +set -e + +# require modules for building +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +prereq gcc-libs +prereq compilers/gnu +prereq cmake/3.7.2 + +mkdir -p /dev/shm/${NAME} +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -xvf $archive + cd ${NAME}-${VERSION}.src + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_INSTALL_UTILS=ON \ + -DLLVM_TARGETS_TO_BUILD:STRING=X86 .. + make 2>&1 | tee make.log + make install + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi + diff --git a/llvm-6.0.1_install b/llvm-6.0.1_install new file mode 100755 index 00000000..0fa8be68 --- /dev/null +++ b/llvm-6.0.1_install @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +############################################### +# Installing LLVM +# Built with GCC +# +# + +NAME=${NAME:-llvm} +VERSION=${VERSION:-6.0.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-b6d6c324f9c71494c0ccaf3dac1f16236d970002b42bb24a6c9e1634f7d0f4e2} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://releases.llvm.org/${VERSION}/${NAME}-${VERSION}.src.tar.xz} +BUILD_DIR=${BUILD_DIR:-$(mktemp -d -p /dev/shm -t "${NAME}"-build.XXXXXXXX)} + +set -e + +# require modules for building +source includes/source_includes.sh +module purge +require gcc-libs +require compilers/gnu +require cmake/3.7.2 + +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} + +cd "$BUILD_DIR" + +wget "$SRC_ARCHIVE" +archive=$(basename "${SRC_ARCHIVE}") + +echo "Checking hashes:" +sha256sum -c <<<"$SHA256 $archive" + +tar -xvf "$archive" +cd "${NAME}"-"${VERSION}".src +mkdir build +cd build +# Building and linking the dylib gives you a single shared libllvm.so +# as well as the individual static libraries. If you don't do -DLLVM_LINK_LLVM_DYLIB +# as well, then you get a shared library that llvm-config won't link correctly. +cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="$INSTALL_PREFIX" \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_INSTALL_UTILS=ON \ + -DLLVM_TARGETS_TO_BUILD:STRING=X86 .. +make 2>&1 | tee make.log +make install + diff --git a/lmdb-0.9.22_install b/lmdb-0.9.22_install new file mode 100755 index 00000000..1f2fcf78 --- /dev/null +++ b/lmdb-0.9.22_install @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-lmdb} +VERSION=${VERSION:-0.9.22} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA512=${SHA512:-49afca13b9683ed571c274380bb5e111236903b12d19bcb8781d6bbc00f711766b0d62de0b36536c85309cc9ff9e9d0aaa708e27bae9be6cfcaed8ba91e5545d} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/LMDB/lmdb/archive/LMDB_${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha512sum -c <<< "$SHA512 $archive" + +tar -xvf $archive + +cd lmdb-LMDB_${VERSION}/libraries/liblmdb + +sed -i.bak "s|/usr/local|${INSTALL_PREFIX}|g" Makefile +make +make install diff --git a/magma-2.4.0_install.sh b/magma-2.4.0_install.sh new file mode 100755 index 00000000..3fc23bc9 --- /dev/null +++ b/magma-2.4.0_install.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-magma} +VERSION=${VERSION:-2.4.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-4eb839b1295405fd29c8a6f5b4ed578476010bf976af46573f80d1169f1f9a4f} + +SRC_ARCHIVE=${SRC_ARCHIVE:-http://icl.utk.edu/projectsfiles/magma/downloads/magma-${VERSION}.tar.gz} + +set -e + +for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +require gcc-libs/4.9.2 +require compilers/intel/2018/update3 +require cuda/9.0.176-patch4/gnu-4.9.2 +require cmake/3.7.2 + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha256sum -c <<< "$SHA256 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} +mkdir build +cd build +cmake -DCUDA_HOST_COMPILER=$( which gcc ) -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX .. +make +make install diff --git a/mathematica-11.2_install b/mathematica-11.2_install new file mode 100755 index 00000000..054c90f1 --- /dev/null +++ b/mathematica-11.2_install @@ -0,0 +1,74 @@ +#!/bin/bash + +# This script installs Mathematica 11.2.0 +# Brian Alston January 2018 +# Updated from 10.4 - August 2016 +# Updated to 11.0.1 - October 2016 +# Updated to remind to install of Tunnel.m package for multi-node communication - January 2017 +# Updated to 11.2 - January 2018 +# Based on spm12_install by Owain Kenway + +# You need to download the Mathematica installer from the Wolfram User Portal +# (https://user.wolfram.com/portal/login.html) using a UCL site admin login. +# Place it somewhere in your file-system and set the SRC_ARCHIVE & MATH_INSTALLER +# variables appropriately. + +VERSION=${VERSION:-11.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Mathematica} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/Mathematica/installers} +MATH_INSTALLER=${MATH_INSTALLER:-Mathematica_11.2.0_LINUX.sh} +EXTRA_FILES=${EXTRA_FILES:-/shared/ucl/apps/build_scripts/files/mathematica_UCL} + +set -e +startDir=`pwd` + +if [ ! -f $SRC_ARCHIVE/$MATH_INSTALLER ] +then + echo "" + echo "*** ERROR: Cannot find Mathematica installer" + echo "" + echo "You need to download the Mathematica installer from the Wolfram User Portal" + echo "(https://user.wolfram.com/portal/login.html) using a UCL site admin login or" + echo "from the UCL Software Database (https://swdb.ucl.ac.uk) using your UCL login." + echo "Place it somewhere in your file-system and set the SRC_ARCHIVE & MATH_INSTALLER" + echo "variables appropriately." + echo "" + exit 1 +fi + +# Run the installer. + +cd $SRC_ARCHIVE +./$MATH_INSTALLER -- -auto -createdir=y -targetdir=$INSTALL_PREFIX/$VERSION \ + -execdir=$INSTALL_PREFIX/$VERSION/bin + +# install UCL mathpass file + +cd $INSTALL_PREFIX/$VERSION +mkdir -p share/Licensing +cd share/Licensing +cp $EXTRA_FILES/mathpass-UCL mathpass + +# install Legion Kernel startup file + +cd .. +mkdir -p Kernel +cd Kernel +cp $EXTRA_FILES/init.m . + +# install Legion Default Parallel Kernels Prefs file + +cd $INSTALL_PREFIX +mkdir -p UCL +cd UCL +cp $EXTRA_FILES/Parallel_Preferences.m_UCL . + +cd $startDir + +echo "" +echo "Mathematica installation finished. Install Tunnel:" +echo "" +echo " ./mathematica-tunnel_install" +echo "" +echo "to support running kernels on multiple nodes." +echo "" diff --git a/mathematica-11.3_install b/mathematica-11.3_install new file mode 100755 index 00000000..44068d88 --- /dev/null +++ b/mathematica-11.3_install @@ -0,0 +1,75 @@ +#!/bin/bash + +# This script installs Mathematica 11.3.0 +# Brian Alston January 2018 +# Updated from 10.4 - August 2016 +# Updated to 11.0.1 - October 2016 +# Updated to remind to install of Tunnel.m package for multi-node communication - January 2017 +# Updated to 11.2 - January 2018 +# Updated to 11.3 - March 2018 +# Based on spm12_install by Owain Kenway + +# You need to download the Mathematica installer from the Wolfram User Portal +# (https://user.wolfram.com/portal/login.html) using a UCL site admin login. +# Place it somewhere in your file-system and set the SRC_ARCHIVE & MATH_INSTALLER +# variables appropriately. + +VERSION=${VERSION:-11.3} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/Mathematica} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/Mathematica/installers} +MATH_INSTALLER=${MATH_INSTALLER:-Mathematica_11.3.0_LINUX.sh} +EXTRA_FILES=${EXTRA_FILES:-/shared/ucl/apps/build_scripts/files/mathematica_UCL} + +set -e +startDir=`pwd` + +if [ ! -f $SRC_ARCHIVE/$MATH_INSTALLER ] +then + echo "" + echo "*** ERROR: Cannot find Mathematica installer" + echo "" + echo "You need to download the Mathematica installer from the Wolfram User Portal" + echo "(https://user.wolfram.com/portal/login.html) using a UCL site admin login or" + echo "from the UCL Software Database (https://swdb.ucl.ac.uk) using your UCL login." + echo "Place it somewhere in your file-system and set the SRC_ARCHIVE & MATH_INSTALLER" + echo "variables appropriately." + echo "" + exit 1 +fi + +# Run the installer. + +cd $SRC_ARCHIVE +./$MATH_INSTALLER -- -auto -createdir=y -targetdir=$INSTALL_PREFIX/$VERSION \ + -execdir=$INSTALL_PREFIX/$VERSION/bin + +# install UCL mathpass file + +cd $INSTALL_PREFIX/$VERSION +mkdir -p share/Licensing +cd share/Licensing +cp $EXTRA_FILES/mathpass-UCL mathpass + +# install Legion Kernel startup file + +cd .. +mkdir -p Kernel +cd Kernel +cp $EXTRA_FILES/init.m . + +# install Legion Default Parallel Kernels Prefs file + +cd $INSTALL_PREFIX +mkdir -p UCL +cd UCL +cp $EXTRA_FILES/Parallel_Preferences.m_UCL . + +cd $startDir + +echo "" +echo "Mathematica installation finished. Install Tunnel:" +echo "" +echo " ./mathematica-tunnel_install" +echo "" +echo "to support running kernels on multiple nodes." +echo "" diff --git a/mathematica-tunnel_install b/mathematica-tunnel_install index ae85b256..10150828 100755 --- a/mathematica-tunnel_install +++ b/mathematica-tunnel_install @@ -6,13 +6,17 @@ # # by Brian Alston, January 2017 # -# Will need modules: rcps-core/1.0.0, mathematica/11.0.1,git/2.10.2 +# Updated January 2018 for Mathematica 11.3. +# Updated May 2018 for MAthematica 11.3 +# +# Will need modules: rcps-core/1.0.0, mathematica/11.3.0 ,git/2.10.2 VERSION=${VERSION:-2.2.20} COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/UDUNITS/${VERSION}-${COMPILER_TAG}} MD5=${MD5:-1586b70a49dfe05da5fcc29ef239dce0} SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/sakra/Tunnel.git} +EXTRA_FILES=${EXTRA_FILES:-/shared/ucl/apps/build_scripts/files/mathematica_UCL} set -e @@ -24,7 +28,8 @@ source ${INCLUDES_DIR}/module_maker_inc.sh source ${INCLUDES_DIR}/require_inc.sh require gcc-libs/4.9.2 -require mathematica/11.0.1 +require xorg-utils/X11R7.7 +require mathematica/11.3.0 require git/2.10.2 temp_dir=`mktemp -d -p /dev/shm` @@ -35,9 +40,16 @@ git clone $SRC_ARCHIVE cd Tunnel ./install-tunnel.sh -# replace tunnel.m version containing correct /shared/ucl/apps lcoations for legion/Grace +# replace tunnel.m version containing correct /shared/ucl/apps lcoations for legion/Grace etc. cd $MATHEMATICA_BASE/Kernel cp tunnel.m tunnel.m_dist -cp ~/Software/Mathematica/Tunnel/Tunnel/scripts/tunnel.m . +cp $EXTRA_FILES/Tunnel/scripts/tunnel.m . + +# Fix minor bug in helper scripts +cd $MATHEMATICA_USERBASE/FrontEnd +cp tunnel.sh tunnel.sh_dist +sed -e '/export LD_LIBRARY_PATH/s/SystemFiles/SystemFiles\\/' tunnel.sh_dist > tunnel.sh +cp tunnel_sub.sh tunnel_sub.sh_dist +sed -e '/export LD_LIBRARY_PATH/s/SystemFiles/SystemFiles\\/' tunnel_sub.sh_dist > tunnel_sub.sh diff --git a/mcl-14-137_install b/mcl-14-137_install new file mode 100755 index 00000000..c9f5d003 --- /dev/null +++ b/mcl-14-137_install @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +############################################### +# Installing MCL +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-mcl} +VERSION=${VERSION:-14-137} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION} +MD5=${MD5:-bc8740456cf51019d0a9ac5eba665bb5} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://www.micans.org/mcl/src/mcl-${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/mcl +temp_dir=`mktemp -d -p /dev/shm/mcl` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -xvf $archive + + cd mcl-${VERSION} + ./configure --prefix=$INSTALL_PREFIX + make + make install +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/mesa-13.0.6_install b/mesa-13.0.6_install new file mode 100755 index 00000000..bbb0113e --- /dev/null +++ b/mesa-13.0.6_install @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +############################################### +# Installing Mesa +# (Gallium, LLVM, GLX, no EGL, no DRI) +# +# Local archive option as the download can be very slow. +# + +NAME=${NAME:-mesa} +VERSION=${VERSION:-13.0.6} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA=${SHA:-29ef104a7fc082d352b1599bd6cb1d040be424ccd22f5e0eb7ee9b0e9acd3597} +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.freedesktop.org/pub/mesa/$VERSION/mesa-${VERSION}.tar.xz} +LOCAL_ARCHIVE=${LOCAL_ARCHIVE:-/home/ccspapp/Scratch/mesa-${VERSION}.tar.xz} +USE_LOCAL_ARCHIVE=${USE_LOCAL_ARCHIVE:-no} +OPTIONS=${OPTIONS:-""} + +set -e + +# require modules for building +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +prereq gcc-libs +prereq compilers +prereq llvm + +mkdir -p /dev/shm/$NAME +temp_dir=`mktemp -d -p /dev/shm/$NAME` + +cd $temp_dir + +if [ "$USE_LOCAL_ARCHIVE" == "no" ] +then + wget $SRC_ARCHIVE + archive=$(basename "${SRC_ARCHIVE}") +else + echo "Using local archive: $LOCAL_ARCHIVE" + cp $LOCAL_ARCHIVE . + archive=$(basename "${LOCAL_ARCHIVE}") +fi + +CHECKSUM=`sha256sum $archive| awk '{print $1}'` + +if [ "$SHA" == "$CHECKSUM" ] +then + tar -xvf $archive + cd ${NAME}-${VERSION} + ./configure --prefix=$INSTALL_PREFIX \ + --enable-opengl --disable-gles1 --disable-gles2 \ + --disable-va --disable-xvmc --disable-vdpau \ + --enable-shared-glapi \ + --disable-texture-float \ + --enable-gallium-llvm --enable-llvm-shared-libs \ + --with-gallium-drivers=swrast,swr \ + --disable-dri --with-dri-drivers= \ + --disable-egl --with-egl-platforms= --disable-gbm \ + --enable-glx --enable-glx-tls \ + --disable-osmesa --enable-gallium-osmesa $OPTIONS + + make 2>&1 | tee make.log + make install + +else + echo "Hash mismatch." + echo "Expected: $SHA" + echo "Got: $CHECKSUM" +fi diff --git a/modules-3.2.10_install b/modules-3.2.10_install index 87cd3a39..130708ae 100755 --- a/modules-3.2.10_install +++ b/modules-3.2.10_install @@ -14,6 +14,8 @@ MODULE_ROOT_PATH=/shared/ucl/apps/modulefiles TCL_VERSION=8.6.4 +SHA256=${SHA256:-fb05c82a83477805a1d97737a9f0ca0db23f69b7bce504f1609ba99477b03955} +TCLSHA256=${TCLSHA256:-9e6ed94c981c1d0c5f5fefb8112d06c6bf4d050a7327e95e71d417c416519c8d} set -e @@ -25,6 +27,10 @@ wget \ http://downloads.sourceforge.net/project/modules/Modules/modules-${VERSION}/modules-${VERSION}.tar.gz \ ftp://ftp.tcl.tk/pub/tcl/tcl8_6/tcl${TCL_VERSION}-src.tar.gz + +sha256sum -c <<< "$SHA256 modules-${VERSION}.tar.gz" +sha256sum -c <<< "$TCLSHA256 tcl${TCL_VERSION}-src.tar.gz" + tar -xf modules-${VERSION}.tar.gz tar -xf tcl${TCL_VERSION}-src.tar.gz diff --git a/modules-3.2.10_install.dynrpath b/modules-3.2.10_install.dynrpath index 4d2249ee..139fcae6 100755 --- a/modules-3.2.10_install.dynrpath +++ b/modules-3.2.10_install.dynrpath @@ -14,7 +14,8 @@ MODULE_ROOT_PATH=/shared/ucl/apps/modulefiles/applications:/shared/ucl/apps/modu TCL_VERSION=8.6.4 - +SHA256=${SHA256:-fb05c82a83477805a1d97737a9f0ca0db23f69b7bce504f1609ba99477b03955} +TCLSHA256=${TCLSHA256:-9e6ed94c981c1d0c5f5fefb8112d06c6bf4d050a7327e95e71d417c416519c8d} set -e @@ -26,6 +27,12 @@ wget \ http://downloads.sourceforge.net/project/modules/Modules/modules-${VERSION}/modules-${VERSION}.tar.gz \ ftp://ftp.tcl.tk/pub/tcl/tcl8_6/tcl${TCL_VERSION}-src.tar.gz +sha256sum -c <<< "$SHA256 modules-${VERSION}.tar.gz" +sha256sum -c <<< "$TCLSHA256 tcl${TCL_VERSION}-src.tar.gz" + + + + tar -xf modules-${VERSION}.tar.gz tar -xf tcl${TCL_VERSION}-src.tar.gz diff --git a/modules-3.2.10_install.ubuntu b/modules-3.2.10_install.ubuntu new file mode 100755 index 00000000..0134d0e4 --- /dev/null +++ b/modules-3.2.10_install.ubuntu @@ -0,0 +1,75 @@ +#!/usr/bin/env bash + +############################################### +# Installing modules-3.2.10 +# +# by Ian Kirker, 2015 +# +# Patched to work on Ubuntu 16.04 by Owain Kenway + +VERSION=${VERSION:-3.2.10} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/modules/$VERSION} +MODULE_ROOT_PATH=/shared/ucl/apps/modulefiles/applications:/shared/ucl/apps/modulefiles/bundles:/shared/ucl/apps/modulefiles/compilers:/shared/ucl/apps/modulefiles/core:/shared/ucl/apps/modulefiles/development:/shared/ucl/apps/modulefiles/libraries + +TCL_VERSION=8.6.4 + +TCL_PREFIX=$INSTALL_PREFIX/tcl/$TCL_VERSION + +SHA256=${SHA256:-fb05c82a83477805a1d97737a9f0ca0db23f69b7bce504f1609ba99477b03955} +TCLSHA256=${TCLSHA256:-9e6ed94c981c1d0c5f5fefb8112d06c6bf4d050a7327e95e71d417c416519c8d} + +set -e + +temp_dir=`mktemp -d` + +cd $temp_dir + +wget \ + http://downloads.sourceforge.net/project/modules/Modules/modules-${VERSION}/modules-${VERSION}.tar.gz \ + ftp://ftp.tcl.tk/pub/tcl/tcl8_6/tcl${TCL_VERSION}-src.tar.gz + + +sha256sum -c <<< "$SHA256 modules-${VERSION}.tar.gz" +sha256sum -c <<< "$TCLSHA256 tcl${TCL_VERSION}-src.tar.gz" + +tar -xf modules-${VERSION}.tar.gz +tar -xf tcl${TCL_VERSION}-src.tar.gz + +cd tcl${TCL_VERSION}/unix + +./configure --prefix=$TCL_PREFIX --disable-shared --enable-64bit --disable-threads +make && make install +# Unfortunately the build tests for Tcl require threads, which require shared libraries, which disables static library building. +# C_C + +cd $temp_dir/modules-${VERSION} + +# Removes the default additions to the initial module search path. +sed --in-place -e 's/^@\([^M]\)/#@\1/' init/.modulespath.in + +./configure \ + --prefix=${INSTALL_PREFIX} \ + --with-static=yes \ + --with-tcl-inc=$TCL_PREFIX/include \ + --with-tcl-lib=$TCL_PREFIX/lib \ + --with-tcl=$TCL_PREFIX/lib \ + --with-tcl-ver=8.6 \ + --with-tclx-ver=8.6 \ + --without-tclx \ + --with-module-path=${MODULE_ROOT_PATH} \ + CPPFLAGS="-DUSE_INTERP_ERRORLINE" \ + LDFLAGS="-ldl -lz" + +# Add -ldl -lz to the end of all build lines with -ltcl as ORDER MATTERS NOW. +sed -i.bak "s|-ltcl8.6|-ltcl8.6 -ldl -lz|g" Makefile + +# If you don't add the CPPFLAGS definition above, you'll get a build error because +# a deprecated feature of Tcl is used. +# See: http://sourceforge.net/p/modules/bugs/62/ + +# Also, I specified a Tcl version here to stop it misdetecting and using the system Tcl libraries +# (which don't have a static version) because ./configure just uses tclsh instead of the config +# file it actually detects the entry before. *sigh* + +make && make install + diff --git a/mpi4py-2.0.0_install b/mpi4py-2.0.0_install index 714da24e..9696dca7 100755 --- a/mpi4py-2.0.0_install +++ b/mpi4py-2.0.0_install @@ -8,7 +8,7 @@ NAME=${NAME:-mpi4py} VERSION=${VERSION:-2.0.0} -INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG/python$PYTHON_VERSION_TAG} SRC_ARCHIVE=${SRC_ARCHIVE:-https://bitbucket.org/${NAME}/${NAME}/downloads/${NAME}-${VERSION}.tar.gz} MD5=${MD5:-4f7d8126d7367c239fd67615680990e3} # python2 or python3 diff --git a/mpi4py-3.0.0_install b/mpi4py-3.0.0_install new file mode 100755 index 00000000..ef5e1588 --- /dev/null +++ b/mpi4py-3.0.0_install @@ -0,0 +1,75 @@ +#!/usr/bin/env bash + +############################################### +# Installing mpi4py outside python bundle as it requires an MPI module +# +# +# + +NAME=${NAME:-mpi4py} +VERSION=${VERSION:-3.0.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG/python$PYTHON_VERSION_TAG} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://bitbucket.org/${NAME}/${NAME}/downloads/${NAME}-${VERSION}.tar.gz} +MD5=${MD5:-bfe19f20cef5e92f6e49e50fb627ee70} +# python2 or python3 +PYTHON_VERSION=${PYTHON_VERSION:-python3} +PATCH_RECV_MPROBE=${PATCH_RECV_MPROBE:-TRUE} +set -e + +# module prereqs for building +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +prereq gcc-libs +prereq compilers/gnu +prereq mpi/openmpi + +if [ "$PYTHON_VERSION" == "python2" ] +then + prereq python2 +elif [ "$PYTHON_VERSION" == "python3" ] +then + prereq python3 +fi + +mkdir -p /dev/shm/${NAME} +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -xvf $archive + cd ${NAME}-${VERSION} + +# Patch OPA/TrueScale issues. +if [ "$PATCH_RECV_MPROBE" == "TRUE" ] +then + echo "PATCHING rc.recv_mprobe TO False in src/mpi4py/__init__.py" + sed -i.bak "s|rc.recv_mprobe = True|rc.recv_mprobe = False|g" src/mpi4py/__init__.py + cat src/mpi4py/__init__.py +fi + +# both versions can be happily installed into the same install prefix - +# they go into lib/python2.7 and lib/python3.4 +if [ "$PYTHON_VERSION" == "python2" ] +then + python setup.py build 2>&1 | tee build.log + python setup.py install --prefix=$INSTALL_PREFIX 2>&1 | tee build.log +elif [ "$PYTHON_VERSION" == "python3" ] +then + python3 setup.py build 2>&1 | tee build.log + python3 setup.py install --prefix=$INSTALL_PREFIX 2>&1 | tee build.log +fi + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi + diff --git a/mrtrix-0.3.16_nogui_install b/mrtrix-0.3.16_nogui_install new file mode 100755 index 00000000..6c7eff1f --- /dev/null +++ b/mrtrix-0.3.16_nogui_install @@ -0,0 +1,57 @@ +#!/usr/bin/env bash + +# NB: Deliberately builds without the GUI + +set -o errexit \ + -o pipefail + +package_name="mrtrix" +package_version=0.3.16 + +for i in ${includes_dir:-$(dirname $0 2>/dev/null)/includes}/{module_maker,require,tools}_inc.sh; do . $i; done + +module purge +module load gcc-libs +module load eigen +module load compilers/gnu/4.9.2 +module load python3 + +make_build_env + +# Blerg, had to hard-core path for the installer: it doesn't search CPATH or anything +export EIGEN_CFLAGS="-I/shared/ucl/apps/eigen/3.2.5/gnu-4.9.2/include/eigen3" + + +# I'm still not sure whether it needs to be built in the directory it's going to be installed into +# but there's no install script +# Playing it safe for now + +install_prefix="${install_prefix%/}" # just in case +mkdir -p "$install_prefix" +cd "$install_prefix"/.. + +# v-- if you download a release archive, you can't run the tests (it uses subtree to a different repo to grab the test data) +git clone --recursive --branch "${package_version}" https://github.com/MRtrix3/mrtrix3.git "$install_prefix" +cd "$install_prefix" +python configure -nogui +python build + + +# Fix PATH here to include scripts dir, otherwise population_template test fails +# running "population_template"... 0 of 1 passed <-------- ERROR +export PATH="$PATH:$(pwd)/scripts" + +./run_tests + + +make_module \ + -w "MRtrix provides a set of tools to perform various advanced diffusion MRI analyses, including constrained spherical deconvolution (CSD), probabilistic tractography, track-density imaging, and apparent fibre density." \ + -e PATH:"$install_prefix/scripts" \ + -e PATH:"$install_prefix/release/bin" \ + -c mrtrix \ + -r gcc-libs \ + -r python3 \ + -d \ + -o "$module_dir/$package_label/nogui" + +echo "Module in: $module_dir/$package_label/nogui" diff --git a/mrtrix-3.0RC3_nogui_install b/mrtrix-3.0RC3_nogui_install new file mode 100755 index 00000000..80d56391 --- /dev/null +++ b/mrtrix-3.0RC3_nogui_install @@ -0,0 +1,62 @@ +#!/usr/bin/env bash + +############################################### +# Installing MRtrix 3.0 RC 3 +# +# Configure requires X-forwarding. +# Once built, mrview and shview will not work over X-forwarding (OpenGL3.3). +# Building for command-line tools only. +# by Heather Kelly, 2015 +# +# Updated Sept 2018 for V 3.0RC3 +# + +# NB: Deliberately builds without the GUI + +NAME=${NAME:-mrtrix} +VERSION=${VERSION:-3.0RC3} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +# INSTALL_PREFIX=${INSTALL_PREFIX:-/home/ccspapp/apps/$NAME/$VERSION/$COMPILER_TAG} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/MRtrix3/mrtrix3.git} + +set -e + +# module prereqs for building +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +require compilers/gnu/4.9.2 +require python3/recommended +require qt/4.8.6/gnu-4.9.2 +require eigen/3.2.5/gnu-4.9.2 +require fftw/3.3.6-pl2/gnu-4.9.2 + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +# Blerg, had to hard-core path for the installer: it doesn't search CPATH or anything +export EIGEN_CFLAGS="-I/shared/ucl/apps/eigen/3.2.5/gnu-4.9.2/include/eigen3" + + +# I'm still not sure whether it needs to be built in the directory it's going to be installed into +# but there's no install script +# Playing it safe for now + +install_prefix="${INSTALL_PREFIX%/}" # just in case +mkdir -p "$INSTALL_PREFIX" +cd "$INSTALL_PREFIX"/.. + +# v-- if you download a release archive, you can't run the tests (it uses subtree to a different repo to grab the test data) +git clone $SRC_ARCHIVE "$INSTALL_PREFIX" +cd "$INSTALL_PREFIX" +./configure -nogui +./build + + +# Fix PATH here to include scripts dir, otherwise population_template test fails +# running "population_template"... 0 of 1 passed <-------- ERROR +export PATH="$PATH:$(pwd)/scripts" + +./run_tests + diff --git a/mstor-2013_install b/mstor-2013_install new file mode 100755 index 00000000..2d055416 --- /dev/null +++ b/mstor-2013_install @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +set -o errexit + +for i in ${includes_dir:=$(dirname "$0" 2>/dev/null)/includes}/{module_maker,require,tools}_inc.sh; do source "$i"; done + +package_name=mstor +package_version=2013 +package_variant="" +package_description="MSTor is a program for calculating partition functions, free energies, enthalpies, entropies, and heat capacities of complex molecules including torsional anharmonicity." + +module purge +require gcc-libs +require compilers/gnu/4.9.2 + +owd="$(pwd)" +package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}/${COMPILER_TAG}" +install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} +build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} +module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} +cd "$build_dir" + +bundle=umn-comp-chem-bundle-2017-05-09.tar.gz + +cp "/shared/ucl/apps/pkg-store/$bundle" ./ + +tar -xzf "$bundle" +cd umn-comp-chem-bundle-2017-05-09 +tar -xzf mstor_v2013.tar.gz + +cd mstor + +./install.pl +mkdir -p "$install_prefix/bin" +cp exe/* "$install_prefix/bin/" +echo "Executables in: $install_prefix/bin" + +make_module \ + -p "$install_prefix" \ + -r gcc-libs \ + -c mstor \ + -o "$module_dir/$package_label" \ + -w "$package_description" + +echo "Modules in: $module_dir/$package_label" + diff --git a/mumax-3.9.3_install b/mumax-3.9.3_install new file mode 100755 index 00000000..84afd333 --- /dev/null +++ b/mumax-3.9.3_install @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-mumax} +VERSION=${VERSION:-3.9.3} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-051b5fc238ac057ef86ae95186b5e9bc} +SHA1=${SHA1:-571361681a42b13581a0e387b8072d8ffe7e0b0e} +SHA256=${SHA256:-122f9f8b2804fa1558677c696b4424108d5ff68d5a1aaaa99d4fd247bbe84b23} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/mumax/3/archive/v${VERSION}.tar.gz} + +set -e + +export GOPATH=$INSTALL_PREFIX +mkdir -p $GOPATH + +cd $GOPATH + +wget $SRC_ARCHIVE + +archive=$(basename "${SRC_ARCHIVE}") +md5sum -c <<< "$MD5 $archive" +sha1sum -c <<< "$SHA1 $archive" +sha256sum -c <<< "$SHA256 $archive" + +tar -xvf $archive + +mkdir -p $GOPATH/src/github.com/mumax/ + +mv 3-${VERSION} $GOPATH/src/github.com/mumax/3 + +cd $GOPATH/src/github.com/mumax/3/cmd/mumax3 +go install + + + diff --git a/mysql-connector-python-2.0.4_install b/mysql-connector-python-2.0.4_install new file mode 100755 index 00000000..1614e352 --- /dev/null +++ b/mysql-connector-python-2.0.4_install @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +############################################### +# Installing mysql-connector-python +# +# +# + +NAME=${NAME:-mysql-connector-python} +VERSION=${VERSION:-2.0.4} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-3df394d89300db95163f17c843ef49df} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://cdn.mysql.com/Downloads/Connector-Python/${NAME}-${VERSION}.zip} + +set -e + +mkdir -p /dev/shm/${NAME} +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + unzip $archive + cd ${NAME}-${VERSION} + python3 setup.py install --prefix=$INSTALL_PREFIX + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/nag-fl-mark26-gcc_install b/nag-fl-mark26-gcc_install new file mode 100755 index 00000000..bf0f011d --- /dev/null +++ b/nag-fl-mark26-gcc_install @@ -0,0 +1,35 @@ +#!/bin/bash + +# This script installs NAG Fortran Library Mark 26 for GCC. +# Brian Alston January 2018 +# +# Updated May 2016 to set execute permission on installer ( needed for older versions). +# Updated Jan 2018 for Mark 26 +# +# Based on spm12_install by Owain Kenway + + +VERSION=${VERSION:-26} +PRODUCT=${PRODUCT:-fll6i26dfl} +DOC=${DOC:-mk${VERSION}_doc} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/NAG/fortran-library} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.nag.co.uk/downloads/impl/$PRODUCT.tgz} +DOC_ARCHIVE=${DOC_ARCHIVE:-http://www.nag.co.uk/downloads/impl/$DOC.tgz} +# MD5_SRC=${MD5_SRC:-1c370fe9eec4e4ea210e566f388018cd} +# MD5_DOC=${MD5_DOC:-d5d88b864f9e2ea7d19770a19c766d1b} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir +wget $SRC_ARCHIVE +wget $DOC_ARCHIVE + +tar xvzf $PRODUCT.tgz +gunzip $DOC.tgz + +chmod +x install.sh +./install.sh -accept -installdir=$INSTALL_PREFIX \ + -docinstalldir=$INSTALL_PREFIX/doc + diff --git a/nag-fl-mark26-intel_install b/nag-fl-mark26-intel_install new file mode 100755 index 00000000..1cc40256 --- /dev/null +++ b/nag-fl-mark26-intel_install @@ -0,0 +1,33 @@ +#!/bin/bash + +# This script installs NAG Fortran Library Mark 26 for Intel Compilers. +# Brian Alston July 2015 + +# Updated January 2018 for Mark 26 + +# Based on spm12_install by Owain Kenway + + +VERSION=${VERSION:-26} +PRODUCT=${PRODUCT:-fll6i26dcl} +DOC=${DOC:-mk${VERSION}_doc} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/NAG/fortran-library} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.nag.co.uk/downloads/impl/$PRODUCT.tgz} +DOC_ARCHIVE=${DOC_ARCHIVE:-http://www.nag.co.uk/downloads/impl/$DOC.tgz} +# MD5_SRC=${MD5_SRC:-1c370fe9eec4e4ea210e566f388018cd} +# MD5_DOC=${MD5_DOC:-d5d88b864f9e2ea7d19770a19c766d1b} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir +wget $SRC_ARCHIVE +wget $DOC_ARCHIVE + +tar xvzf $PRODUCT.tgz +gunzip $DOC.tgz + +./install.sh -accept -installdir=$INSTALL_PREFIX \ + -docinstalldir=$INSTALL_PREFIX/doc + diff --git a/nag-fl-mark26-nag_install b/nag-fl-mark26-nag_install new file mode 100755 index 00000000..400c30cc --- /dev/null +++ b/nag-fl-mark26-nag_install @@ -0,0 +1,31 @@ +#!/bin/bash + +# This script installs NAG Fortran Library Mark 26 for the NAF Fortran Compiler. +# Brian Alston January 2018 +# Based on spm12_install by Owain Kenway + +# fll6i26d9l + +VERSION=${VERSION:-26} +PRODUCT=${PRODUCT:-fll6i26d9l} +DOC=${DOC:-mk${VERSION}_doc} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/NAG/fortran-library} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.nag.co.uk/downloads/impl/$PRODUCT.tgz} +DOC_ARCHIVE=${DOC_ARCHIVE:-http://www.nag.co.uk/downloads/impl/$DOC.tgz} +# MD5_SRC=${MD5_SRC:-1c370fe9eec4e4ea210e566f388018cd} +# MD5_DOC=${MD5_DOC:-d5d88b864f9e2ea7d19770a19c766d1b} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir +wget $SRC_ARCHIVE +wget $DOC_ARCHIVE + +tar xvzf $PRODUCT.tgz +gunzip $DOC.tgz + +./install.sh -accept -installdir=$INSTALL_PREFIX \ + -docinstalldir=$INSTALL_PREFIX/doc + diff --git a/nag-matlab-tb-mark25_install b/nag-matlab-tb-mark25_install new file mode 100755 index 00000000..56e158f4 --- /dev/null +++ b/nag-matlab-tb-mark25_install @@ -0,0 +1,45 @@ +#!/bin/bash -l + +# This script installs NAG Toolbox for Matlab Mark 25. +# Brian Alston April 2018 +# Based on spm12_install by Owain Kenway + + +VERSION=${VERSION:-25} +PRODUCT=${PRODUCT:-mbl6i25dnl} +# DOC=${DOC:-mk${VERSION}_doc} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/NAG/matlab-toolbox} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.nag.co.uk/downloads/impl/$PRODUCT.tgz} +# DOC_ARCHIVE=${DOC_ARCHIVE:-http://www.nag.co.uk/downloads/impl/$DOC.tgz} +# MD5_SRC=${MD5_SRC:-1c370fe9eec4e4ea210e566f388018cd} +# MD5_DOC=${MD5_DOC:-d5d88b864f9e2ea7d19770a19c766d1b} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir +wget $SRC_ARCHIVE +# wget $DOC_ARCHIVE + +# Unfortunately this doesn't work from within a script!!!!! Horror!! +tar xvzf $PRODUCT.tgz +# gunzip $DOC.tgz +cd $PRODUCT + +# Unfortunately this doesn't work from within a script!!!!! Horror!! +# sh ./INSTALL < Make.charm + +cd arch +cp /shared/ucl/apps/build_scripts/namd-patches/*.patch . +patch < Linux-x86_64.tcl.patch +patch < Linux-x86_64.fftw.patch + +cd .. +./config Linux-x86_64-icc --charm-arch ${CHARMARC} + +cd Linux-x86_64-icc +make + +cd ${temp_dir}/${NANAME}/Linux-x86_64-icc +rm ${INSTALL_PREFIX}/${NANAME} +mkdir -p ${INSTALL_PREFIX}/${NANAME}/bin +for a in flipbinpdb flipdcd namd2 psfgen +do + echo "Installing $a" + cp $a ${INSTALL_PREFIX}/${NANAME}/bin +done diff --git a/nasm-2.13.01_install b/nasm-2.13.01_install new file mode 100755 index 00000000..d01319cb --- /dev/null +++ b/nasm-2.13.01_install @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +set -o errexit + +for i in ${includes_dir:=$(dirname "$0" 2>/dev/null)/includes}/{module_maker,require,tools}_inc.sh; do source "$i"; done + +package_name=nasm +package_version=2.13.01 +package_variant="" +package_description="The Netwide Assembler, NASM, is an 80x86 and x86-64 assembler." + +module purge + +owd="$(pwd)" +package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}${COMPILER_TAG:+/$COMPILER_TAG}" +install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} +build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} +module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} +cd "$build_dir" + +src_url="http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.xz" +src_file="nasm-2.13.01.tar.xz" +wget "$src_url" +manifest sha1:b2ff7fbb085cfc7ba29f48cd79cb1e88bbcc128b nasm-2.13.01.tar.xz +tar -xJf "$src_file" + +cd "nasm-2.13.01" + + +./configure \ + --prefix="$install_prefix" \ + +make +make test +make install + +echo "Executables in: $install_prefix/bin" + +make_module \ + -p "$install_prefix" \ + -c nasm \ + -o "$module_dir/$package_label" \ + -w "$package_description" + +echo "Modules in: $module_dir/$package_label" + diff --git a/nedit-5.6_install b/nedit-5.6_install index cca0601e..578b4490 100755 --- a/nedit-5.6_install +++ b/nedit-5.6_install @@ -20,7 +20,7 @@ INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} source ${INCLUDES_DIR}/module_maker_inc.sh source ${INCLUDES_DIR}/require_inc.sh -require default-modules +require rcps-core temp_dir=`mktemp -d -p /dev/shm` diff --git a/netcdf-fortran_4.4.1_install b/netcdf-fortran_4.4.1_install index dbc35f6e..9a55b9f1 100755 --- a/netcdf-fortran_4.4.1_install +++ b/netcdf-fortran_4.4.1_install @@ -16,7 +16,9 @@ SPECIAL=${SPECIAL:-NO} if [[ "$SPECIAL" == "cesm" ]] then - INSTALL_PREFIX=/shared/ucl/apps/cesm/support/netcdf + YEAR=${COMPILER_TAG:6} + echo "DETECTED CESM BUILD $YEAR" + INSTALL_PREFIX=/shared/ucl/apps/cesm/support/netcdf-${YEAR} fi set -e @@ -40,8 +42,9 @@ then export LDFLAGS="-L/shared/ucl/apps/NetCDF/4.3.3.1-${COMPILER_TAG}/lib" if [[ "$SPECIAL" == "cesm" ]] then - export CPPFLAGS="-I/shared/ucl/apps/cesm/support/netcdf/include" - export LDFLAGS="-L/shared/ucl/apps/cesm/support/lib" + echo "DETECTED CESM BUILD $YEAR" + export CPPFLAGS="-I/shared/ucl/apps/cesm/support/netcdf-${YEAR}/include" + export LDFLAGS="-L/shared/ucl/apps/cesm/support/netcdf-${YEAR}lib" fi diff --git a/netcdf_4.3.3.1_GCC_S_install b/netcdf_4.3.3.1_GCC_S_install index 02f096e2..e181befd 100755 --- a/netcdf_4.3.3.1_GCC_S_install +++ b/netcdf_4.3.3.1_GCC_S_install @@ -13,8 +13,21 @@ MD5=${MD5:-5c9dad3705a3408d27f696e5b31fb88c} SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-${VERSION}.tar.gz} NETCDF_OPTIONS=${NETCDF_OPTIONS:-"--enable-netcdf4"} +# We need to support installing this into a variety of non standard locations with non-standard builds. +SPECIAL=${SPECIAL:-NO} + set -e + +if [[ "$SPECIAL" == "cesm" ]] +then + YEAR=${COMPILER_TAG:6} + echo "DETECTED CESM BUILD $YEAR" + INSTALL_PREFIX=/shared/ucl/apps/cesm/support/netcdf-${YEAR} +fi + + + export PATH=$INSTALL_PREFIX/bin:$PATH temp_dir=`mktemp -d -p /dev/shm` @@ -27,7 +40,7 @@ CHECKSUM=`md5sum netcdf-${VERSION}.tar.gz| awk '{print $1}'` HDF_TAG=$COMPILER_TAG -if [[ "$COMPILER_TAG" == "intel-2015-update2" ]] +if [[ "${COMPILER_TAG:0:5}" == "intel" ]] then HDF_TAG="Intel_2015" fi diff --git a/nwchem-6.6_install b/nwchem-6.6_install index a0b057a6..94055be7 100755 --- a/nwchem-6.6_install +++ b/nwchem-6.6_install @@ -40,12 +40,8 @@ MPI_F90=${mpif90} MPI_CC=${mpicc} MPI_CXX=${mpicxx} -ARMCI_NETWORK=${ARMCI_NETWORK:-OPENIB} +ARMCI_NETWORK=${ARMCI_NETWORK:-MPI-PR} MSG_COMMS=${MSG_COMMS:-MPI} -IB_HOME=${IB_HOME:-/usr} -IB_INCLUDE=${IB_INCLUDE:-$IB_HOME/include} -IB_LIB=${IB_LIB:-$IB_HOME/lib64} -IB_LIB_NAME=${IB_LIB_NAME:-"-libverbs"} PYTHONHOME=${PYTHONHOME:-/shared/ucl/apps/python/2.7.9/gnu-4.9.2/} PYTHONVERSION=${PYTHONVERSION:-2.7} @@ -68,7 +64,8 @@ fi set -e -temp_dir=`mktemp -d -p /dev/shm` +mkdir -p /dev/shm/$NAME +temp_dir=`mktemp -d -p /dev/shm/${NAME}` cd $temp_dir @@ -107,10 +104,6 @@ then export ARMCI_NETWORK export MSG_COMMS - export IB_HOME - export IB_INCLUDE - export IB_LIB - export IB_LIB_NAME export PYTHONHOME export PYTHONVERSION diff --git a/nwchem-6.8_install b/nwchem-6.8_install new file mode 100755 index 00000000..e70b95b7 --- /dev/null +++ b/nwchem-6.8_install @@ -0,0 +1,114 @@ +#!/usr/bin/env bash + +############################################### +# Installing NWChem +# +# Built with Intel MPI and MKL. +# Builds for architecture - need to build on oldest host. + +NAME=${NAME:-nwchem} +VERSION=${VERSION:-6.8} +REVISION=${REVISION:-47-gdf6c956} +INSTALL_PREFIX=${INSTALL_PREFIX:-"/shared/ucl/apps/$NAME/$VERSION-$REVISION/$COMPILER_TAG"} +SHA256=${SHA256:-83d875d7e4c9dd1f52bdb059376c26fdf9b14940a411594db55545ad4ca3cb14} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/nwchemgit/nwchem/releases/download/v6.8-release/nwchem-6.8-release.revision-v6.8-47-gdf6c956-src.2017-12-14.tar.bz2} +SRC_DIR=${SRC_DIR:-"nwchem-$VERSION"} + +# Doesn't work with python 3 yet +PYTHONHOME=${PYTHONHOME:-/shared/ucl/apps/python/2.7.12/gnu-4.9.2/} +PYTHONVERSION=${PYTHONVERSION:-2.7} + +set -e + +# load modules for building +for i in $(dirname -- "$0" 2>/dev/null)/includes/{module_maker,require}_inc.sh; do . $i; done +module purge +require gcc-libs +require compilers/intel/2017/update4 +require mpi/intel/2017/update3/intel +require python/2.7.12 + +mkdir -p "/dev/shm/$NAME" +temp_dir=$(mktemp -d -p "/dev/shm/${NAME}") + +cd "$temp_dir" + +wget "$SRC_ARCHIVE" +archive=$(basename "${SRC_ARCHIVE}") + +echo "Checking hashes:" +sha256sum -c <<<"$SHA256 $archive" + +tar -xvf "$archive" + +# NWChem wants its variables exported. +export FL="ifort" + +export NWCHEM_TOP="$temp_dir/$SRC_DIR" +export NWCHEM_TARGET="LINUX64" +export NWCHEM_MODULES="all python" +export NWCHEM_LONG_PATHS="Y" +export LARGE_FILES="TRUE" +# NOIO recommended on clusters +export USE_NOIO="TRUE" + +export USE_OPENMP="y" +export USE_MPI="y" +export USE_MPIF="y" +export USE_MPIF4="y" +export MPI_LOC="$MPI_HOME" +# can run contrib/distro-tools/getmpidefs_nwchem to get these +#export MPI_INCLUDE="-I$MPI_HOME/intel64/include" +#export MPI_LIB="-L$MPI_HOME/intel64/lib/release_mt -L$MPI_HOME/intel64/lib" +#export LIBMPI="-lmpifort -lmpi -lmpigi -ldl -lrt -lpthread" + +export MPI_F90="mpif90" +export MPI_CC="mpicc" +export MPI_CXX="mpicxx" + +# Docs: "On Intel True Scale and Omni Path systems, MPI-PR is more reliable than OPENIB or MPI-SPAWN" +export ARMCI_NETWORK="MPI-PR" +export MSG_COMMS="MPI" + +export PYTHONHOME +export PYTHONVERSION + +export BLASOPT="${MKLROOT}/lib/intel64/libmkl_blas95_ilp64.a -L${MKLROOT}/lib/intel64 -lmkl_intel_ilp64 -lmkl_core -lmkl_sequential -lpthread -lm" +export LAPACK_LIB="${MKLROOT}/lib/intel64/libmkl_lapack95_ilp64.a" +export USE_SCALAPACK="y" +export SCALAPACK_SIZE=8 +export SCALAPACK="-L${MKLROOT}/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 -lmkl_core -lmkl_sequential -lmkl_blacs_intelmpi_ilp64 -lpthread -lm" + +# make nwchem +cd "$NWCHEM_TOP/src" +make nwchem_config 2>&1 | tee ../nwchem_config.log +make 2>&1 | tee ../nwchem_make.log + +# install + +mkdir -p "$INSTALL_PREFIX/bin" +cp "$NWCHEM_TOP/bin/${NWCHEM_TARGET}/nwchem" "$INSTALL_PREFIX/bin" +chmod 755 "$INSTALL_PREFIX/bin/nwchem" +cd "$NWCHEM_TOP/src/" +cp -r data "$INSTALL_PREFIX" +cd "$NWCHEM_TOP/src/basis" +cp -r libraries "$INSTALL_PREFIX/data" +cd "$NWCHEM_TOP/src/nwpw" +cp -r libraryps "$INSTALL_PREFIX/data" +chmod -R a+rx "$INSTALL_PREFIX/data" +cp -r "$NWCHEM_TOP/examples" "$INSTALL_PREFIX" + +# create .nwchemrc +cat <> $INSTALL_PREFIX/.nwchemrc +nwchem_basis_library $INSTALL_PREFIX/data/libraries/ +nwchem_nwpw_library $INSTALL_PREFIX/data/libraryps/ +ffield amber +amber_1 $INSTALL_PREFIX/data/amber_s/ +amber_2 $INSTALL_PREFIX/data/amber_q/ +amber_3 $INSTALL_PREFIX/data/amber_x/ +amber_4 $INSTALL_PREFIX/data/amber_u/ +spce $INSTALL_PREFIX/data/solvents/spce.rst +charmm_s $INSTALL_PREFIX/data/charmm_s/ +charmm_x $INSTALL_PREFIX/data/charmm_x/ +EOT + diff --git a/octave-4.4.1_install b/octave-4.4.1_install new file mode 100755 index 00000000..d36a12be --- /dev/null +++ b/octave-4.4.1_install @@ -0,0 +1,62 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# +set -e +for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +require gcc-libs +require compilers/gnu/4.9.2 +require openblas/0.3.2-serial/gnu-4.9.2 +require fftw/3.3.6-pl2/gnu-4.9.2 +require arpack-ng/3.5.0/gnu-4.9.2-serial +require suitesparse/4.5.5/gnu-4.9.2-serial +require ghostscript/9.19/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require java/1.8.0_92 +require libtool/2.4.6 +require perl/5.22.0 +require graphicsmagick/1.3.21 +require texlive/2015 +require bison/3.0.4/gnu-4.9.2 +require gnuplot/5.0.1 +require texinfo/5.2/gnu-4.9.2 + + + +NAME=${NAME:-octave} +VERSION=${VERSION:-4.4.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA512=${SHA512:-21a1f13e2145fa530f2169254d19442b572745d65b91453ba1f552f6eda6aecfead57dbe0260b3293a29db0aa0f27cfd4f26df332e6d640848a822b20c1232f8} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://ftp.gnu.org/gnu/octave/octave-${VERSION}.tar.gz} + + +#module load compilers/gnu/4.9.2 openblas/0.3.2-serial/gnu-4.9.2 fftw/3.3.6-pl2/gnu-4.9.2 arpack-ng/3.5.0/gnu-4.9.2-serial suitesparse/4.5.5/gnu-4.9.2-serial ghostscript/9.19/gnu-4.9.2 +# hdf/5-1.8.15/gnu-4.9.2 java/1.8.0_92 libtool/2.4.6 perl/5.22.0 graphicsmagick/1.3.21 texlive/2015 bison/3.0.4/gnu-4.9.2 gnuplot/5.0.1 texinfo/5.2/gnu-4.9.2 + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha512sum -c <<< "$SHA512 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} + +./configure --prefix=$INSTALL_PREFIX +make -j 12 +make check +rm -rf $INSTALL_PREFIX +mkdir -p $INSTALL_PREFIX + +make install diff --git a/openblas-v0.2.14-threads_install b/openblas-v0.2.14-threads_install new file mode 100755 index 00000000..4e0f1793 --- /dev/null +++ b/openblas-v0.2.14-threads_install @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +############################################### +# Installing OpenBLAS +# +# by Owain Kenway, 2015 +# + +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +VERSION=${VERSION:-0.2.14} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/openblas/${VERSION}-threads/$COMPILER_TAG} +MD5=${MD5:-53cda7f420e1ba0ea55de536b24c9701} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/xianyi/OpenBLAS/archive/v${VERSION}.tar.gz} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +temp_dir=`mktemp -d` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum v${VERSION}.tar.gz| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -zxvf v${VERSION}.tar.gz + + cd OpenBLAS-${VERSION} + make PREFIX=${INSTALL_PREFIX} DYNAMIC_ARCH=1 USE_OPENMP=1 + make PREFIX=${INSTALL_PREFIX} DYNAMIC_ARCH=1 USE_OPENMP=1 install + +# Fixes for various packages e.g. numpy with broken search routines. + cd $INSTALL_PREFIX/lib + ln -s libopenblas.so liblapack.so + ln -s libopenblas.so libblas.so + ln -s libopenblas.a liblapack.a + ln -s libopenblas.a libblas.a +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/openblas-v0.3.2_install b/openblas-v0.3.2_install new file mode 100755 index 00000000..568ba514 --- /dev/null +++ b/openblas-v0.3.2_install @@ -0,0 +1,78 @@ +#!/usr/bin/env bash + +############################################### +# Installing OpenBLAS + +set -e + +package_name="openblas" +package_version="0.3.2" +package_description="OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." +package_source="${SRC_ARCHIVE:-https://github.com/xianyi/OpenBLAS/archive/v${package_version}.tar.gz}" + +source "includes/source_includes.sh" + +module purge +module load gcc-libs/4.9.2 +module load compilers/gnu/4.9.2 + +declare -a module_dir_list + +owd="$(pwd -P)" +for package_variant in "serial" "native-threads" "openmp"; do + + make_build_env "" + + cd "$build_dir" + + wget "$package_source" + manifest sha256:e8ba64f6b103c511ae13736100347deb7121ba9b41ba82052b1a018a65c0cb15 "v${package_version}.tar.gz" + + tar -zxvf "v${package_version}.tar.gz" + + if [[ "$package_variant" == "serial" ]]; then + use_threads=0 + use_openmp=0 + elif [[ "$package_variant" == "native-threads" ]]; then + use_threads=1 + use_openmp=0 + elif [[ "$package_variant" == "openmp" ]]; then + use_threads=1 + use_openmp=1 + fi + + cd "OpenBLAS-${package_version}" + make PREFIX=${install_prefix} DYNAMIC_ARCH=1 USE_THREAD="$use_threads" USE_OPENMP="$use_openmp" + + rm -rf ${install_prefix} + mkdir -p ${install_prefix} + + make PREFIX=${install_prefix} DYNAMIC_ARCH=1 USE_THREAD="$use_threads" USE_OPENMP="$use_openmp" install + + # Fixes for various packages e.g. numpy with broken search routines. + cd $install_prefix/lib + ln -s libopenblas.so liblapack.so + ln -s libopenblas.so libblas.so + ln -s libopenblas.a liblapack.a + ln -s libopenblas.a libblas.a + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -r gcc-libs \ + -r compilers/gnu/4.9.2 \ + -c openblas \ + -c atlas \ + -v BLAS_TAG=openblas \ + -v OPENBLASROOT="$install_prefix" + # ^-- this is a convenience variable for other installations + # not automatically supported by anything + + module_dir_list+=("$module_dir") + chmod -R +rX "$module_dir" + + cd "$owd" +done + +echo "Module files placed in: ${module_dir_list[@]}" + diff --git a/opencv-2.4.13_install b/opencv-3.4.1_install similarity index 55% rename from opencv-2.4.13_install rename to opencv-3.4.1_install index 42fad25b..ea5673f4 100755 --- a/opencv-2.4.13_install +++ b/opencv-3.4.1_install @@ -5,12 +5,13 @@ # # # +OCVPYVER=${OCVPYVER:-3} NAME=${NAME:-opencv} -VERSION=${VERSION:-2.4.13} -INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} -MD5=${MD5:-8feb45a71adad89b8017a777477c3eff} -SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/${NAME}/${NAME}/archive/${VERSION}.tar.gz} +VERSION=${VERSION:-3.4.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG}/python-${OCVPYVER} +SHA256=${SHA256:-24bda432eaace9e992322dcc3d30144cefa5314c2424d4aa02e5fe3fa9dd17bd} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/${NAME}/${NAME}/archive/${VERSION}.zip} set -e @@ -20,7 +21,7 @@ INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} source ${INCLUDES_DIR}/require_inc.sh prereq gcc-libs prereq compilers/gnu -prereq python2/recommended +prereq python${OCVPYVER}/recommended mkdir -p /dev/shm/$NAME temp_dir=`mktemp -d -p /dev/shm/$NAME` @@ -30,22 +31,15 @@ cd $temp_dir wget $SRC_ARCHIVE archive=$(basename "${SRC_ARCHIVE}") -CHECKSUM=`md5sum $archive| awk '{print $1}'` -if [ "$MD5" == "$CHECKSUM" ] -then - tar -xvf $archive - cd ${NAME}-${VERSION} - mkdir build - cd build +sha256sum -c <<< "$SHA256 $archive" - cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX .. - make 2>&1 | tee make.log - make install +unzip $archive +cd ${NAME}-${VERSION} +mkdir build +cd build -else - echo "Hash mismatch." - echo "Expected: $MD5" - echo "Got: $CHECKSUM" -fi +cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX .. +make 2>&1 | tee make.log +make install diff --git a/openfoamplus-v1706_install b/openfoamplus-v1706_install new file mode 100755 index 00000000..fdb4822b --- /dev/null +++ b/openfoamplus-v1706_install @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +############################################### +# Installing OpenFOAM-Plus +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-openfoamplus} +VERSION=${VERSION:-v1706} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-630d30770f7b54d6809efbf94b7d7c8f} +TPMD5=${TPMD5:-003d38fe3f97ccaa291bafbf94c768eb} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://sourceforge.net/projects/openfoamplus/files/${VERSION}/OpenFOAM-${VERSION}.tgz} +TPSRC_ARCHIVE=${TPSRC_ARCHIVE:-https://sourceforge.net/projects/openfoamplus/files/${VERSION}/ThirdParty-${VERSION}.tgz} + +set -e + +rm -rf $INSTALL_PREFIX + +mkdir -p $INSTALL_PREFIX + +cd $INSTALL_PREFIX + +wget $SRC_ARCHIVE +wget $TPSRC_ARCHIVE + +archive=$(basename "${SRC_ARCHIVE}") +tparchive=$(basename "${TPSRC_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" +md5sum -c <<< "$TPMD5 $tparchive" + +tar -xvf $archive +tar -xvf $tparchive + +sed -i.bak "s|FOAM_INST_DIR=\$HOME/\$WM_PROJECT|FOAM_INST_DIR=${INSTALL_PREFIX}\$WM_PROJECT|g" OpenFOAM-${VERSION}/etc/bashrc + +# Fix for Intel compilers. +if [ "${COMPILER_TAG:0:5}" == "intel" ] +then + sed -i.bak2 "s|export WM_COMPILER=Gcc|export WM_COMPILER=Icc|g" OpenFOAM-${VERSION}/etc/bashrc +fi + +source OpenFOAM-${VERSION}/etc/bashrc + +export cgal_version=CGAL-4.9 +export boost_version=boost_1_62_0 + +cd $WM_PROJECT_DIR +foamSystemCheck + +./Allwmake diff --git a/openmpi-1.10.1_install b/openmpi-1.10.1_install new file mode 100755 index 00000000..3975acca --- /dev/null +++ b/openmpi-1.10.1_install @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +############################################################################### +# +# OpenMPI 10.1, not linking against verbs by default +# + +NAME=${NAME:-openmpi} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +VERSION=${VERSION:-1.10.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-f0fcd77ed345b7eafb431968124ba16e} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.open-mpi.org/software/ompi/v${VERSION%.*}/downloads/${NAME}-${VERSION}.tar.bz2} +FLAGS=${FLAGS:-"--with-sge --without-verbs"} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/${NAME} +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`md5sum openmpi-${VERSION}.tar.bz2| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -jxvf ${NAME}-${VERSION}.tar.bz2 + + cd ${NAME}-${VERSION} + ./configure --prefix=$INSTALL_PREFIX ${FLAGS} + make && make install + +# Install mpirun wrapper +# mkdir -p /shared/ucl/apps/openmpi/ucl-wrapper/bin +# cp /shared/ucl/apps/build_scripts/files/mpirun /shared/ucl/apps/openmpi/ucl-wrapper/bin + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi + diff --git a/openmpi-1.8.4_install b/openmpi-1.8.4_install index d38db752..af5ea14b 100755 --- a/openmpi-1.8.4_install +++ b/openmpi-1.8.4_install @@ -33,8 +33,8 @@ then make && make install # Install mpirun wrapper - mkdir -p /shared/ucl/apps/openmpi/ucl-wrapper/bin - cp /shared/ucl/apps/build_scripts/files/mpirun /shared/ucl/apps/openmpi/ucl-wrapper/bin +# mkdir -p /shared/ucl/apps/openmpi/ucl-wrapper/bin +# cp /shared/ucl/apps/build_scripts/files/mpirun /shared/ucl/apps/openmpi/ucl-wrapper/bin else echo "Hash mismatch." diff --git a/openmpi-2.0.2-gcc492_install b/openmpi-2.0.2-gcc492_install new file mode 100755 index 00000000..1f777e86 --- /dev/null +++ b/openmpi-2.0.2-gcc492_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +set -e + +package_name="openmpi" +package_version="2.0.2" +package_description="The Open MPI Project is an open source Message Passing Interface implementation." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs/4.9.2 + require compilers/gnu/4.9.2 + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.bz2" + package_url="https://www.open-mpi.org/software/ompi/v${package_version%\.?}/downloads/${package_name}-${package_version}.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha1:80e39bc76ac2e3caf958a3db9985a9c81fddb8a6 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure \ + --prefix="$install_prefix" \ + --with-sge \ + --without-verbs + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + make check + + make install + + make_module \ + -o "${module_dir}/mpi/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "mpi" \ + -d \ + -v "MPI_HOME=${install_prefix}" \ + -v "MPI_RUN=${install_prefix}/bin/mpirun" \ + -v "GERUN_LAUNCHER=openmpi-sge" \ + -e "PATH:${install_prefix}/bin" \ + -e "PATH:/shared/ucl/apps/openmpi/ucl-wrapper/bin" \ + -e "LD_RUN_PATH:${install_prefix}/lib" \ + -e "LD_LIBRARY_PATH:${install_prefix}/lib" \ + -e "CPATH:${install_prefix}/include" \ + -e "INCLUDE_PATH:${install_prefix}/include" \ + -e "CMAKE_PREFIX_PATH:${install_prefix}" \ + -r gcc-libs/4.9.2 \ + -r compilers/gnu/4.9.2 + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/openmpi-2.0.2_install b/openmpi-2.0.2_install new file mode 100755 index 00000000..4bd6ebac --- /dev/null +++ b/openmpi-2.0.2_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +set -e + +package_name="openmpi" +package_version="2.0.2" +package_description="The Open MPI Project is an open source Message Passing Interface implementation." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs/4.9.2 + require compilers/intel/2017/update1 + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.bz2" + package_url="https://www.open-mpi.org/software/ompi/v${package_version%\.?}/downloads/${package_name}-${package_version}.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha1:80e39bc76ac2e3caf958a3db9985a9c81fddb8a6 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure \ + --prefix="$install_prefix" \ + --with-sge \ + --without-verbs + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + make check + + make install + + make_module \ + -o "${module_dir}/mpi/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "mpi" \ + -d \ + -v "MPI_HOME=${install_prefix}" \ + -v "MPI_RUN=${install_prefix}/bin/mpirun" \ + -v "GERUN_LAUNCHER=openmpi-sge" \ + -e "PATH:${install_prefix}/bin" \ + -e "PATH:/shared/ucl/apps/openmpi/ucl-wrapper/bin" \ + -e "LD_RUN_PATH:${install_prefix}/lib" \ + -e "LD_LIBRARY_PATH:${install_prefix}/lib" \ + -e "CPATH:${install_prefix}/include" \ + -e "INCLUDE_PATH:${install_prefix}/include" \ + -e "CMAKE_PREFIX_PATH:${install_prefix}" \ + -r gcc-libs \ + -r compilers/intel/2017 + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/openmpi-2.1.2-gcc492_install b/openmpi-2.1.2-gcc492_install new file mode 100755 index 00000000..5bbe1920 --- /dev/null +++ b/openmpi-2.1.2-gcc492_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +set -e + +package_name="openmpi" +package_version="2.1.2" +package_description="The Open MPI Project is an open source Message Passing Interface implementation." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs/4.9.2 + require compilers/gnu/4.9.2 + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.bz2" + package_url="https://www.open-mpi.org/software/ompi/v${package_version%\.?}/downloads/${package_name}-${package_version}.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha1:4d43bb407eb8b9da099a555e8dc083352c6a1d02 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure \ + --prefix="$install_prefix" \ + --with-sge \ + --without-verbs + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + make check + + make install + + make_module \ + -o "${module_dir}/mpi/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "mpi" \ + -d \ + -v "MPI_HOME=${install_prefix}" \ + -v "MPI_RUN=${install_prefix}/bin/mpirun" \ + -v "GERUN_LAUNCHER=openmpi-sge" \ + -e "PATH:${install_prefix}/bin" \ + -e "PATH:/shared/ucl/apps/openmpi/ucl-wrapper/bin" \ + -e "LD_RUN_PATH:${install_prefix}/lib" \ + -e "LD_LIBRARY_PATH:${install_prefix}/lib" \ + -e "CPATH:${install_prefix}/include" \ + -e "INCLUDE_PATH:${install_prefix}/include" \ + -e "CMAKE_PREFIX_PATH:${install_prefix}" \ + -r gcc-libs/4.9.2 \ + -r compilers/gnu/4.9.2 + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/openmpi-2.1.2_install b/openmpi-2.1.2_install new file mode 100755 index 00000000..3542ca55 --- /dev/null +++ b/openmpi-2.1.2_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +set -e + +package_name="openmpi" +package_version="2.1.2" +package_description="The Open MPI Project is an open source Message Passing Interface implementation." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/intel/2017 + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.bz2" + package_url="https://www.open-mpi.org/software/ompi/v${package_version%\.?}/downloads/${package_name}-${package_version}.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha1:4d43bb407eb8b9da099a555e8dc083352c6a1d02 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure \ + --prefix="$install_prefix" \ + --with-sge \ + --without-verbs + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + make check + + make install + + make_module \ + -o "${module_dir}/mpi/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "mpi" \ + -d \ + -v "MPI_HOME=${install_prefix}" \ + -v "MPI_RUN=${install_prefix}/bin/mpirun" \ + -v "GERUN_LAUNCHER=openmpi-sge" \ + -e "PATH:${install_prefix}/bin" \ + -e "PATH:/shared/ucl/apps/openmpi/ucl-wrapper/bin" \ + -e "LD_RUN_PATH:${install_prefix}/lib" \ + -e "LD_LIBRARY_PATH:${install_prefix}/lib" \ + -e "CPATH:${install_prefix}/include" \ + -e "INCLUDE_PATH:${install_prefix}/include" \ + -e "CMAKE_PREFIX_PATH:${install_prefix}" \ + -r gcc-libs \ + -r compilers/intel/2017 + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/openmpi-3.0.0-gcc492_install b/openmpi-3.0.0-gcc492_install new file mode 100755 index 00000000..21ab348f --- /dev/null +++ b/openmpi-3.0.0-gcc492_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +set -e + +package_name="openmpi" +package_version="3.0.0" +package_description="The Open MPI Project is an open source Message Passing Interface implementation." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs/4.9.2 + require compilers/gnu/4.9.2 + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.bz2" + package_url="https://www.open-mpi.org/software/ompi/v${package_version%\.?}/downloads/${package_name}-${package_version}.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha1:fa63990db1aec88b36335a1d79abf47ac6348e23 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure \ + --prefix="$install_prefix" \ + --with-sge \ + --without-verbs + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + make check + + make install + + make_module \ + -o "${module_dir}/mpi/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "mpi" \ + -d \ + -v "MPI_HOME=${install_prefix}" \ + -v "MPI_RUN=${install_prefix}/bin/mpirun" \ + -v "GERUN_LAUNCHER=openmpi-sge" \ + -e "PATH:${install_prefix}/bin" \ + -e "PATH:/shared/ucl/apps/openmpi/ucl-wrapper/bin" \ + -e "LD_RUN_PATH:${install_prefix}/lib" \ + -e "LD_LIBRARY_PATH:${install_prefix}/lib" \ + -e "CPATH:${install_prefix}/include" \ + -e "INCLUDE_PATH:${install_prefix}/include" \ + -e "CMAKE_PREFIX_PATH:${install_prefix}" \ + -r gcc-libs/4.9.2 \ + -r compilers/gnu/4.9.2 + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/openmpi-3.0.0_install b/openmpi-3.0.0_install new file mode 100755 index 00000000..3bf41587 --- /dev/null +++ b/openmpi-3.0.0_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +set -e + +package_name="openmpi" +package_version="3.0.0" +package_description="The Open MPI Project is an open source Message Passing Interface implementation." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/intel/2017 + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.bz2" + package_url="https://www.open-mpi.org/software/ompi/v${package_version%\.?}/downloads/${package_name}-${package_version}.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha1:fa63990db1aec88b36335a1d79abf47ac6348e23 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure \ + --prefix="$install_prefix" \ + --with-sge \ + --without-verbs + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + make check + + make install + + make_module \ + -o "${module_dir}/mpi/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "mpi" \ + -d \ + -v "MPI_HOME=${install_prefix}" \ + -v "MPI_RUN=${install_prefix}/bin/mpirun" \ + -v "GERUN_LAUNCHER=openmpi-sge" \ + -e "PATH:${install_prefix}/bin" \ + -e "PATH:/shared/ucl/apps/openmpi/ucl-wrapper/bin" \ + -e "LD_RUN_PATH:${install_prefix}/lib" \ + -e "LD_LIBRARY_PATH:${install_prefix}/lib" \ + -e "CPATH:${install_prefix}/include" \ + -e "INCLUDE_PATH:${install_prefix}/include" \ + -e "CMAKE_PREFIX_PATH:${install_prefix}" \ + -r gcc-libs \ + -r compilers/intel/2017 + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/openmpi-3.1.1-gcc492_install b/openmpi-3.1.1-gcc492_install new file mode 100755 index 00000000..7180fcd9 --- /dev/null +++ b/openmpi-3.1.1-gcc492_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +set -e + +package_name="openmpi" +package_version="3.1.1" +package_description="The Open MPI Project is an open source Message Passing Interface implementation." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs/4.9.2 + require compilers/gnu/4.9.2 + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.bz2" + package_url="https://www.open-mpi.org/software/ompi/v${package_version%\.?}/downloads/${package_name}-${package_version}.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha1:86bc99c79a2c69a7d9b624d7f012929db78fc9a4 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure \ + --prefix="$install_prefix" \ + --with-sge \ + --without-verbs + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + make check + + make install + + make_module \ + -o "${module_dir}/mpi/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "mpi" \ + -d \ + -v "MPI_HOME=${install_prefix}" \ + -v "MPI_RUN=${install_prefix}/bin/mpirun" \ + -v "GERUN_LAUNCHER=openmpi-sge" \ + -e "PATH:${install_prefix}/bin" \ + -e "PATH:/shared/ucl/apps/openmpi/ucl-wrapper/bin" \ + -e "LD_RUN_PATH:${install_prefix}/lib" \ + -e "LD_LIBRARY_PATH:${install_prefix}/lib" \ + -e "CPATH:${install_prefix}/include" \ + -e "INCLUDE_PATH:${install_prefix}/include" \ + -e "CMAKE_PREFIX_PATH:${install_prefix}" \ + -r gcc-libs/4.9.2 \ + -r compilers/gnu/4.9.2 + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/openmpi-3.1.1_install b/openmpi-3.1.1_install new file mode 100755 index 00000000..8653b7d4 --- /dev/null +++ b/openmpi-3.1.1_install @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +set -e + +package_name="openmpi" +package_version="3.1.1" +package_description="The Open MPI Project is an open source Message Passing Interface implementation." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/intel/2018 + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.bz2" + package_url="https://www.open-mpi.org/software/ompi/v${package_version%\.?}/downloads/${package_name}-${package_version}.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha1:86bc99c79a2c69a7d9b624d7f012929db78fc9a4 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure \ + --prefix="$install_prefix" \ + --with-sge \ + --without-verbs + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + make check + + make install + + make_module \ + -o "${module_dir}/mpi/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "mpi" \ + -d \ + -v "MPI_HOME=${install_prefix}" \ + -v "MPI_RUN=${install_prefix}/bin/mpirun" \ + -v "GERUN_LAUNCHER=openmpi-sge" \ + -e "PATH:${install_prefix}/bin" \ + -e "PATH:/shared/ucl/apps/openmpi/ucl-wrapper/bin" \ + -e "LD_RUN_PATH:${install_prefix}/lib" \ + -e "LD_LIBRARY_PATH:${install_prefix}/lib" \ + -e "CPATH:${install_prefix}/include" \ + -e "INCLUDE_PATH:${install_prefix}/include" \ + -e "CMAKE_PREFIX_PATH:${install_prefix}" \ + -r gcc-libs \ + -r compilers/intel/2018 + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/openmx-3.8.3_install b/openmx-3.8.3_install new file mode 100755 index 00000000..a4e3ca04 --- /dev/null +++ b/openmx-3.8.3_install @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-openmx} +VERSION=${VERSION:-3.8.3} +BASE_VERSION=${BASE_VERSION:-${VERSION%\.?}} +PATCH_DATE=${PATCH_DATE:-17Mar08} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-36ee10d8b1587b25a2ca1d57f110111be65c4fb4dc820e6d93e1ed2b562634a1} + +PATCHSHA256=${PATCHSHA256:-d30b08301966dec913b6b42acdce17b543f7f4f5098bb2668a8db1e6b9067570} + +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.openmx-square.org/openmx${BASE_VERSION}.tar.gz} +PATCH_ARCHIVE=${PATCH_ARCHIVE:-http://www.openmx-square.org/bugfixed/${PATCH_DATE}/patch${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +sha256sum -c <<< "$SHA256 $archive" + +wget $PATCH_ARCHIVE +patcharchive=$(basename "${PATCH_ARCHIVE}") + +sha256sum -c <<< "$PATCHSHA256 $patcharchive" + +tar -xvf $archive + +cd ${NAME}${BASE_VERSION} + + +mkdir -p ${INSTALL_PREFIX}/work +cp -R work/* ${INSTALL_PREFIX}/work +cp -R DFT_DATA13 ${INSTALL_PREFIX} + +# Patch files +cd source +tar zxvf ../../$patcharchive + +# Patch makefile +cp /shared/ucl/apps/build_scripts/openmx-patches/makefile.patch . +patch < makefile.patch + +sed -i.bak "s|../work|${INSTALL_PREFIX}/work|g" makefile + +make +make install diff --git a/openmx-patches/makefile.patch b/openmx-patches/makefile.patch new file mode 100644 index 00000000..93bbfd73 --- /dev/null +++ b/openmx-patches/makefile.patch @@ -0,0 +1,16 @@ +--- makefile.old 2018-02-14 10:09:30.000000000 +0000 ++++ makefile 2018-02-14 11:50:28.000000000 +0000 +@@ -135,10 +135,9 @@ + # LIB= -L/opt/acml5.3.0/ifort64_mp/lib -lacml_mp -liomp5 -Wl,-rpath=/opt/acml5.3.0/ifort64_mp/lib -Wl,-rpath=/opt/acml5.3.0/ifort64_mp/lib -L/opt/fftw-3.3.3/lib -lfftw3 -pgf90libs + # + +- +-CC = mpicc -O3 -xHOST -ip -no-prec-div -openmp -I/opt/intel/mkl/include/fftw +-FC = mpif90 -O3 -xHOST -ip -no-prec-div -openmp +-LIB= -L/opt/intel/mkl/lib -mkl=parallel -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lpthread -lifcore -lmpi -lmpi_f90 -lmpi_f77 ++CC = mpicc -O3 -xHOST -ip -no-prec-div -qopenmp -I/shared/ucl/apps/intel/2017.Update1/compilers_and_libraries_2017.1.132/linux/mkl/include/fftw ++FC = mpiifort -O3 -xHOST -ip -no-prec-div -qopenmp ++LIB= -L/shared/ucl/apps/intel/2017.Update1/compilers_and_libraries_2017.1.132/linux/mkl/lib -mkl=parallel -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lpthread -lifcore -lmpi + + + diff --git a/papi-5.5.1_install b/papi-5.5.1_install new file mode 100755 index 00000000..4d0371fe --- /dev/null +++ b/papi-5.5.1_install @@ -0,0 +1,79 @@ +#!/usr/bin/env bash + +set -e + +package_name="papi" +package_version="5.5.1" + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/gnu + + make_build_env "" + + unpack_dir="papi-${package_version}" + package_file="${unpack_dir}.tar.gz" + package_url="http://icl.utk.edu/projects/papi/downloads/${package_file}" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha1:92dfb479fb025177e5eb56df76afc96cd11eb81f ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/src" + + ./configure \ + --prefix="$install_prefix" \ + --with-shared-lib=yes \ + --with-static-lib=yes \ + --with-components="appio coretemp infiniband net lustre" + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/src" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/src" + make fulltest + make install + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c papi \ + -w "Adds PAPI ${package_version} to your environment. PAPI is a library for working with performance counters, often used in profiling applications." \ + -r gcc-libs + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/paraver-4.6.4.rc1-bin_install b/paraver-4.6.4.rc1-bin_install new file mode 100755 index 00000000..4f81ea9e --- /dev/null +++ b/paraver-4.6.4.rc1-bin_install @@ -0,0 +1,57 @@ +#!/usr/bin/env bash + +set -e + +package_name="paraver" +package_version="4.6.4.rc1" +package_description="Paraver is a trace visualizer for post-mortem trace analysis." + +source includes/source_includes.sh + +_env_setup() { + module purge + + # This is a binary distribution but there's no proper way to handle that at the moment + export COMPILER_TAG="bindist" + make_build_env "" + + #unpack_dir="wx${package_name}-${package_version}-Linux_x86_64" + package_file="wx${package_name}-${package_version}-Linux_x86_64.tar.bz2" + package_url="https://ftp.tools.bsc.es/wx${package_name}/wx${package_name}-${package_version}-Linux_x86_64.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha512:46522996abdf4943f4ec4f5fade12598e7691559728aecdf3f7c7b1becd86d4312a2766eadbe7ea0cb318207b706630f21d946af64eaa9f873d83ae5e719206c ${package_file} + +} + +_install() { + mkdir -p "$install_prefix" + cd "$install_prefix" + + tar --strip-components=1 -xf "$build_dir/$package_file" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c "${package_name}" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_install +_clean_up + diff --git a/patches/GULP4.5_getengine_mpi.patch b/patches/GULP4.5_getengine_mpi.patch new file mode 100644 index 00000000..8d651938 --- /dev/null +++ b/patches/GULP4.5_getengine_mpi.patch @@ -0,0 +1,25 @@ +--- getmachine.orig 2018-08-20 10:34:22.448913395 +0100 ++++ getmachine 2018-08-20 12:10:46.926330821 +0100 +@@ -254,8 +254,10 @@ + # PG compiler + # echo 'RUNF90=pgf90 -Bstatic' >> makefile + # Intel compiler +- echo 'RUNF90=ifort ' >> makefile +- echo 'RUNCC=icc ' >> makefile ++# echo 'RUNF90=ifort ' >> makefile ++# echo 'RUNCC=icc ' >> makefile ++ echo 'RUNF90=mpif90 ' >> makefile ++ echo 'RUNCC=mpicc ' >> makefile + # Cray compiler + # echo 'RUNF90=ftn -h noomp ' >> makefile + # echo 'RUNCC=cc -h noomp ' >> makefile +@@ -304,7 +306,8 @@ + echo 'CDABS=cdabs.o' >> makefile + # If PLUMED is needed then set -DPLUMED + # echo 'DEFS=-DFLUSH -DPLUMED' >> makefile +- echo 'DEFS=-DFLUSH ' >> makefile ++# echo 'DEFS=-DFLUSH ' >> makefile ++ echo 'DEFS=-DFLUSH -DMPI ' >> makefile + echo 'PLUMEDDEFS=-DDL_POLY' >> makefile + echo 'ARCHIVE = ar rcv' >> makefile + echo 'RANLIB = ar ts' >> makefile diff --git a/patches/GULP4.5_getengine_mpi_chemshell.patch b/patches/GULP4.5_getengine_mpi_chemshell.patch new file mode 100644 index 00000000..f1fb78c9 --- /dev/null +++ b/patches/GULP4.5_getengine_mpi_chemshell.patch @@ -0,0 +1,31 @@ +--- getmachine.orig 2018-08-21 14:48:54.000000000 +0100 ++++ getmachine 2018-08-21 14:55:16.000000000 +0100 +@@ -254,8 +254,10 @@ + # PG compiler + # echo 'RUNF90=pgf90 -Bstatic' >> makefile + # Intel compiler +- echo 'RUNF90=ifort ' >> makefile +- echo 'RUNCC=icc ' >> makefile ++# echo 'RUNF90=ifort ' >> makefile ++# echo 'RUNCC=icc ' >> makefile ++ echo 'RUNF90=mpif90 ' >> makefile ++ echo 'RUNCC=mpicc ' >> makefile + # Cray compiler + # echo 'RUNF90=ftn -h noomp ' >> makefile + # echo 'RUNCC=cc -h noomp ' >> makefile +@@ -299,12 +301,13 @@ + # For Cray remove blas.o and lapack.o + echo 'BLAS=blas.o' >> makefile + # for chemshell use, we should have lapack so comment the following line out +- echo 'LAPACK=lapack.o' >> makefile ++# echo 'LAPACK=lapack.o' >> makefile + echo 'GULPENV=' >> makefile + echo 'CDABS=cdabs.o' >> makefile + # If PLUMED is needed then set -DPLUMED + # echo 'DEFS=-DFLUSH -DPLUMED' >> makefile +- echo 'DEFS=-DFLUSH ' >> makefile ++# echo 'DEFS=-DFLUSH ' >> makefile ++ echo 'DEFS=-DFLUSH -DMPI -DNOFOX ' >> makefile + echo 'PLUMEDDEFS=-DDL_POLY' >> makefile + echo 'ARCHIVE = ar rcv' >> makefile + echo 'RANLIB = ar ts' >> makefile diff --git a/patches/PATCH-xorg-build.sh-space-in-test-and-mesa.patch b/patches/PATCH-xorg-build.sh-space-in-test-and-mesa.patch new file mode 100644 index 00000000..daec152b --- /dev/null +++ b/patches/PATCH-xorg-build.sh-space-in-test-and-mesa.patch @@ -0,0 +1,20 @@ +--- util/modular/build.sh.bak 2018-07-23 15:22:37.000000000 +0100 ++++ util/modular/build.sh 2018-07-25 15:36:10.000000000 +0100 +@@ -419,7 +419,7 @@ + pkg_stem="libdrm" + ;; + "mesa") +- pkg_stem="MesaLib" ++ pkg_stem="mesa" + ;; + esac + ;; +@@ -728,7 +728,7 @@ + fi + + +- if [ $use_autogen != 0 ] || [ $use_configure != 0]; then ++ if [ $use_autogen != 0 ] || [ $use_configure != 0 ]; then + BUILDCMD="${MAKE} $MAKEFLAGS" + BUILDCMD_VERBOSE="${BUILDCMD} V=1" + BUILDCMD_CHECK="${BUILDCMD} check" diff --git a/patches/PATCH-xorg-luit-remove-AC_MSG_WARN-brackets.patch b/patches/PATCH-xorg-luit-remove-AC_MSG_WARN-brackets.patch new file mode 100644 index 00000000..463717d8 --- /dev/null +++ b/patches/PATCH-xorg-luit-remove-AC_MSG_WARN-brackets.patch @@ -0,0 +1,11 @@ +--- configure.ac.bak 2018-07-24 14:39:07.000000000 +0100 ++++ configure.ac 2018-07-24 14:39:32.000000000 +0100 +@@ -50,7 +50,7 @@ + + # We don't link against libX11, just use its locale.alias data file + PKG_CHECK_EXISTS(x11, [], +- [AC_MSG_WARN([libX11 not found. luit may not be able to find locale aliases without it.])]) ++ AC_MSG_WARN([libX11 not found. luit may not be able to find locale aliases without it.])) + + AC_CANONICAL_HOST + case $host_os in diff --git a/patches/xmalloc.c.patch b/patches/xmalloc.c.patch new file mode 100644 index 00000000..bc6afc38 --- /dev/null +++ b/patches/xmalloc.c.patch @@ -0,0 +1,11 @@ +--- xmalloc.c.old 2017-07-11 11:02:57.014162908 +0100 ++++ xmalloc.c 2017-07-11 11:03:14.530415352 +0100 +@@ -6,8 +6,6 @@ + #include + #include "sc.h" + +-extern char *malloc(); +-extern char *realloc(); + extern void free(); + void fatal(); + diff --git a/pgi-compilers-2017-3_install b/pgi-compilers-2017-3_install new file mode 100755 index 00000000..53a477a2 --- /dev/null +++ b/pgi-compilers-2017-3_install @@ -0,0 +1,91 @@ +#!/usr/bin/env bash + +# Build script for PGI compilers and tools version 2017.3 including Accelerator support. + +set -o errexit -o nounset +for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +package_name="PGI" +package_version="17.3" +src_urls=/shared/ucl/apps/PGI/installers/pgilinux-20${package_version:0:2}-${package_version:0:2}${package_version##*\.}-x86_64.tar.gz +# Optional: +# package_variant="" +package_description="The PGI Compilers are primarily installed to build Gaussian, which is not compatible with other compilers. Please do not use these over the Intel or GNU compilers unless you have a good reason for doing so." + +actual_file_name=$src_urls +actual_file_md5=6eefc42f85e756cbaba76467ed640902 + + +module purge +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 + +# This isn't needed during install, just to create the modulefile +LM_LICENSE_FILE=27000@lic-pgi.ucl.ac.uk + + +_env_setup() { + owd=$(pwd) + package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}" + install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} + build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} + module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} + basename=${basename:-$(basename -s .tar.gz $(cut -f 1 -d ' ' <<<$src_urls))} + cd $build_dir +} + +_fetch_files() { + echo -n "Checking MD5: " + md5sum -c <<<"$actual_file_md5 $actual_file_name" +# echo -n "Checking SHA: " +# shasum -c <<<"$actual_file_sha $actual_file_name" +} + +_setup_files() { + cd $build_dir + tar -xvzpf $actual_file_name +} + +_build() { + cd $build_dir + export PGI_SILENT=true + export PGI_ACCEPT_EULA=accept + export PGI_INSTALL_TYPE=single + export PGI_INSTALL_DIR=$install_prefix +# export PGI_INSTALL_LOCAL_DIR=$install_prefix + export PGI_INSTALL_NVIDIA=true + export PGI_INSTALL_AMD=true + export PGI_INSTALL_JAVA=true + export PGI_INSTALL_MPI=true + export PGI_MPI_GPU_SUPPORT=true + ./install + cat /shared/ucl/apps/build_scripts/pgi-patches/2017.3-siterc >> $install_prefix/linux86-64/17.3/bin/siterc + echo "Installed to: $install_prefix" +} + +_prepare_module() { + mkdir -p $module_dir/compilers/pgi/20${package_version} + cp -v $install_prefix/modulefiles/pgi64/${package_version} $module_dir/compilers/pgi/20${package_version}/${COMPILER_TAG} + echo "# Customisation below" >> $module_dir/compilers/pgi/20${package_version}/${COMPILER_TAG} + echo "setenv COMPILER_TAG pgi-20${package_version}" >> $module_dir/compilers/pgi/20${package_version}/${COMPILER_TAG} + echo "conflict compilers" >> $module_dir/compilers/pgi/20${package_version}/${COMPILER_TAG} + echo "prereq gcc-libs/4.9.2" >> $module_dir/compilers/pgi/20${package_version}/${COMPILER_TAG} + echo "setenv LM_LICENSE_FILE $LM_LICENSE_FILE" >> $module_dir/compilers/pgi/20${package_version}/${COMPILER_TAG} + echo "Module files put in: $module_dir" >&2 + chmod a+rx $module_dir +} + +_clean_up() { + cd $owd + if [ -n "$build_dir" ]; then + rm -Rf ${build_dir} + fi +} + +_env_setup +_fetch_files +_setup_files +_build +_prepare_module +_clean_up + diff --git a/pgi-compilers-2018-5_install b/pgi-compilers-2018-5_install new file mode 100755 index 00000000..8e21f45b --- /dev/null +++ b/pgi-compilers-2018-5_install @@ -0,0 +1,85 @@ +#!/usr/bin/env bash + +# Build script for PGI compilers and tools version 2017.3 including Accelerator support. + +set -o errexit -o nounset +for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +package_name="PGI" +package_version="18.5" +src_urls=/shared/ucl/apps/PGI/installers/pgilinux-20${package_version:0:2}-${package_version:0:2}${package_version##*\.}-x86-64.tar.gz +# Optional: +# package_variant="" +package_description="The PGI Compilers are primarily installed to build Gaussian, which is not compatible with other compilers. Please do not use these over the Intel or GNU compilers unless you have a good reason for doing so." + +actual_file_name=$src_urls +actual_file_md5=e0bf3a73c633280a414d2eab8e0399be + + +module purge +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 + +# This isn't needed during install, just to create the modulefile +LM_LICENSE_FILE=27000@lic-pgi.ucl.ac.uk + + +_env_setup() { + mkdir -p /dev/shm/${package_name} + owd=$(pwd) + package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}" + install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} + build_dir=${BUILD_DIR:-$(mktemp -d -p /dev/shm/${package_name})} + module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} + basename=${basename:-$(basename -s .tar.gz $(cut -f 1 -d ' ' <<<$src_urls))} + cd $build_dir +} + +_fetch_files() { + echo -n "Checking MD5: " + md5sum -c <<<"$actual_file_md5 $actual_file_name" +# echo -n "Checking SHA: " +# shasum -c <<<"$actual_file_sha $actual_file_name" +} + +_setup_files() { + cd $build_dir + tar -xvzpf $actual_file_name +} + +_build() { + cd $build_dir + export PGI_SILENT=true + export PGI_ACCEPT_EULA=accept + export PGI_INSTALL_TYPE=single + export PGI_INSTALL_DIR=$install_prefix +# export PGI_INSTALL_LOCAL_DIR=$install_prefix + export PGI_INSTALL_NVIDIA=true + export PGI_INSTALL_AMD=true + export PGI_INSTALL_JAVA=true + export PGI_INSTALL_MPI=true + export PGI_MPI_GPU_SUPPORT=true + ./install + cat /shared/ucl/apps/build_scripts/pgi-patches/2017.3-siterc >> $install_prefix/linux86-64/18.5/bin/siterc + cat /shared/ucl/apps/build_scripts/pgi-patches/2017.3-siterc >> $install_prefix/linux86-64-llvm/18.5/bin/siterc + echo "Installed to: $install_prefix" +} + +_prepare_module() { + echo "Modules stuff is broken, ignoring." +} + +_clean_up() { + cd $owd + if [ -n "$build_dir" ]; then + rm -Rf ${build_dir} + fi +} + +_env_setup +_fetch_files +_setup_files +_build +_prepare_module +_clean_up + diff --git a/pgi-patches/2017.3-siterc b/pgi-patches/2017.3-siterc new file mode 100644 index 00000000..81eac6b3 --- /dev/null +++ b/pgi-patches/2017.3-siterc @@ -0,0 +1 @@ +append LDLIBARGS="-L/shared/ucl/apps/gcc/4.9.2/lib64"; diff --git a/pgplot-5.2.2_install b/pgplot-5.2.2_install new file mode 100755 index 00000000..6c4eb252 --- /dev/null +++ b/pgplot-5.2.2_install @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-pgplot} +VERSION=${VERSION:-5.2.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-e8a6e8d0d5ef9d1709dfb567724525ae} +vershort=$(echo $VERSION | sed 's/\.//g') +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.astro.caltech.edu/pub/pgplot/pgplot${vershort}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" + +tar -xvf $archive + +cd ${NAME} + +rm -rf ${INSTALL_PREFIX} +mkdir -p ${INSTALL_PREFIX} + +cp sys_linux/g77_gcc.conf sys_linux/ifort.conf +sed -i.bak 's|g77|ifort|g' sys_linux/ifort.conf +sed -i.bak 's|gcc|icc|g' sys_linux/ifort.conf + +sed -i.bak 's|! CGDRIV|CGDRIV|g' drivers.list +sed -i.bak 's|! PSDRIV|PSDRIV|g' drivers.list +sed -i.bak 's|! PPDRIV|PPDRIV|g' drivers.list +sed -i.bak 's|! LXDRIV|LXDRIV|g' drivers.list + +cp drivers.list ${INSTALL_PREFIX} + +cd ${INSTALL_PREFIX} +${temp_dir}/pgplot/makemake ${temp_dir}/pgplot linux ifort + +make + + diff --git a/phon-1.39_install b/phon-1.39_install index e0a46411..18ba760d 100755 --- a/phon-1.39_install +++ b/phon-1.39_install @@ -11,7 +11,7 @@ VERSION=${VERSION:-1.39} COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/$VERSION/$COMPILER_TAG} MD5=${MD5:-3ae321e06b0e74568f6168089946b21b} -SRC_ARCHIVE=${SRC_ARCHIVE:-http://chianti.geol.ucl.ac.uk/~dario/phon.1.39.tar.Z} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://chianti.geol.ucl.ac.uk/~dario/phon.${VERSION}.tar.Z} set -e diff --git a/phon-patches/make.inc.patch b/phon-patches/make.inc.patch index a8d47981..62589611 100644 --- a/phon-patches/make.inc.patch +++ b/phon-patches/make.inc.patch @@ -1,9 +1,9 @@ ---- make.old 2015-07-20 15:31:23.000000000 +0100 -+++ make.inc 2015-07-20 15:32:13.000000000 +0100 +--- make.inc.orig 2017-12-05 11:21:04.000000000 +0000 ++++ make.inc 2017-12-05 11:21:44.000000000 +0000 @@ -1,5 +1,5 @@ .SUFFIXES: .inc .f -FC = g95 -+FC= $(F90) ++FC = gfortran -ffpe-summary=none FREE = -ffree-form # optimization diff --git a/picard-patches/commandlist-2.18.list b/picard-patches/commandlist-2.18.list new file mode 100644 index 00000000..a74b1358 --- /dev/null +++ b/picard-patches/commandlist-2.18.list @@ -0,0 +1,98 @@ +CheckIlluminaDirectory +CollectIlluminaBasecallingMetrics +CollectIlluminaLaneMetrics +ExtractIlluminaBarcodes +IlluminaBasecallsToFastq +IlluminaBasecallsToSam +MarkIlluminaAdapters +AccumulateVariantCallingMetrics +BamIndexStats +CalculateReadGroupChecksum +CheckFingerprint +CheckTerminatorBlock +ClusterCrosscheckMetrics +CollectAlignmentSummaryMetrics +CollectBaseDistributionByCycle +CollectGcBiasMetrics +CollectHiSeqXPfFailMetrics +CollectHsMetrics +CollectIndependentReplicateMetrics +CollectInsertSizeMetrics +CollectJumpingLibraryMetrics +CollectMultipleMetrics +CollectOxoGMetrics +CollectQualityYieldMetrics +CollectRawWgsMetrics +CollectRnaSeqMetrics +CollectRrbsMetrics +CollectSequencingArtifactMetrics +CollectTargetedPcrMetrics +CollectVariantCallingMetrics +CollectWgsMetrics +CollectWgsMetricsWithNonZeroCoverage +CompareMetrics +CompareSAMs +ConvertSequencingArtifactToOxoG +CrosscheckFingerprints +CrosscheckReadGroupFingerprints +EstimateLibraryComplexity +IdentifyContaminant +MeanQualityByCycle +QualityScoreDistribution +ValidateSamFile +ViewSam +BedToIntervalList +IntervalListToBed +IntervalListTools +LiftOverIntervalList +FifoBuffer +AddCommentsToBam +AddOrReplaceReadGroups +BamToBfq +BuildBamIndex +CleanSam +DownsampleSam +FastqToSam +FilterSamReads +FixMateInformation +GatherBamFiles +MarkDuplicates +MarkDuplicatesWithMateCigar +MergeBamAlignment +MergeSamFiles +PositionBasedDownsampleSam +ReorderSam +ReplaceSamHeader +RevertOriginalBaseQualitiesAndAddMateCigar +RevertSam +SamFormatConverter +SamToFastq +SamToFastqWithTags +SetNmAndUqTags +SetNmMdAndUqTags +SimpleMarkDuplicatesWithMateCigar +SortSam +SplitSamByLibrary +SplitSamByNumberOfReads +UmiAwareMarkDuplicatesWithMateCigar +BaitDesigner +CreateSequenceDictionary +ExtractSequences +NonNFastaSize +NormalizeFasta +ScatterIntervalsByNs +FindMendelianViolations +GenotypeConcordance +FilterVcf +FixVcfHeader +GatherVcfs +LiftoverVcf +MakeSitesOnlyVcf +MakeVcfSampleNameMap +MergeVcfs +RenameSampleInVcf +SortVcf +SplitVcfs +UpdateVcfSequenceDictionary +VcfFormatConverter +VcfToIntervalList diff --git a/picard-patches/picard b/picard-patches/picard index a9414630..03b405fe 100755 --- a/picard-patches/picard +++ b/picard-patches/picard @@ -1,3 +1,3 @@ #!/bin/bash -java -Xmx2g -jar $PICARDPATH/picard.jar $* TMP_DIR=$TMPDIR +java -Xmx2g -jar "$PICARDPATH/picard.jar" "$@" TMP_DIR="$TMPDIR" diff --git a/picard-patches/picard.nonative b/picard-patches/picard.nonative index 2d7cd256..5cc51c49 100755 --- a/picard-patches/picard.nonative +++ b/picard-patches/picard.nonative @@ -1,3 +1,3 @@ #!/bin/bash -java -Xmx2g -Dsamjdk.try_use_intel_deflater=false -jar $PICARDPATH/picard.jar $* TMP_DIR=$TMPDIR +java -Xmx2g -Dsamjdk.try_use_intel_deflater=false -jar "$PICARDPATH/picard.jar" "$@" TMP_DIR="$TMPDIR" diff --git a/picard-tools-2.18.9_install b/picard-tools-2.18.9_install new file mode 100755 index 00000000..51a97f90 --- /dev/null +++ b/picard-tools-2.18.9_install @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +############################################### +# Installing Picard 2 with wrappers +# +# +# + +APPNAME=${APPNAME:-picard-tools} +VERSION=${VERSION:-2.18.9} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/$VERSION} +SHA256=${SHA256:-7efe60795cad21865301a9f8de2ce6aad1e1e90c92c69799655e7e5d0effbe56} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/broadinstitute/picard/releases/download/${VERSION}/picard.jar} + +# Use Intel deflate library (uses AVX for compression) +NATIVE_LIB=${NATIVE_LIB:-NO} + +set -e + +mkdir -p "$INSTALL_PREFIX" + +cd "$INSTALL_PREFIX" + +wget "$SRC_ARCHIVE" + +echo "Checking hashes:" +archive=$(basename "${SRC_ARCHIVE}") +sha256sum -c <<<"$SHA256 $archive" + +mkdir bin +cd bin + +if [ "$NATIVE_LIB" == "NO" ] +then + cp /shared/ucl/apps/build_scripts/picard-patches/picard.nonative ./picard + #rm ../libIntelDeflater.so +else + cp /shared/ucl/apps/build_scripts/picard-patches/picard . +fi + +# create wrappers for each command +for a in $(cat /shared/ucl/apps/build_scripts/picard-patches/commandlist-2.18.list) +do +cat > "$a" < when running make check, gives 42 failures" + echo " and various nans " + echo "------------------------------------------------" + echo "" + ./configure --prefix="$INSTALL_PREFIX" CXX=mpicxx CC=mpicc FC=mpif90 LIBS="-lmatheval -lfl ${MKLROOT}/lib/intel64/libmkl_blas95_ilp64.a ${MKLROOT}/lib/intel64/libmkl_lapack95_ilp64.a -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/libmkl_core.a ${MKLROOT}/lib/intel64/libmkl_sequential.a -Wl,--end-group -lpthread -lm" CFLAGS="-I${MKLROOT}/include/intel64/ilp64 -I${MKLROOT}/include" CXXFLAGS="-O3 -axSSE2,AVX" + else + echo "Not using external BLAS" + ./configure --prefix="$INSTALL_PREFIX" CXX=mpicxx CC=mpicc FC=mpif90 + fi + +# Turn on Crystallization module + touch src/crystallization.on + + make 2>&1 | tee make.log + make install + + # The tests also *seem* to require you to have already installed PLUMED into a prefix + export PATH="$INSTALL_PREFIX/bin:$PATH" + export CPATH="$INSTALL_PREFIX/include:$CPATH" + export LIBRARY_PATH="$INSTALL_PREFIX/lib:$LIBRARY_PATH" + export LD_LIBRARY_PATH="$INSTALL_PREFIX/lib:$LD_LIBRARY_PATH" + + # If you don't add -fopenmp here, linking the test executable fails with the Intel compiler + make check LDFLAGS+="-fopenmp" 2>&1 | tee test.log + +else + echo "Hash mismatch." + echo "Expected: $SHA1" + echo "Got: $CHECKSUM" +fi diff --git a/plumed-2.4.1_install b/plumed-2.4.1_install new file mode 100755 index 00000000..8d569c91 --- /dev/null +++ b/plumed-2.4.1_install @@ -0,0 +1,91 @@ +#!/usr/bin/env bash + +############################################### +# Installing PLUMED +# +# Uses libmatheval +# which requires flex (else you get an undefined symbol yywrap error) + +NAME=${NAME:-plumed} +VERSION=${VERSION:-2.4.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG/$BLAS_TAG} +SHA1=${SHA1:-6e5654069708ebf20248e29293cf2808c826644c} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/plumed/plumed2/archive/v${VERSION}.tar.gz} + +set -e + +# shellcheck source=/shared/ucl/apps/build_scripts/includes/module_maker_inc.sh +source "$(dirname '${0}')/includes/module_maker_inc.sh" +# shellcheck source=/shared/ucl/apps/build_scripts/includes/require_inc.sh +source "$(dirname '${0}')/includes/require_inc.sh" + +module load flex +module load libmatheval + +temp_dir=$(mktemp -d -p /dev/shm) + +cd "$temp_dir" + +wget "$SRC_ARCHIVE" +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=$(sha1sum "$archive"| awk '{print $1}') + +# Disable Intel only options if we detect GCC +IFCORE="-lifcore" +ISTRICT="-fp-model strict" +IOPTS="-axSSE2,AVX" + +if [ "$COMPILER_TAG" == "gnu-4.9.2" ] +then + IFCORE="" + ISTRICT="" + IOPTS="" +fi + +if [ "$SHA1" == "$CHECKSUM" ] +then + tar -xzf "$archive" + + cd "${NAME}2-${VERSION}" + if [ "${BLAS_TAG}" == "openblas" ] + then + # -fp-model strict required to help the tests pass. + ./configure --prefix="$INSTALL_PREFIX" CXX=mpicxx CC=mpicc FC=mpif90 LDFLAGS="-L${OPENBLASROOT}/lib" LIBS="-lopenblas ${IFCORE} -lmatheval -lfl" CXXFLAGS="-O3 ${IOPTS} ${ISTRICT}" + elif [ "${BLAS_TAG}" == "atlas" ] + then + ./configure --prefix="$INSTALL_PREFIX" CXX=mpicxx CC=mpicc FC=mpif90 LDFLAGS=-L"${ATLASROOT}/lib" LIBS="-lsatlas -lmatheval -lfl" CXXFLAGS="-O3 ${IOPTS}" + elif [ "${BLAS_TAG}" == "mkl" ] + then + echo "------------------------------------------------" + echo "ALERT ALERT, using MKL has previously not worked" + echo " --> when running make check, gives 42 failures" + echo " and various nans " + echo "------------------------------------------------" + echo "" + ./configure --prefix="$INSTALL_PREFIX" CXX=mpicxx CC=mpicc FC=mpif90 LIBS="-lmatheval -lfl ${MKLROOT}/lib/intel64/libmkl_blas95_ilp64.a ${MKLROOT}/lib/intel64/libmkl_lapack95_ilp64.a -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/libmkl_core.a ${MKLROOT}/lib/intel64/libmkl_sequential.a -Wl,--end-group -lpthread -lm" CFLAGS="-I${MKLROOT}/include/intel64/ilp64 -I${MKLROOT}/include" CXXFLAGS="-O3 -axSSE2,AVX" + else + echo "Not using external BLAS" + ./configure --prefix="$INSTALL_PREFIX" CXX=mpicxx CC=mpicc FC=mpif90 + fi + +# Turn on Crystallization module + touch src/crystallization.on + + make 2>&1 | tee make.log + make install + + # The tests also *seem* to require you to have already installed PLUMED into a prefix + export PATH="$INSTALL_PREFIX/bin:$PATH" + export CPATH="$INSTALL_PREFIX/include:$CPATH" + export LIBRARY_PATH="$INSTALL_PREFIX/lib:$LIBRARY_PATH" + export LD_LIBRARY_PATH="$INSTALL_PREFIX/lib:$LD_LIBRARY_PATH" + + # If you don't add -fopenmp here, linking the test executable fails with the Intel compiler + make check LDFLAGS+="-fopenmp" 2>&1 | tee test.log + +else + echo "Hash mismatch." + echo "Expected: $SHA1" + echo "Got: $CHECKSUM" +fi diff --git a/plumed-2.4.2_install b/plumed-2.4.2_install new file mode 100755 index 00000000..d4ad4f46 --- /dev/null +++ b/plumed-2.4.2_install @@ -0,0 +1,85 @@ +#!/usr/bin/env bash + +############################################### +# Installing PLUMED +# +# Uses libmatheval +# which requires flex (else you get an undefined symbol yywrap error) +# +# To build with gcc run with GCC=yes ./plumed-2.4.2_install + +NAME=${NAME:-plumed} +VERSION=${VERSION:-2.4.2} +SHA256=${SHA256:-528ce57f1f5330480bcd403140166a4580efd2acaea39c85dfeca5e2cd649321} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/plumed/plumed2/archive/v${VERSION}.tar.gz} +BUILD_DIR=${BUILD_DIR:-$(mktemp -d -p /dev/shm -t "${NAME}"-build.XXXXXXXX)} +GCC=${GCC:-no} + +set -e + +# require modules for building +source includes/source_includes.sh +module purge +module load gcc-libs + +if [ "$GCC" == "no" ] +then + module load compilers/intel/2018/update3 + module load mpi/intel/2018/update3/intel +else + module load compilers/gnu/4.9.2 + module load mpi/openmpi/3.1.1/gnu-4.9.2 + module load openblas/0.2.14/gnu-4.9.2 +fi + +module load flex +module load libmatheval + +# set once we know which modules are loaded +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG/$BLAS_TAG} + +cd "$BUILD_DIR" + +wget "$SRC_ARCHIVE" +archive=$(basename "${SRC_ARCHIVE}") + +echo "Checking hashes:" +sha256sum -c <<<"$SHA256 $archive" + +# Disable Intel only options if we detect GCC +# fp-model precise required to make the tests pass +IFCORE="-lifcore" +ISTRICT="-fp-model precise" +IOPTS="-axSSE4.2,AVX,AVX2" + +if [ "$COMPILER_TAG" == "gnu-4.9.2" ] +then + IFCORE="" + ISTRICT="" + IOPTS="" +fi + +tar -xzf "$archive" + +cd "${NAME}2-${VERSION}" + +if [ "$BLAS_TAG" == "openblas" ] +then + ./configure --prefix="$INSTALL_PREFIX" CXX=mpicxx CC=mpicc FC=mpif90 LDFLAGS="-L${OPENBLASROOT}/lib" LIBS="-lopenblas ${IFCORE} -lmatheval -lfl" CXXFLAGS="-O3 ${IOPTS} ${ISTRICT}" +else + ./configure --prefix="$INSTALL_PREFIX" CXX=mpicxx CC=mpicc FC=mpif90 LIBS="-mkl ${IFCORE} -lmatheval -lfl" CXXFLAGS="-O3 ${IOPTS} ${ISTRICT}" +fi +# Turn on Crystallization module +touch src/crystallization.on + +make 2>&1 | tee make.log +make install + +# The tests also *seem* to require you to have already installed PLUMED into a prefix +export PATH="$INSTALL_PREFIX/bin:$PATH" +export CPATH="$INSTALL_PREFIX/include:$CPATH" +export LIBRARY_PATH="$INSTALL_PREFIX/lib:$LIBRARY_PATH" +export LD_LIBRARY_PATH="$INSTALL_PREFIX/lib:$LD_LIBRARY_PATH" + +make check 2>&1 | tee test.log + diff --git a/protobuf-3.5.1_install b/protobuf-3.5.1_install new file mode 100755 index 00000000..d44dff6b --- /dev/null +++ b/protobuf-3.5.1_install @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +############################################### +# Installing Google Protocol Buffers +# + +set -e + +VERSION=${VERSION:-3.5.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/protobuf/${VERSION}/${COMPILER_TAG}} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/google/protobuf.git} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +# Use the same environment used for building R + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require python3/3.6 + +mkdir -p /dev/shm/protobuf + +temp_dir=`mktemp -d -p /dev/shm/protobuf` + +cd $temp_dir + +git clone $SRC_ARCHIVE + +cd protobuf + +git checkout v${VERSION} + +# Install C++ version + +./autogen.sh +./configure --prefix=${INSTALL_PREFIX} +make | tee make_log +make check | tee make-check_log +make install | tee make-install_log + +export PATH=$INSTALL_PREFIX/bin:$PATH +export LD_LIBARAY_PATH=$INSTALL_PREFIX/lib:$LD_LIBRARY_PREFIX + +# Install python 3 version +cd python +export PYTHONPATH=${INSTALL_PREFIX}/lib/python3.6/site-packages/:${PYTHONPATH} +mkdir -p ${INSTALL_PREFIX}/lib/python3.6/site-packages +python3 setup.py install --prefix=${INSTALL_PREFIX} + diff --git a/protocol-buffers_install b/protocol-buffers_install new file mode 100755 index 00000000..31915165 --- /dev/null +++ b/protocol-buffers_install @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +############################################### +# Installing Google Protocol Buffers +# +# Primarily for R + + +# +# by Brian Alston, 2017 +# +# Will need modules: rcps-core/1.0.0 and compilers/gnu/4.9.2 + +VERSION=${VERSION:-12-2017} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/protobuf/$VERSION/gnu-4.9.2} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/google/protobuf.git} + +export PATH=$INSTALL_PREFIX/bin:$PATH + +dirname=$(dirname $0 2>/dev/null || pwd) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/module_maker_inc.sh +source ${INCLUDES_DIR}/require_inc.sh + +# Use the same environment used for building R + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require openblas/0.2.14/gnu-4.9.2 +require java/1.8.0_92 +require fftw/3.3.4/gnu-4.9.2 +require ghostscript/9.19/gnu-4.9.2 +require texinfo/5.2/gnu-4.9.2 +require texlive/2015 +require gsl/1.16/gnu-4.9.2 +require hdf/5-1.8.15/gnu-4.9.2 +require udunits/2.2.20/gnu-4.9.2 +require netcdf/4.3.3.1/gnu-4.9.2 +require jags/4.2.0/gnu.4.9.2-openblas +require root/5.34.30/gnu-4.9.2 + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +git clone $SRC_ARCHIVE + +cd protobuf +./autogen.sh +./configure --prefix=${INSTALL_PREFIX} +make | tee make_log +make check | tee make-check_log +make install | tee make-install_log + + + diff --git a/pstreams-1.0.1_install b/pstreams-1.0.1_install new file mode 100755 index 00000000..1f952aa6 --- /dev/null +++ b/pstreams-1.0.1_install @@ -0,0 +1,76 @@ +#!/usr/bin/env bash + +set -e + +package_name="pstreams" +package_version="1.0.1" +package_description="PStreams is a C++ wrapper for process control and streaming using popen and pclose." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/gnu/4.9.2 + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.gz" + package_url="https://downloads.sourceforge.net/project/${package_name}/${package_name}/Release%201.0/${package_name}-${package_version}.tar.gz" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha256:a5f1f2e014392cd0e2cdb508a429e11afe64140db05b7f0a83d7534faa1a9226 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make \ + prefix="$install_prefix" + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + + make install prefix="$install_prefix" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "pstreams" + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/pycuda-2017.1.1_install b/pycuda-2017.1.1_install new file mode 100755 index 00000000..88f89b2c --- /dev/null +++ b/pycuda-2017.1.1_install @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2018 +# +set -e + +NAME=${NAME:-pycuda} +VERSION=${VERSION:-2017.1.1} +PYTHON_VER=${PYTHON_VER:-3} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$PYTHON_VER} + +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +prereq compilers/gnu +prereq python${PYTHON_VER}/recommended +prereq cuda/8.0.61-patch2 + +pip install --install-option="--prefix=$INSTALL_PREFIX" pycuda==$VERSION diff --git a/pygsl-latest_install b/pygsl-latest_install new file mode 100755 index 00000000..e1b30a38 --- /dev/null +++ b/pygsl-latest_install @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +set -o errexit + +#Normally these blocks are in an order that aids readability, but here we need the Python version before we +# can determine the labels for the build environment + +source includes/source_includes.sh + +module purge +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require "python3/$python_version_tag" +require gsl/1.16/gnu-4.9.2 + +python_version_tag="${PYTHON_VERSION_TAG:-3.6}" +package_variant="python$python_version_tag" + +package_name="pygsl" +package_version=${VERSION:-$(python3 /shared/ucl/apps/build_scripts/files/pypiver.py $package_name)} +package_description="PyGSL provides Python bindings for the GNU Scientific Library." + +make_build_env "" + +pip install \ + --install-option="--prefix=$install_prefix" \ + --install-option="--install-headers=$install_prefix/includes" \ + pygsl=="${package_version}" + +make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -e "PYTHONPATH:$install_prefix/lib/python$PYTHON_VERSION_TAG/site-packages" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "$package_name" \ + -r "gcc-libs/4.9.2" \ + -r "compilers/gnu/4.9.2" \ + -r "python3/$python_version_tag" \ + -r "gsl/1.16/gnu-4.9.2" +echo "Module files put in: $module_dir" >&2 +chmod a+rx "$module_dir" + + + diff --git a/pypy3-6.0.0_install b/pypy3-6.0.0_install new file mode 100755 index 00000000..f62137c4 --- /dev/null +++ b/pypy3-6.0.0_install @@ -0,0 +1,83 @@ +#!/usr/bin/env bash + +set -e + +package_name="pypy3" +package_version="6.0.0" +package_description="Pypy is a JIT-ing interpreter for the Python language. This is the version intended to be compatible with CPython 3.5." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs/4.9.2 + require compilers/gnu/4.9.2 + require python/2.7.12 + + make_build_env "" + + package_url="https://bitbucket.org/pypy/pypy/downloads/${package_name}-v${package_version}-src.tar.bz2" + package_file="${package_name}-v${package_version}-src.tar.bz2" + unpack_dir="${package_name}-v${package_version}-src" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + manifest sha256:ed8005202b46d6fc6831df1d13a4613bc40084bfa42f275068edadf8954034a3 pypy3-v6.0.0-src.tar.bz2 + + tar -xf "$package_file" + + # We also need this extra package for the translation process, but we can chuck it in our build directory temporarily. + wget https://files.pythonhosted.org/packages/8c/2d/aad7f16146f4197a11f8e91fb81df177adcc2073d36a17b1491fd09df6ed/pycparser-2.18.tar.gz + manifest sha256:99a8ca03e29851d96616ad0404b4aad7d9ee16f25c9f9708a11faf2810f7b226 pycparser-2.18.tar.gz + tar -xf pycparser-2.18.tar.gz + export PYTHONPATH="${PYTHONPATH:-}${PYTHONPATH:+:}$build_dir/pycparser-2.18" + +} + +_build() { + cd "$unpack_dir" + pushd pypy/goal + python ../../rpython/bin/rpython --opt=jit targetpypystandalone + popd + cd .. +} + +_post_build() { + cd "$unpack_dir" + pushd pypy/tool/release + ./package.py --archive-name="${package_name}-${package_version}" --targetdir="${build_dir}" + popd + + mkdir -p "$install_prefix" + tar \ + --extract \ + --directory="$install_prefix" \ + --strip-components=1 \ + --file="${build_dir}/${package_name}-${package_version}.tar.bz2" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -r gcc-libs/4.9.2 \ + -c "$package_name" \ + -w "$package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx "$module_dir" + cd .. +} + +_clean_up() { + #rm -Rf ${temp_dir:-ERROR_TEMP_DIR_NOT_SET} + : +} + +_env_setup +_file_setup +_build +_post_build +_clean_up + diff --git a/pypy3-bundle_install b/pypy3-bundle_install new file mode 100755 index 00000000..d5d4fe7b --- /dev/null +++ b/pypy3-bundle_install @@ -0,0 +1,93 @@ +#!/usr/bin/env bash + +# Package bundle builder for Pypy3 + +python_compat_version=${PYTHON_COMPAT_VERSION:-3.5} +install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/pypy/bundles} +python_major_version=${PYTHON_MAJ_VERSION:-3} +timestamp=$(date +"%s") + + +# Use local list dir for testing if exists, else the system one +if [[ -d "$(pwd)/lists" ]]; then + list_dir="$(pwd)/lists" +else + list_dir="/shared/ucl/apps/build_scripts/lists" +fi + +# Disable wheels for some packages +pip_no_binary_list=${pip_no_binary_list:-:all:} + +set -e + +# module dependencies: +dirname=$(dirname "$0" 2>/dev/null) +includes_dir=${INCLUDES_DIR:-${dirname}/includes} +source "${includes_dir}/require_inc.sh" +module purge +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require pypy3/6.0.0/gnu-4.9.2 +require openblas/0.2.14/gnu-4.9.2 + +mkdir -p "$install_prefix" + +cd "$install_prefix" +echo "Making bundle install directory: $install_prefix/$timestamp-$python_major_version" +mkdir "$timestamp-$python_major_version" +cd "$timestamp-$python_major_version" + + +pypy3 -m venv --system-site-packages venv + +source venv/bin/activate + +# These are used when installing numpy +LAPACK=${LAPACK:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib/libopenblas.so} +BLAS=${BLAS:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib/libopenblas.so} + +export LAPACK +export BLAS + +pip3 install --upgrade pip + +# You'd *think* you could just do this, BUT NO +# SOME package authors think it's fine to break with an error +# INSTEAD OF DECLARING THEIR DEPENDENCIES +#pip3 install --no-binary "$pip_no_binary_list" -r "$list_dir/pypy-shared.list" +#pip3 install --no-binary "$pip_no_binary_list" -r "$list_dir/pypy-3.list" +echo "====" +echo " Installing lists from $list_dir..." +echo "====" + +old_IFS="$IFS" +IFS=$'\n' +for entry in $(cat "$list_dir/pypy-shared.list") +do + # Ignore blank and comment lines in the lists + if [[ -n "$entry" ]] && [[ ! "${entry// /}" =~ ^\# ]]; + then + echo "---- $entry ----" + # The no-build-isolation part here works around a problem with pip 10's + # incomplete implementation of the recent build isolation PEP, that + # breaks some Cython-using packages. + pip3 install --no-build-isolation --no-binary "$pip_no_binary_list" "$entry" + fi +done + +for entry in $(cat "$list_dir/pypy-3.list") +do + # Ignore blank and comment lines in the lists + if [[ -n "$entry" ]] && [[ ! "${entry// /}" =~ ^\# ]]; + then + # The no-build-isolation part here works around a problem with pip 10's + # incomplete implementation of the recent build isolation PEP, that + # breaks some Cython-using packages. + pip3 install --no-build-isolation --no-binary "$pip_no_binary_list" "$entry" + fi +done +IFS="$old_IFS" + +cd .. +ln -Tfs "$timestamp-$python_major_version" "pypy${python_major_version}-${python_compat_version}" +echo "Linked bundle install directory to label-link: pypy${python_major_version}-${python_compat_version}" diff --git a/python-2.7.9_install b/python-2.7.12_install similarity index 94% rename from python-2.7.9_install rename to python-2.7.12_install index d84f4929..e0a79f8b 100755 --- a/python-2.7.9_install +++ b/python-2.7.12_install @@ -7,9 +7,9 @@ # COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} -VERSION=${VERSION:-2.7.9} +VERSION=${VERSION:-2.7.12} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/python/$VERSION/$COMPILER_TAG} -MD5=${MD5:-38d530f7efc373d64a8fb1637e3baaa7} +MD5=${MD5:-57dffcee9cee8bb2ab5f82af1d8e9a69} SRC_ARCHIVE=${SRC_ARCHIVE:-https://www.python.org/ftp/python/${VERSION}/Python-${VERSION}.tar.xz} set -e diff --git a/python-3.6.1_install b/python-3.6.1_install new file mode 100755 index 00000000..b363cf89 --- /dev/null +++ b/python-3.6.1_install @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +############################################### +# Installing Python +# + +package_name="python" +package_version="3.6.1" +SHA=${SHA:=91d880a2a9fcfc6753cbfa132bf47a47e17e7b16} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://www.python.org/ftp/python/${package_version}/Python-${package_version}.tar.xz} + +set -e + +source includes/source_includes.sh + +module purge +require gcc-libs +require compilers/gnu + +make_build_env + +export PATH="$install_prefix/bin:$PATH" +export LD_LIBRARY_PATH="$install_prefix/lib:$LD_LIBRARY_PATH" + +cd "$build_dir" + +wget "$SRC_ARCHIVE" + +manifest \ + "sha1:$SHA" "Python-${package_version}.tar.xz" + +tar -xf "Python-${package_version}.tar.xz" + +cd "Python-${package_version}" +./configure --prefix="$install_prefix" \ + --enable-shared \ + --with-threads \ + --enable-ipv6 \ + --with-ensurepip + +make -l "$(nproc)" -j && make install +pip3 install --upgrade pip +pip3 install virtualenv + +make_module \ + -o "$module_dir/$package_label" \ + -c python \ + -r gcc-libs \ + -p "$install_prefix" \ + -w "Adds Python 3.5.2 with pip and virtualenv to your environment variables." + +chmod -R a+rX "$module_dir" +echo "Modules in: $module_dir/$package_label" diff --git a/python-3.6.3_install b/python-3.6.3_install new file mode 100755 index 00000000..b40b9027 --- /dev/null +++ b/python-3.6.3_install @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +############################################### +# Installing Python +# + +package_name="python" +package_version="3.6.3" +SHA=${SHA:=6c71b14bdbc4d8aa0cfd59d4b6dc356d46abfdf5} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://www.python.org/ftp/python/${package_version}/Python-${package_version}.tar.xz} + +set -e + +source includes/source_includes.sh + +module purge +require gcc-libs +require compilers/gnu + +make_build_env + +export PATH="$install_prefix/bin:$PATH" +export LD_LIBRARY_PATH="$install_prefix/lib:$LD_LIBRARY_PATH" + +cd "$build_dir" + +wget "$SRC_ARCHIVE" + +manifest \ + "sha1:$SHA" "Python-${package_version}.tar.xz" + +tar -xf "Python-${package_version}.tar.xz" + +cd "Python-${package_version}" +./configure --prefix="$install_prefix" \ + --enable-shared \ + --with-threads \ + --enable-ipv6 \ + --with-ensurepip + +make -l "$(nproc)" -j && make install +pip3 install --upgrade pip +pip3 install virtualenv + +make_module \ + -o "$module_dir/$package_label" \ + -c python \ + -r gcc-libs \ + -p "$install_prefix" \ + -w "Adds Python 3.6.3 with pip and virtualenv to your environment variables." + +chmod -R a+rX "$module_dir" +echo "Modules in: $module_dir/$package_label" diff --git a/python-3.7.0_install b/python-3.7.0_install new file mode 100755 index 00000000..729276a1 --- /dev/null +++ b/python-3.7.0_install @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +############################################### +# Installing Python +# + +package_name="python" +package_version="3.7.0" +SHA=${SHA:-8bb11233fb67ee9ab8ed1b72f8fdc62f66e26a6beaaeb92448bce681cf065269833b1658d3ed2459127f25ba43adb0eab73cf27c59834a2a803fb529b4216739} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://www.python.org/ftp/python/${package_version}/Python-${package_version}.tar.xz} + +set -e + +source includes/source_includes.sh + +module purge +require gcc-libs +require compilers/gnu + +make_build_env + +export PATH="$install_prefix/bin:$PATH" +export LD_LIBRARY_PATH="$install_prefix/lib:$LD_LIBRARY_PATH" + +cd "$build_dir" + +wget "$SRC_ARCHIVE" + +manifest \ + "sha512:$SHA" "Python-${package_version}.tar.xz" + +tar -xf "Python-${package_version}.tar.xz" + +cd "Python-${package_version}" +./configure --prefix="$install_prefix" \ + --enable-shared \ + --with-threads \ + --enable-ipv6 \ + --with-ensurepip + +make -l "$(nproc)" -j && make install +pip3 install --upgrade pip +pip3 install virtualenv + diff --git a/python2-bundle_install b/python2-bundle_install index c1597e2a..f0a0bc19 100755 --- a/python2-bundle_install +++ b/python2-bundle_install @@ -12,7 +12,7 @@ PYTHON_VERSION=${PYTHON_VERSION:-2} TIME_STAMP=`date +"%s"` # Disable wheels for some packages -PIPNOBIN=${PIPNOBIN:-numpy,scipy,cvxopt} +PIPNOBIN=${PIPNOBIN:-numpy,scipy} set -e @@ -37,32 +37,31 @@ source venv/bin/activate LAPACK=${LAPACK:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib/libopenblas.so} BLAS=${BLAS:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib/libopenblas.so} -CVXOPT_BLAS_LIB_DIR=${CVXOPT_BLAS_LIB_DIR:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib} -CVXOPT_BLAS_LIB=${CVXOPT_BLAS_LIB:-openblas} -CVXOPT_LAPACK_LIB_DIR=${CVXOPT_LAPACK_LIB_DIR:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib} -CVXOPT_LAPACK_LIB=${CVXOPT_LAPACK_LIB:-openblas} - export LAPACK export BLAS -export CVXOPT_BLAS_LIB_DIR -export CVXOPT_BLAS_LIB -export CVXOPT_LAPACK_LIB_DIR -export CVXOPT_LAPACK_LIB pip install --upgrade pip -for a in `cat /shared/ucl/apps/build_scripts/lists/python-shared.list` +old_IFS="$IFS" +IFS=$'\n' +for entry in `cat /shared/ucl/apps/build_scripts/lists/python-shared.list` do - pip install --no-binary $PIPNOBIN $a + if [[ -n "$entry" ]] && [[ ! "${entry// /}" =~ ^\# ]]; + then + pip install --no-cache-dir --no-binary $PIPNOBIN $entry + fi done -for a in `cat /shared/ucl/apps/build_scripts/lists/python-2.list` +for entry in `cat /shared/ucl/apps/build_scripts/lists/python-2.list` do - pip install --no-binary $PIPNOBIN $a + if [[ -n "$entry" ]] && [[ ! "${entry// /}" =~ ^\# ]]; + then + pip install --no-cache-dir --no-binary $PIPNOBIN $entry + fi done - +IFS="$old_IFS" cd .. ln -Tfs $TIME_STAMP-$PYTHON_VERSION python${PYTHON_VERSION}-${VERSION} diff --git a/python3-bundle_install b/python3-bundle_install index 53a0cdd8..41b85555 100755 --- a/python3-bundle_install +++ b/python3-bundle_install @@ -3,16 +3,16 @@ ############################################### # Installing Python # -# by Owain Kenway, 2015 +# by Owain Kenway, 2017 # -VERSION=${VERSION:-2.0.0} +VERSION=${VERSION:-3.0.0} INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/python/bundles} PYTHON_VERSION=${PYTHON_VERSION:-3} TIME_STAMP=`date +"%s"` # Disable wheels for some packages -PIPNOBIN=${PIPNOBIN:-numpy,scipy,cvxopt} +PIPNOBIN=${PIPNOBIN:-numpy,scipy} set -e @@ -21,7 +21,7 @@ dirname=$(dirname $0 2>/dev/null) INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} source ${INCLUDES_DIR}/require_inc.sh require compilers/gnu/4.9.2 -require python/3.5.2 +require python/3.6.3 require openblas/0.2.14/gnu-4.9.2 mkdir -p $INSTALL_PREFIX @@ -38,32 +38,42 @@ source venv/bin/activate LAPACK=${LAPACK:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib/libopenblas.so} BLAS=${BLAS:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib/libopenblas.so} -CVXOPT_BLAS_LIB_DIR=${CVXOPT_BLAS_LIB_DIR:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib} -CVXOPT_BLAS_LIB=${CVXOPT_BLAS_LIB:-openblas} -CVXOPT_LAPACK_LIB_DIR=${CVXOPT_LAPACK_LIB_DIR:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib} -CVXOPT_LAPACK_LIB=${CVXOPT_LAPACK_LIB:-openblas} +#CVXOPT_BLAS_LIB_DIR=${CVXOPT_BLAS_LIB_DIR:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib} +#CVXOPT_BLAS_LIB=${CVXOPT_BLAS_LIB:-openblas} +#CVXOPT_LAPACK_LIB_DIR=${CVXOPT_LAPACK_LIB_DIR:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib} +#CVXOPT_LAPACK_LIB=${CVXOPT_LAPACK_LIB:-openblas} export LAPACK export BLAS -export CVXOPT_BLAS_LIB_DIR -export CVXOPT_BLAS_LIB -export CVXOPT_LAPACK_LIB_DIR -export CVXOPT_LAPACK_LIB +#export CVXOPT_BLAS_LIB_DIR +#export CVXOPT_BLAS_LIB +#export CVXOPT_LAPACK_LIB_DIR +#export CVXOPT_LAPACK_LIB pip3 install --upgrade pip -for a in `cat /shared/ucl/apps/build_scripts/lists/python-shared.list` +old_IFS="$IFS" +IFS=$'\n' +for entry in `cat /shared/ucl/apps/build_scripts/lists/python-shared.list` do - pip3 install --no-binary $PIPNOBIN $a + # Ignore blank and comment lines in the lists + if [[ -n "$entry" ]] && [[ ! "${entry// /}" =~ ^\# ]]; + then + pip3 install --no-cache-dir --no-binary $PIPNOBIN $entry + fi done -for a in `cat /shared/ucl/apps/build_scripts/lists/python-3.list` +for entry in `cat /shared/ucl/apps/build_scripts/lists/python-3.list` do - pip3 install --no-binary $PIPNOBIN $a + # Ignore blank and comment lines in the lists + if [[ -n "$entry" ]] && [[ ! "${entry// /}" =~ ^\# ]]; + then + pip3 install --no-cache-dir --no-binary $PIPNOBIN $entry + fi done - +IFS="$old_IFS" cd .. ln -Tfs $TIME_STAMP-$PYTHON_VERSION python${PYTHON_VERSION}-${VERSION} diff --git a/python37-bundle_install b/python37-bundle_install new file mode 100755 index 00000000..e5659886 --- /dev/null +++ b/python37-bundle_install @@ -0,0 +1,80 @@ +#!/usr/bin/env bash + +############################################### +# Installing Python +# +# by Owain Kenway, 2017 +# + +VERSION=${VERSION:-4.0.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/python/bundles} +PYTHON_VERSION=${PYTHON_VERSION_TAG:-37} + +TIME_STAMP=`date +"%s"` + +# Disable wheels for some packages +PIPNOBIN=${PIPNOBIN:-numpy,scipy} + +set -e + +# module dependencies: +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +require compilers/gnu/4.9.2 +require python/3.7.0 +require openblas/0.2.14/gnu-4.9.2 + +mkdir -p $INSTALL_PREFIX + +cd $INSTALL_PREFIX +mkdir $TIME_STAMP-$PYTHON_VERSION +cd $TIME_STAMP-$PYTHON_VERSION + + +virtualenv --system-site-packages venv + +source venv/bin/activate + +LAPACK=${LAPACK:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib/libopenblas.so} +BLAS=${BLAS:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib/libopenblas.so} + +#CVXOPT_BLAS_LIB_DIR=${CVXOPT_BLAS_LIB_DIR:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib} +#CVXOPT_BLAS_LIB=${CVXOPT_BLAS_LIB:-openblas} +#CVXOPT_LAPACK_LIB_DIR=${CVXOPT_LAPACK_LIB_DIR:-/shared/ucl/apps/openblas/0.2.14/gnu-4.9.2/lib} +#CVXOPT_LAPACK_LIB=${CVXOPT_LAPACK_LIB:-openblas} + + +export LAPACK +export BLAS + +#export CVXOPT_BLAS_LIB_DIR +#export CVXOPT_BLAS_LIB +#export CVXOPT_LAPACK_LIB_DIR +#export CVXOPT_LAPACK_LIB + +pip3 install --upgrade pip + +old_IFS="$IFS" +IFS=$'\n' +for entry in `cat /shared/ucl/apps/build_scripts/lists/python-shared37-fixed.list` +do + # Ignore blank and comment lines in the lists + if [[ -n "$entry" ]] && [[ ! "${entry// /}" =~ ^\# ]]; + then + pip3 install --no-cache-dir --no-binary $PIPNOBIN $entry + fi +done + +for entry in `cat /shared/ucl/apps/build_scripts/lists/python-3.list` +do + # Ignore blank and comment lines in the lists + if [[ -n "$entry" ]] && [[ ! "${entry// /}" =~ ^\# ]]; + then + pip3 install --no-cache-dir --no-binary $PIPNOBIN $entry + fi +done +IFS="$old_IFS" + +cd .. +ln -Tfs $TIME_STAMP-$PYTHON_VERSION python${PYTHON_VERSION}-${VERSION} diff --git a/qctool-v2-beta-ba5eaa4_install b/qctool-v2-beta-ba5eaa4_install new file mode 100755 index 00000000..380c10e5 --- /dev/null +++ b/qctool-v2-beta-ba5eaa4_install @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +############################################### +# Installing qctool +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-qctool} +VERSION=${VERSION:-ba5eaa44a62f} # Beta as of 8/8/18 +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://gavinband@bitbucket.org/gavinband/qctool} + +set -e + + +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +require python2/recommended # OpenBlas and HG + +hg clone -r $VERSION $SRC_ARCHIVE + +# Get our python out of the way. +module remove python2 +require openblas/0.2.14/gnu-4.9.2 + +cd qctool + +# WAF version number is in the filename because. +WAF=./`ls waf*` + +$WAF configure --prefix=$INSTALL_PREFIX +$WAF +$WAF install diff --git a/quantum-espresso-6.1_install b/quantum-espresso-6.1_install new file mode 100755 index 00000000..b463a108 --- /dev/null +++ b/quantum-espresso-6.1_install @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +# +# Note that pw_pawatom test will probably fail, so can do second run without tests: +# RUN_TESTS="no" ./quantum-espresso-6.1_install +# + +NAME=${NAME:-quantum-espresso} +VERSION=${VERSION:-6.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-4c19c8076b95d01ac298982cfc3e1b5f60611fb6cf4175689aef2f350c5e23bf} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://qe-forge.org/gf/download/frsrelease//240/1075/qe-${VERSION}.tar.gz} +BUILD_DIR=${BUILD_DIR:-$(mktemp -d -p /dev/shm -t ${NAME}-build.XXXXXXXX)} +COMPILE_FLAGS=${COMPILE_FLAGS:-"-fp-model strict"} +RUN_TESTS=${RUN_TESTS:-"yes"} + +set -o errexit -o nounset + +# module prereqs for building +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +prereq gcc-libs +prereq compilers/intel +prereq mpi/intel + +cd $BUILD_DIR +echo "Starting to build in: $BUILD_DIR" + +wget $SRC_ARCHIVE +archive=$(basename "$SRC_ARCHIVE") + +CHECKSUM=`sha256sum $archive| awk '{print $1}'` + +if [ "$SHA256" == "$CHECKSUM" ] +then + + tar -xvf $archive + cd qe-${VERSION} + + # Should probably add this to the MKL module but it needs to be set either way + export CPATH=$MKLROOT/include/fftw:$CPATH + + # QE doesn't really seem to *get* how prefixes should work + ./configure --prefix=${INSTALL_PREFIX} FFLAGS="${COMPILE_FLAGS}" --enable-parallel --with-scalapack=intel FFT_LIBS=-lfftw3xf_intel + + make all w90 want west couple gui 2>&1 | tee make.log + if [ "$RUN_TESTS" == "yes" ] + then + echo "Running tests: pw_pawatom expected to fail (benchmark is serial multithreaded 4)" + make test-suite 2>&1 | tee test.log + fi + make install + + # need to copy the whole PWgui directory into the install location + pwguidir=$(find . -maxdepth 1 -type d -iname 'pwgui*') + cp -r $pwguidir $INSTALL_PREFIX + cp -r $pwguidir/pwgui $INSTALL_PREFIX/bin + + echo "Installed to: $INSTALL_PREFIX" + +else + echo "Hash mismatch." + echo "Expected: $SHA256" + echo "Got: $CHECKSUM" +fi diff --git a/quantum-espresso-6.2_install b/quantum-espresso-6.2_install new file mode 100755 index 00000000..c2f059a7 --- /dev/null +++ b/quantum-espresso-6.2_install @@ -0,0 +1,66 @@ +#!/usr/bin/env bash +# +# Note that pw_pawatom test will probably fail, so can do second run without tests: +# RUN_TESTS="no" ./quantum-espresso-6.1_install +# +# Includes building d3q add-on + +NAME=${NAME:-quantum-espresso} +VERSION=${VERSION:-6.2.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-6cdd4c8883b4a2262ac98ea452f845ed935294b3988a84b238d833558eb90f0c} +SRC_ARCHIVE=${SRC_ARCHIVE:-http://qe-forge.org/gf/download/frsrelease/247/1132/qe-${VERSION}.tar.gz} +BUILD_DIR=${BUILD_DIR:-$(mktemp -d -p /dev/shm -t ${NAME}-build.XXXXXXXX)} +COMPILE_FLAGS=${COMPILE_FLAGS:-"-fp-model strict"} +RUN_TESTS=${RUN_TESTS:-"yes"} + +set -o errexit -o nounset + +# module prereqs for building +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +prereq gcc-libs +prereq compilers/intel +prereq mpi/intel + +cd $BUILD_DIR +echo "Starting to build in: $BUILD_DIR" + +wget $SRC_ARCHIVE +archive=$(basename "$SRC_ARCHIVE") + +CHECKSUM=`sha256sum $archive| awk '{print $1}'` + +if [ "$SHA256" == "$CHECKSUM" ] +then + + tar -xvf $archive + cd qe-${VERSION} + + # Should probably add this to the MKL module but it needs to be set either way + export CPATH=$MKLROOT/include/fftw:$CPATH + + ./configure --prefix=${INSTALL_PREFIX} FFLAGS="${COMPILE_FLAGS}" --enable-parallel --with-scalapack=intel FFT_LIBS=-lfftw3xf_intel + + # want and couple not compilable with 6.2.1 + make all w90 want west couple gui epw d3q 2>&1 | tee make.log + if [ "$RUN_TESTS" == "yes" ] + then + echo "Running tests: pw_pawatom expected to fail (benchmark is serial multithreaded 4)" + make test-suite 2>&1 | tee test.log + fi + make install + + # need to copy the whole PWgui directory into the install location + pwguidir=$(find . -maxdepth 1 -type d -iname 'pwgui*') + cp -r $pwguidir $INSTALL_PREFIX + cp -r $pwguidir/pwgui $INSTALL_PREFIX/bin + + echo "Installed to: $INSTALL_PREFIX" + +else + echo "Hash mismatch." + echo "Expected: $SHA256" + echo "Got: $CHECKSUM" +fi diff --git a/quip-18c5440-threads_install b/quip-18c5440-threads_install new file mode 100755 index 00000000..790eb827 --- /dev/null +++ b/quip-18c5440-threads_install @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +############################################### +# Installing quip from git +# +# by Owain Kenway, 2017 +# + +APPNAME=${APPNAME:-quip} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/libAtoms/QUIP.git} + +set -e + +mkdir -p /dev/shm/$APPNAME +temp_dir=`mktemp -d -p /dev/shm/$APPNAME` + +cd $temp_dir + +git clone --recursive $SRC_ARCHIVE + +#VERSION=${VERSION:-`git rev-parse --short HEAD`} +VERSION=${VERSION:-18c5440} + + +cd QUIP +git checkout $VERSION + +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/${VERSION}-threads} + +mkdir -p ${INSTALL_PREFIX}/lib +mkdir -p ${INSTALL_PREFIX}/include +mkdir -p ${INSTALL_PREFIX}/structures +mkdir -p ${INSTALL_PREFIX}/bin + +export QUIP_INSTALLDIR=${INSTALL_PREFIX}/bin +export QUIP_STRUCT_DIR=${INSTALL_PREFIX}/structures +export QUIP_ARCH=linux_x86_64_gfortran_openmpi + +mkdir -p build/${QUIP_ARCH} + +cp /shared/ucl/apps/build_scripts/cp2k-4.1-patches/QUIP_Makefile.inc build/${QUIP_ARCH}/Makefile.inc + +make +make libquip +make install + +# Need to manually put stuff in the right place. +cp build/${QUIP_ARCH}/*.a ${INSTALL_PREFIX}/lib +cp build/${QUIP_ARCH}/*.mod ${INSTALL_PREFIX}/include + +echo "Install complete: ${INSTALL_PREFIX}" + + + + diff --git a/quip-git_install b/quip-git_install new file mode 100755 index 00000000..02242a71 --- /dev/null +++ b/quip-git_install @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +############################################### +# Installing quip from git +# +# by Owain Kenway, 2017 +# + +APPNAME=${APPNAME:-quip} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/libAtoms/QUIP.git} + +set -e + +mkdir -p /dev/shm/$APPNAME +temp_dir=`mktemp -d -p /dev/shm/$APPNAME` + +cd $temp_dir + +git clone --recursive $SRC_ARCHIVE +cd QUIP + +VERSION=${VERSION:-`git rev-parse --short HEAD`} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/$VERSION} + +mkdir -p ${INSTALL_PREFIX}/lib +mkdir -p ${INSTALL_PREFIX}/include +mkdir -p ${INSTALL_PREFIX}/structures +mkdir -p ${INSTALL_PREFIX}/bin + +export QUIP_INSTALLDIR=${INSTALL_PREFIX}/bin +export QUIP_STRUCT_DIR=${INSTALL_PREFIX}/structures +export QUIP_ARCH=linux_x86_64_gfortran_openmpi + +mkdir -p build/${QUIP_ARCH} + +cp /shared/ucl/apps/build_scripts/cp2k-4.1-patches/QUIP_Makefile.inc build/${QUIP_ARCH}/Makefile.inc + +make +make libquip +make install + +# Need to manually put stuff in the right place. +cp build/${QUIP_ARCH}/*.a ${INSTALL_PREFIX}/lib +cp build/${QUIP_ARCH}/*.mod ${INSTALL_PREFIX}/include + +echo "Install complete: ${INSTALL_PREFIX}" + + + + diff --git a/qutip-4.1.0_install b/qutip-4.1.0_install new file mode 100755 index 00000000..c02258fa --- /dev/null +++ b/qutip-4.1.0_install @@ -0,0 +1,22 @@ +#!/bin/bash -l + +############################################### +# Installing iva +# +# by Owain Kenway, 2015 +# +set -e + +VERSION=${VERSION:-4.1.0} + +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/qutip/$VERSION} + +# Note, you need the following packages loaded to build this: +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +prereq compilers/gnu +prereq python2 + +pip install --install-option="--prefix=$INSTALL_PREFIX" qutip==$VERSION + diff --git a/racket-6.8_install b/racket-6.8_install new file mode 100755 index 00000000..2a52f9ef --- /dev/null +++ b/racket-6.8_install @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +############################################### +# Installing Racket +# +# by Owain Kenway, 2017 +# + +APPNAME=${APPNAME:-racket} +VERSION=${VERSION:-6.8} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/$VERSION/$COMPILER_TAG} +SHA1=${SHA1:-9e543bed0bda5c197d8ade41062d19db010099e6} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://mirror.racket-lang.org/installers/${VERSION}/racket-${VERSION}-src.tgz} + +set -e + +export PATH=$INSTALL_PREFIX/bin:$PATH + +mkdir -p /dev/shm/$APPNAME +temp_dir=`mktemp -d -p /dev/shm/$APPNAME` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`sha1sum ${APPNAME}-${VERSION}-src.tgz| awk '{print $1}'` + +if [ "$SHA1" == "$CHECKSUM" ] +then + tar -zxvf ${APPNAME}-${VERSION}-src.tgz + + cd ${APPNAME}-${VERSION}/src + ./configure --prefix=$INSTALL_PREFIX --enable-shared + make && make install +else + echo "Hash mismatch." + echo "Expected: $SHA1" + echo "Got: $CHECKSUM" +fi diff --git a/rlwrap_0.43_install b/rlwrap_0.43_install new file mode 100755 index 00000000..f1243c1c --- /dev/null +++ b/rlwrap_0.43_install @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +############################################### +# Installing rlwrap +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-rlwrap} +VERSION=${VERSION:-0.43} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-361d54b7127374e5761e0738eb7b88fb} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/hanslub42/rlwrap/archive/v${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} + +autoreconf -vi +./configure --prefix=$INSTALL_PREFIX +make +make install diff --git a/rust-1.18.0_install b/rust-1.18.0_install new file mode 100755 index 00000000..222fac54 --- /dev/null +++ b/rust-1.18.0_install @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +############################################### +# Installing rust (binary as compiling fails) +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-rust} +VERSION=${VERSION:-1.18.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION} +MD5=${MD5:-410920537501fd07bc508f28b04eb03d} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://static.rust-lang.org/dist/rust-${VERSION}-x86_64-unknown-linux-gnu.tar.gz} + +set -e + +temp_dir=`mktemp -d -p /dev/shm` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + tar -xvf $archive + + cd rust-${VERSION}-x86_64-unknown-linux-gnu + ./install.sh --prefix=${INSTALL_PREFIX} + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/sac-101.6a_r2016b_install b/sac-101.6a_r2016b_install new file mode 100755 index 00000000..6fb3e927 --- /dev/null +++ b/sac-101.6a_r2016b_install @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +############################################### +# Installing SAC +# +# by Owain Kenway, 2015 +# +# Updated October 2018 to use Matlab R2016b + +# You need to register to download a copy of the source of this package +# and then place it in the location in $SRC_ARCHIVE + +# You also need to find the line in src/mat/matBlackBoardVars.c which +# caused a redeclaration error of a variable and set REDEC_BUG appropriately +# (line 106 in 101.6a) + +APPNAME=${APPNAME:-sac} +VERSION=${VERSION:-101.6a} +COMPILER_TAG=${COMPILER_TAG:-gnu-4.9.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$APPNAME/${VERSION}_R2016b/$COMPILER_TAG} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/sac/sources/sac-101.6a_source.tar.gz} +REDEC_BUG=${REDEC_BUG:-106} +# By default don't do tests as they need an X11 session. +TESTS=${TESTS:-no} + +set -e + +mkdir -p /dev/shm/$APPNAME +temp_dir=`mktemp -d -p /dev/shm/$APPNAME` + +cd $temp_dir + +tar -zxvf $SRC_ARCHIVE + +cd ${APPNAME}-${VERSION} + +# Delete line of src/mat/matBlackBoardVars.c +cp src/mat/matBlackBoardVars.c src/mat/matBlackBoardVars.c.old +sed ''"$REDEC_BUG"'d' src/mat/matBlackBoardVars.c.old > src/mat/matBlackBoardVars.c + +./configure --prefix=$INSTALL_PREFIX --enable-xpm --enable-zlib --enable-png --enable-xft --enable-optim=2 --with-matlab=/shared/ucl/apps/Matlab/R2016b/full +make + +# This step needs X11 +if [ "$TESTS" == "yes" ] +then + # We have to set TERM to rxvt as the output files that the pytest test + # uses have rxvt control characters embedded in them and one of the tests + # will fail file comparison as a result. + # The test suite reports this as 65 errors, when it means 65 lines of + # errors from one test. + TERM=rxvt make check +fi + +make install diff --git a/sambamba-0.5.1-bindist_install b/sambamba-0.5.1-bindist_install new file mode 100755 index 00000000..047321c7 --- /dev/null +++ b/sambamba-0.5.1-bindist_install @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +package_name="sambamba" +package_version="0.5.1" +package_description="A tool for extracting information from SAM/BAM files." +package_variant="bindist" + +set -o errexit \ + -o nounset \ + -o pipefail + +source includes/source_includes.sh + +module purge + +make_build_env "" + +cd "$build_dir" +wget "https://github.com/biod/sambamba/releases/download/v${package_version}/sambamba_v${package_version}_linux.tar.bz2" +manifest sha256:d7e94c0ed87ede838d3ef5a128a0f3bd49e8d7f712609c31600552e401da4cb5 sambamba_v0.5.1_linux.tar.bz2 + +mkdir -p "$install_prefix/bin" + +cd "$install_prefix/bin" +tar -xf "$build_dir/sambamba_v${package_version}_linux.tar.bz2" + +make_module \ + -o "$module_dir/$package_label" \ + -p "$install_prefix" \ + -c "$package_name" \ + -w "$package_description" + + diff --git a/sambamba-0.6.7-bindist_install b/sambamba-0.6.7-bindist_install new file mode 100755 index 00000000..a3552052 --- /dev/null +++ b/sambamba-0.6.7-bindist_install @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +package_name="sambamba" +package_version="0.6.7" +package_description="A tool for extracting information from SAM/BAM files." +package_variant="bindist" + +set -o errexit \ + -o nounset \ + -o pipefail + +source includes/source_includes.sh + +module purge + +make_build_env "" + +cd "$build_dir" +wget "https://github.com/biod/sambamba/releases/download/v${package_version}/sambamba_v${package_version}_linux.tar.bz2" +manifest sha256:0929b3a036244461bb6f6a7ae2950f103d78856e696bb63cef915a89a98d40e4 sambamba_v0.6.7_linux.tar.bz2 + +mkdir -p "$install_prefix/bin" + +cd "$install_prefix/bin" +tar -xf "$build_dir/sambamba_v${package_version}_linux.tar.bz2" + +make_module \ + -o "$module_dir/$package_label" \ + -p "$install_prefix" \ + -c "$package_name" \ + -w "$package_description" + + diff --git a/samblaster-0.1.24_install b/samblaster-0.1.24_install new file mode 100755 index 00000000..ee86484d --- /dev/null +++ b/samblaster-0.1.24_install @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +package_name="samblaster" +package_version="0.1.24" +package_description="samblaster is a program for marking duplicates in read-id grouped paired-end SAM files." + +set -o errexit \ + -o nounset \ + -o pipefail + +source includes/source_includes.sh + +module purge +module load gcc-libs/4.9.2 +module load compilers/gnu/4.9.2 + +make_build_env "" + +cd "$build_dir" +wget "https://github.com/GregoryFaust/samblaster/releases/download/v.${package_version}/samblaster-v.${package_version}.tar.gz" +manifest sha256:72c42e0a346166ba00152417c82179bd5139636fea859babb06ca855af93d11f samblaster-v.0.1.24.tar.gz + +tar -xf "${package_name}-v.${package_version}.tar.gz" +cd "${package_name}-v.${package_version}" + +make + +mkdir -p "$install_prefix/bin" + +cp samblaster "$install_prefix/bin" + +make_module \ + -o "$module_dir/$package_label" \ + -p "$install_prefix" \ + -c "$package_name" \ + -r "gcc-libs/4.9.2" \ + -w "$package_description" + + diff --git a/sbcl-1.3.19_install b/sbcl-1.3.19_install new file mode 100755 index 00000000..1b197143 --- /dev/null +++ b/sbcl-1.3.19_install @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +############################################### +# Installing Steelbank Common Lisp +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-sbcl} +VERSION=${VERSION:-1.3.19} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-d9207dd75d631919bc99d500fd441cfbfded63e1c3985a8a08dbc60d658adad8} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://prdownloads.sourceforge.net/sbcl/sbcl-${VERSION}-x86-64-linux-binary.tar.bz2} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir +wget "${SRC_ARCHIVE}" +archive=$(basename "${SRC_ARCHIVE}") + +sha256sum -c <<< "$SHA256 $archive" + + +tar -xvf $archive + +cd ${NAME}-${VERSION}-x86-64-linux + +export GNUMAKE=make + +INSTALL_ROOT=${INSTALL_PREFIX} sh install.sh + diff --git a/sc-7.16_install b/sc-7.16_install new file mode 100755 index 00000000..b43884a4 --- /dev/null +++ b/sc-7.16_install @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-sc} +VERSION=${VERSION:-7.16} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-1db636e9b2dc7cd73c40aeece6852d47} + +SRC_ARCHIVE=${SRC_ARCHIVE:-http://www.ibiblio.org/pub/Linux/apps/financial/spreadsheet/sc-${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} +cp /shared/ucl/apps/build_scripts/patches/xmalloc.c.patch . +patch < xmalloc.c.patch + +make +make sc.1 psc.1 + +mkdir -p $INSTALL_PREFIX/bin +mkdir -p $INSTALL_PREFIX/lib +mkdir -p $INSTALL_PREFIX/share/man/man1 +make prefix=${INSTALL_PREFIX} MANDIR="${INSTALL_PREFIX}/share/man/man1" install diff --git a/siesta-4.0.1_install b/siesta-4.0.1_install new file mode 100755 index 00000000..144c516e --- /dev/null +++ b/siesta-4.0.1_install @@ -0,0 +1,61 @@ +#!/usr/bin/env bash +# +# SIESTA with Intel compiler, MPI and MKL +# + +NAME=${NAME:-siesta} +VERSION=${VERSION:-4.0.1} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-5cb60ce068f2f6e84fa9184ffca94c08} +# Get the major-minor version number +shortversion=$(echo "$VERSION" | awk -F. 'BEGIN{OFS="."}{print $1,$2}') +SRC_ARCHIVE=${SRC_ARCHIVE:-https://launchpad.net/${NAME}/${shortversion}/${VERSION}/+download/${NAME}-${VERSION}.tar.gz} +DOWNLOAD_DIR=${DOWNLOAD_DIR:-$(mktemp -d -p /dev/shm -t ${NAME}_dl.XXXXXXXX)} +ARCH_FILE=${ARCH_FILE:-/shared/ucl/apps/build_scripts/files/siesta_4.0.1_arch.make} + +set -o errexit -o nounset + +# module prereqs for building +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh +prereq gcc-libs +# segfaults with intel/2017/update4 compiler +prereq compilers/intel +prereq mpi/intel + +cd $DOWNLOAD_DIR +wget $SRC_ARCHIVE + +echo "Downloaded to: $DOWNLOAD_DIR" + +archive=$(basename "$SRC_ARCHIVE") + +CHECKSUM=`md5sum $archive| awk '{print $1}'` + +if [ "$MD5" == "$CHECKSUM" ] +then + + mkdir -p $INSTALL_PREFIX + cd $INSTALL_PREFIX + tar -xvf ${DOWNLOAD_DIR}/$archive + # This is provided as a build directory + cd ${NAME}-${VERSION}/Obj + + ../Src/obj_setup.sh + cp $ARCH_FILE arch.make + make + echo "Main SIESTA build completed" + + # Build as many utils as possible + echo "Building utils" + cd ../Util + ./build_all.sh + + echo "Installed to: $INSTALL_PREFIX" + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/skewer-0.2.2_install b/skewer-0.2.2_install new file mode 100755 index 00000000..b18b2822 --- /dev/null +++ b/skewer-0.2.2_install @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +############################################### +# Installing skewer +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-skewer} +VERSION=${VERSION:-0.2.2} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/relipmoc/skewer.git} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +git clone $SRC_ARCHIVE +cd ${NAME} +git checkout $VERSION + +# Fix install path. +mkdir -p ${INSTALL_PREFIX}/bin +sed -i.bak "s|/usr/local/bin|${INSTALL_PREFIX}/bin|g" Makefile + +make +make install diff --git a/snappy-1.1.7_install b/snappy-1.1.7_install new file mode 100755 index 00000000..a97ae8b7 --- /dev/null +++ b/snappy-1.1.7_install @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-snappy} +VERSION=${VERSION:-1.1.7} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-ee9086291c9ae8deb4dac5e0b85bf54a} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/google/snappy/archive/${VERSION}.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} + +# make shared version: +mkdir build-shared +cd build-shared + +cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DBUILD_SHARED_LIBS=yes ../ + +make +make install + +# make static version: +mkdir ../build-static +cd ../build-static + +cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX ../ + +make +make install + diff --git a/spectral-3.4.0-bin_install b/spectral-3.4.0-bin_install new file mode 100755 index 00000000..f9c16d3a --- /dev/null +++ b/spectral-3.4.0-bin_install @@ -0,0 +1,57 @@ +#!/usr/bin/env bash + +set -e + +package_name="spectral" +package_version="3.4.0" +package_description="Spectral is a set of tools for performing spectral analysis on traces produced by the BSC profiling toolkit." + +source includes/source_includes.sh + +_env_setup() { + module purge + + # This is a binary distribution but there's no proper way to handle that at the moment + export COMPILER_TAG="bindist" + make_build_env "" + + package_file="${package_name}-${package_version}-Linux_x86_64.tar.bz2" + package_url="https://ftp.tools.bsc.es/${package_name}/${package_name}-${package_version}-Linux_x86_64.tar.bz2" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha512:13f67ddfc7a5bd899b8371ffc6375d44c3a2d1d7b50026b15293a2eeb45d1a5070fa6f308ea81f7969213afd3db9d53fbb8c4613eaa6022dd81b0658efd11e4c ${package_file} + +} + +_install() { + mkdir -p "$install_prefix" + cd "$install_prefix" + + tar --strip-components=1 -xf "$build_dir/$package_file" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -c "${package_name}" \ + -r "fftw/3.3.6-pl2/gnu-4.9.2" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_install +_clean_up + diff --git a/star-cd-4.26.022_install b/star-cd-4.26.022_install new file mode 100755 index 00000000..8de4d251 --- /dev/null +++ b/star-cd-4.26.022_install @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +############################################### +# Installing STAR-CD +# +# Updated for version 4.26.022 May 2018 + +NAME=${NAME:-STAR-CD} +VERSION=${VERSION:-4.26.022} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/${NAME}/${VERSION}} +BUILD=${BUILD:-201609151211} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/STAR-CD/installers/${NAME}_${VERSION}_${BUILD}-Linux_x86_64.tar} +LICSERV=${LICSERV:-1999@ntsrv1.meng.ucl.ac.uk} +GROUP=${GROUP:-legstarc} +ICE_VER=${ICE_VER:-4.26.030} +ICE_ARCH=${ICE_ARCH:-linux64_2.6-x86-glibc_2.5.0-gcc_4.4.3-ifort_11.0} + +set -e + +mkdir -p /dev/shm/star-cd +temp_dir=`mktemp -d -p /dev/shm/star-cd` + +archive=$(basename "${SRC_ARCHIVE}") + +cd $temp_dir +tar -xvf $SRC_ARCHIVE + +# pick components and answer questions interactively - choose A for all. +sh setup + +# ICE fix +cd $INSTALL_PREFIX/ICE/$ICE_VER +chmod -R a+rwx $ICE_ARCH + +# set permissions to restricted group only +cd $INSTALL_PREFIX +chgrp -R $GROUP $INSTALL_PREFIX +chmod o-rx $INSTALL_PREFIX + +# Add HPC_SCRATCH and change STARFLAGS in etc/software.ini +sed -i.bak '/default STARFLAGS=/a default HPC_SCRATCH=$TMPDIR' $INSTALL_PREFIX/etc/software.ini +sed -i -e "s|STARFLAGS=|STARFLAGS=-nodefile \$TMPDIR/machines -scratch=\$TMPDIR|" $INSTALL_PREFIX/etc/software.ini + diff --git a/star-cd-4.28.050_install b/star-cd-4.28.050_install new file mode 100755 index 00000000..3b294a38 --- /dev/null +++ b/star-cd-4.28.050_install @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +############################################### +# Installing STAR-CD +# +# Updated for version 4.28.050 June 2018 + +NAME=${NAME:-STAR-CD} +VERSION=${VERSION:-4.28.050} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/${NAME}/${VERSION}} +BUILD=${BUILD:-201801291142} +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/STAR-CD/installers/${NAME}_${VERSION}_${BUILD}-Linux_x86_64.tar} +LICSERV=${LICSERV:-1999@ntsrv1.meng.ucl.ac.uk} +GROUP=${GROUP:-legstarc} +ICE_VER=${ICE_VER:-4.28.053} +ICE_ARCH=${ICE_ARCH:-linux64_2.6-x86-glibc_2.5.0-gcc_4.4.3-ifort_11.0} + +set -e + +mkdir -p /dev/shm/star-cd +temp_dir=`mktemp -d -p /dev/shm/star-cd` + +archive=$(basename "${SRC_ARCHIVE}") + +cd $temp_dir +tar -xvf $SRC_ARCHIVE + +# pick components and answer questions interactively - choose A for all. +sh setup + +# ICE fix +cd $INSTALL_PREFIX/ICE/$ICE_VER +chmod -R a+rwx $ICE_ARCH + +# set permissions to restricted group only +cd $INSTALL_PREFIX +chgrp -R $GROUP $INSTALL_PREFIX +chmod o-rx $INSTALL_PREFIX + +# Add HPC_SCRATCH and change STARFLAGS in etc/software.ini +sed -i.bak '/default STARFLAGS=/a default HPC_SCRATCH=$TMPDIR' $INSTALL_PREFIX/etc/software.ini +sed -i -e "s|STARFLAGS=|STARFLAGS=-nodefile \$TMPDIR/machines -scratch=\$TMPDIR|" $INSTALL_PREFIX/etc/software.ini + diff --git a/stata-15_install b/stata-15_install new file mode 100755 index 00000000..e5a5afc2 --- /dev/null +++ b/stata-15_install @@ -0,0 +1,65 @@ +#!/bin/bash + +# This script installs StataMP 15 +# Brian Alston January 2018 + +# Based on spm12_install by Owain Kenway + +# You need to download the Stata installer from the UCL Software Database +# before running this build script. +# Set the SRC_ARCHIVE & STATA_INSTALLER variables appropriately. + +VERSION=${VERSION:-15} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/StataMP} +SRC_ARCHIVE=${SRC_ARCHIVE:-/home/ccspapp/Software/STATA/Stata${VERSION}Linux64.tar.gz} +STATA_INSTALLER=${STATA_INSTALLER:-install} +# EXTRA_FILES=${EXTRA_FILES:-/shared/ucl/apps/build_scripts/files/mathematica_UCL} + + +if [ ! -f $SRC_ARCHIVE ] +then + echo "" + echo "*** ERROR: Cannot find STATA installer archive" + echo "" + echo "You need to download the Stata installer from the UCL Software Database" + echo "before running this build script." + echo "" + exit 1 +fi + +temp_dir=`mktemp -d -p /dev/shm` +cd $temp_dir + +# Unpack installer archive +tar xvzf $SRC_ARCHIVE +INSTALLER_DIR=$temp_dir + +# Run the installer from install location. + +mkdir -p $INSTALL_PREFIX/stata$VERSION +cd $INSTALL_PREFIX/stata$VERSION +$INSTALLER_DIR/$STATA_INSTALLER </dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +package_name="suitesparse" +package_version="4.5.5" +src_urls="http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-${package_version}.tar.gz" +# Optional: +# package_variant="" +package_description="SuiteSparse is a suite of sparse matrix algorithms." + +package_variant="serial" + +actual_file_name="SuiteSparse-${package_version}.tar.gz" +actual_file_sha256=b9a98de0ddafe7659adffad8a58ca3911c1afa8b509355e7aa58b02feb35d9b6 + +module purge + +_env_setup() { + owd=$(pwd) + package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}-gcc-4.9.2" + install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} + build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} + module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} + cd $build_dir +} + +_fetch_files() { + wget ${actual_file_name:+-O $actual_file_name} $src_urls + sha256sum -c <<<"$actual_file_sha256 $actual_file_name" +} + +_setup_files() { + basename=$(tar -tf $actual_file_name | head -n 1 | sed -e 's_/__') + tar -xf $actual_file_name +} + +_build() { + cd SuiteSparse + require gcc-libs + require compilers/gnu/4.9.2 + require openblas/0.3.2-serial/gnu-4.9.2 + # Note: 4.5.5 builds METIS without OpenMP. That's probably okay, because this should just be doing MPI. + make BLAS="-L/shared/ucl/apps/openblas/0.3.2-serial/gnu-4.9.2/lib -lopenblas" LAPACK="-L/shared/ucl/apps/openblas/0.3.2-serial/gnu-4.9.2/lib -lopenblas" + make install INSTALL="$install_prefix" + echo "Installed to: $install_prefix" +} + +_prepare_module() { + make_module -p "$install_prefix" \ + -c "${package_name}" \ + -o "$module_dir/$package_label" \ + -w "Adds ${package_name} ${package_version} to your environment. $package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx $module_dir +} + +_clean_up() { + cd $owd + if [ -n "$build_dir" ]; then + rm -Rf ${build_dir} + fi +} + +_env_setup +_fetch_files +_setup_files +_build +_prepare_module +_clean_up + diff --git a/suitesparse-4.5.5-gcc_install b/suitesparse-4.5.5-gcc_install new file mode 100755 index 00000000..140c6b88 --- /dev/null +++ b/suitesparse-4.5.5-gcc_install @@ -0,0 +1,72 @@ +#!/usr/bin/env bash + +set -o errexit -o nounset +for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +package_name="suitesparse" +package_version="4.5.5" +src_urls="http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-${package_version}.tar.gz" +# Optional: +# package_variant="" +package_description="SuiteSparse is a suite of sparse matrix algorithms." + +package_variant="threaded" + +actual_file_name="SuiteSparse-${package_version}.tar.gz" +actual_file_sha256=b9a98de0ddafe7659adffad8a58ca3911c1afa8b509355e7aa58b02feb35d9b6 + +module purge + +_env_setup() { + owd=$(pwd) + package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}-gcc-4.9.2" + install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} + build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} + module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} + cd $build_dir +} + +_fetch_files() { + wget ${actual_file_name:+-O $actual_file_name} $src_urls + sha256sum -c <<<"$actual_file_sha256 $actual_file_name" +} + +_setup_files() { + basename=$(tar -tf $actual_file_name | head -n 1 | sed -e 's_/__') + tar -xf $actual_file_name +} + +_build() { + cd SuiteSparse + require gcc-libs + require compilers/gnu/4.9.2 + require openblas/0.3.2-native-threads/gnu-4.9.2 + # Note: 4.5.5 builds METIS without OpenMP. That's probably okay, because this should just be doing MPI. + make BLAS="-L/shared/ucl/apps/openblas/0.3.2-serial/gnu-4.9.2/lib -lopenblas" LAPACK="-L/shared/ucl/apps/openblas/0.3.2-serial/gnu-4.9.2/lib -lopenblas" + make install INSTALL="$install_prefix" + echo "Installed to: $install_prefix" +} + +_prepare_module() { + make_module -p "$install_prefix" \ + -c "${package_name}" \ + -o "$module_dir/$package_label" \ + -w "Adds ${package_name} ${package_version} to your environment. $package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx $module_dir +} + +_clean_up() { + cd $owd + if [ -n "$build_dir" ]; then + rm -Rf ${build_dir} + fi +} + +_env_setup +_fetch_files +_setup_files +_build +_prepare_module +_clean_up + diff --git a/suitesparse-4.5.5_install b/suitesparse-4.5.5_install new file mode 100755 index 00000000..e46ca2a6 --- /dev/null +++ b/suitesparse-4.5.5_install @@ -0,0 +1,70 @@ +#!/usr/bin/env bash + +set -o errexit -o nounset +for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +package_name="suitesparse" +package_version="4.5.5" +src_urls="http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-${package_version}.tar.gz" +# Optional: +# package_variant="" +package_description="SuiteSparse is a suite of sparse matrix algorithms." + +actual_file_name="SuiteSparse-${package_version}.tar.gz" +actual_file_sha256=b9a98de0ddafe7659adffad8a58ca3911c1afa8b509355e7aa58b02feb35d9b6 + +module purge + +_env_setup() { + owd=$(pwd) + package_label="${package_name}/${package_version}${package_variant:+-${package_variant}}" + install_prefix=${INSTALL_PREFIX:-/shared/ucl/apps/$package_label} + build_dir=${BUILD_DIR:-$(mktemp -d -t ${package_name}-build.XXXXXXXX)} + module_dir=${MODULE_DIR:-$(mktemp -d -t ${package_name}-modules.XXXXXXXX)} + cd $build_dir +} + +_fetch_files() { + wget ${actual_file_name:+-O $actual_file_name} $src_urls + sha256sum -c <<<"$actual_file_sha256 $actual_file_name" +} + +_setup_files() { + basename=$(tar -tf $actual_file_name | head -n 1 | sed -e 's_/__') + tar -xf $actual_file_name +} + +_build() { + cd SuiteSparse + require gcc-libs + require compilers/intel + require mpi/intel + # Note: 4.5.5 builds METIS without OpenMP. That's probably okay, because this should just be doing MPI. + make + make install INSTALL="$install_prefix" + echo "Installed to: $install_prefix" +} + +_prepare_module() { + make_module -p "$install_prefix" \ + -c "${package_name}" \ + -o "$module_dir/$package_label" \ + -w "Adds ${package_name} ${package_version} to your environment. $package_description" + echo "Module files put in: $module_dir" >&2 + chmod a+rx $module_dir +} + +_clean_up() { + cd $owd + if [ -n "$build_dir" ]; then + rm -Rf ${build_dir} + fi +} + +_env_setup +_fetch_files +_setup_files +_build +_prepare_module +_clean_up + diff --git a/supermagic-1.2_install b/supermagic-1.2_install new file mode 100755 index 00000000..a6dd652e --- /dev/null +++ b/supermagic-1.2_install @@ -0,0 +1,81 @@ +#!/usr/bin/env bash + +set -e + +package_name="supermagic" +package_version="1.2" +package_description="Supermagic is a simple MPI sanity test." + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/intel/2017/update4 + require mpi/intel/2017/update3/intel + + make_build_env "" + module_dir="$module_dir" + + unpack_dir="${package_name}-${package_version}" + package_file="${package_name}-${package_version}.tar.gz" + package_url="http://hpc.github.io/${package_name}/dists/${package_name}-${package_version}.tar.gz" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + manifest sha256:f8f6e0f74a58400d8d3c6b95c4b943aa8608e15a318fcfe12fc9abb008aed734 ${package_file} + + tar -xf "$package_file" +} + +_pre_build() { + cd "$build_dir/$unpack_dir/" + + ./configure --prefix="$install_prefix" CC=mpicc + + cd "$owd" +} + +_build() { + cd "$build_dir/$unpack_dir/" + + make + + cd "$owd" +} + +_post_build() { + cd "$build_dir/$unpack_dir/" + + + make install DEST_DIR="$install_prefix" + + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -w "Adds ${package_name} ${package_version} to your environment. ${package_description}" \ + -c "${package_name}" \ + -r gcc-libs \ + -r compilers/intel/2017/update4 \ + -r mpi/intel/2017/update3/intel + chmod -R a+rX "${module_dir}" + echo "Modules in: ${module_dir}" + cd "$owd" +} + +_clean_up() { + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/tcl_tk-8.6.8_install b/tcl_tk-8.6.8_install new file mode 100755 index 00000000..93c62fe7 --- /dev/null +++ b/tcl_tk-8.6.8_install @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +############################################### +# Installing Tcl/Tk +# Built with GCC +# +# + +NAME=${NAME:-tcl} +VERSION=${VERSION:-8.6.8} +TCL_SRC_ARCHIVE=${TCL_SRC_ARCHIVE:-https://sourceforge.net/projects/tcl/files/Tcl/${VERSION}/${NAME}${VERSION}-src.tar.gz} +TK_SRC_ARCHIVE=${TK_SRC_ARCHIVE:-https://sourceforge.net/projects/tcl/files/Tcl/${VERSION}/tk${VERSION}-src.tar.gz} +TCL_SHA256=${TCL_SHA256:-c43cb0c1518ce42b00e7c8f6eaddd5195c53a98f94adc717234a65cbcfd3f96a} +TK_SHA256=${TK_SHA256:-49e7bca08dde95195a27f594f7c850b088be357a7c7096e44e1158c7a5fd7b33} +BUILD_DIR=${BUILD_DIR:-$(mktemp -d -p /dev/shm -t "${NAME}"-build.XXXXXXXX)} + +set -e + +# require modules for building +source includes/source_includes.sh +module purge +require gcc-libs +require compilers/gnu + +# need to set this after compiler module is loaded +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} + +cd "$BUILD_DIR" + +wget "$TCL_SRC_ARCHIVE" +tcl_archive=$(basename "${TCL_SRC_ARCHIVE}") +echo "Checking hashes:" +sha256sum -c <<<"$TCL_SHA256 $tcl_archive" + +wget "$TK_SRC_ARCHIVE" +tk_archive=$(basename "${TK_SRC_ARCHIVE}") +echo "Checking hashes:" +sha256sum -c <<<"$TK_SHA256 $tk_archive" + +# build tcl first +tar -xvf "$tcl_archive" +cd "${NAME}""${VERSION}"/unix +./configure --prefix="$INSTALL_PREFIX" +make 2>&1 | tee make.log +make test +make install +cd ../.. + +# build tk - will find tcl files it needs if both archives downloaded to same dir +tar -xvf "$tk_archive" +cd tk"${VERSION}"/unix +./configure --prefix="$INSTALL_PREFIX" +make 2>&1 | tee make.log +make install + diff --git a/tensorflow-1.4.1-mkl_install b/tensorflow-1.4.1-mkl_install new file mode 100755 index 00000000..71d64a97 --- /dev/null +++ b/tensorflow-1.4.1-mkl_install @@ -0,0 +1,77 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-tensorflow} +VERSION=${VERSION:-1.4.1} +TYPE=${TYPE:-mkl} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/${NAME}/$VERSION/$TYPE} +CONFIG_OPTS="--config=mkl" + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/tensorflow/tensorflow} + +initdir=`pwd` + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +# Clear bazel cache. +rm -rf ~/.cache/bazel/ + +# Set up our environment. +# This is a cludge, I know. +virtualenv $INSTALL_PREFIX +source $INSTALL_PREFIX/bin/activate +pip3 install tensorflow==${VERSION} +pip3 uninstall tensorflow +pip3 uninstall enum34 + +export PYTHON_BIN_PATH=`which python3` + +git clone $SRC_ARCHIVE +cd tensorflow +git checkout v$VERSION + +./configure + +sed -i.bak 's|"# define HAVE_STROPTS_H 1",||g' third_party/curl.BUILD +rm third_party/curl.BUILD.bak + +bazel build --config=opt $CONFIG_OPTS //tensorflow/tools/pip_package:build_pip_package +bazel-bin/tensorflow/tools/pip_package/build_pip_package $temp_dir/tf_pip + +cd $temp_dir +#source tf-build-python/bin/deactivate + +builtname=`ls $temp_dir/tf_pip/tensorflow-$VERSION-*.whl` +base_builtname=`basename $builtname` + +# Time to fix the wheel for reasons. + +cd $temp_dir/tf_pip/ +mkdir tmp +cd tmp +unzip $builtname +cd tensorflow-$VERSION.dist-info +sed -i.bak 's|Requires-Dist: enum34 (>=1.1.6)||g' METADATA +sed -i.bak 's|"enum34 (>=1.1.6)",||g' metadata.json +rm METADATA.bak metadata.json.bak + +cd $temp_dir/tf_pip/tmp +zip -r $base_builtname tensorflow-${VERSION}.data tensorflow-${VERSION}.dist-info + +pip3 install $base_builtname + +rm -rf ${INSTALL_PREFIX}/bin/pip* +rm -rf ${INSTALL_PREFIX}/bin/python* +rm -rf ${INSTALL_PREFIX}/bin/activate* +rm -rf ${INSTALL_PREFIX}/bin/easy_install* diff --git a/tensorflow-1.4.1_install b/tensorflow-1.4.1_install new file mode 100755 index 00000000..e33c29ef --- /dev/null +++ b/tensorflow-1.4.1_install @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-tensorflow} +VERSION=${VERSION:-1.4.1} +TYPE=${TYPE:-cpu} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$TYPE} +PACKAGE_NAME=${NAME} +if [ "$TYPE" == "gpu" ] +then + PACKAGE_NAME=${NAME}-gpu +fi + +set -e + +pip3 install --target=${INSTALL_PREFIX} ${PACKAGE_NAME}==${VERSION} + +# Remove enum34 because we have a newer python than Google expects. +rm -rf ${INSTALL_PREFIX}/enum* diff --git a/tensorflow-1.8.0-gpulocal_install b/tensorflow-1.8.0-gpulocal_install new file mode 100755 index 00000000..9b8a4703 --- /dev/null +++ b/tensorflow-1.8.0-gpulocal_install @@ -0,0 +1,116 @@ +#!/usr/bin/env bash + +############################################### +# Installing Tensorflow 1.8.0 with a build on local GPUS. + +# NOTE THIS DOES NOT WORK YET. + +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-tensorflow} +VERSION=${VERSION:-1.8.0} +TYPE=${TYPE:-gpulocal} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/${NAME}/$VERSION/$TYPE} + +# NOTE: +# On myriad, we need to pass -march=broadwell because although it is Skylake +# a) Tensorflow is not supported with AVX 512 +# b) AVX512 breaks EIGEN. +# +# We need to set both -cxxopt values so that EIGEN builds with any version +# AVX. +# +# Building with -march=nehalem *probably* makes things work on all nodes on +# Legion but I've not tested it. +MARCH=${MARCH:-native} +CONFIG_OPTS="--config=cuda --copt=-march=${MARCH} --cxxopt=-fabi-version=0 --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0" + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/tensorflow/tensorflow} + +initdir=`pwd` + +set -e + +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require python/3.6.3 +require java/1.8.0_92 +require bazel/0.14.1/gnu-4.9.2 +require cuda/9.0.176-patch4/gnu-4.9.2 +require cudnn/7.1.4/cuda-9.0 + +# Delete the old install, clear the bazel cache and any old builds in /dev/shm +echo "Cleaning old install" +rm -rf $INSTALL_PREFIX /dev/shm/tensorflow ~/.cache/bazel + +# Build in /dev/shm for speed and space. +mkdir -p /dev/shm/${NAME} +temp_dir=`mktemp -d -p /dev/shm/${NAME}` +cd $temp_dir + +# Set up our environment. +# This is a cludge, I know. +virtualenv $INSTALL_PREFIX +source $INSTALL_PREFIX/bin/activate +pip3 install tensorflow==${VERSION} +pip3 uninstall -y tensorflow + +export PYTHON_BIN_PATH=`which python3` +export PYTHON_LIB_PATH=${INSTALL_PREFIX}/lib/python3.6/site-packages + +# Checkout the version of tensorflow we want. +git clone $SRC_ARCHIVE +cd tensorflow +git checkout v$VERSION + +# You should answer yes to jemalloc and nothing else. +export TF_NEED_JEMALLOC=1 +export TF_NEED_GCP=0 +export TF_NEED_HDFS=0 +export TF_NEED_S3=0 +export TF_NEED_KAFKA=0 +export TF_ENABLE_XLA=0 +export TF_NEED_GDR=0 +export TF_NEED_VERBS=0 +export TF_DOWNLOAD_CLANG=0 +export TF_NEED_OPENCL_SYCL=0 +export TF_NEED_CUDA=1 +export TF_CUDA_CLANG=0 +export TF_NEED_MPI=0 +export TF_SET_ANDROID_WORKSPACE=0 +export TF_NEED_COMPUTECPP=0 +export CC_OPT_FLAGS=" -march=${MARCH} " + +./configure + +# It's not clear this fix for curl is still needed but just in case. +sed -i.bak 's|"# define HAVE_STROPTS_H 1",||g' third_party/curl.BUILD +rm third_party/curl.BUILD.bak + +# Fix SWIG +sed -i.bak 's|executable=ctx.executable._swig,|executable=ctx.executable._swig, use_default_shell_env=True,|g' tensorflow/tensorflow.bzl + +# Build our pip wheel +bazel build --verbose_failures $CONFIG_OPTS //tensorflow/tools/pip_package:build_pip_package +bazel-bin/tensorflow/tools/pip_package/build_pip_package $temp_dir/tf_pip + +cd $temp_dir + +builtname=`ls $temp_dir/tf_pip/tensorflow-$VERSION-*.whl` +base_builtname=`basename $builtname` + +cd $temp_dir/tf_pip/ + +pip3 install $base_builtname + +# De-venv it. +rm -rf ${INSTALL_PREFIX}/bin/pip* +rm -rf ${INSTALL_PREFIX}/bin/python* +rm -rf ${INSTALL_PREFIX}/bin/activate* +rm -rf ${INSTALL_PREFIX}/bin/easy_install* diff --git a/tensorflow-1.8.0-mkl_install b/tensorflow-1.8.0-mkl_install new file mode 100755 index 00000000..e57f98c2 --- /dev/null +++ b/tensorflow-1.8.0-mkl_install @@ -0,0 +1,111 @@ +#!/usr/bin/env bash + +############################################### +# Installing Tensorflow 1.8.0 with MKL +# +# by Owain Kenway, 2018 +# + +NAME=${NAME:-tensorflow} +VERSION=${VERSION:-1.8.0} +TYPE=${TYPE:-mkl} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/${NAME}/$VERSION/$TYPE} + +# NOTE: +# On myriad, we need to pass -march=broadwell because although it is Skylake +# a) Tensorflow is not supported with AVX 512 +# b) AVX512 breaks EIGEN. +# +# We need to set both -cxxopt values so that EIGEN builds with any version +# AVX. +# +# Building with -march=nehalem *probably* makes things work on all nodes on +# Legion but I've not tested it. +MARCH=${MARCH:-native} +CONFIG_OPTS="--config=mkl --copt=-march=${MARCH} --cxxopt=-fabi-version=0 --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0" + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/tensorflow/tensorflow} + +initdir=`pwd` + +set -e + +dirname=$(dirname $0 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source ${INCLUDES_DIR}/require_inc.sh + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require python/3.6.3 +require java/1.8.0_92 +require bazel/0.14.1/gnu-4.9.2 + +# Delete the old install, clear the bazel cache and any old builds in /dev/shm +echo "Cleaning old install" +rm -rf $INSTALL_PREFIX /dev/shm/tensorflow ~/.cache/bazel + +# Build in /dev/shm for speed and space. +mkdir -p /dev/shm/${NAME} +temp_dir=`mktemp -d -p /dev/shm/${NAME}` +cd $temp_dir + +# Set up our environment. +# This is a cludge, I know. +virtualenv $INSTALL_PREFIX +source $INSTALL_PREFIX/bin/activate +pip3 install tensorflow==${VERSION} +pip3 uninstall -y tensorflow + +export PYTHON_BIN_PATH=`which python3` +export PYTHON_LIB_PATH=${INSTALL_PREFIX}/lib/python3.6/site-packages + +# Checkout the version of tensorflow we want. +git clone $SRC_ARCHIVE +cd tensorflow +git checkout v$VERSION + +# You should answer yes to jemalloc and nothing else. +export TF_NEED_JEMALLOC=1 +export TF_NEED_GCP=0 +export TF_NEED_HDFS=0 +export TF_NEED_S3=0 +export TF_NEED_KAFKA=0 +export TF_ENABLE_XLA=0 +export TF_NEED_GDR=0 +export TF_NEED_VERBS=0 +export TF_DOWNLOAD_CLANG=0 +export TF_NEED_OPENCL_SYCL=0 +export TF_NEED_CUDA=0 +export TF_CUDA_CLANG=0 +export TF_NEED_MPI=0 +export TF_SET_ANDROID_WORKSPACE=0 +export TF_NEED_COMPUTECPP=0 +export CC_OPT_FLAGS=" -march=${MARCH} " + +./configure + +# It's not clear this fix for curl is still needed but just in case. +sed -i.bak 's|"# define HAVE_STROPTS_H 1",||g' third_party/curl.BUILD +rm third_party/curl.BUILD.bak + +# Fix SWIG +sed -i.bak 's|executable=ctx.executable._swig,|executable=ctx.executable._swig, use_default_shell_env=True,|g' tensorflow/tensorflow.bzl + +# Build our pip wheel +bazel build --verbose_failures $CONFIG_OPTS //tensorflow/tools/pip_package:build_pip_package +bazel-bin/tensorflow/tools/pip_package/build_pip_package $temp_dir/tf_pip + +cd $temp_dir + +builtname=`ls $temp_dir/tf_pip/tensorflow-$VERSION-*.whl` +base_builtname=`basename $builtname` + +cd $temp_dir/tf_pip/ + +pip3 install $base_builtname + +# De-venv it. +rm -rf ${INSTALL_PREFIX}/bin/pip* +rm -rf ${INSTALL_PREFIX}/bin/python* +rm -rf ${INSTALL_PREFIX}/bin/activate* +rm -rf ${INSTALL_PREFIX}/bin/easy_install* diff --git a/tensorflow-1.8.0_install b/tensorflow-1.8.0_install new file mode 100755 index 00000000..468db584 --- /dev/null +++ b/tensorflow-1.8.0_install @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-tensorflow} +VERSION=${VERSION:-1.8.0} +TYPE=${TYPE:-cpu} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$TYPE} +PACKAGE_NAME=${NAME} +if [ "$TYPE" == "gpu" ] +then + PACKAGE_NAME=${NAME}-gpu +fi + +set -e + +pip3 install --target=${INSTALL_PREFIX} ${PACKAGE_NAME}==${VERSION} + +# Remove enum34 because we have a newer python than Google expects. +rm -rf ${INSTALL_PREFIX}/enum* diff --git a/tesseract-3.05.01_install b/tesseract-3.05.01_install new file mode 100755 index 00000000..e2d99c14 --- /dev/null +++ b/tesseract-3.05.01_install @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-tesseract} +VERSION=${VERSION:-3.05.01} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +MD5=${MD5:-0ac91d57fd35a47f93a9e47b29b63c75} +TMD5=${TMD5:-c34cfe21063e1b968778dca00c2330b4} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/tesseract-ocr/tesseract/archive/${VERSION}.tar.gz} + +TVERSION=${TVERSION:-3.04.00} + +TRAINING_ARCHIVE=${TRAINING_ARCHIVE:-https://github.com/tesseract-ocr/tessdata/archive/${TVERSION}.zip} + +LEPTONICA_DIR=${LEPTONICA_DIR:-/shared/ucl/apps/leptonica/1.74.4} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +wget $SRC_ARCHIVE +wget $TRAINING_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") +tarchive=$(basename "${TRAINING_ARCHIVE}") + +md5sum -c <<< "$MD5 $archive" +md5sum -c <<< "$TMD5 $tarchive" + +tar -xvf $archive + +cd ${NAME}-${VERSION} +./autogen.sh +LIBLEPT_HEADERSDIR=${LEPTONICA_DIR}/include ./configure --prefix=${INSTALL_PREFIX} --with-extra-libraries=${LEPTONICA_DIR}/lib +make +make install +make training +make training-install + +cd $INSTALL_PREFIX +unzip ${temp_dir}/${tarchive} +ln -s tessdata-${TVERSION} tessdata + diff --git a/textract-latest_install b/textract-latest_install index 187762fa..0cc19ea0 100755 --- a/textract-latest_install +++ b/textract-latest_install @@ -4,29 +4,37 @@ set -o errexit -o nounset for i in "${includes_dir:-$(dirname "$0" 2>/dev/null)/includes}"/{module_maker,require}_inc.sh; do source "$i"; done # Normally we'd put requirements after package info, but we need a Python module to get pip -module purge require gcc-libs/4.9.2 -require python/3.5.2 +package_py=python/3.5.2 +PYTHON_VERSION_TAG=${PYTHON_VERSION_TAG:-3.5} +if [ $PYTHON_VERSION_TAG == "3.6" ] +then + echo "DETECTED PYTHON 3.6" + package_py=python/3.6.3 +fi +require $package_py package_name="textract" -package_version="$( pip search textract | sed -n -e 's/^textract (\([0-9.]*\)) .*$/\1/p' )" +package_version="$( pip3 search textract | sed -n -e 's/^textract (\([0-9.]*\)) .*$/\1/p' )" # ^-- gets current version number from pypi package_description="textract extracts text from a wide range of document types." +VERSION=${VERSION:-$package_version} + module_dir=$( mktemp -d "/tmp/${MODULE_DIR:-${package_name}_modules.XXXXXXX}" ) -install_prefix="${INSTALL_PREFIX:-/shared/ucl/apps/$package_name/$package_version}" +install_prefix="${INSTALL_PREFIX:-/shared/ucl/apps/$package_name/$VERSION/python$PYTHON_VERSION_TAG}" -pip install --prefix "$install_prefix" "$package_name==$package_version" +pip3 install --prefix "$install_prefix" "$package_name==$VERSION" make_module \ -d \ -c "${package_name}" \ -r "gcc-libs/4.9.2" \ - -r "python/3.5.2" \ + -r "$package_py" \ -o "$module_dir/$package_name/$package_version" \ -e "PATH:$install_prefix/bin" \ - -e "PYTHONPATH:$install_prefix/lib/python3.5/site-packages" \ + -e "PYTHONPATH:$install_prefix/lib/python$PYTHON_VERSION_TAG/site-packages" \ -w "Adds ${package_name} ${package_version} to your environment. $package_description" echo "Module files put in: $module_dir" >&2 chmod a+rx "$module_dir" diff --git a/tree-1.7.0_install b/tree-1.7.0_install new file mode 100755 index 00000000..f11e1d25 --- /dev/null +++ b/tree-1.7.0_install @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +############################################### +# Installing tree +# +# + +NAME=${NAME:-tree} +VERSION=${VERSION:-1.7.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} +SHA256=${SHA256:-6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12} +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://mama.indstate.edu/linux/${NAME}/${NAME}-${VERSION}.tgz} + +set -e + +temp_dir=$(mktemp -d -p /dev/shm -t ${NAME}-build.XXXXXXXX) + +cd $temp_dir + +wget $SRC_ARCHIVE +archive=$(basename "${SRC_ARCHIVE}") + +CHECKSUM=`sha256sum $archive| awk '{print $1}'` + +if [ "$SHA256" == "$CHECKSUM" ] +then + tar -xvf $archive + cd ${NAME}-${VERSION} + make + make install prefix=${INSTALL_PREFIX} + +else + echo "Hash mismatch." + echo "Expected: $MD5" + echo "Got: $CHECKSUM" +fi diff --git a/udunits-2.2.26_install b/udunits-2.2.26_install new file mode 100755 index 00000000..705003ae --- /dev/null +++ b/udunits-2.2.26_install @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +############################################### +# Installing udunits 2 +# +# by Owain Kenway, 2015 +# +# Updated September 2018 for udunits 2.2.26 (versions oder than 2.2.21 are +# no longer available) + + +VERSION=${VERSION:-2.2.26} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/udunits/$VERSION} +SHA256=${SHA256:-368f4869c9c7d50d2920fa8c58654124e9ed0d8d2a8c714a9d7fdadc08c7356d} +SRC_ARCHIVE=${SRC_ARCHIVE:-ftp://ftp.unidata.ucar.edu/pub/udunits/udunits-${VERSION}.tar.gz} + +set -e + + + +export PATH=$INSTALL_PREFIX/bin:$PATH + +temp_dir=`mktemp -d` + +cd $temp_dir + +wget $SRC_ARCHIVE + +CHECKSUM=`sha256sum udunits-${VERSION}.tar.gz| awk '{print $1}'` + +if [ "$SHA256" == "$CHECKSUM" ] +then + tar -zxvf udunits-${VERSION}.tar.gz + + cd udunits-${VERSION} + ./configure --prefix=$INSTALL_PREFIX + make && make install +else + echo "Hash mismatch." + echo "Expected: $SHA256" + echo "Got: $CHECKSUM" +fi diff --git a/vasp-5.4.4_install b/vasp-5.4.4_install new file mode 100755 index 00000000..8ab0b260 --- /dev/null +++ b/vasp-5.4.4_install @@ -0,0 +1,73 @@ +#!/usr/bin/env bash + +############################################### +# Installing VASP +# using Intel compilers, MKL, FFTW->MKL wrapper, and Intel MPI. +# + +set -e + +package_name="vasp" +package_version="5.4.4-18apr2017" + +for i in ${includes_dir:-$(dirname $0 2>/dev/null)/includes}/{module_maker,require,tools}_inc.sh; do . $i; done + +_env_setup() { + module purge + require gcc-libs + require compilers/intel/2017/update1 + require mpi/intel/2017/update1/intel + + make_build_env + + package_store="${PKG_STORE:-/shared/ucl/apps/pkg-store}" + package_file="vasp-${package_version}.tgz" + unpack_dir="vasp.${package_version%-*}" + + vasp_access_group=legvasp +} + + +_file_setup() { + cd "$build_dir" + + cp "$package_store/$package_file" "./$package_file" + + tar -xf $package_file +} + +_pre_build() { + cd "$unpack_dir" + cp arch/makefile.include.linux_intel ./makefile.include + cd .. +} + +_build() { + cd "$unpack_dir" + make + cd .. +} + +_post_build() { + mkdir -p "$install_prefix" + chgrp -R "$vasp_access_group" "$install_prefix" + mkdir -p "$install_prefix/bin" + 'cp' -v "$unpack_dir"/bin/vasp* "$install_prefix/bin" + + # These are fiddlier to deal with now -- will separate from VASP exe installs + #mkdir -p "$install_prefix/potentials" + #'cp' -v potentials/* "$install_prefix/potentials/" +} + +_clean_up() { + #rm -Rf ${temp_dir:-ERROR_TEMP_DIR_NOT_SET} + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up + diff --git a/vasp_individual_install b/vasp_individual_install new file mode 100755 index 00000000..97ace0c5 --- /dev/null +++ b/vasp_individual_install @@ -0,0 +1,78 @@ +#!/usr/bin/env bash + +###################################################################### +# Installing a local copy of VASP, no patches, into the user's $HOME +# +# Uses Intel compiler, MKL inc FFTW wrapper, Intel MPI +# +# To run: +# cd /shared/ucl/apps/build_scripts +# ./vasp_individual_install +# +# To run this script with different variables: +# cd /shared/ucl/apps/build_scripts +# VERSION=x.x.x-date INSTALL_PREFIX=/my/install/location SRC_ARCHIVE=/my/vasp/tar ./vasp_individual_install +# + +NAME="${NAME:-vasp}" +VERSION="${VERSION:-5.4.4-18apr2017}" +INSTALL_PREFIX="${INSTALL_PREFIX:-$HOME/$NAME/$VERSION/$COMPILER_TAG}" +# we are building in a temporary directory in $HOME/build by default +BUILD_BASE="${BUILD_BASE:-"$HOME/$NAME/$VERSION/$COMPILER_TAG/build"}" +SRC_ARCHIVE="${SRC_ARCHIVE:-"$HOME/${NAME}-${VERSION}.tgz"}" + +set -e + +if [[ -e "$INSTALL_PREFIX" ]]; then + ip_warn="(Warning: This directory already exists!)" +fi + +if [[ ! -f "$SRC_ARCHIVE" ]]; then + echo "Error: Could not find source archive for VASP at: $SRC_ARCHIVE" >&2 + echo "Please set SRC_ARCHIVE to a file that exists." >&2 +fi + +echo "This script will attempt to build VASP in your home directory. + VASP will be built in: $BUILD_BASE + from source package: $SRC_ARCHIVE + VASP exes will go into: $INSTALL_PREFIX/bin $ip_warn + + If this is what you want, press 'y' to proceed, or any other key to stop. + " +read -r -n 1 prompt_result +if [[ "$prompt_result" != "y" ]]; then exit; fi + +# === Now actually build it + +mkdir -p "$BUILD_BASE" "$INSTALL_PREFIX" +BUILD_DIR="${BUILD_DIR:-$(mktemp -d -p "$BUILD_BASE" -t "${NAME}-build.XXXXXXXX")}" + +# module prereqs for building - checks they are loaded +dirname=$(dirname "$0" 2>/dev/null) +INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} +source "${INCLUDES_DIR}/require_inc.sh" +require gcc-libs +require compilers/intel +require mpi/intel + +cd "$BUILD_DIR" + +# untar the source into the build directory +tar -xvf "${SRC_ARCHIVE}" + +# build and log output +pwd +cd "${NAME}.${VERSION%-*}" +cp arch/makefile.include.linux_intel ./makefile.include +# Unfortunately VASP does not build successfully in parallel +make -j 1 2>&1 | tee make.log + +echo "Build completed" +echo "Installing to $INSTALL_PREFIX" + +mkdir -p "${INSTALL_PREFIX}/bin" +cp -v "${BUILD_DIR}/${NAME}.${VERSION%-*}/bin/"vasp* "${INSTALL_PREFIX}/bin" + +echo "Finished installing." +echo "This was built in $BUILD_DIR - if all went well, you can delete those files" + diff --git a/vg-1.11.0_install.sh b/vg-1.11.0_install.sh new file mode 100755 index 00000000..d36366d6 --- /dev/null +++ b/vg-1.11.0_install.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +############################################### +# Installing +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-vg} +VERSION=${VERSION:-1.11.0} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/$COMPILER_TAG} + +SRC_ARCHIVE=${SRC_ARCHIVE:-https://github.com/vgteam/vg.git} + +set -e + +for i in ${includes_dir:=$(dirname $0 2>/dev/null)/includes}/{module_maker,require}_inc.sh; do . $i; done + +require gcc-libs/4.9.2 +require compilers/gnu/4.9.2 +require bison +require flex +require jansson + +mkdir -p $INSTALL_PREFIX + +cd $INSTALL_PREFIX + +git clone --recursive $SRC_ARCHIVE + +cd vg +git checkout v${VERSION} + +source source_me.sh +make static diff --git a/vmd-1.9.3-textonly_install.sh b/vmd-1.9.3-textonly_install.sh new file mode 100755 index 00000000..e04e436c --- /dev/null +++ b/vmd-1.9.3-textonly_install.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +############################################### +# Installing VMD (binary) +# +# by Owain Kenway, 2017 +# + +NAME=${NAME:-vmd} +VERSION=${VERSION:-1.9.3} +INSTALL_PREFIX=${INSTALL_PREFIX:-/shared/ucl/apps/$NAME/$VERSION/text-only} + +SRC_ARCHIVE=${SRC_ARCHIVE:-/shared/ucl/apps/vmd/source/vmd-$VERSION.bin.LINUXAMD64.text.tar.gz} + +set -e + +mkdir -p /dev/shm/${NAME} + +temp_dir=`mktemp -d -p /dev/shm/${NAME}` + +cd $temp_dir + +tar -xvf $SRC_ARCHIVE + +cd ${NAME}-${VERSION} +export VMDINSTALLBINDIR=$INSTALL_PREFIX/bin +export VMDINSTALLLIBRARYDIR=$INSTALL_PREFIX/lib + +./configure +cd src +make install diff --git a/vt-gitver_install b/vt-gitver_install new file mode 100755 index 00000000..de59cb18 --- /dev/null +++ b/vt-gitver_install @@ -0,0 +1,48 @@ +#!/bin/bash + +set -o errexit \ + -o pipefail \ + -o nounset + +package_name=vt +package_repo=https://github.com/atks/vt.git +package_version="$(git ls-remote "$package_repo" master | cut -c -12)" +package_description="A tool set for short variant discovery in genetic sequence data." + +source includes/source_includes.sh + +module purge +module load gcc-libs/4.9.2 +module load compilers/gnu/4.9.2 + +make_build_env + +cd "$build_dir" +git clone "$package_repo" "${package_name}-${package_version}" +cd "${package_name}-${package_version}" + +make +make test + +echo "Changing install prefix and package label to match" +echo " date of last commit instead of git ref..." >&2 +commit_date="$(git log -n 1 --format=format:%ai | cut -c -10)" +install_prefix="${install_prefix//$package_version/$commit_date}" +package_label="${package_label//$package_version/$commit_date}" +echo "Version mark is now: $commit_date" >&2 +echo "Package label: $package_label" >&2 +echo "Install prefix: $install_prefix" >&2 + +mkdir -p "$install_prefix/bin" +cp vt "$install_prefix/bin" + +mkdir -p "$module_dir" +make_module \ + -w "[ref:$package_version] $package_description" \ + -c vt \ + -r gcc-libs/4.9.2 \ + -p "$install_prefix" \ + -o "$module_dir/$package_label" + +chmod -R +rX "$module_dir" +echo "Modules in: $module_dir" diff --git a/xorg-utils-X11R7.7_install b/xorg-utils-X11R7.7_install index de552571..c06e8cb5 100755 --- a/xorg-utils-X11R7.7_install +++ b/xorg-utils-X11R7.7_install @@ -22,71 +22,173 @@ XDMCP_NAME=${XDMCP_NAME:-libXdmcp-1.1.1} XDMCP_SRC_ARCHIVE=${XDMCP_SRC_ARCHIVE:-ftp://ftp.x.org/pub/X11R7.7/src/lib/${XDMCP_NAME}.tar.bz2} XDMCP_MD5=${XDMCP_MD5:-b94af6cef211cf3ee256f7e81f70fcd9} -set -e +# may want to build only the first or last three support packages at once +BUILD_UTILS=${BUILD_UTILS:-yes} +BUILD_XKB=${BUILD_XKB:-yes} -temp_dir=`mktemp -d -p /dev/shm` +# these are needed for xkeyboard-config +LIBXKBFILE_NAME=${LIBXKBFILE_NAME:-libxkbfile-1.0.8} +LIBXKBFILE_SRC_ARCHIVE=${LIBXKBFILE_SRC_ARCHIVE:-https://www.x.org/releases/X11R7.7/src/everything/${LIBXKBFILE_NAME}.tar.bz2} +LIBXKBFILE_SHA256=${LIBXKBFILE_SHA256:-8aa94e19c537c43558f30906650cea6e15fa012591445d9f927658c3b32a8f3a} -cd $temp_dir +XKBCOMP_NAME=${XKBCOMP_NAME:-xkbcomp-1.2.4} +XKBCOMP_SRC_ARCHIVE=${XKBCOMP_SRC_ARCHIVE:-https://www.x.org/releases/X11R7.7/src/everything/${XKBCOMP_NAME}.tar.bz2} +XKBCOMP_SHA256=${XKBCOMP_SHA256:-91d0c9ab445d21dfe1892dbae5ae5264f39bae68223dd092ffc547c9450b5a2d} -wget $XUTILMACROS_SRC_ARCHIVE -xutilmacros_archive=$(basename "${XUTILMACROS_SRC_ARCHIVE}") -XUTILMACROS_CHECKSUM=`md5sum $xutilmacros_archive| awk '{print $1}'` +XKEYBOARD_CONFIG_NAME=${XKEYBOARD_CONFIG_NAME:-xkeyboard-config-2.6} +XKEYBOARD_CONFIG_SRC_ARCHIVE=${XKEYBOARD_CONFIG_SRC_ARCHIVE:-https://www.x.org/releases/X11R7.7/src/everything/${XKEYBOARD_CONFIG_NAME}.tar.bz2} +XKEYBOARD_CONFIG_SHA256=${XKEYBOARD_CONFIG_SHA256:-22a1594116bf0ee3165f48487bdca4e5f25b2a1436e35e188b3ee38c543dabda} + +set -e -if [ "$XUTILMACROS_MD5" != "$XUTILMACROS_CHECKSUM" ] +# module prereqs for building +if [ $BUILD_XKB == "yes" ] then - echo "Hash mismatch for $xutilmacros_archive." - echo "Expected: $XUTILMACROS_MD5" - echo "Got: $XUTILMACROS_CHECKSUM" - exit 1; + dirname=$(dirname $0 2>/dev/null) + INCLUDES_DIR=${INCLUDES_DIR:-${dirname}/includes} + source ${INCLUDES_DIR}/require_inc.sh + prereq intltool # needed for xkeyboard-config fi -wget $MAKEDEPEND_SRC_ARCHIVE -makedepend_archive=$(basename "${MAKEDEPEND_SRC_ARCHIVE}") -MAKEDEPEND_CHECKSUM=`md5sum $makedepend_archive| awk '{print $1}'` +mkdir -p /dev/shm/$NAME +temp_dir=`mktemp -d -p /dev/shm/$NAME` -if [ "$MAKEDEPEND_MD5" != "$MAKEDEPEND_CHECKSUM" ] +cd $temp_dir + +if [ $BUILD_UTILS == "yes" ] then - echo "Hash mismatch for $makedepend_archive." - echo "Expected: $MAKEDEPEND_MD5" - echo "Got: $MAKEDEPEND_CHECKSUM" - exit 1; + wget $XUTILMACROS_SRC_ARCHIVE + xutilmacros_archive=$(basename "${XUTILMACROS_SRC_ARCHIVE}") + XUTILMACROS_CHECKSUM=`md5sum $xutilmacros_archive| awk '{print $1}'` + + if [ "$XUTILMACROS_MD5" != "$XUTILMACROS_CHECKSUM" ] + then + echo "Hash mismatch for $xutilmacros_archive." + echo "Expected: $XUTILMACROS_MD5" + echo "Got: $XUTILMACROS_CHECKSUM" + exit 1; + fi + + wget $MAKEDEPEND_SRC_ARCHIVE + makedepend_archive=$(basename "${MAKEDEPEND_SRC_ARCHIVE}") + MAKEDEPEND_CHECKSUM=`md5sum $makedepend_archive| awk '{print $1}'` + + if [ "$MAKEDEPEND_MD5" != "$MAKEDEPEND_CHECKSUM" ] + then + echo "Hash mismatch for $makedepend_archive." + echo "Expected: $MAKEDEPEND_MD5" + echo "Got: $MAKEDEPEND_CHECKSUM" + exit 1; + fi + + wget $XDMCP_SRC_ARCHIVE + xdmcp_archive=$(basename "${XDMCP_SRC_ARCHIVE}") + XDMCP_CHECKSUM=`md5sum $xdmcp_archive| awk '{print $1}'` + + if [ "$XDMCP_MD5" != "$XDMCP_CHECKSUM" ] + then + echo "Hash mismatch for $xdmcp_archive." + echo "Expected: $XDMCP_MD5" + echo "Got: $XDMCP_CHECKSUM" + exit 1; + fi fi -wget $XDMCP_SRC_ARCHIVE -xdmcp_archive=$(basename "${XDMCP_SRC_ARCHIVE}") -XDMCP_CHECKSUM=`md5sum $xdmcp_archive| awk '{print $1}'` - -if [ "$XDMCP_MD5" != "$XDMCP_CHECKSUM" ] +if [ $BUILD_XKB == "yes" ] +then + wget $LIBXKBFILE_SRC_ARCHIVE + libxkbfile_archive=$(basename "${LIBXKBFILE_SRC_ARCHIVE}") + LIBXKBFILE_CHECKSUM=$(sha256sum $libxkbfile_archive| awk '{print $1}') + + if [ "$LIBXKBFILE_SHA256" != "$LIBXKBFILE_CHECKSUM" ] + then + echo "Hash mismatch for $libxkbfile_archive." + echo "Expected: $LIBXKBFILE_SHA256" + echo "Got: $LIBXKBFILE_CHECKSUM" + exit 1; + fi + + wget $XKBCOMP_SRC_ARCHIVE + xkbcomp_archive=$(basename "${XKBCOMP_SRC_ARCHIVE}") + XKBCOMP_CHECKSUM=$(sha256sum $xkbcomp_archive| awk '{print $1}') + + if [ "$XKBCOMP_SHA256" != "$XKBCOMP_CHECKSUM" ] + then + echo "Hash mismatch for $xkbcomp_archive." + echo "Expected: $XKBCOMP_SHA256" + echo "Got: $XKBCOMP_CHECKSUM" + exit 1; + fi + + wget $XKEYBOARD_CONFIG_SRC_ARCHIVE + xkeyboard_config_archive=$(basename "${XKEYBOARD_CONFIG_SRC_ARCHIVE}") + XKEYBOARD_CONFIG_CHECKSUM=$(sha256sum $xkeyboard_config_archive| awk '{print $1}') + + if [ "$XKEYBOARD_CONFIG_SHA256" != "$XKEYBOARD_CONFIG_CHECKSUM" ] + then + echo "Hash mismatch for $xkeyboard_config_archive." + echo "Expected: $XKEYBOARD_CONFIG_SHA256" + echo "Got: $XKEYBOARD_CONFIG_CHECKSUM" + exit 1; + fi +fi + +if [ $BUILD_UTILS == "yes" ] then - echo "Hash mismatch for $xdmcp_archive." - echo "Expected: $XDMCP_MD5" - echo "Got: $XDMCP_CHECKSUM" - exit 1; + # install xorg/util/macros + tar -xvf $xutilmacros_archive + cd $XUTILMACROS_NAME + ./configure --prefix=$INSTALL_PREFIX + make 2>&1 | tee make.log + make install + + export PKG_CONFIG_PATH=$INSTALL_PREFIX/share/pkgconfig:$PKG_CONFIG_PATH + + # install xorg/util/makedepend + cd $temp_dir + tar -xvf $makedepend_archive + cd $MAKEDEPEND_NAME + ./configure --prefix=$INSTALL_PREFIX + make 2>&1 | tee make.log + make install + + # install xdmcp + cd $temp_dir + tar -xvf $xdmcp_archive + cd $XDMCP_NAME + ./configure --prefix=$INSTALL_PREFIX + make 2>&1 | tee make.log + make install fi +if [ $BUILD_XKB == "yes" ] +then + # install libxkbfile + cd $temp_dir + tar -xvf $libxkbfile_archive + cd $LIBXKBFILE_NAME + ./configure --prefix=$INSTALL_PREFIX + make 2>&1 | tee make.log + make install + + export PKG_CONFIG_PATH=$INSTALL_PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH + + # install xkbcomp + cd $temp_dir + tar -xvf $xkbcomp_archive + cd $XKBCOMP_NAME + ./configure --prefix=$INSTALL_PREFIX + make 2>&1 | tee make.log + make install + + export PATH=$INSTALL_PREFIX/bin:$PATH + + # install xkeyboard-config + cd $temp_dir + tar -xvf $xkeyboard_config_archive + cd $XKEYBOARD_CONFIG_NAME + ./configure --prefix=$INSTALL_PREFIX --with-xkb-rules-symlink=xorg + make 2>&1 | tee make.log + make install -# install xorg/util/macros -tar -xvf $xutilmacros_archive -cd $XUTILMACROS_NAME -./configure --prefix=$INSTALL_PREFIX -make 2>&1 | tee make.log -make install - -export PKG_CONFIG_PATH=$INSTALL_PREFIX/share/pkgconfig:$PKG_CONFIG_PATH - -# install xorg/util/makedepend -cd $temp_dir -tar -xvf $makedepend_archive -cd $MAKEDEPEND_NAME -./configure --prefix=$INSTALL_PREFIX -make 2>&1 | tee make.log -make install - -# install xdmcp -cd $temp_dir -tar -xvf $xdmcp_archive -cd $XDMCP_NAME -./configure --prefix=$INSTALL_PREFIX -make 2>&1 | tee make.log -make install - +fi diff --git a/yambo-4.1.4_install b/yambo-4.1.4_install new file mode 100755 index 00000000..a71cf14d --- /dev/null +++ b/yambo-4.1.4_install @@ -0,0 +1,78 @@ +#!/usr/bin/env bash + +set -e + +package_name="yambo" +package_version="4.1.4" + +source includes/source_includes.sh + +_env_setup() { + module purge + require gcc-libs + require compilers/intel/2017/update4 + require mpi/intel/2017/update3/intel + + make_build_env "" + + package_url="https://github.com/yambo-code/yambo/archive/${package_version}.tar.gz" + package_file="${package_version}.tar.gz" + unpack_dir="yambo-${package_version}" +} + + +_file_setup() { + cd "$build_dir" + + wget "$package_url" + + tar -xf "$package_file" +} + +_pre_build() { + cd "$unpack_dir" + # Nothing here. + cd .. +} + +_build() { + cd "$unpack_dir" + + ./configure \ + --with-fft-libs=-mkl \ + --with-blas-libs=-mkl \ + --with-lapack-libs=-mkl \ + --enable-etsf-io \ + --enable-netcdf-LFS \ + --prefix="$install_prefix" + make all + cd .. +} + +_post_build() { + cd "$unpack_dir" + #make install + mkdir -p "$install_prefix" + cp -r bin doc "$install_prefix"/ + make_module \ + -o "${module_dir}/${package_label}" \ + -p "$install_prefix" \ + -r gcc-libs \ + -r compilers/intel/2017 \ + -r mpi/intel/2017 \ + -c yambo + cd .. +} + +_clean_up() { + #rm -Rf ${temp_dir:-ERROR_TEMP_DIR_NOT_SET} + : +} + +_env_setup +_file_setup +_pre_build +_build +_post_build +_clean_up +