Author: James Swafford
Date: 10:46:07 02/23/01
Below are a couple quick tests I ran to compare executable speeds of one
of my programs using MSVC 6 pro and the latest Cygwin.
The tests were run on a Dell laptop running WinNT, 750 Mhz PIII, 512 mb ram.
The first test was the WAC suite (first 100 problems) run at 10 sec/problem.
The summary reports below show the avg node counts at the bottom.
The second test is an internal bench command that runs the nolot test
suite at 30 secs/problem, then computes avg nps. The function is
attached below. Disregard the comparisons to the K6-2 and Athlon -
I don't remember which compiler I used when I came up with those numbers,
and the program has changed a bit since.
Here's the summary:
Test 1 (WAC 1-100 @ 10 sec.)
cygwin:
interior: 398622; frontier: 2429828 (node counts)
msvc 6:
interior: 384231; frontier: 2331737
Test 2 (nolot bench, 30 sec./problem)
cygwin:
mean node rate for benchmark -> 308177 n/s
msvc 6:
mean node rate for benchmark -> 293639 n/s
FROM MSVC 6, "MAXIMIZE SPEED"
------------------------------------
SUMMARY REPORT
------------------------------------
fixed depth=20
total problems=100; #correct=65; #incorrect=35
incorrect problems: 2 11 14 15 18 21 23 26 30 32 33 35 49 52 55 62 66 68 71 73
74 78 79 80 81 83 86 87 88 90 91 92 93 100
Avg. Node Counts -> interior: 384231; frontier: 2331737
execution complete, terminating process...
SECOND TEST FOR MSVC:
---------------------
benchmark complete...
mean node rate for benchmark -> 293639 n/s
compared to K6-2 400 mhz, 128 mb pc66 sdram: 1.39x faster
compared to Athlon 700 mhz, 128 mb nvdram: 0.09x slower
results have been logged in logfile.
execution complete, terminating process...
My program doesn't know it's head from its a*@ yet, it's small,
doesn't use hash or quiescence, or much of any search heuristic
for that matter...
Thoughts?
--
James
FROM CYGWIN (DLL 1.1.8), gcc port v. 2.95.2-6, compiled with "-O"
------------------------------------
SUMMARY REPORT
------------------------------------
fixed depth=20
total problems=100; #correct=66; #incorrect=34
incorrect problems: 2 11 14 15 18 21 23 26 30 32 33 35 49 52 55 62 68 70 73 74
78 79 80 81 83 86 87 88 90 91 92 93 100
Avg. Node Counts -> interior: 398622; frontier: 2429828
execution complete, terminating process...
AND THE SECOND TEST FOR CYGWIN
------------------------------
benchmark complete...
mean node rate for benchmark -> 308177 n/s
compared to K6-2 400 mhz, 128 mb pc66 sdram: 1.51x faster
compared to Athlon 700 mhz, 128 mb nvdram: 0.04x slower
results have been logged in logfile.
execution complete, terminating process...
--------------------------------------------------------------------
void Bench(void)
{
unsigned int benchnps=0,probnps,c;
unsigned int k62_400=122959,athlon700=322591;
float result;
char output[100];
char problem[11][80]= {
{"r3qb1k/1b4p1/p2pr2p/3n4/Pnp1N1N1/6RP/1B3PP1/1B1QR1K1 w - - g4h6;"},
{"r4rk1/pp1n1p1p/1nqP2p1/2b1P1B1/4NQ2/1B3P2/PP2K2P/2R5 w - - c1c5;"},
{"r2qk2r/ppp1b1pp/2n1p3/3pP1n1/3P2b1/2PB1NN1/PP4PP/R1BQK2R w - - f3g5;"},
{"r1b1kb1r/1p1n1ppp/p2ppn2/6BB/2qNP3/2N5/PPP2PPP/R2Q1RK1 w - - d4e6;"},
{"r2qrb1k/1p1b2p1/p2ppn1p/8/3NP3/1BN5/PPP3QP/1K3RR1 w - - e4e5;"},
{"rnbqk2r/1p3ppp/p7/1NpPp3/QPP1P1n1/P4N2/4KbPP/R1B2B1R b - - a6b5;"},
{"1r1bk2r/2R2ppp/p3p3/1b2P2q/4QP2/4N3/1B4PP/3R2K1 w - - d1d8;"},
{"r3rbk1/ppq2ppp/2b1pB2/8/6Q1/1P1B3P/P1P2PP1/R2R2K1 w - - d3h7;"},
{"r4r1k/4bppb/2n1p2p/p1n1P3/1p1p1BNP/3P1NP1/qP2QPB1/2RR2K1 w - - f3g5;"},
{"r1b2rk1/1p1nbppp/pq1p4/3B4/P2NP3/2N1p3/1PP3PP/R2Q1R1K w - - f1f7;"},
{"r1b3k1/p2p1nP1/2pqr1Rp/1p2p2P/2B1PnQ1/1P6/P1PP4/1K4R1 w - - g6h6;"}};
Print("running benchmark...\n");
Print("This benchmark consists of eleven problems, each taking\n");
Print("30 seconds. This benchmark can be thought of as an integer\n");
Print("op test. It is extremely processor intensive, so for\n");
Print("accurate results, you'll need to refrain from using the\n");
Print("system until the final problem is complete.\n\n");
for (c=0;c<11;c++) {
sprintf(output,"Problem %d\n",c+1);
Print(output);
Print(problem[c]);
Print("\n");
SetTSPosition(problem[c],0);
search_time=30000; /* 30000 milliseconds = 30 seconds */
Search(&gp,20);
sprintf(output,"node counts -> total=%d; interior=%d; frontier=%d\n",
nodes+frontier_nodes,nodes,frontier_nodes);
Print(output);
probnps=(nodes+frontier_nodes)*100/(exit_time/10);
sprintf(output,"node rate -> %d nps\n\n\n",probnps);
Print(output);
benchnps += probnps;
}
Print("benchmark complete...\n\n");
benchnps/=11;
sprintf(output,"mean node rate for benchmark -> %d n/s\n",benchnps);
Print(output);
result=(float)abs(k62_400-benchnps);
if (benchnps<k62_400)
sprintf(output,"compared to K6-2 400 mhz, 128 mb pc66 sdram: %3.2fx
slower\n",
result/k62_400);
else if (benchnps>k62_400)
sprintf(output,"compared to K6-2 400 mhz, 128 mb pc66 sdram: %3.2fx
faster\n",
result/k62_400);
else sprintf(output,"compared to K6-2 400 mhz, 128 mb pc66 sdram:
EQUAL!!!\n");
Print(output);
result=(float)abs(athlon700-benchnps);
if (benchnps<athlon700)
sprintf(output,"compared to Athlon 700 mhz, 128 mb nvdram: %3.2fx
slower\n",
result/athlon700);
else if (benchnps>athlon700)
sprintf(output,"compared to Athlon 700 mhz, 128 mb nvdram: %3.2fx
faster\n",
result/athlon700);
else sprintf(output,"compared to Athlon 700 mhz, 128 mb nvdram: EQUAL!!!\n");
Print(output);
Print("results have been logged in logfile.\n\n");
}
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.