From 98a4c92f64027dec28262d9d18796e4a97e5bde4 Mon Sep 17 00:00:00 2001 From: Christoph Niethammer Date: Fri, 14 Jan 2011 09:20:18 +0000 Subject: [PATCH] Added StarSs installation script --- mvapich2_install.sh | 17 +++-- openmpi_install.sh | 17 +++-- starss_install.sh | 159 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 185 insertions(+), 8 deletions(-) create mode 100755 starss_install.sh diff --git a/mvapich2_install.sh b/mvapich2_install.sh index a995eeb..78f24e8 100755 --- a/mvapich2_install.sh +++ b/mvapich2_install.sh @@ -57,16 +57,25 @@ module load ${COMPILER_MODULE} case ${COMPILER} in gnu) COMPILER_OPTS="CC=gcc CXX=g++ FC=gfortran F77=gfortran" - COMPILER_VERSION=$(gcc -dumpversion) + if [ "x${COMPILER_VERSION}" == "x" ] + then + COMPILER_VERSION=$(gcc -dumpversion) + fi ;; intel) COMPILER_OPTS="CC=icc CXX=icpc FC=ifort F77=ifort" - COMPILER_VERSION=$(icc -dumpversion) + if [ "x${COMPILER_VERSION}" == "x" ] + then + COMPILER_VERSION=$(icc -dumpversion) + fi ;; pgi) - COMPILER_OPTS="CC=pgcc CXX=pgCC FC=pgf95 F77=pgf77" + COMPILER_OPTS="CC=pgcc CXX=pgCC FC=pgf95 F77=pgf77" + if [ "x${COMPILER_VERSION}" == "x" ] + then COMPILER_VERSION=$(pgcc -V | awk '/pgcc/{print $2}') - ;; + fi + ;; *) echo "Unknown compiler ${COMPILER}." ;; diff --git a/openmpi_install.sh b/openmpi_install.sh index 08a9f87..1a95362 100755 --- a/openmpi_install.sh +++ b/openmpi_install.sh @@ -62,16 +62,25 @@ module load ${COMPILER_MODULE} case ${COMPILER} in gnu) COMPILER_OPTS="CC=gcc CXX=g++ FC=gfortran F77=gfortran" - COMPILER_VERSION=$(gcc -dumpversion) + if [ "x${COMPILER_VERSION}" == "x" ] + then + COMPILER_VERSION=$(gcc -dumpversion) + fi ;; intel) COMPILER_OPTS="CC=icc CXX=icpc FC=ifort F77=ifort" - COMPILER_VERSION=$(icc -dumpversion) + if [ "x${COMPILER_VERSION}" == "x" ] + then + COMPILER_VERSION=$(icc -dumpversion) + fi ;; pgi) - COMPILER_OPTS="CC=pgcc CXX=pgCC FC=pgf95 F77=pgf77" + COMPILER_OPTS="CC=pgcc CXX=pgCC FC=pgf95 F77=pgf77" + if [ "x${COMPILER_VERSION}" == "x" ] + then COMPILER_VERSION=$(pgcc -V | awk '/pgcc/{print $2}') - ;; + fi + ;; *) echo "Unknown compiler ${COMPILER}." ;; diff --git a/starss_install.sh b/starss_install.sh new file mode 100755 index 0000000..3275041 --- /dev/null +++ b/starss_install.sh @@ -0,0 +1,159 @@ +#!/bin/sh +# installation script for Open MPI +# +# Christoph Niethammer (C) 2011 +# + +# exit on any error! +set -e + +# directory containing the source tar files +SRC_POOL="$HOME/src" + +# basic installation directory +PREFIX_BASE=${PREFIX_BASE:=$HOME/bin} + +# compiler to use +# (gnu|intel|pgi) +COMPILER=${COMPILER:=gnu} +# use specific compiler version +COMPILER_VERSION=${COMPILER_VERSION:=} + +# package to build +CATEGORY="" +PACKAGE="StarSs" +VERSION="2.3" + +# add a descriptor at the end of the installation path e.g. for special config options etc. +PACKAGE_DESCRIPTOR=${PACKAGE_DESCRIPTOR:+-$PACKAGE_DESCRIPTOR} + +# Archive A and package name P +# archive can be tar.bz2 or tar.gz file +A=${PACKAGE}-${VERSION}.tar.gz +P=${PACKAGE}-${VERSION} + +# If you want to use the CC, CXX, FC or F77 variables for the compilers put the following +# below the compiler loading section! +# CONFIGURE_OPTS="" +#NP=$(cat /proc/cpuinfo | grep processor | wc -l) +#MAKEOPTS="-j$NP" +MAKEOPTS="-j2" + + +# Compiler specifications + +if [ "x${COMPILER_VERSION}" != "x" ] +then + COMPILER_MODULE=compiler/${COMPILER}/${COMPILER_VERSION} +else + COMPILER_MODULE=compiler/${COMPILER} +fi + +echo "Loading compiler module ${COMPILER_MODULE}" +module load ${COMPILER_MODULE} + +case ${COMPILER} in + gnu) + COMPILER_OPTS="CC=gcc CXX=g++ FC=gfortran F77=gfortran" + if [ "x${COMPILER_VERSION}" == "x" ] + then + COMPILER_VERSION=$(gcc -dumpversion) + fi + ;; + intel) + COMPILER_OPTS="CC=icc CXX=icpc FC=ifort F77=ifort" + if [ "x${COMPILER_VERSION}" == "x" ] + then + COMPILER_VERSION=$(icc -dumpversion) + fi + ;; + pgi) + COMPILER_OPTS="CC=pgcc CXX=pgCC FC=pgf95 F77=pgf77" + if [ "x${COMPILER_VERSION}" == "x" ] + then + COMPILER_VERSION=$(pgcc -V | awk '/pgcc/{print $2}') + fi + ;; + *) + echo "Unknown compiler ${COMPILER}." + ;; +esac +# make the compiler variables CC, CXX, FC and F77 available +export ${COMPILER_OPTS} + +CONFIGURE_OPTS="\ + SMPCC=${CC} SMPCXX=${CXX} SMPFC=${FC} + --with-flavour=smp \ + " + + +# construct the final installation directory path +PREFIX="${PREFIX_BASE}/${CATEGORY}/${PACKAGE}/${VERSION}-${COMPILER}-${COMPILER_VERSION}${PACKAGE_DESCRIPTOR}" + +# basepath for the working directory +ORIGDIR="${HOME}/work" +# final working directory path +WORKDIR=${ORIGDIR}/${CATEGORY}/${PACKAGE}/${VERSION}-${COMPILER}-${COMPILER_VERSION}${PACKAGE_DESCRIPTOR} +# path to the source code directory +SRCDIR=${WORKDIR}/SMPSS-$VERSION +# build directory (should be different from source directory): +BUILDDIR=${SRCDIR}/build + +echo "Using workir $WORKDIR" +echo "Building with PREFIX=$PREFIX" + +umask 0002 + + +if [ -d ${WORKDIR} ] +then + rm -rf ${WORKDIR} +fi + +echo "Creating working dir ${WORKDIR}" +mkdir -p ${WORKDIR} +cd ${WORKDIR} + +echo "Extracting sources" +case "${A##*.}" in + bz2) + tar xfjv ${SRC_POOL}/${A} + ;; + gz|tgz) + tar xfzv ${SRC_POOL}/${A} + ;; + *) + echo "Archive format not recogized" + exit + ;; +esac + + +mkdir ${BUILDDIR} +cd ${BUILDDIR} +echo "Running configure" +${SRCDIR}/configure --prefix=${PREFIX} ${CONFIGURE_OPTS} ${COMPILER_OPTS} 2>&1 | tee configure.log +echo "Running make" +make ${MAKEOPTS} 2>&1 | tee make.log + +module unload compiler + +cat <&1 | tee make_install.log +bzip2 *.log +mv *.log.bz2 ${PREFIX}/ +cd ${PREFIX} +chmod -R g+rwX . +chmod -R o+rX . +# Finally do not forget to provide a module file! +############################################################################## +EOF + +exit 0 +