|
Packit |
0848f5 |
#! /bin/sh
|
|
Packit |
0848f5 |
file=`pwd`/test-port
|
|
Packit |
0848f5 |
prefix="@prefix@"
|
|
Packit |
0848f5 |
exec_prefix="@exec_prefix@"
|
|
Packit |
0848f5 |
mpiexec="@bindir@/mpiexec"
|
|
Packit |
0848f5 |
starter="$mpiexec -n 1"
|
|
Packit |
0848f5 |
testpgm=testconnect
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
rm -f $file
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
# Default number of processes to start (the test is for large numbers
|
|
Packit |
0848f5 |
# of processes; use "manyconnect 10" to start with fewer for debugging)
|
|
Packit |
0848f5 |
nconn=100
|
|
Packit |
0848f5 |
# To avoid problems with listner queues, we pause every blockstart
|
|
Packit |
0848f5 |
# processes
|
|
Packit |
0848f5 |
blockstart=10
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
# Print help/usage information if requested
|
|
Packit |
0848f5 |
if [ "$1" = "-help" -o "$1" = "-usage" ] ; then
|
|
Packit |
0848f5 |
echo "$0 [ -singleton ] [ nconn [ testprogram ] ]"
|
|
Packit |
0848f5 |
exit 0
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
if [ "$1" = "-singleton" ] ; then
|
|
Packit |
0848f5 |
starter=eval
|
|
Packit |
0848f5 |
shift
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
if [ -n "$1" ] ; then
|
|
Packit |
0848f5 |
nconn=$1
|
|
Packit |
0848f5 |
shift
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
if [ -n "$1" ] ; then
|
|
Packit |
0848f5 |
if [ -x "$1" ] ; then
|
|
Packit |
0848f5 |
testpgm=$1
|
|
Packit |
0848f5 |
else
|
|
Packit |
0848f5 |
echo "Expected to find an executable program; found $1"
|
|
Packit |
0848f5 |
exit 1
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
shift
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
# Make sure that the program is executable
|
|
Packit |
0848f5 |
if [ ! -x "$testpgm" ] ; then
|
|
Packit |
0848f5 |
# Try to make it
|
|
Packit |
0848f5 |
echo "Making $testpgm"
|
|
Packit |
0848f5 |
make $testpgm
|
|
Packit |
0848f5 |
if [ $? != 0 ] ; then
|
|
Packit |
0848f5 |
echo "Failure in make $testpgm"
|
|
Packit |
0848f5 |
exit 1
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
if [ ! -x "$testpgm" ] ; then
|
|
Packit |
0848f5 |
echo "The program $testpgm either does not exist or is not executable"
|
|
Packit |
0848f5 |
exit 1
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
# Start one and sleep to avoid problems with two processes opening the
|
|
Packit |
0848f5 |
# test-port file for writing
|
|
Packit |
0848f5 |
$starter ./$testpgm $file $nconn 1 &
|
|
Packit |
0848f5 |
sleep 1
|
|
Packit |
0848f5 |
nstarted=2
|
|
Packit |
0848f5 |
blockcount=2
|
|
Packit |
0848f5 |
while [ $nstarted -lt $nconn ] ; do
|
|
Packit |
0848f5 |
#echo "Starting $nstarted"
|
|
Packit |
0848f5 |
$starter ./$testpgm $file $nconn $nstarted &
|
|
Packit |
0848f5 |
echo "Started process $! (num $nstarted)"
|
|
Packit |
0848f5 |
nstarted=`expr $nstarted + 1`
|
|
Packit |
0848f5 |
blockcount=`expr $blockcount + 1`
|
|
Packit |
0848f5 |
if [ -n "$2" ] ; then
|
|
Packit |
0848f5 |
sleep $2
|
|
Packit |
0848f5 |
elif [ $blockcount -ge $blockstart ] ; then
|
|
Packit |
0848f5 |
blockcount=0
|
|
Packit |
0848f5 |
sleep 1
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
done
|
|
Packit |
0848f5 |
#echo "Starting $nstarted"
|
|
Packit |
0848f5 |
$starter ./$testpgm $file $nconn $nstarted
|
|
Packit |
0848f5 |
wait
|