# !/bin/bash
# how many cpu cores are in the machine?
CPU=`/bin/cat /proc/cpuinfo | /bin/grep proc | /bin/awk '{ print $3 }' | /usr/bin/tail -n 1`
CPU=$(($CPU + 1))
# gather serial output from watts-up and add date for logging
#cat /dev/ttyS0 | ./timestamp.pl >> log/time-outputs.log &
cat /dev/ttyS0 >> log/outputs.log &
# Idle run for base line measurment
echo "#IDLE START $DATE" >> log/outputs.log
echo "Starting IDLE Measurment for 10min"
echo "Please DO NOT CTRL-C "
date
sleep 10m
echo "#IDLE END $DATE" >> log/outputs.log
# run as many instances as there are cpu cores in the machine
# Start Dhrystone
echo "#DHRYSTONE START $DATE" >> log/outputs.log
echo "Starting $CPU instances of Dhrystone"
echo "The screen will not have any output during this test for 10min"
echo "Please DO NOT CTRL-C"
date
for ((i=1; i <= CPU ; i++))
do
sh dodhry.sh 2>&1 > /dev/null &
done
sleep 10m
echo "Killing Dhrystone, 2min cool down till next test"
for i in `ps aux | grep dhry | grep -v grep | awk '{ print $2 }'`; do
kill $i 2>&1 > /dev/null
done
echo "#DHRYSTONE END $DATE" >> log/outputs.log
sleep 120
# Start LinPack
echo "#LINPACK START $DATE" >> log/outputs.log
echo "Starting $CPU instances of LinPack"
echo "The screen will not have any output during this test for 10min"
echo "Please DO NOT CTRL-C"
date
for ((i=1; i <= CPU ; i++))
do
sh dolinpack.sh 2>&1 > /dev/null &
done
sleep 10m
echo "Killing Linpack, 2min cool down till next test"
for i in `ps aux | grep do | grep -v grep | awk '{ print $2 }'`; do
kill $i 2>&1 > /dev/null
done
for i in `ps aux | grep lpc | grep -v grep | awk '{ print $2 }'`; do
kill $i 2>&1 > /dev/null
done
echo "#LINPACK END $DATE" >> log/outputs.log
sleep 120
# Start BurnP6 or BurnK7 depending one the proc type
echo "#BURNK7 START $DATE" >> log/outputs.log
echo "Starting $CPU instances of BurnK7 or BurnP6 depending on your processor"
echo "The screen will not have any output during this test for 10min"
echo "Please DO NOT CTRL-C"
date
if cat /proc/cpuinfo | grep vendor_id | grep AuthenticAMD 2>&1 > /dev/null; then
for ((i=1; i <= CPU ; i++))
do
cpuburn-1.4/burnK7 &
done
else
for ((i=1; i <= CPU ; i++))
do
cpuburn-1.4/burnP6 &
done
fi
sleep 10m
echo "Killing Burn"
pkill burn
echo "#BURNK7 END $DATE" >> log/outputs.log
# Idle end measurment
echo "Start IDLE Measurment for 10min"
echo "#IDLE START $DATE" >> log/outputs.log
date
sleep 10m
echo "#IDLE STOP $DATE" >> log/outputs.log
# kill wattsup input info gathering
for i in `ps aux | grep ttyS0 | grep -v grep | awk '{ print $2 }'` ; do
kill $i
done
pkill timestamp.pl
sed log/outputs.log -e 's/,/ /g' > log/gnuplot-outputs.txt
sed -i log/gnuplot-outputs.txt -e 's/#d//g'
echo "Power testing is complete please gather the logs from log/"