Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Crafty SMP problem

Author: Bernhard Bauer

Date: 02:31:28 01/26/01

Go up one level in this thread


On January 26, 2001 at 04:52:42, Bernhard Bauer wrote:

>On January 25, 2001 at 09:48:00, Robert Hyatt wrote:
>
>>On January 25, 2001 at 02:32:01, Bernhard Bauer wrote:
>>
>>>On January 24, 2001 at 12:06:40, Robert Hyatt wrote:
>>>
>>>>On January 24, 2001 at 10:22:28, Bernhard Bauer wrote:
>>>>
>>>>>On January 24, 2001 at 06:51:30, David Rasmussen wrote:
>>>>>
>>>>>>I have a problem with Crafty.
>>>>>>
>>>>>>I'm trying to run it on a solaris system with 24 CPUs (I've tried it as well on
>>>>>>a 12 CPU machine of the same kind).
>>>>>>
>>>>>>I sometimes get the message "ERROR.  no SMP block can be allocated".
>>>>>>What does this mean? What is the problem
>>>>>
>>>>>In chess.h is a line
>>>>>#define MAX_BLOCKS    16*CPUS
>>>>>
>>>>>You may change this line to a greater value.
>>>>>For CPUS=2 this did noz work for me, so I use
>>>>>#define MAX_BLOCKS    128
>>>>>and that works.
>>>>>
>>>>>Kind regards
>>>>>Bernhard
>>>>
>>>>
>>>>When you say "did not work for me" do you mean you got the out of blocks
>>>>error?  2*16 should work for a dual.  4*16 works for my quad and never
>>>>produces an error.  If you watch the SMP part of the statistics output, it
>>>>shows the max number of blocks used during a search:
>>>>
>>>>              SMP->  split=507  stop=83  data=17/64  cpu=22.77  elap=6.18
>>>>
>>>>in my case, 17 blocks was the peak usage, with a total of 64 (4*16).  I would
>>>>definitely be interested to know your peak number for a dual system.  I would
>>>>expect something in the 8-10 range typically.  On my quad it averages about 12
>>>>over the course of a game.
>>>
>>>Dear Mr. Hyatt,
>>>
>>>when I compiled Crafty 18.1 with makefile.nt under WIN2000 with the MS compiler
>>>C/C++-Compiler, Version 12.00.8804
>>>Crafty compiled fine, no errors, but when I started the exe file I got an error
>>>immediatly. So if you ask "did you got the out of blocks error?" I will say yes
>>>or no, it simply didn't run. A window poped up which said I had a memory error.
>>>So I had no idea what the error coud be. First when I noticed the change from
>>>17.14 to 18.1 in chess.h I was able to compile Crafty for SMP.
>>>
>>>When I ran the LCT2 test for 30 min/pos I got a peak number of 10/128.
>>>
>>>Kind regards
>>>Bernhard
>>
>>
>>OK... two issues...
>>
>>1.  10 blocks max seems about right for 2 cpus.  since the default would be
>>to have 32 (2*16) you should not have to change this.
>>
>>2.  if this fixed your crash (no other changes at all) then there is _another_
>>problem.  Could you compile with 32 blocks and debugging enabled and run under
>>the debugger to see where it is crashing?  This has to either be an optimizing
>>problem or a serious bug in Crafty itself.  It would be nice to know which.
>>
>>Bob
>
>Looks like there is n error in Init.c at line 1451.
>The statement
>  for (i=0;i<64+1;i++)
>    LockInit(local[i]->lock);
>gives an error for
>          Name          Value
>            i             33
>local[i]->lock        0x0000ad80
>
>And at memory location 0x0000ad80 the access violation occurs.
>
>So I changed the statement "for (i=0;i<64+1;i++)" to "for (i=0;i<32+1;i++)"
>but now after invokink crafty nothing happens that means no output at all.
>Anyway hope that helps a little.
>
>Kind regards
>Bernhard

Sorry, I forgot to compile with the /G6 option.
Now it works for
for (i=0;i<16*CPUS+1;i++)  in init.c
and #define MAX_BLOCKS       16*CPUS in chess.h

Kind regards
Bernhard



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.