mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=3415
This commit is contained in:
parent
44179777c1
commit
f3943bf245
|
@ -12483,3 +12483,14 @@ David May 21 2004
|
|||
cs_benchmark.C
|
||||
dhrystone.C
|
||||
whetstone.C
|
||||
|
||||
Rom May 21 2004
|
||||
- A little fine tuning to the benchmark process.
|
||||
Should be less than 1% difference between executions without any
|
||||
other software runing
|
||||
|
||||
client/
|
||||
cs_benchmark.C
|
||||
dhrystone.C
|
||||
whetstone.C
|
||||
|
|
@ -74,16 +74,17 @@
|
|||
#define DEFAULT_MEMBW 1e8
|
||||
#define DEFAULT_CACHE 1e6
|
||||
|
||||
#define FP_START 1
|
||||
#define FP_END 5
|
||||
#define INT_START 6
|
||||
#define INT_END 10
|
||||
#define FP_START 2
|
||||
#define FP_END 6
|
||||
#define INT_START 8
|
||||
#define INT_END 12
|
||||
|
||||
#define BM_INIT 0
|
||||
#define BM_FP_INIT 0
|
||||
#define BM_FP 1
|
||||
#define BM_FP_DONE 2
|
||||
#define BM_INT_INIT 2
|
||||
#define BM_INT 3
|
||||
#define BM_DONE 4
|
||||
#define BM_SLEEP 4
|
||||
#define BM_DONE 5
|
||||
static int bm_state;
|
||||
|
||||
#define BENCHMARK_PERIOD (SECONDS_PER_DAY*30)
|
||||
|
@ -190,10 +191,10 @@ void CLIENT_STATE::start_cpu_benchmarks() {
|
|||
return;
|
||||
}
|
||||
|
||||
cpu_benchmarks_start = dtime();
|
||||
bm_state = BM_INIT;
|
||||
bm_state = BM_FP_INIT;
|
||||
remove_benchmark_file(BM_TYPE_FP);
|
||||
remove_benchmark_file(BM_TYPE_INT);
|
||||
cpu_benchmarks_start = dtime();
|
||||
|
||||
msg_printf(NULL, MSG_INFO, "Running CPU benchmarks");
|
||||
if (!benchmark_descs) {
|
||||
|
@ -299,7 +300,7 @@ bool CLIENT_STATE::cpu_benchmarks_poll() {
|
|||
// do transitions through benchmark states
|
||||
//
|
||||
switch (bm_state) {
|
||||
case BM_INIT:
|
||||
case BM_FP_INIT:
|
||||
if (now - cpu_benchmarks_start > FP_START) {
|
||||
make_benchmark_file(BM_TYPE_FP);
|
||||
bm_state = BM_FP;
|
||||
|
@ -308,10 +309,10 @@ bool CLIENT_STATE::cpu_benchmarks_poll() {
|
|||
case BM_FP:
|
||||
if (now - cpu_benchmarks_start > FP_END) {
|
||||
remove_benchmark_file(BM_TYPE_FP);
|
||||
bm_state = BM_FP_DONE;
|
||||
bm_state = BM_INT_INIT;
|
||||
}
|
||||
return false;
|
||||
case BM_FP_DONE:
|
||||
case BM_INT_INIT:
|
||||
if (now - cpu_benchmarks_start > INT_START) {
|
||||
make_benchmark_file(BM_TYPE_INT);
|
||||
bm_state = BM_INT;
|
||||
|
@ -320,9 +321,13 @@ bool CLIENT_STATE::cpu_benchmarks_poll() {
|
|||
case BM_INT:
|
||||
if (now - cpu_benchmarks_start > INT_END) {
|
||||
remove_benchmark_file(BM_TYPE_INT);
|
||||
bm_state = BM_DONE;
|
||||
bm_state = BM_SLEEP;
|
||||
}
|
||||
return false;
|
||||
case BM_SLEEP:
|
||||
boinc_sleep(2.0);
|
||||
bm_state = BM_DONE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// check for timeout
|
||||
|
|
|
@ -251,19 +251,19 @@ void dhrystone(
|
|||
|
||||
Loops = 160000; // determines runtime
|
||||
|
||||
do
|
||||
{
|
||||
Array2Glob[8][7] = 10;
|
||||
Array2Glob[8][7] = 10;
|
||||
|
||||
benchmark_wait_to_start(BM_TYPE_INT);
|
||||
benchmark_wait_to_start(BM_TYPE_INT);
|
||||
|
||||
/*****************
|
||||
-- Start Timer --
|
||||
*****************/
|
||||
|
||||
startclock = dtime();
|
||||
int bigloops = 0;
|
||||
restart:
|
||||
/*****************
|
||||
-- Start Timer --
|
||||
*****************/
|
||||
|
||||
startclock = dtime();
|
||||
int bigloops = 0;
|
||||
|
||||
do
|
||||
{
|
||||
for (i = 0; i < Loops; ++i)
|
||||
{
|
||||
Proc5();
|
||||
|
@ -290,22 +290,19 @@ restart:
|
|||
Proc2(&IntLoc1);
|
||||
}
|
||||
bigloops++;
|
||||
if (!benchmark_time_to_stop(BM_TYPE_INT)) {
|
||||
goto restart;
|
||||
}
|
||||
Loops *= bigloops;
|
||||
}
|
||||
while (!benchmark_time_to_stop(BM_TYPE_INT));
|
||||
|
||||
/*****************
|
||||
-- Stop Timer --
|
||||
*****************/
|
||||
Loops *= bigloops;
|
||||
|
||||
benchtime = dtime() - startclock;
|
||||
|
||||
//printf ("%12.0f runs %6.2f seconds \n",(double) Loops, benchtime);
|
||||
/*****************
|
||||
-- Stop Timer --
|
||||
*****************/
|
||||
|
||||
benchtime = dtime() - startclock;
|
||||
|
||||
//printf ("%12.0f runs %6.2f seconds \n",(double) Loops, benchtime);
|
||||
|
||||
}
|
||||
while (0);
|
||||
|
||||
Dhrystones_Per_Second = (double) Loops / benchtime;
|
||||
Vax_Mips = Dhrystones_Per_Second / 1757.0;
|
||||
#if 0
|
||||
|
|
|
@ -56,14 +56,14 @@ C**********************************************************************
|
|||
#ifdef _WIN32
|
||||
#include "stdafx.h"
|
||||
#endif
|
||||
/* standard C library headers required */
|
||||
|
||||
#ifndef _WIN32
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
/* the following is optional depending on the timing function used */
|
||||
#include <time.h>
|
||||
#endif
|
||||
|
||||
#include "util.h"
|
||||
#include "cpu_benchmark.h"
|
||||
|
@ -98,16 +98,13 @@ void whetstone(double& flops) {
|
|||
long N1, N2, N3, N4, N6, N7, N8, N9, N10, N11;
|
||||
double X1,X2,X3,X4,X,Y,Z;
|
||||
long LOOP;
|
||||
int II, JJ;
|
||||
int II;
|
||||
|
||||
/* added for this version */
|
||||
long loopstart;
|
||||
double startsec, finisec;
|
||||
double KIPS;
|
||||
|
||||
II = 32;
|
||||
|
||||
loopstart = 1000; /* see the note about LOOP below */
|
||||
II = 0;
|
||||
|
||||
benchmark_wait_to_start(BM_TYPE_FP);
|
||||
|
||||
|
@ -134,189 +131,181 @@ C 'II' TIMES TO INCREASE WALL-CLOCK TIMING ACCURACY.
|
|||
C
|
||||
LOOP = 1000;
|
||||
*/
|
||||
LOOP = loopstart;
|
||||
LOOP = 100;
|
||||
|
||||
JJ = 0;
|
||||
do
|
||||
{
|
||||
N1 = 0;
|
||||
N2 = 12 * LOOP;
|
||||
N3 = 14 * LOOP;
|
||||
N4 = 345 * LOOP;
|
||||
N6 = 210 * LOOP;
|
||||
N7 = 32 * LOOP;
|
||||
N8 = 899 * LOOP;
|
||||
N9 = 616 * LOOP;
|
||||
N10 = 0;
|
||||
N11 = 93 * LOOP;
|
||||
/*
|
||||
C
|
||||
C Module 1: Simple identifiers
|
||||
C
|
||||
*/
|
||||
X1 = 1.0;
|
||||
X2 = -1.0;
|
||||
X3 = -1.0;
|
||||
X4 = -1.0;
|
||||
|
||||
IILOOP:
|
||||
N1 = 0;
|
||||
N2 = 12 * LOOP;
|
||||
N3 = 14 * LOOP;
|
||||
N4 = 345 * LOOP;
|
||||
N6 = 210 * LOOP;
|
||||
N7 = 32 * LOOP;
|
||||
N8 = 899 * LOOP;
|
||||
N9 = 616 * LOOP;
|
||||
N10 = 0;
|
||||
N11 = 93 * LOOP;
|
||||
/*
|
||||
C
|
||||
C Module 1: Simple identifiers
|
||||
C
|
||||
*/
|
||||
X1 = 1.0;
|
||||
X2 = -1.0;
|
||||
X3 = -1.0;
|
||||
X4 = -1.0;
|
||||
for (I = 1; I <= N1; I++) {
|
||||
X1 = (X1 + X2 + X3 - X4) * T;
|
||||
X2 = (X1 + X2 - X3 + X4) * T;
|
||||
X3 = (X1 - X2 + X3 + X4) * T;
|
||||
X4 = (-X1+ X2 + X3 + X4) * T;
|
||||
}
|
||||
|
||||
for (I = 1; I <= N1; I++) {
|
||||
X1 = (X1 + X2 + X3 - X4) * T;
|
||||
X2 = (X1 + X2 - X3 + X4) * T;
|
||||
X3 = (X1 - X2 + X3 + X4) * T;
|
||||
X4 = (-X1+ X2 + X3 + X4) * T;
|
||||
}
|
||||
/*
|
||||
C
|
||||
C Module 2: Array elements
|
||||
C
|
||||
*/
|
||||
E1[1] = 1.0;
|
||||
E1[2] = -1.0;
|
||||
E1[3] = -1.0;
|
||||
E1[4] = -1.0;
|
||||
|
||||
/*
|
||||
C
|
||||
C Module 2: Array elements
|
||||
C
|
||||
*/
|
||||
E1[1] = 1.0;
|
||||
E1[2] = -1.0;
|
||||
E1[3] = -1.0;
|
||||
E1[4] = -1.0;
|
||||
for (I = 1; I <= N2; I++) {
|
||||
E1[1] = ( E1[1] + E1[2] + E1[3] - E1[4]) * T;
|
||||
E1[2] = ( E1[1] + E1[2] - E1[3] + E1[4]) * T;
|
||||
E1[3] = ( E1[1] - E1[2] + E1[3] + E1[4]) * T;
|
||||
E1[4] = (-E1[1] + E1[2] + E1[3] + E1[4]) * T;
|
||||
}
|
||||
|
||||
for (I = 1; I <= N2; I++) {
|
||||
E1[1] = ( E1[1] + E1[2] + E1[3] - E1[4]) * T;
|
||||
E1[2] = ( E1[1] + E1[2] - E1[3] + E1[4]) * T;
|
||||
E1[3] = ( E1[1] - E1[2] + E1[3] + E1[4]) * T;
|
||||
E1[4] = (-E1[1] + E1[2] + E1[3] + E1[4]) * T;
|
||||
}
|
||||
/*
|
||||
C
|
||||
C Module 3: Array as parameter
|
||||
C
|
||||
*/
|
||||
for (I = 1; I <= N3; I++)
|
||||
PA(E1);
|
||||
|
||||
/*
|
||||
C
|
||||
C Module 3: Array as parameter
|
||||
C
|
||||
*/
|
||||
for (I = 1; I <= N3; I++)
|
||||
PA(E1);
|
||||
/*
|
||||
C
|
||||
C Module 4: Conditional jumps
|
||||
C
|
||||
*/
|
||||
J = 1;
|
||||
for (I = 1; I <= N4; I++) {
|
||||
if (J == 1)
|
||||
J = 2;
|
||||
else
|
||||
J = 3;
|
||||
|
||||
/*
|
||||
C
|
||||
C Module 4: Conditional jumps
|
||||
C
|
||||
*/
|
||||
J = 1;
|
||||
for (I = 1; I <= N4; I++) {
|
||||
if (J == 1)
|
||||
J = 2;
|
||||
else
|
||||
J = 3;
|
||||
if (J > 2)
|
||||
J = 0;
|
||||
else
|
||||
J = 1;
|
||||
|
||||
if (J > 2)
|
||||
J = 0;
|
||||
else
|
||||
J = 1;
|
||||
|
||||
if (J < 1)
|
||||
J = 1;
|
||||
else
|
||||
J = 0;
|
||||
}
|
||||
if (J < 1)
|
||||
J = 1;
|
||||
else
|
||||
J = 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
C
|
||||
C Module 5: Omitted
|
||||
C Module 6: Integer arithmetic
|
||||
C
|
||||
*/
|
||||
/*
|
||||
C
|
||||
C Module 5: Omitted
|
||||
C Module 6: Integer arithmetic
|
||||
C
|
||||
*/
|
||||
|
||||
J = 1;
|
||||
K = 2;
|
||||
L = 3;
|
||||
J = 1;
|
||||
K = 2;
|
||||
L = 3;
|
||||
|
||||
for (I = 1; I <= N6; I++) {
|
||||
J = J * (K-J) * (L-K);
|
||||
K = L * K - (L-J) * K;
|
||||
L = (L-K) * (K+J);
|
||||
E1[L-1] = J + K + L;
|
||||
E1[K-1] = J * K * L;
|
||||
}
|
||||
for (I = 1; I <= N6; I++) {
|
||||
J = J * (K-J) * (L-K);
|
||||
K = L * K - (L-J) * K;
|
||||
L = (L-K) * (K+J);
|
||||
E1[L-1] = J + K + L;
|
||||
E1[K-1] = J * K * L;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
C
|
||||
C Module 7: Trigonometric functions
|
||||
C
|
||||
*/
|
||||
X = 0.5;
|
||||
Y = 0.5;
|
||||
/*
|
||||
C
|
||||
C Module 7: Trigonometric functions
|
||||
C
|
||||
*/
|
||||
X = 0.5;
|
||||
Y = 0.5;
|
||||
|
||||
for (I = 1; I <= N7; I++) {
|
||||
X = T * DATAN(T2*DSIN(X)*DCOS(X)/(DCOS(X+Y)+DCOS(X-Y)-1.0));
|
||||
Y = T * DATAN(T2*DSIN(Y)*DCOS(Y)/(DCOS(X+Y)+DCOS(X-Y)-1.0));
|
||||
}
|
||||
for (I = 1; I <= N7; I++) {
|
||||
X = T * DATAN(T2*DSIN(X)*DCOS(X)/(DCOS(X+Y)+DCOS(X-Y)-1.0));
|
||||
Y = T * DATAN(T2*DSIN(Y)*DCOS(Y)/(DCOS(X+Y)+DCOS(X-Y)-1.0));
|
||||
}
|
||||
|
||||
/*
|
||||
C
|
||||
C Module 8: Procedure calls
|
||||
C
|
||||
*/
|
||||
X = 1.0;
|
||||
Y = 1.0;
|
||||
Z = 1.0;
|
||||
/*
|
||||
C
|
||||
C Module 8: Procedure calls
|
||||
C
|
||||
*/
|
||||
X = 1.0;
|
||||
Y = 1.0;
|
||||
Z = 1.0;
|
||||
|
||||
for (I = 1; I <= N8; I++)
|
||||
P3(X,Y,&Z);
|
||||
for (I = 1; I <= N8; I++)
|
||||
P3(X,Y,&Z);
|
||||
|
||||
|
||||
/*
|
||||
C
|
||||
C Module 9: Array references
|
||||
C
|
||||
*/
|
||||
J = 1;
|
||||
K = 2;
|
||||
L = 3;
|
||||
E1[1] = 1.0;
|
||||
E1[2] = 2.0;
|
||||
E1[3] = 3.0;
|
||||
/*
|
||||
C
|
||||
C Module 9: Array references
|
||||
C
|
||||
*/
|
||||
J = 1;
|
||||
K = 2;
|
||||
L = 3;
|
||||
E1[1] = 1.0;
|
||||
E1[2] = 2.0;
|
||||
E1[3] = 3.0;
|
||||
|
||||
for (I = 1; I <= N9; I++)
|
||||
P0();
|
||||
for (I = 1; I <= N9; I++)
|
||||
P0();
|
||||
|
||||
|
||||
/*
|
||||
C
|
||||
C Module 10: Integer arithmetic
|
||||
C
|
||||
*/
|
||||
J = 2;
|
||||
K = 3;
|
||||
/*
|
||||
C
|
||||
C Module 10: Integer arithmetic
|
||||
C
|
||||
*/
|
||||
J = 2;
|
||||
K = 3;
|
||||
|
||||
for (I = 1; I <= N10; I++) {
|
||||
J = J + K;
|
||||
K = J + K;
|
||||
J = K - J;
|
||||
K = K - J - J;
|
||||
}
|
||||
for (I = 1; I <= N10; I++) {
|
||||
J = J + K;
|
||||
K = J + K;
|
||||
J = K - J;
|
||||
K = K - J - J;
|
||||
}
|
||||
|
||||
/*
|
||||
C
|
||||
C Module 11: Standard functions
|
||||
C
|
||||
*/
|
||||
X = 0.75;
|
||||
/*
|
||||
C
|
||||
C Module 11: Standard functions
|
||||
C
|
||||
*/
|
||||
X = 0.75;
|
||||
|
||||
for (I = 1; I <= N11; I++)
|
||||
X = DSQRT(DEXP(DLOG(X)/T1));
|
||||
for (I = 1; I <= N11; I++)
|
||||
X = DSQRT(DEXP(DLOG(X)/T1));
|
||||
|
||||
/*
|
||||
C
|
||||
C THIS IS THE END OF THE MAJOR LOOP.
|
||||
C
|
||||
*/
|
||||
#if 0
|
||||
if (++JJ <= II)
|
||||
goto IILOOP;
|
||||
#else
|
||||
JJ++;
|
||||
if (!benchmark_time_to_stop(BM_TYPE_FP)) {
|
||||
goto IILOOP;
|
||||
/*
|
||||
C
|
||||
C THIS IS THE END OF THE MAJOR LOOP.
|
||||
C
|
||||
*/
|
||||
II++;
|
||||
}
|
||||
II = JJ;
|
||||
#endif
|
||||
while (!benchmark_time_to_stop(BM_TYPE_FP));
|
||||
|
||||
/*
|
||||
C
|
||||
|
|
|
@ -21,6 +21,9 @@
|
|||
// Revision History:
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.11 2004/05/22 01:36:36 rwalton
|
||||
// *** empty log message ***
|
||||
//
|
||||
// Revision 1.10 2004/05/21 06:27:15 rwalton
|
||||
// *** empty log message ***
|
||||
//
|
||||
|
@ -97,6 +100,9 @@ CMainFrame::CMainFrame(wxString strTitle) :
|
|||
m_pFrameRenderTimer->Start(1000); // Send event every second
|
||||
|
||||
|
||||
RestoreState();
|
||||
|
||||
|
||||
wxLogTrace("CMainFrame::CMainFrame - Function Ending");
|
||||
}
|
||||
|
||||
|
@ -111,6 +117,9 @@ CMainFrame::~CMainFrame(){
|
|||
wxASSERT(NULL != m_pStatusbar);
|
||||
|
||||
|
||||
SaveState();
|
||||
|
||||
|
||||
if (m_pFrameRenderTimer) {
|
||||
m_pFrameRenderTimer->Stop();
|
||||
delete m_pFrameRenderTimer;
|
||||
|
|
Loading…
Reference in New Issue