It is currently Fri Jul 25, 2014 2:16 pm

All times are UTC - 8 hours




Post new topic Reply to topic  [ 7 posts ] 
Author Message
 Post subject: suggestions for CPU stress after RC1
PostPosted: Thu Mar 04, 2010 3:15 pm 
Offline

Joined: Fri Feb 06, 2009 4:09 pm
Posts: 8
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...


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 04, 2010 3:49 pm 
Offline

Joined: Fri Feb 06, 2009 4:09 pm
Posts: 8
little busybox script...

OK it's very basic but just

Code:
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.

Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 04, 2010 4:38 pm 
Offline

Joined: Fri Feb 06, 2009 4:09 pm
Posts: 8
for blanking screen, it's not hard and setterm is useless:

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

before launching MPrime, just add:

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


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 08, 2010 11:53 am 
Offline

Joined: Mon Jun 01, 2009 8:30 am
Posts: 49
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


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 08, 2010 5:27 pm 
Offline

Joined: Fri Jan 11, 2008 2:52 pm
Posts: 1278
Quote:
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/


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 10, 2010 6:27 am 
Offline

Joined: Fri Feb 06, 2009 4:09 pm
Posts: 8
I guess we could just change the "mprime" script to do that:
! NOT TESTED YET !

Code:
#!/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.

Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 10, 2010 9:31 am 
Offline

Joined: Fri Feb 06, 2009 4:09 pm
Posts: 8
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:


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC - 8 hours


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

Protected by Anti-Spam ACP Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group