#!/bin/sh
# sh small.sh 6 # to create cx6_2048.dat and cx6_2048.2048.dat , etc.
# sh small.sh 7 # to run the small multisplit sims
# sh small.sh 4 # to create cx5.dat
if test "$1" = "" ; then
exit 0
fi
if test "$2" = "" ; then
MSOPT="8"
else
MSOPT="$2"
fi
PHASE=$1
SIMDIR=/bglscratch/hines/nrntraub
RESULTDIR=small${PHASE}
BINDIR=/home/hines/bin
STD=stdout
NRNIV=/home/hines/neuron/nrnobj/powerpc64/bin/nrniv
echo wait for partition
date
PART=`waitforfree`
echo "$PART is free"
/bgl/bin/allocpart $PART
run() {
echo $*
(time mpirun -noallocate -partition $PART -np $1 -mode VN \
-cwd $SIMDIR \
-exe $SIMDIR/powerpc64/special \
-env "BLG_CHKPT_ENABLED=0" -args "_init.hoc" \
)>& $SIMDIR/$RESULTDIR/$STD.$2
}
phase() {
nhost="$3"
sed "
/default_var.*wholecell_prefix/s/cxwhole/cxsmall_whole/
/default_var.*multisplit_prefix/s/cx/$prefix/
/default_var.*multisplit_nhost/s/256/$nhost/
/default_var.*load_balance_phase/s/0/$1/
/default_var.*msoptfactor/s/8/$MSOPT/
" init.hoc > _init.hoc
run $2 $3
}
if test "$PHASE" = 6 ; then
for i in 256 512 1024 2048 ; do
nhost=$i
prefix=cxsmall${MSOPT}_$nhost
STD=stdout$MSOPT
phase $PHASE 256 $nhost
$NRNIV -c "{load_file(\"hoc/binfo.hoc\")}" -c "mymetis3(\"$prefix\",$nhost)" \
>> $SIMDIR/$RESULTDIR/$STD.$i
done
fi
if test "$PHASE" = 7 ; then
for i in 256 512 1024 2048 ; do
rm -f out$i.dat
nhost=$i
prefix=cxsmall${MSOPT}_$nhost
STD=stdout$MSOPT
phase $PHASE $i $nhost
sortspike out$i.dat $SIMDIR/$RESULTDIR/out${MSOPT}.$i
done
fi
if test "$PHASE" = 4 ; then
i=256
nhost=$i
prefix=cxsmall_$nhost
phase $PHASE 256 $nhost
for nhost in 32 64 128 256 512 ; do
$NRNIV -c "{load_file(\"hoc/binfo.hoc\")}" -c "mymetis2(\"cxsmall_whole\",$nhost)" \
>> $SIMDIR/$RESULTDIR/stdout.$i
done
fi
if test "$PHASE" = 5 ; then
for i in 32 64 128 256 ; do
rm -f out$i.dat
nhost=$i
prefix=cxsmall_$nhost
phase $PHASE $nhost $nhost
sortspike out$i.dat $SIMDIR/$RESULTDIR/out.$i
done
fi
freepart $PART
|