RUN! An uncaffeinated @StefanR5R has appeared!
And so has a sleepy Austrailian! 😀
hyperthreading on off
threads/task 1 1
simultaneous tasks 56 28
----------------------------------------------
avg task run time 41h25m 20h15m
PPD 118,000 126,000
hyperthreading off on
threads/task 6 6
simultaneous tasks 1 1
----------------------------------------------
avg task run time 1h53m 1h50m
PPD 45,900 46,100
hyperthreading off on
threads/task 4 4
simultaneous tasks 7 7
----------------------------------------------
avg task run time 2h57m 3h03m
PPD 207,000 208,000
hyperthreading off off off off off
threads/task 1 2 4 7 14
simultaneous tasks 28 14 7 4 2
----------------------------------------------------------------------------------
avg task run time 20h15m 7h53m 2h57m 1h43m 1h02m
PPD 126,000 149,000 207,000 204,000 172,00
<app_config>
<app>
<name>llrGCW</name>
<fraction_done_exact/>
</app>
<app_version>
<app_name>llrGCW</app_name>
<cmdline>-t 4</cmdline>
<avg_ncpus>4</avg_ncpus>
</app_version>
</app_config>
bill1024 says he tested this positively on 6c/12T Ivy Bridge-E.There's one option I didn't see you consider: HT on and using multiple cores. I hear that 4 core processors, using all cores on some large WUs, do better with HT on than off. I'm not sure about processors with more cores.
600000000000000:P:1:2:257
3 13826132
#!/bin/bash
# edit these for the right file names
# (files copied from boinc's projects/www.primegrid.com/ subdirectory)
LLREXE="sllr64.3.8.20"
LLRINI="llr.ini.6.07"
LLRINPUT="llr321_299635024" # 4,865.57 cobblestones
LOGFILE="protocol.txt"
TIMEFORMAT=$'\nreal\t%1lR\t(%0R s)\nuser\t%1lU\t(%0U s)\nsys\t%1lS\t(%0S s)'
# run_one - run a single LLR process, and show timing information when finished
#
# argument 1, mandatory: slot number, i.e. unique name of the instance
# argument 2, mandatory: thread count of the process
# argument 3, optional: completion percentage at which to terminate a test
#
run_one () {
SLOT="slot_$1"
rm -rf ${SLOT}
for ((;;))
do
mkdir ${SLOT} || break
ln ${LLREXE} ${SLOT}/llr.exe || break
cp -p ${LLRINI} ${SLOT}/llr.ini || break
cd ${SLOT} || break
echo "---- slot $1 ----" > stdout
if [ -z "$3" ]
then
time ./llr.exe -d -oDiskWriteTime=10 -oThreadsPerTest=$2 ../${LLRINPUT} >> stdout 2> stderr
else
./llr.exe -d -oDiskWriteTime=10 -oThreadsPerTest=$2 ../${LLRINPUT} >> stdout 2> stderr &
LLRPID=$!
while sleep 5
do
tail -1 stdout | grep -e "[[]$3[.]" > /dev/null && break
done
kill ${LLRPID}
wait ${LLRPID} 2> /dev/null
fi
cat stdout stderr
cd ..
break
done
rm -rf ${SLOT}
}
# run_series - run one or more LLR processes in parallel, and log everything
#
# argument 1, mandatory: number of processes to run at once
# argument 2, mandatory: thread count of each process
# argument 3, optional: at which to terminate a test
#
# stdout and stderr are appended into ${LOGFILE}.
#
run_series () {
{
echo "======== $(date) ======== starting $1 process(es) with $2 thread(s) ========"
time {
for (( s=1; s<=$1; s++ ))
do
run_one $s $2 $3 &
done
wait
}
echo "======== $(date) ======= done with $1 process(es) with $2 thread(s) ========"
echo
} 2>&1 | tee -a "${LOGFILE}"
}
# edit these for the desired test programme
run_series 1 8
run_series 1 7
run_series 1 6
run_series 2 4
run_series 4 2
run_series 2 2
#!/bin/bash
SLOTS=$(echo slot_*)
if [ "${SLOTS}" = 'slot_*' ]
then
echo "No processes found."
else
for s in ${SLOTS}
do
echo "---- ${s} ----"
tail -1 ${s}/stdout
echo
done
fi
1000000000:P:0:2:257
200749 11371602
1000000000:M:0:5:258
322498 2527171