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...
suggestions for CPU stress after RC1
Moderators: Icecube, StopSpazzing
little busybox script...
OK it's very basic but just
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...
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
/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.
for blanking screen, it's not hard and setterm is useless:
http://alexis.m2osw.com/console.html
before launching MPrime, just add:
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
-
- Posts: 49
- Joined: Mon Jun 01, 2009 8:30 am
Currently it is not possible (kernel build without support for harddisk, USB drives).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)?
@ 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/
Use Parted Magic for handling all partitioning task: http://partedmagic.com/
I guess we could just change the "mprime" script to do that:
! NOT TESTED YET !
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.
! 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
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.
I agree with delicate: the best solution is logging onto another device that keeps the results after a crash.
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...
So without USB there isn't much choice left:do we have floppy support ?![Embarassed :oops:](./images/smilies/icon_redface.gif)
![Cool 8)](./images/smilies/icon_cool.gif)
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...
![Crying or Very sad :cry:](./images/smilies/icon_cry.gif)
So without USB there isn't much choice left:do we have floppy support ?
![Embarassed :oops:](./images/smilies/icon_redface.gif)