root / synthbench / euroben-ports / base / Fortran-MPI / .svn / text-base / xrun.svn-base @ 0:839f52ef7657
History | View | Annotate | Download (948 Bytes)
1 |
#!/bin/sh |
---|---|
2 |
# |
3 |
# Execute script for a module program of the EuroBen MPI Benchmark. |
4 |
# |
5 |
LOGDIR=Log.`hostname` |
6 |
PROG=$1/x.$1 |
7 |
|
8 |
if test ! -d ${LOGDIR} |
9 |
then |
10 |
mkdir ${LOGDIR} |
11 |
fi |
12 |
|
13 |
if [ $1 = "mod1h" ]; then |
14 |
NP=6 |
15 |
elif [ $1 = "mod1j" -o $1 = "mod1k" ]; then |
16 |
NP=2 |
17 |
elif [ $1 = "mod2f" -o $1 = "mod2g" ]; then |
18 |
m=0 |
19 |
NP=$NPROCS |
20 |
while [ "$NP" -gt 1 ]; do |
21 |
NP=`expr $NP / 2` |
22 |
m=`expr $m + 1` |
23 |
done |
24 |
while [ "$m" -gt 0 ]; do |
25 |
NP=`expr "$NP" \* 2` |
26 |
m=`expr $m - 1` |
27 |
done |
28 |
if [ "$NP" -ne "$NPROCS" ]; then |
29 |
echo "$1: NPROCS has been modified to Max(n) for which 2^n < NPROCS." |
30 |
fi |
31 |
else |
32 |
NP=$NPROCS |
33 |
fi |
34 |
|
35 |
if [ "$NP" -lt 10 ]; then |
36 |
LOGFILE=${LOGDIR}/$1.p0${NP}.log |
37 |
else |
38 |
LOGFILE=${LOGDIR}/$1.p${NP}.log |
39 |
fi |
40 |
|
41 |
if test -f ${PROG}; then |
42 |
exec 1>> ${LOGFILE} 2>&1 |
43 |
echo ; echo ; echo start $1 at `date` id = $$ |
44 |
(cd $1; time mpirun -np $NP ./x.$1) |
45 |
echo ; echo end $1 at `date` 'id =' $$ |
46 |
else |
47 |
exec 1>> ${LOGFILE} 2>&1 |
48 |
echo "$1 not found" |
49 |
fi |