mirror of https://github.com/BOINC/boinc.git
- client: when I changed the length of benchmark intervals
from 20 to 10 seconds, this broke things on ultra-slow CPUs. I think this is because a single loop of the FP benchmark took so long that the end time of the int benchmark had already come and gone. Fixed this (I hope) by reducing the loop length by a factor of 10. client/ cs_benchmark.C dhrystone.C whetstone.C svn path=/trunk/boinc/; revision=12908
This commit is contained in:
parent
f8af50e685
commit
3bbb17f117
|
@ -6123,3 +6123,17 @@ David 12 June 2007
|
||||||
client/
|
client/
|
||||||
client_state.C
|
client_state.C
|
||||||
cs_statefile.C
|
cs_statefile.C
|
||||||
|
|
||||||
|
David 12 June 2007
|
||||||
|
- client: when I changed the length of benchmark intervals
|
||||||
|
from 20 to 10 seconds, this broke things on ultra-slow CPUs.
|
||||||
|
I think this is because a single loop of the FP
|
||||||
|
benchmark took so long that the end time of the int
|
||||||
|
benchmark had already come and gone.
|
||||||
|
Fixed this (I hope) by reducing the loop length
|
||||||
|
by a factor of 10.
|
||||||
|
|
||||||
|
client/
|
||||||
|
cs_benchmark.C
|
||||||
|
dhrystone.C
|
||||||
|
whetstone.C
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
|
|
||||||
// Manage a (perhaps multi-processor) benchmark.
|
// Manage a (perhaps multi-processor) benchmark.
|
||||||
// Because of hyperthreaded CPUs we can't just benchmark 1 CPU;
|
// Because of hyperthreaded CPUs we can't just benchmark 1 CPU;
|
||||||
// we have to run parallel benchmarks,
|
// we must run parallel benchmarks
|
||||||
// and we have to ensure that they run more or less concurrently.
|
// and ensure that they run more or less concurrently.
|
||||||
// Here's our scheme:
|
// Here's our scheme:
|
||||||
// - the main program forks N benchmarks threads or processes
|
// - the main program forks N benchmarks threads or processes
|
||||||
// - after FP_START seconds it creates a file "do_fp"
|
// - after FP_START seconds it creates a file "do_fp"
|
||||||
|
|
|
@ -109,7 +109,9 @@ void dhrystone(
|
||||||
|
|
||||||
Arr_2_Glob [8][7] = 10;
|
Arr_2_Glob [8][7] = 10;
|
||||||
|
|
||||||
Loops = 160000; // determines runtime
|
Loops = 16000; // determines runtime
|
||||||
|
// This must be small enough that, on the slowest CPU,
|
||||||
|
// one loop completes within 10 seconds.
|
||||||
|
|
||||||
|
|
||||||
benchmark_wait_to_start(BM_TYPE_INT);
|
benchmark_wait_to_start(BM_TYPE_INT);
|
||||||
|
|
|
@ -87,9 +87,10 @@ void whetstone(double& flops) {
|
||||||
double startsec, finisec;
|
double startsec, finisec;
|
||||||
double KIPS;
|
double KIPS;
|
||||||
int xtra, ii;
|
int xtra, ii;
|
||||||
int x100 = 10000; // chosen to make each pass take about 1 sec
|
int x100 = 1000; // chosen to make each pass take about 0.1 sec
|
||||||
// on my current computer (2.2 GHz celeron)
|
// on my current computer (2.2 GHz celeron)
|
||||||
// Non-critical.
|
// This must be small enough that one loop finishes
|
||||||
|
// in 10 sec on the slowest CPU
|
||||||
|
|
||||||
extern_array[11] = 1;
|
extern_array[11] = 1;
|
||||||
benchmark_wait_to_start(BM_TYPE_FP);
|
benchmark_wait_to_start(BM_TYPE_FP);
|
||||||
|
|
Loading…
Reference in New Issue