From: Ajasja Ljubetič (ajasja.ljubetic_at_gmail.com)
Date: Sat Jul 30 2011 - 09:44:23 CDT
Thanks, it works great.
Below is the resulting script (in case other people have similar problems).
(This is just a stop-gap measure, I'll look into under-clocking the cards
and controlling the fan speed next).
Best regards,
Ajasja
throttle-gpu:
#!/bin/bash
#the first parameter is the GPU id of the card you'd like to throttle
GPU=$1
MAX_TEMP=$2
: ${MAX_TEMP:=99} ;# in C
#the check time
CHK_TIME=$3
: ${CHK_TIME:=5} ;# in seconds
#the sleep time
SLEEP_TIME=$4
: ${SLEEP_TIME:=20} ;# in seconds
#Time since last suspend (in seconds)
TSL=0
while true; do
TEMP=$(nvidia-smi -q --id=$GPU --display=TEMPERATURE | egrep -e
'[0-9]{1,3} C' | awk '{print $3}')
echo "GPU $GPU temp is $TEMP C (tsl: $TSL s)"
if [[ "$TEMP" -gt "$MAX_TEMP" ]]; then
TSL=0
echo "Suspending namd2$GPU for $SLEEP_TIME s"
killall -STOP namd2$GPU
sleep $SLEEP_TIME
killall -CONT namd2$GPU
else
sleep $CHK_TIME
TSL=$(( $TSL + $CHK_TIME ))
fi
done
This archive was generated by hypermail 2.1.6 : Wed Feb 29 2012 - 15:57:32 CST