Author: Dann Corbit
Date: 18:02:58 07/19/99
Go up one level in this thread
On July 19, 1999 at 20:22:40, Will Singleton wrote:
>
>In the thread "improving speed," there was some discussion about the nps of
>TSCP, what it is and should be, compiler options etc. The first poster said he
>was getting 15k nps for TSCP, and Bob and Vincent said it should be 10x that
>speed for his machine. Subsequent posters got 30k nps on slower machines.
>
>I'd be interested to do a more precise test using TSCP, as a means to benchmark
>various platforms, as well as to find differences in compiler performance on
>identical platforms. This would be easy to do, since TSCP is easily modifiable,
>easy to run, and easy to get.
>
>For those of you willing to participate, here's the method I followed to produce
>the output shown below:
>
>Download TSCP v1.3.
>Modify the procedure Think() in search.c to search 6 ply.
>Also modify the printf call to show nps.
> (I calculated nps by using nodes*60/ticks, where ticks==60th sec)
>Compile using optimize on.
>Run TSCP, and type ON.
>
>tscp> on
>ply nodes n/s score pv
> 1 21 1260 48 d2d4
> 2 93 5580 0 d2d4 d7d5
> 3 996 29880 35 d2d4 d7d5 b1c3
> 4 5952 39680 5 e2e4 d7d5 f1b5 c8d7 b5d3
> 5 32924 43898 35 e2e4 b8c6 b1c3 e7e5 g1f3
> 6 203273 40519 13 e2e4 b8c6 d2d4 d7d5 e4d5 d8d5
>tscp>
>
>Platform -- Mac G3/300 (powerbook)
>Compiler -- CodeWarrior 3.1, full opt
>
>I will gather the results (assuming I get any volunteers) and post them here.
>
>Thanks.
>
>Will
>
>------
>
>results from previous thread (not a controlled experiment, obviously)
>K6-3/400 15k nps
>K6-2/300 30k nps
>P/233 30k nps
Here is a portable alteration. No guarantees on resolution, but *typically*
better than you will get with difftime()...
/* think() calls search() iteratively and prints the results
after every iteration. */
#include <time.h> /* add to top of file */
void
think (void)
{
int i, j, x;
/* changes */
clock_t start, end;
double cputime;
/* end changes */
ply = 0;
nodes = 0;
memset (history, 0, sizeof (history));
printf ("ply nodes score pv\n");
/* changes */
start = clock ();
/* end changes */
for (i = 1; i <= 6; i++)
{
follow_pv = TRUE;
x = search (-10000, 10000, i);
printf ("%3d %9d %5d ", i, nodes, x);
for (j = 0; j < pv_length[0]; j++)
printf (" %c%d%c%d",
FILE (pv[0][j].b.from) + 'a',
8 - RANK (pv[0][j].b.from),
FILE (pv[0][j].b.to) + 'a',
8 - RANK (pv[0][j].b.to));
printf ("\n");
}
/* changes */
end = clock ();
cputime = (end - start) / (double) CLOCKS_PER_SEC;
printf ("time: %f sec., nodes=%d, NPS = %f\n", cputime, nodes, nodes/cputime);
/* end changes */
}
Results for a PII 300 MHz machine:
A normal optimized compile gives:
Tom Kerrigan's Simple Chess Program (TSCP)
version 1.3, 11/11/98
'help' displays a list of commands.
tscp> on
ply nodes score pv
1 21 48 d2d4
2 93 0 d2d4 d7d5
3 996 35 d2d4 d7d5 b1c3
4 5952 5 e2e4 d7d5 f1b5 c8d7 b5d3
5 32924 35 e2e4 b8c6 b1c3 e7e5 g1f3
6 203273 13 e2e4 b8c6 d2d4 d7d5 e4d5 d8d5
time: 5.458000 sec., nodes=203273, NPS = 37243.129351
tscp>
Pentium Pro build with inlining:
Tom Kerrigan's Simple Chess Program (TSCP)
version 1.3, 11/11/98
'help' displays a list of commands.
tscp> on
ply nodes score pv
1 21 48 d2d4
2 93 0 d2d4 d7d5
3 996 35 d2d4 d7d5 b1c3
4 5952 5 e2e4 d7d5 f1b5 c8d7 b5d3
5 32924 35 e2e4 b8c6 b1c3 e7e5 g1f3
6 203273 13 e2e4 b8c6 d2d4 d7d5 e4d5 d8d5
time: 5.318000 sec., nodes=203273, NPS = 38223.580293
tscp>
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.