Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
taurus@TUD: Install PIConGPU dependencies to run on the `ml` partition with Power9 nodes
#!/usr/bin/env bash
#
# Authors: Axel Huebl, Marco Garten, Klaus Steiniger
#
# last updated: 2019-04-24
PIC_BRANCH="dev"
# get PIConGPU profile
if [ ! -f "$PIC_PROFILE" ]; then
export PIC_PROFILE_NAME="$HOME/V100_picongpu.profile"
wget -O $PIC_PROFILE_NAME \
https://raw.githubusercontent.com/ComputationalRadiationPhysics/picongpu/dev/etc/picongpu/taurus-tud/V100_picongpu.profile.example
# load modules
source "$PIC_PROFILE_NAME"
else
source "$PIC_PROFILE"
fi
set -euf -o pipefail
# create temporary directory for software source files
export SOURCE_DIR="$HOME/lib_temp"
mkdir -p $SOURCE_DIR
# c-blosc
if [ ! -d "$BLOSC_ROOT" ]; then
cd $SOURCE_DIR
git clone -b v1.16.2 https://github.com/Blosc/c-blosc.git \
$SOURCE_DIR/c-blosc
mkdir c-blosc-build
cd c-blosc-build
cmake -DCMAKE_INSTALL_PREFIX=$BLOSC_ROOT \
-DPREFER_EXTERNAL_ZLIB=ON \
$SOURCE_DIR/c-blosc
make -j4
make install
fi
# Boost
if [ ! -d "$BOOST_ROOT" ]; then
cd $SOURCE_DIR
wget -O boost_1_68_0.tar.gz \
https://sourceforge.net/projects/boost/files/boost/1.68.0/boost_1_68_0.tar.gz/download
tar -xf boost_1_68_0.tar.gz
cd boost_1_68_0
./bootstrap.sh --with-libraries=atomic,chrono,context,date_time,fiber,filesystem,math,program_options,regex,serialization,system,thread \
--with-toolset=gcc --prefix=$BOOST_ROOT
./b2 cxxflags="-std=c++11" -j4
./b2 install
fi
# ADIOS
if [ ! -d "$ADIOS_ROOT" ]; then
cd $SOURCE_DIR
wget https://users.nccs.gov/~pnorbert/adios-1.13.1.tar.gz
tar -xf adios-1.13.1.tar.gz
cd adios-1.13.1
CFLAGS="-fPIC" ./configure --enable-static --enable-shared \
--disable-fortran \
--with-mpi \
--with-zlib \
--with-blosc=$BLOSC_ROOT \
--prefix=$ADIOS_ROOT
make
make install
fi
# PNGwriter
if [ ! -d "$PNGwriter_DIR" ]; then
cd $SOURCE_DIR
git clone -b 0.7.0 https://github.com/pngwriter/pngwriter.git \
$SOURCE_DIR/pngwriter
mkdir pngwriter-build
cd pngwriter-build
cmake -DCMAKE_INSTALL_PREFIX=$PNGwriter_DIR \
$SOURCE_DIR/pngwriter
make install
fi
# HDF5
if [ ! -d "$HDF5_ROOT" ]; then
echo "Installing parallel HDF5..."
cd $SOURCE_DIR
curl -L -s -o hdf5_1.8.20.tar.gz \
https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.20/src/hdf5-1.8.20.tar.gz
tar -xf hdf5_1.8.20.tar.gz
cd hdf5-1.8.20
./configure --build=`uname -p` --enable-parallel --enable-shared --disable-fortran \
--prefix=$HDF5_ROOT CC=mpicc CXX=mpic++
make CC=mpicc CXX=mpic++
make install
fi
# Splash
if [ ! -d "$Splash_DIR" ]; then
git clone -b v1.7.0 https://github.com/ComputationalRadiationPhysics/libSplash.git \
$SOURCE_DIR/splash
mkdir $SOURCE_DIR/splash-build
cd $SOURCE_DIR/splash-build
cmake -DCMAKE_INSTALL_PREFIX=$Splash_DIR $SOURCE_DIR/splash
make install
fi
cd $HOME
# get PIConGPU
if [ ! -d "$PICSRC" ]; then
git clone -b $PIC_BRANCH https://github.com/ComputationalRadiationPhysics/picongpu.git \
"$PICSRC"
fi
# message to user
echo ''
echo 'edit user & email within picongpu.profile, e.g. via:'
echo ' vim $PIC_PROFILE'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.