Author: Don Dailey
Date: 21:43:24 01/18/99
Go up one level in this thread
On January 18, 1999 at 21:45:11, Dann Corbit wrote:
>On January 18, 1999 at 11:22:26, Don Dailey wrote:
>[snip]
>>Yes, there is plenty of room on this group for our natural diversity,
>>and we do not have to be each just like the other. I seek to find
>>the most natural balance. At one time I believed this group was a
>>very technical one and tried to treat it as such. But it is a mixture
>>of types and like you have said, I can find a corner of the room to
>>go and talk about this or that depending on my mood. I will try to
>>respect these differences and you may have noticed I very often do
>>not confine even myself to pure computer chess.
>>
>>I have considered a public domain version of CilkChess. It probably
>>would be based on a separate program and would be stronger than Cilkchess
>>on Pentiums and weaker on the more advanced 64 bit platforms. But
>>right now I am not very happy with the strength of Cilkchess and would
>>even be embarrassed to show it to the public.
>>
>>Bruce is pestering me to play against Ferret on the internet but I
>>am hesitating for the same reason. Chickenheartedness.
>>
>>Maybe after we win the World Chess Championship this June my
>>confidence will be bolstered :-) Actually, I have made a lot
>>of progress towards releasing a public domain program and have
>>a complete but still a baby chess program.
>Sounds Cilky-smooth to me. But I have a few questions. First, is there an
>avaiable Cilk compiler for:
>1. Intel Pentium class
>or
>2. Alpha
>or
>3. VAX
>?
>so that mere mortals can compile it? Or would you be switching to posix threads
>or???
>
>Finally, have you ever tried Cilkchess on a loaded Connection Machine or one of
>those frightful things that got sold to the pentagon with a bazillion Intel
>chips in it? Or that new IBM bazillion mips monster?
Right now cilk is optimized for SMP machines and is extremely
efficient. The only downside is that for now we are forced to
use GCC so if your unix compiler produces significantly better
code this will be a hit. But the scheduler and language is so
efficient that the difference betweeen a pure serial version and
a 1 processor parallel version is very tiny despite the extra
code overhead and hooks for parallelism. We use some very
interesting hacks to accomplish this and are proud of the
language. We will eventually eliminate this restriction of
having to use gcc only. Fortunately gcc is a good optimizing
compiler but most platforms support a compiler that is at
least a little better. I think some intel compilers may be
significanly better but I'm not sure about the state of this.
I'm sure Bob Hyatt is up on this.
We used cilk to win a programming contest which had 96 entrants.
The contest was to produce the best "pousse" program and the
target platform was a 4 processor intel linux SMP. Pousse is
a tic-tac-toe type of 2 player game but extremely complex compared
to tic-tac-toe. When we found this out I joined the team.
The reason we won the contest (other than my awesome game
programming expertise of course) was that we had cilk. Of course
we also had awesome team work (are you listening KarinsDad?)
Two professors assisted by learning the game and playing each
other, comming up with game playing heuristics and experimenting
with them. We had 3 1/2 days for the project, but we had a working
program in about 5 hours. I did the search and organized a
lot of the effort. 2 guys did code optimizations and wrote
the evaluation function while another (Chris Joerg who also
helped me a lot with Cilkchess) did some awesome move ordering
enhancements. I also implemented the hash tables, and made
the decisons on which data structure to represent the game.
The optimizers improved on this some to be more in tune with
the evaluation heuristics that were eventually decided on.
The parallel search was implemented by Matteo Frigo, author
of fftw (fastest fourrier transform in the west and is faster
than anything in the world) in about 15 minutes. He is much
better than I am, it would have taken me at least 20 minutes.
But many on our team could have done it, that's how easy cilk
is (and how smart the students at MIT are.) In all I think
we had about 8 team members and every one of them proved to
be signficantly useful. We stayed late every night and had
pizza delivered to us!
Only a few of the other programming contestants were able to
even muster a parallel program, most of them were serial programs.
But the ones that did were either buggy or very simplistic hacks,
not proper implementations but better than just
running on 1 processor. We had a full blown parallel program
that was finely tuned and written in a language just perfect
for this kind of task.
A huge round robin was played to choose 6 finalists. Due to
a bug in the organizers autotester, we defaulted a few of our
games even though we always returned a move in 27 seconds (30
seconds was the rule.) The bug prevented our program from
fully exiting and was caused by their autotester tying up
the linux kernel such that we were unable to exit!
It didn't matter, we didn't lose a single game except the 12
they defaulted us for and we were in the final. They fixed the
bug before the finals were played and we won every single
game in the double round robin finals. During the whole
tournament CilkPousse never lost a game and we used the 1000
dollar prize to have a big cilk pousse party! I hacked an
X based interface for the party and people stayed up all night
trying in vain to beat the program.
A few days later CilkPousse lost its very first game (other than
to itself in autotest games) to one of our system administrator
gurus who took advantage of its determinism and played it on a
low level dozens of games until he found a winning pathway! But
he did this on the smallest board, 4 x 4 (one of the rules is
that the program had to be playable on any board size from 4 to
20 and was not told in advance which one it would be.)
I went through this detailed description because I thought you
might find it interesting and also to brag about Cilk. Even though
we won 1000 dollars, our main incentive was to win the right
to have Cilk called "the programming language of choice for
discriminating hackers!" It was announced before the contest
that the winner got to have this honor!
Check it out. There is also a link to the cilk pousse page
and the contest page.
supertech.lcs.mit.edu/cilk
- Don
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.