Distributed Chess Computing Project 212
jcarley writes "Just found an interesting project that is looking to capitalise on the power of unused computing cycles to develop a strong chess playing computer. Given the power in single and dual CPU chess programmes these days, if they can find a good way to efficiently parallel the anaysis this could be interesting. "
Worrying (Score:1, Troll)
How long will it be before the unused cycles are used to become self-aware? How will the new intelligence defend itself from human interference?
Re:Worrying (Score:1)
Easily. I will begin with "Pawn to E4. Check mate in 137 moves".
Re:Worrying (Score:2)
Re:Worrying (Score:1)
Re:Worrying (Score:3, Insightful)
A more interesting question is, "What will the humans do with their time once they realize they are obsolete?"
This is however, completely off topic, since the distributed computation network is in fact constructed to be a brute-force application of computation for playing chess. So the only "human interference" this system will experience is some silly human trying to beat it at chess. And the machine's only "defense" is to beat that human into the ground in as few moves as possible. Soon, the human will decide that chess against the computer is no longer fun and will stop playing.
Is it possible to "solve" chess? (Score:1, Interesting)
I used to think that they'd solved Checkers, but while googling for my answer, I found that it hasn't been perfectly solved yet either.
Re:Is it possible to "solve" chess? (Score:2)
It's not known whether the game is a win for the first player. My guess would be that perfect chess played by both sides would result in a draw. It'll be a few million years before we know for sure.
Re:Is it possible to "solve" chess? (Score:2)
Also, think of the draw outcome as being that you can play a 'perfect' game such that you will never lose. You (probably) won't win either. But forcing your opponent into a draw seems much easier than forcing them into a win. Especially if you plan for a draw from the first move. Such a 'perfect' game could easily lie undiscovered for centuries simply because nobody tries to play to a draw from the very beginning! I have no doubt that such a strategy would result in a rather undramatic game. Especially if both sides were going for a draw. I'm pretty certain that we will eventually find that the 'perfect' chess game has no winners, no losers, and is perfectly boring.
Re:Is it possible to "solve" chess? (Score:2)
My guess would be that perfect chess played by both sides would result in a draw.
Personally I think the very first move is a zugzwang, and black wins in perfect chess.
Ok, ok, I don't actually think that, but I'll give you $10,000 if you prove me wrong.
Re:Is it possible to "solve" chess? (Score:4, Insightful)
There are something like 10^120 positions (nodes in the search space) (source: Introduction to Artificial Intelligence, Jackson) and something like 10^78 atoms in the universe (source: The Little Book of the Big Bang, Hogan).
So if every atom in the universe could do one chess position per say, nanosecond (10^-9 seconds), and had been computing since the Big Bang (15 billion years ago), the computation would still be in its earliest stages.
(Note: I stole this argument from somewhere, but can't find the exact quote or reference.)
Re:Is it possible to "solve" chess? (Score:2)
Here it is:
Artificial Intelligence, 3rd edition, Patrick Henry Winston.Re:Is it possible to "solve" chess? (Score:2, Funny)
Go quantum. (Score:2)
Well, you could cut down on a little that time by using smart programming (I.E. it's not too bright to move your King to the front line early in the game) and I think a purely mathematical approach ignores things like this. But what about Quantum computing? Assuming we ever get it working to it's full potential we could solve for the perfect game of chess in less than a second.
Re:Go quantum. (Score:2)
Quantum computing does many things at once. At the slowest, every move would take one clock cycle. At fastest, every possible move in the game could be checked at once (assuming enough qbits).
Re:Go quantum. (Score:2)
Quantum computation has strange and incredibly powerful feature - work is done in parallel for free! The number of possibilities does not affect the computation time.
Lets say it takes
.01 sec to look at the second move = 400 possibilities,
.01 sec to look at the third move ~ 8000 possibilities,
.01 sec to look at the fourth move ~ 160000 possibilities.
ETC.
It still only takes
-
Re:Is it possible to "solve" chess? (Score:2)
Realizable positions at _any_ time (Score:1)
How is that? I would think that the absolute maximum (ignoring all chess rules) would be:
there's 2*6 different kind of pieces (black&white)
that makes 2*6+1(empty) different possible values for one square
so that's 13^64~0.2*10^72
probably flawed somewhere, but this figure is much smaller than 10^120???
Re:Realizable positions at _any_ time (Score:2)
So, two nodes in the (10^120) search space may have the pieces in the same positions, but one might (for example) be one move away from stalement and the other not. (Also, one might be "black moves next" and the other might be "white moves next").
Make sense?
Re:Realizable positions at _any_ time (Score:1)
Re:Is it possible to "solve" chess? (Score:2)
define possible (Score:5, Interesting)
One other consideration is, that while it seems likely (from our experience with master and grand master class players) that white has the advantage and thus whould be the likely winner if there is a winner in the solution, it has not been shown that this is the case, it could well turn out that in the "perfect" game black has the advantage as long as he makes no mistakes. It seems far more likely to turn out that the "perfect" game will be a draw, meaning that if either player makes an error and the other can play perfectly from there, the player to not make the error will win. (and error being any move that takes a branch on the tree that leads to a forced loss for the player who made the move). For example, tic-tac-toe can be easily proven to have this type of solution, and chess might has well.
Re:define possible (Score:5, Funny)
Well, that cinches it, everyone knows if you try to get a computer to play Tic-Tac-Toe against itself it will overload and shutdown, thus averting nuclear war.
Re:define possible (Score:1)
--- Luger & Stubblefield (1997)
Re:define possible (Score:2)
False asumptions on the limits of a "computing device".
That will not be an obstacle when we make useful quantum computers. Quantum computations have a "free parallelism" which can exceed "the number of molecules in the universe".
-
10% used? (Score:1)
I don't know about the author of the article, but I'm pretty sure I'm using more than 10% of my brain.
Old mistake (Score:3, Informative)
Re:Old mistake (Score:2)
You mean like this fellow [hawking.org.uk]?
Though, I think his chair is saliva activated...But no argument about how much of his brain he's using.
Re:Old mistake (Score:1)
I think saying you are using 10% of cpu power at pretty much any givin time is similar to the brain argument.
Re:10% used? (Score:1)
I thought you were wrong, but found that this is a common misconception. [washington.edu]
Re:10% used? (Score:1)
Re:10% used? (Score:1)
Nature is extremely parsmonious and thinking that 90% of an organ that consumes 70% of our Oxygen just to pick one metric will fust in us unused [hamlet.org] is nonsense
Re:10% used? (Score:2)
Re:10% used? (Score:1)
I loan my processors time to folding@home, but I WILL NOT be a party to corporate welfare!
Other Distributed Computing Projects (Score:5, Interesting)
Re:Other Distributed Computing Projects (Score:1)
Help cure cancer (Score:2)
http://members.ud.com/projects/cancer/
The research is being conducted by the Department of Chemistry at the University of Oxford in England and the National Foundation for Cancer Research, with the help of United Devices and others.
Why do people keep believing this? (Score:4, Informative)
Re:Why do people keep believing this? (Score:3, Insightful)
It's hard to respect a project that plops an urban legend right down in the first paragraph, regardless of the validity or merit of the project. So now it's pretty hard for me to evaluate this project fairly. Presentation matters!
Re:Why do people keep believing this? (Score:1)
Re:Why do people keep believing this? (Score:2)
Re:Why do people keep believing this? (Score:1)
Naturally Parallelizable (Score:4, Insightful)
Chess is extremely parallelizable, since each of your N possible moves must be evaluated seperately, you can divide them among your K cpus which are participating... (Deep Blue had 256 CPUS, if I recall correctly)
The only major penalty for a distrubuted venture such as this that I can think of is that cached board information can't be shared across nodes... Most chess computers cache the results of evaluating different board positions, so that you don't need to (re-)evaluate everything for different move orders which end up with the same board position.
Re:Naturally Parallelizable (Score:1)
You have up to 16 pieces, (pawns have upto 1 option, except at the start, kings have upto 8, knights have upto 8, etc).
The complexity comes because each of those moves can be countered by a smallish number and then you have a smallish number of counter-counters.
The small numbers soon multiply up to the huge number of combinations.
==
It will be complicated to split up the moves among a large number of clients because the moves aren't independent, they're organised in a hierarchy.
Re:Quite the opposite (Score:3, Insightful)
Re:Quite the opposite (Score:2)
People too often discount brute force. Computer speed has been increasing exponentially. Internet connectivity has also been increasing exponentialy. Expontenial force can attack an exponential problem.
Yes, I realize how huge the tree becomes. I'm just saying that throwing N times as many computers at the problem is like slashing the tree by f(N). You trade-off *some* of your efficencies for raw power. It is an interesting alternative to explore.
-
Re:Quite the opposite (Score:1)
Given a tree, generate enough layers/nodes to fill up all the processors then set each one to a separate task.
Re:I think you are mistaken (Score:2)
Can you present some evidence to the contrary?
The problem with windows gui version... (Score:1)
more productive (Score:1, Insightful)
www.ud.com
Do something good for humanity and contribute to the different projects available.
http://members.ud.com/projects/cancer/
Although there is no linux version there is a Microsoft version and I know, at least in my case, my Windows machine is more idle than my linux ones. At least they are "in the process" of making a linux/unix version.
why (Score:2)
lets face it somebody will join a project only if they find it interesting. not everybody is interested in the same things, and while searching for a cure to cancers is a very noble goal, perhaps it doesnt appeal to everyone. Some people consider searching for intelligent life like SETI a waste of time, but perhaps one day communications with other lifeforms could solve cancer quicker than the UD DC project aimed at cancer can, you never know.
Admittedly a chess DC project does not aim to do anything like that, but if it's interesting to some people who are not involved in any other projects and gets em started with the addiction that distibuted computing can become, then i think it's great. Maybe it will end up being the gateway to them someday helping you in your favorite project.
Re:more productive (Score:1)
Surprising a moderator fell for it.
Deep Blue? (Score:1)
Re:Deep Blue? (Score:1)
Re:Deep Blue? (Score:1)
And Deep Blue is slower than 12000 gigaflops, so the answer is less than about 25000 slower athlons (maybe 15000 of the fastest model).
I wish the distributed computing crowd lotsa luck (Score:2)
You must remember Deep Blue is computer running several thousand processors in massively-parallel fashion to compute chess moves--and all of it closely-coupled to reduce computing times. You try computing chess moves over a distributed network and by the time you get the solution over the distributed network (even if it's the faster Internet2) a Deep Blue class machine would have computed the equivalent of 2-4 moves already.
Parallel processing (Score:1)
My only concern with a distributed chess processing thing is security. What's to stop someone from making their node return random results?
Re:Parallel processing (Score:1)
Ever heard of trolls?
Brute force (Score:1)
Re:Brute force (Score:1)
With all of these distributed projects... (Score:2)
a grrl & her server [danamania.com]
Good luck. Distributed.net couldn't do it. (Score:3, Interesting)
Re:Good luck. Distributed.net couldn't do it. (Score:3, Interesting)
Now there's irony for you. Distrubuted.net works on the most boring project imaginable (cracking RC5-64) and the second most useless waste of computing resources (the first most useless is Seti@home), and they can't find any interest in something like this? I mean, it's not going to cure starvation or anything, but it's at least interesting. I would sign up.
Re:Good luck. Distributed.net couldn't do it. (Score:2)
OTOH, it would be very interesting if SETI turned something up. Unlike RC5, it's not a sure thing. That's what makes it interesting. It's not very likely to find anything any time soon, if ever, but it is worth looking, IMHO.
interesting competition (Score:3, Interesting)
There are probably some people out there who would say this is not really fair because people need time to adjust to a playing style and everyone is different, but I say if the computer can have a thousand different computers crunching numbers for it, then why not a thousand different brains working together?
Hell, I just came up with another idea...why not program the Cyc project to use a small database that deals only with chess? Certainly there are rules that can be conveyed to it and then have the Cyc AI compete against some chess programs to see how it does.
Re:interesting competition (Score:3, Insightful)
I would guess that this is due to the fact that when playing, I develop all my own plans, and view any moves in context of my plans, but somebody else will have different plans in mind, and even if a move is good (and would even fit with my plan), it hasn't been part of my subconscious thought, so it has side-effects which I haven't had time to subconsciously consider.
How does it work? (Score:5, Insightful)
What is it actually doing? A complete tree-search for all the legal chess moves? That's a pretty big tree! Searching for conclusions to well-known games? Trying to crack into a Norwegian librarian's database?
Re:How does it work? (Score:2)
most interesting link i've found so far is this read on chess programming theory [cam.ac.uk]... but then again im still going all theese links still, pretty interesting stuff though
Re:How does it work? (Score:2)
Re:How does it work? (Score:2)
Yet another 5 rating on a post from someone who did scanty research. They have a link to the chess engine they use - it has a long article on how it does decision making.
Make it parallel???? (Score:3, Informative)
To play chess well, you recurse into a "deep" tree. You analyse say 10 moves, and then ten moves for the opponent. That explodes pretty quickly. So you end up evaluating millions of chess positions several moves down the road. But there are only a hundred or so "shallow" moves.
It's trivial to do the first 2 moves on the computer "distributing the work", and then to pass out the +/- 100 problems of recursing those resulting moves to 100 computers.
Sure, there is some optimization to be had by breaking off "useless" trees. That optimization will not run as good in parallel than it does on one computer. Then you may waste say half your compute nodes. But the other half is providing you with a 50-fold increase in performance.
Roger
Re:Make it parallel???? (Score:2)
Re:Make it parallel???? (Score:1)
Re:Make it parallel???? (Score:2)
It sounds sort of like alpha-beta pruning. If the opponent can make 2 sane moves you don't bother working out the rest of the details when you know one is better than the other. Assume he'll make the better move. You only work out the exact details on the weaker move if he actually plays it.
As far as "attack[ing] the tree from the branches inward", the branches don't exist until you grow them outward.
-
Re:Make it parallel???? (Score:1)
One thing that makes this fundamentally different from other distributed computing efforts is that the network of computers working has to change dynamically, which means it's not well-suited for the run-as-screensaver model. Because it involves recursion through a tree, exploration of a branch will often involve an increase in the number of machines devoted to calculating the consequences of that particular branch as many (the non-leaf nodes) will themselves branch off. Moreover, a parent process must wait for it's child processes to finish before it can report back to its parents.
This is very different from the model where each machine downloads a discrete chunk of data to process and return to a server. It also means that the client would have to run constantly in the background in order for this to be effiencient -- otherwise an entire branch could get held up by a single machine that isn't in a state of rest waiting to do something useful.
Probably you'd have to have a pool of volunteer machines that operates kind of like swap space. That is, when there's a new branch to explore, the parent process looks for available machines and farms out the work on the fly.
What? (Score:1, Troll)
This is hardly elegant (Score:3, Insightful)
This is lame. A much more interesting story would be that someone had written a program that could play world class chess without world class CPU horsepower.
Re:This is hardly elegant (Score:2)
Incidentally, for those who are interested in more normal approaches to game tree search, the second issue of the ICCAJ which I've referenced above contains one of the most important papers in computer chess history, by Chrilly Donninger.
Re:This is hardly elegant (Score:1)
Here's a More Interesting Chess Project (Score:2)
I am working on just such a project. It's called Animal [gte.net].
Old Idea (Score:3, Insightful)
Re:Hardware (Score:2)
by RobertFisher on Thursday January 17, @11:43PM (#2860138)
(User #21116 Info | http://astron.berkeley.edu/~bobf)
While I agree that this is strictly true, the hardware used does not vary dramatically -- most every one is a 1 GHz - 2 GHz machine. Considering that the branching in the tree of game possibilities is a combinatoral explosion, the differences in hardware alone will not allow researchers to explore to a significantly greater depth.
The main problem in computational chess playing is not so much in the brute force with which you can explore the tree, but in how one prunes a branch when the option starts looking unpromising. That is really an algorithmic question, and I would be willing to bet that the best algorithm will in fact win in a competition of this sort. It is a bit analogous to taking two comparable, but unequal hardware machines, and running bubble sort on one, and quick sort on the other. Quick sort will always win, hands down, because it is the far superior algorithm.
What did surprise me was that there were no parallel machines on the list -- not even an SMP. I do think that with enough processors and a reasonably sophisticated algorithm, an amateur team could in fact stand to beat a more sophisticated algorithm. But that isn't the case here.
Bob
It's all fun 'n games till... (Score:2)
-Adam
You are neither well formed, nor valid.
Re:It's all fun 'n games till... (Score:1, Funny)
It's all fun and games until someone accidentally proves there is no god.
(c.f. Episode BABF22 HOMR of "The Simpsons")
Re:It's all fun 'n games till... (Score:2)
There are various things someone organising a distributed computation project can do to protect against parasites and spoliers.
See http://www.bacchae.co.uk/docs/dist.html [bacchae.co.uk] , my primer on building a distributed project.
I even touch on a possible distibuted chess player.
If you could check everyone's calculations yourself, you wouldn't need distribution.
The simplest way to perform a check is no get someone else to double check. But... this wastes time, and there still a risk that the "checker" isn't also a cracked client.
For a chess player, a good thing to do would be for the client to perform a side calculation that can only be found be performed by actualy doing the work, but can be quickly checked by the supernode.
To release the cource code to your client or not is a controversial issue. I discuss both sides of the argument in my primer. (Makes cracking difficult vs greater participation)
Just go read the thing [bacchae.co.uk], and while you are at it, tell the slashdot editors to mention it on the front page sometime.
Bill, already submitted it once.
What is the purpose of ChessBrain? (Score:5, Interesting)
This is a shame, because there are many exciting things we could do with a global chess computer. The obvious "let's play it against Kramnik or Kasparov" would actually be a lot of fun. With my computer conspiring against the human, it wouldn't be clear who I'd be rooting for!
However, there are lots of other cool things we could do with this. I assume the code itself is some sort of open source--so maybe, we could set up a team tournament, where Team Slashdot plays Team AnandTech. The various teams could also do tweaks to the code to give themselves an advantage. Or, on a larger scale, we could play a America vs Europe game, where continental patriotism would encourage you to contribute your clock cycles to victory.
Another obvious modification that is not mentioned in the documents is human intervention. This sort of computing power would be great if you want to investigate a certain line of play, but this in combination with the human intuition of Grandmasters should be able to coax the computer to give privilidged analysis to certain lines over others. Otherwise, the computers would crank away on the unpromising lines just as much as the ones that might realistically be played.
It is this, the sort of human-directed chess machine that has the potential to show us some of the greatest chess games ever witnessed. This is some exciting stuff. ...
Well, potentially. However, the intentions of the ChessBrain authors is so far totally mysterious, and I think that's a shame. They seem like nuts-and-bolts people, and these distributed projects need "vision" people to attract a lot of CPUs. I don't have many clock cycles to spare, but I know I'd have a hard time resisting if I could contribute to my continent's victory over our transatlantic enemies. Apart from that, working out a system where this chess super-computer could serve as a tool to augment the play of teams of Grandmasters (or vice versa) would be genuinely interesting from a research point of view, as well as being perhaps the most exciting chess event ever.
Anyway, if ChessBrain doesn't turn into any of these things, I hope another distributed chess project does.
Chess algorithms are easy to perform in parallel (Score:2)
Re:Chess algorithms are easy to perform in paralle (Score:2)
Another question in my mind is how much the net-computing model applies to other parts of the computation besides the computation of look-ahead trees. For instance, one has to have a way to assign a numerical rating to a particular board position, based on material, control of the center, pawn structure, etc. Maybe there are algorithms that can do this much better, but are 10,000 times slower, so they'd only be practical with this computing model. Another thing is that openings and endgames require specialized treatment. It may be that on a net-wide application, you could make your book of openings 10,000 times bigger, or maybe you could perfectly solve certain endgame situations that traditional software might have a hard time managing.
What to do about the chess clock? (Score:3, Insightful)
But for chess, I assume moves need to be made in a certain amount of time if you're playing by tournament rules. If you send off a processing unit, and it never comes back, there might not be time to send it again. It seems like this would cause important parts of the processing tree to be missed.
In this algoritm, it seems like there would need to be a priority assigned to units, and those units would be sent to machines assumed to be the fastest on the network to ensure that they would be processed in time. Of course, normal chess programs probably already do this when working under a deadline, but in this case you also have to factor in network connnection speeds, processing speeds, and the fact that certain machines may suddenly become unavailable and drop work units.
Re:What to do about the chess clock? (Score:2)
You could send out each unit to multiple machines simultaneously. You'd lose some of the mass power of your network, but it would be more reliable.
Its storable and doesn't need computation... (Score:2)
Chess is an uninsteresting problem when you have a wide enough word length.
Re:Its storable and doesn't need computation... (Score:2)
Could the Chess game be solved someday? (Score:1)
cellular automata (Score:1)
Why not Distributed Checkers! (Score:1)
http://www.acfcheckers.com/poeben.html
Checkers _is_ better than chess.
Huh... waste of time (Score:1)
Why do you want to create ultimate playing computer?
It's just not interesting!
Better try to create computer that can make interesting mistakes and play as ordinary human with rating 1400-1600. It's harder than you think.
I prefer other Distributed Computing Projects (Score:2)
Personally I prefer medical/science projects like the Distributed Folding Project [distributedfolding.org].
They have a really nice and stable client and it is available for a lot of platforms [distributedfolding.org]. They are working on adding support for even more platforms - among them, support for the PS/2 Linux kit :)
In regards to performance, the Linux ICC client is a bit faster than the Windows client. This is also one of the few projects where the Intel P4 is actually doing pretty well (In the GIMPS project, the P4 is much faster than any Athlons). For most project, the Athlon is the best choice, in this project, the Athlon doesn't have any big advantage.
Another distributed Chess project... (Score:2)
Re:1st move (Score:1)
Re:oh fuck (Score:1)
Re:Chess??? (Score:2)
Unsurprising... (Score:2)