60 lines
2.1 KiB
Bash
Executable File
60 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -u
|
|
#set -xv
|
|
|
|
resolution=${1:?"you must provide the resolution: 1 025 or 12"}
|
|
mincore=${2:-1} # minimum number of core to be tested
|
|
maxcore=${3:-0} # maximum number of core to be tested
|
|
|
|
machine=$( hostname | sed -e "s/[0-9]*//g" )
|
|
case $machine in
|
|
"jean-zay") ncore_node=40 ;;
|
|
"beaufixlogin") ncore_node=40 ;;
|
|
"curie") ncore_node=16 ;;
|
|
"irene") ncore_node=48 ;;
|
|
*) echo "you must add your machine \"$machine\" with its number of cores per node" ; exit 1 ;;
|
|
esac
|
|
|
|
[ $mincore -eq 1 ] && targetnb=$ncore_node || targetnb=$mincore
|
|
#
|
|
# build the list of experiences:
|
|
# must be a multiple of ncore_node and as close as possible of the targeted number of core
|
|
#
|
|
n1=0
|
|
list=""
|
|
|
|
# Prepare gnuplot data file
|
|
dateref=$( date "+%Y%m%d-%Hh%Mm%Ss" )
|
|
echo "# nb_proc jpi jpj" > gnuplot_tbc_${resolution}_${dateref}.dat
|
|
nbl=$( cat best_jpni_jpnj_eorca${resolution} | wc -l )
|
|
for ll in $( seq 1 $nbl )
|
|
do
|
|
line=$( sed -n ${ll}p best_jpni_jpnj_eorca${resolution} ) # for each line
|
|
nn=$( echo $line | sed -e "s/.*nb_cores \([0-9]*\).*/\1/" ) # get the number of core
|
|
[ $maxcore -gt 1 -a $nn -gt $maxcore ] && break # if below $maxcore (if specified)
|
|
if [ $(( $nn % $ncore_node )) -eq 0 ] # if it is a multiple of $ncore_node
|
|
then
|
|
if [ $nn -lt $targetnb ]
|
|
then
|
|
n1=$nn # store the number of core
|
|
line1=$line # store the line
|
|
else
|
|
[ $(( $targetnb - $n1 )) -le $(( $nn -$targetnb )) ] && line=$line1 # keep the previous line
|
|
echo $line
|
|
nb=$( echo $line | sed -e "s/[^(]*( \([0-9]*\) x \([0-9]*\) .*/\1*\2/" ) # get jpni*jpnj
|
|
list="${list} ${nb}"
|
|
targetnb=$(( $targetnb * 2 ))
|
|
subsize=$( echo $line | awk {'printf "%d %d", $11, $13'})
|
|
corenb=$( echo $line | awk {'printf "%d", $2'})
|
|
echo "$corenb $subsize" >> gnuplot_tbc_${resolution}.dat
|
|
fi
|
|
fi
|
|
done
|
|
echo $list
|
|
|
|
for cores in $list
|
|
do
|
|
./submit_bench $cores $ncore_node ${resolution} ${dateref}
|
|
done
|
|
|