suggestions for CPU stress after RC1

Discussion/announcements about test/beta releases of UBCD will be posted here.

Moderators: Icecube, StopSpazzing

Post Reply
Message
Author
gloutch
Posts: 8
Joined: Fri Feb 06, 2009 4:09 pm

suggestions for CPU stress after RC1

#1 Post by gloutch » Thu Mar 04, 2010 3:15 pm

CPU stress was created to stress CPU, ok?
Why ?
Usually to test system stability, especially when overclocking ?

Noob overclockers just select highest CPU voltage they think is reasonnable and then increase FSB (or QPI...) until the system is obviously unstable. Then they reduce the speed a bit and are satisfied.

More experimenced overclockers take more (too much) time finding which parameter has the best impact on stability (like clocks skews, GTL adjustements, FSB termination voltages...)
In that case, it's crucial to know if a change has a significant impact on system stability.
If a system crashes after 2 minutes of MPrime, then -after a small change- if it crashes only after 1h of the same test; it seems that that change is improving stability.

SO KNOWING THE TIME(*) BEFORE A CRASH IS IMPORTANT.

The problem is that the terminal has blank & VESA power savings and that the screen becomes black after a few minutes. If the system crashes, there's no way to know what was the test running and how long it took before the system crashed.
Of course, we could stay in front of the screen for hours, just pressing "SHIFT" from time to time to prevent the blanking...
But here's what I suggest:

-turning off screensaving:
$ setterm -powersave off -blank 0

-adding a small script turning with the MPrime(and others stress tests):
pseudo code:
{
W=15;
loop: Sleep(W); //seconds
print(uptime);
W=W*2;
if (w>3600) w=3600;
goto loop;
}

-the cherry on the cake: a small program replying "pong" when someone sends "ping" on the serial port. This way we (I?) could write a small program that creates some noise on a second computer if the tested system crashed. This way: no need to come every 10minutes to see if the system crashed, just connect some speakers and wait...


(*)Well if it takes 60minutes to crash instead of 30, this is within statistical errors and is not a big difference. On the other hand, if it's 2hours instead of 2minutes, there's a 90% probability that the change was good for system stability...

gloutch
Posts: 8
Joined: Fri Feb 06, 2009 4:09 pm

#2 Post by gloutch » Thu Mar 04, 2010 3:49 pm

little busybox script...

OK it's very basic but just

Code: Select all

cd /tmp
cat > myscript
while true; do
cat /proc/uptime
top -n2 -d15 > /dev/null
done
then
/bin/sh myscript
and uptime is displayed every 15s

(no "sleep" so I use "top" instead and discard the result)

sorry I'm a bit rusted with scripts for busybox... if someone could add the *2 and the >3600 test...
Last edited by gloutch on Thu Mar 04, 2010 4:39 pm, edited 1 time in total.

gloutch
Posts: 8
Joined: Fri Feb 06, 2009 4:09 pm

#3 Post by gloutch » Thu Mar 04, 2010 4:38 pm

for blanking screen, it's not hard and setterm is useless:

http://alexis.m2osw.com/console.html

before launching MPrime, just add:

Code: Select all

echo -e "\033[9;0]" >/dev/console
echo -e "\033[14;0]" >/dev/console

delicatepc
Posts: 49
Joined: Mon Jun 01, 2009 8:30 am

#4 Post by delicatepc » Mon Mar 08, 2010 11:53 am

Not sure if its possible but if run off USB is there a way to have it drop the uptime into a text file every X time (like every minute)?

