run-regression.sh 3.09 KB
Newer Older
Philip Carns's avatar
Philip Carns committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#!/bin/bash

# This is a shell script to be run from a login node of the Theta system at
# the ALCF, that will download, compile, and execute the ssg performance 
# regression tests, including any dependencies

# exit on any error
set -e

SANDBOX=/tmp/mochi-regression-$$
PREFIX=~/tmp/mochi-regression-install-$$
JOBDIR=~/tmp/mochi-regression-job-$$

# gcc
module swap PrgEnv-intel PrgEnv-gnu
module load boost/gnu

Philip Carns's avatar
Philip Carns committed
18
export CC=cc
Philip Carns's avatar
Philip Carns committed
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
export CFLAGS="-O3 -I$BOOST_ROOT/include"
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH"
export CRAYPE_LINK_TYPE=dynamic

# scratch area to clone and build things
mkdir $SANDBOX

# scratch area for job submission
mkdir $JOBDIR
cp margo-p2p-latency.qsub $JOBDIR

cd $SANDBOX
git clone https://github.com/ofiwg/libfabric.git
git clone https://github.com/pmodels/argobots.git
git clone https://github.com/mercury-hpc/mercury.git
wget http://dist.schmorp.de/libev/libev-4.24.tar.gz
tar -xvzf libev-4.24.tar.gz
git clone https://xgitlab.cels.anl.gov/sds/abt-snoozer.git
git clone https://xgitlab.cels.anl.gov/sds/margo.git
git clone https://xgitlab.cels.anl.gov/sds/ssg.git

# argobots
echo "=== BUILDING ARGOBOTS ==="
cd $SANDBOX/argobots
./autogen.sh
mkdir build
cd build
Philip Carns's avatar
Philip Carns committed
46
../configure --prefix=$PREFIX --enable-perf-opt --host=x86_64-linux 
Philip Carns's avatar
Philip Carns committed
47 48 49 50 51 52 53 54 55
make -j 3
make install
 
# libfabric
echo "=== BUILDING LIBFABRIC ==="
cd $SANDBOX/libfabric
./autogen.sh
mkdir build
cd build
Philip Carns's avatar
Philip Carns committed
56
../configure --prefix=$PREFIX --enable-gni --disable-rxd --disable-rxm --disable-udp --disable-usnic --disable-verbs --disable-sockets --host=x86_64-linux 
Philip Carns's avatar
Philip Carns committed
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
make -j 3
make install

# mercury
echo "=== BUILDING MERCURY ==="
cd $SANDBOX/mercury
git checkout topic_ofi_gni
mkdir build
cd build
cmake -DNA_USE_OFI:BOOL=ON -DMERCURY_USE_BOOST_PP:BOOL=ON -DCMAKE_INSTALL_PREFIX=/$PREFIX -DMERCURY_USE_CHECKSUMS:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=ON -DMERCURY_USE_SELF_FORWARD:BOOL=ON -DNA_USE_SM:BOOL=ON ../
make -j 3
make install

# libev
echo "=== BUILDING LIBEV ==="
cd $SANDBOX/libev-4.24
mkdir build
cd build
Philip Carns's avatar
Philip Carns committed
75
../configure --prefix=$PREFIX --host=x86_64-linux 
Philip Carns's avatar
Philip Carns committed
76 77 78 79 80 81 82 83 84
make -j 3
make install

# abt-snoozer
echo "=== BUILDING ABT-SNOOZER ==="
cd $SANDBOX/abt-snoozer
./prepare.sh
mkdir build
cd build
Philip Carns's avatar
Philip Carns committed
85
../configure --prefix=$PREFIX  --host=x86_64-linux
Philip Carns's avatar
Philip Carns committed
86 87 88 89 90 91 92 93 94
make -j 3
make install

# margo
echo "=== BUILDING MARGO ==="
cd $SANDBOX/margo
./prepare.sh
mkdir build
cd build
Philip Carns's avatar
Philip Carns committed
95
../configure --prefix=$PREFIX  --host=x86_64-linux
Philip Carns's avatar
Philip Carns committed
96 97 98 99 100 101 102 103 104
make -j 3
make install

# ssg
echo "=== BUILDING SSG ==="
cd $SANDBOX/ssg
./prepare.sh
mkdir build
cd build
Philip Carns's avatar
Philip Carns committed
105
../configure --prefix=$PREFIX --host=x86_64-linux 
Philip Carns's avatar
Philip Carns committed
106 107 108 109 110 111
make -j 3
make install
make tests

# set up job to run
echo "=== SUBMITTING AND WAITING FOR JOB ==="
Philip Carns's avatar
Philip Carns committed
112
cp $SANDBOX/ssg/build/tests/perf-regression/.libs/margo-p2p-latency $JOBDIR
Philip Carns's avatar
Philip Carns committed
113
cd $JOBDIR
Philip Carns's avatar
Philip Carns committed
114
JOBID=`qsub ./margo-p2p-latency.qsub`
Philip Carns's avatar
Philip Carns committed
115 116 117 118 119 120
cqwait $JOBID

echo "=== JOB DONE, COLLECTING AND SENDING RESULTS ==="
# gather output, strip out funny characters, mail
cat $JOBID.* > combined.$JOBID.txt
dos2unix combined.$JOBID.txt
Philip Carns's avatar
Philip Carns committed
121
mailx -s "margo-p2p-latency (theta, ofi/gni)" sds-commits@lists.mcs.anl.gov < combined.$JOBID.txt
Philip Carns's avatar
Philip Carns committed
122 123

cd /tmp
Philip Carns's avatar
Philip Carns committed
124 125 126
# TODO: temporary while debugging
#rm -rf $SANDBOX
#rm -rf $PREFIX