[Haskell-cafe] Re: Go Haskell!

Don Stewart dons at galois.com
Thu Nov 27 13:43:53 EST 2008

> >>>http://computer-go.org/pipermail/computer-go/2008-October/016680.html
> >>Interestingly, I did this a while ago.  Here's my results:
> >>
> >>$ ./Bench 1 100000
> >>b: 14840, w: 17143 mercy: 67982
> >>elapsed time: 3.42s
> >>playouts/sec: 29208
> >>
> >>so, nearly 30k/sec random playouts on 9x9.  That's using a hack that 
> >>stops the game when the score is heavily in favour of one player, it 
> >>drops to around 20k/sec with that turned off.
> >
> >Nice!-) 20k playouts/sec (without  the early cutoffs) is the rough number
> >usually mentioned for these light playouts, reachable even in Java. My own
> >Haskell code for that was a factor of 5 slower:-( 
> actually, that 5x is relative to jrefbot on my machine (Pentium M760, 2Ghz),
> which doesn't quite reach 20k/sec, so if your code would run at 20k/sec on
> my laptop, it would be 10x as fast as my bot:-(( Since you can't release 
> your
> code, could you perhaps time the jrefbot from the url above on your machine 
> as a reference point, so that I know how far I've yet to go? Something like:
>    $ time ((echo "genmove b";echo "quit") | 
>        d:/Java/jre6/bin/java -jar refbots/javabot/jrefgo.jar 20000)
>    = E5
>    real    0m2.539s
>    user    0m0.030s
>    sys     0m0.031s
> Btw, I just realised where my bot dropped from 5x to 8x: to work around
>    http://hackage.haskell.org/trac/ghc/ticket/2669
> all my array accesses were wrapped in exception handlers, to get
> useful error messages while I adapted my code to the refbot spec..
> That's not the only bug that got in the way: 
>    http://hackage.haskell.org/trac/ghc/ticket/2727
> forced me to move from functional to imperative arrays much sooner 
> than I wanted, and due to 
>    http://hackage.haskell.org/trac/ghc/ticket/1216
> I did not even consider 2d arrays (the tuple allocations might have gotten
> in the way anyhow, but still..).
> What do those folks working on parallel Haskell arrays think about the
> sequential Haskell array baseline performance?

Try using a fast array library like uvector? (With no serious overhead for
tuples too, fwiw)...

-- Don

More information about the Haskell-Cafe mailing list