Just think it will be a good thing to fallback to (check usb stick and it will have last uptime (maybe even a history of last 5?)

~
dpc

Icecube
Posts: 1278
Joined: Fri Jan 11, 2008 2:52 pm
Contact:

#5 Post by Icecube » Mon Mar 08, 2010 5:27 pm

Not sure if its possible but if run off USB is there a way to have it drop the uptime into a text file every X time (like every minute)?
Currently it is not possible (kernel build without support for harddisk, USB drives).

@ gloutch
if I have some free time, I can try to add the uptime displaying (maybe a separated virtual console?).
Download Ultimate Boot CD v5.0: http://www.ultimatebootcd.com/download.html
Use Parted Magic for handling all partitioning task: http://partedmagic.com/

gloutch
Posts: 8
Joined: Fri Feb 06, 2009 4:09 pm

#6 Post by gloutch » Wed Mar 10, 2010 6:27 am

I guess we could just change the "mprime" script to do that:
! NOT TESTED YET !

Code: Select all

#!/bin/sh
#
# Wrapper for the Mersenne Prime Torture test (mprime)
# ====================================================
#
# 'mprime' is a wrapper that automaticly detects the number of CPUs so they can be
# stressed all at the same time. It will run an instance of 'mprime' for each
# CPU in order to heat all CPUs up at the same time. You can do this by running
# the background option (-bn with n= number of processes). However, this option
# does not display any output on the screen. This can be solved by running several
# instances of mprime with the background (&) option of the shell. This method
# displays the output of the multiple instances of mprime.
#
# This wrapper allows the user to choose which version of mprime he wants to use.
#   mprime          ==> will prompt to ask which version should be used
#   mprime 23       ==> will run 'Mersenne Prime 23.5.2'
#   mprime 24       ==> will run 'Mersenne Prime 24.14.2'
#
# This wrapper avoids specifying the working directory part (-W) and the torure
# (-t) option of the command 'mprime -t -W/tmp/torture-test/torture.XXXXXX',
# so the user can run 'mprime' from a terminal without worrying which parameters
# to add to use the torture test of Mersenne Prime Test. 
#
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#
# Last updated by Gert Hulselmans on 26 February 2009.
# Changes by gloutch 2001-03-10 identified by CHANGE HERE comments


#CHANGE HERE
echo -e "\033[9;0]" >/dev/console
echo -e "\033[14;0]" >/dev/console 
#END CHANGE HERE

CPUS=`awk '/^processor/ {CPU=$3}; END {print CPU+1}' /proc/cpuinfo`

mkdir -p /tmp/torture-test/

echo -e '\033[0;32mMersenne Prime Torture test:'
echo -e '============================\033[0m'
echo

case "$1" in
    23)
	echo "The torture test will be executed with 'Mersenne Prime 23.5.2' (mprime23)."
	MPRIME=/opt/mprime/mprime23
	;;
    24)
	echo "The torture test will be executed with 'Mersenne Prime 24.14.2' (mprime24)."
	MPRIME=/opt/mprime/mprime24
	;;
    *)
	echo "Which version of 'Mersenne Prime' do you want to use?"
	echo " 1) version 24.14.2 (default)     Press any key exept '2'"
	echo " 2) version 23.5.2                Press '2'"
	echo -n 'Choose: '
	read -n1 -t 15 CHOISE
	echo

	if [ "$CHOISE" == "2" ]; then
	    echo "The torture test will be executed with 'Mersenne Prime 23.5.2' (mprime23)."
	    MPRIME=/opt/mprime/mprime23
	else
	    echo "The torture test will be executed with 'Mersenne Prime 24.14.2' (mprime24)."
	    MPRIME=/opt/mprime/mprime24
	fi
	;;
esac

echo
echo 'Automatic detection of the number of CPUs:'
echo

if [ "$CPUS" == "1" ]; then
    WORKING_DIR=`mktemp -d -p /tmp/torture-test torture.XXXXXX`
    echo '1 CPU detected.'
    echo "Running 1 instance of mprime ('$MPRIME -t -W$WORKING_DIR')."
    echo

#CHANGE HERE (& added)
    $MPRIME -t -W$WORKING_DIR &
#END CHANGE HERE

else
    echo "$CPUS CPUs detected."
    echo "To stress all CPUs, $CPUS instances of $MPRIME will be run in the background."
    echo
    echo -e '\033[01;31mTo stop the torture test, press any key.\033[0m'

    for i in `seq 1 $CPUS`; do
        WORKING_DIR=`mktemp -d -p /tmp/torture-test torture.XXXXXX`
        echo
        echo "Starting instance $i of mprime ('$MPRIME -t -W$WORKING_DIR &')."
        echo
        $MPRIME -t -W$WORKING_DIR &
    done

#CHANGE HERE
#    read -s -n1
#    pkill mprime
#END CHANGE HERE
fi


#CHANGE HERE
KEYPRESS="none"
DELAY=15

while true; do
    cat /proc/uptime
    read -s -n1 -t $DELAY KEYPRESS
    if [ "$KEYPRESS"X != "noneX" ]; then
        break
    fi
    DELAY = $((DELAY*2))
    if [ $DELAY -gt 3600 ]; then
        DELAY=3600
    fi
done

pkill mprime
#END CHANGE HERE

If you want, you can send the uptime log to another console, just do
cat /proc/uptime > /dev/tty3
for the 3rd console for example.
Last edited by gloutch on Wed Mar 10, 2010 9:43 am, edited 2 times in total.

gloutch
Posts: 8
Joined: Fri Feb 06, 2009 4:09 pm

#7 Post by gloutch » Wed Mar 10, 2010 9:31 am

I agree with delicate: the best solution is logging onto another device that keeps the results after a crash. 8)

That's why I suggested a small serial port program that could talk to another computer giving many possibilities there. The problem is the fact that recent MB don't have a serial port anymore... :cry:

So without USB there isn't much choice left:do we have floppy support ? :oops:

Post Reply