[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [computer-go] Hardware-Instruction.



Don, a few things have changed since you left computerchess.

MTD no longer can get used. Lazy eval gets used by less and less engines in
the top. If i read the document well Chrilly also can't use it and chrilly
gives a clear explanation for it. The same big scores from evaluation
function will let the evaluation fluctuate from move to move.

Another thing that happened at supercomputers is that in contradiction to
the 80s, the latency to get a remote byte from a cpu relative to the cpu
speed has become 100 times bigger.

So that already ends all plans to use cilk at supercomputers.

Additional in todays software, a shared hashtable is very important to have. 

Todays software, because of the improved evaluation function suffers from
more effects.

Deepfritz6 at a quad xeon 500Mhz as it was in 1999 running, searched 17 ply
every move. 

Todays deepfritz8 in world champs 2003 and 2004 searched 14 ply at a quad
opteron 2.2Ghz.

Chrilly basically already answerred why.

Nullmove nowadays gets used at R=3, usually not near the leafs.

No one uses cilk in game tree search of course.

At 19:13 5-11-2004 -0500, Don Dailey wrote:
>
>A little more about Cilk, since Vincent grossly mispresented it.
>
>Cilk  is really C  with a  few simple  constructs added;  spawn, sync,
>inlet and abort.   An inlet can catch the result  of a computation and
>can abort work  inside it.  This mechanism makes  it perfect for alpha
>beta searching.
>
>Any function  that begins  with the keyword  "cilk" can be  spawned in
>parallel.  The scheduler is based on work stealing.  In cilk you don't
>think about  the number of  processors, this is abstracted  away.  Any
>time  a "sync"  keyword is  invoked,  the processor  doesn't idle,  it
>randomly grabs work from somewhere else.
>
>The  beauty of  cilk  is that  it  rarely invokes  overhead for  these
>parallel constructs.  The cilk  pre-processor constructs 2 versions of
>each  "cilk" function,  one that  is purely  serial and  knows nothing
>about the cilk keywords and  associated overheads and the other "slow"
>version has all  the good stuff for managing  the scheduler.  The vast
>majority of the time your program  is invoking pure C code without any
>cilk overhead.
>
>Here is an  example of the fibonacci function taken  from the cilk web
>page:
>
>
>cilk int fib (int n)
>{
>    if (n < 2) return n;
>    else
>    {
>        int x, y;
>
>        x = spawn fib (n-1);
>        y = spawn fib (n-2);
>
>        sync;
>
>        return (x+y);
>    }
>}
>
>
>
>
>For alpha/beta applications like chess, there is an abort keyword that
>can be  invoked to stop  work that is  happening, such as is  the case
>when you get a beta cutoff.   An "inlet" can catch this case and abort
>all work spawned  inside the parent stack frame.   Basically, you call
>the inlet (which is a function  inside a cilk function GCC style) with
>a spawn  statement as an argument  to the inlet  function.  Inside the
>inlet, you can abort work.
>
>This sounds a  lot more complicated than it actually  is.  It is quite
>trivial to write  an alpha/beta search routine using  cilk without the
>normal pain  and agony and  debugging using a threading  library (like
>pthreads) for instance.
>
>The scheduler is  efficient and your code is  effecient, you are still
>programming in  C.  You tell cilk  how many processes you  want to use
>and cilk will use than many (even  if you are on a serial machine, you
>can write, debug  and test parallel programs specifying  any number of
>proceses.)    
>
>If you write  a cilk program and  run it as a 1  processor program, it
>will  run nearly as  fast as  the same  program written  without cilk,
>usually within 1 or 2 percent slowdown.
>
>It's really cool for many parallel programming tasks.
>
>Check it out at  http://supertech.lcs.mit.edu/cilk/home/intro.html
>
>- Don
>
>_______________________________________________
>computer-go mailing list
>computer-go@xxxxxxxxxxxxxxxxx
>http://www.computer-go.org/mailman/listinfo/computer-go/
>
>
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/