/
runsvmmpi
executable file
·60 lines (51 loc) · 1.57 KB
/
runsvmmpi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#! /bin/bash
# Convenience script for running PermonSVM
# By vaclav.hapla@vsb.cz
#
# parameters:
# -vg0 run with valgrind
# -vg1 run with valgrind, perform leak check
# -vg2 run with valgrind, perform more detailed leak check
# -nc don't compile
MPIRUN=mpirun
COMPILE=false
EXEC="$PERMON_SVM_DIR/$PETSC_ARCH/bin/permonsvmfile"
NPROC=$1
if ! [[ $NPROC =~ ^[0-9]+$ ]]; then NPROC=1; else shift; fi
if [ -z "$PERMON_DIR" ]; then echo -e "\nWARNING: PERMON_DIR env. var. not set, using PWD=$PWD\n"; export PERMON_DIR=$PWD; fi
for arg in $@
do
case "$arg" in
"-vg0")
VALGRIND="valgrind --suppressions=$PERMON_DIR/fllop_valgrind_suppress --log-file=vg.log" ;;
"-vg1")
VALGRIND="valgrind --suppressions=$PERMON_DIR/fllop_valgrind_suppress --log-file=vg.log --leak-check=full" ;;
"-vg2")
VALGRIND="valgrind --suppressions=$PERMON_DIR/fllop_valgrind_suppress --log-file=vg.log --leak-check=full --track-origins=yes --show-leak-kinds=all" ;;
"-nc")
COMPILE=false ;;
*)
PERMON_ARGS+="$arg "
esac
done
echo "========================================================================"
echo "number of processes: $NPROC"
echo "compile: $COMPILE"
if [[ -n $VALGRIND ]]; then
echo "valgrind: $VALGRIND"
fi
echo "PERMON arguments: $PERMON_ARGS"
echo "========================================================================"
echo
if $COMPILE; then
ORIGDIR=$PWD
cd $PERMON_DIR
make all permonsvmfile
ERR=$?
cd $ORIGDIR
if [ "$ERR" != 0 ]; then exit $ERR; fi
fi
echo
echo
set -x
$MPIRUN -n $NPROC $VALGRIND $EXEC $PERMON_ARGS