Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Crafty SMP problem

Author: Robert Hyatt

Date: 06:48:02 01/26/01

Go up one level in this thread


On January 26, 2001 at 05:31:28, Bernhard Bauer wrote:

>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


safer is i<MAX_BLOCKS+1 in case the formula for split blocks ever
changes.  I have fixed this in init.c for 18.x versions from this point
forward.

thanks and good work..



>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.