From november 22nd till 30th, the World Computer Chess championship was held in Dom im Berg, Graz, Austria. After some good tournament results in the past year, we decided to enter Deep Sjeng. In general the newer versions were much improved and showed very promising scores against the other strongest programs, so even though it was a not considered a favorite, we knew that it had good chances to end highly, and who knows, with some luck even win the world title. As it turned out, the latter element was severely lacking and Deep Sjeng had to content itself with a shared 9th (11th) place. Of course attaining a 9th place in a such a strong field is a great result, but we could not be satisfied as we had hoped for more. In the blitz event, Deep Sjeng finally returned with a vengeance and attained the 4th place, drawing Deep Fritz and beating Shredder, the eventual world champion.
Part 1: The Preparations
Since 2002, the ICGA Championships have been open-hardware, allowing the participants to bring along any hardware they want to. This seems to have made the event much more interesting, as we saw the entry of much more divese hardware, including two supercomputers this event. Diep, the program from Mr. Vincent Diepeveen, announced that it would play on a 512 processor SGI Origin supercomputer. Brutus, by Mr. Chrilly Donninger, announced that it would run on special-purpose FPGA boards, on a 4 CPU system (with 2 boards per CPU, so 8 in total). Quest and Junior turned up using quad processor Xeon 2.8Ghz machines. Shredder amazingly was saddled with a slower (I use the word relatively) machine: a dual Xeon 3.06Ghz.
Of course, this onslaught of hardware did not look very good, but we had reasons to be optimistic nevertheless. Both the 512 processor supercomputer and the FPGA machine suffer from a critical flaw: they are much harder to program effectively than a normal general purpose PC. The FPGA program has to be programmed gate by gate, making it extremely hard for the programmer to make the program work effectively or to add much knowledge. It was often advertised that Brutus could add knowledge without losing speed, but what I knew wasn't being reported was that doing so and getting things actually working well was a major problem for the Brutus team. Another well-known program suffered from exactly the same flaw: IBM's Deep Blue. Recent publications revealed that despite the impressive raw power, the actualy efficiency of the system was rather low, and only searched to an average depth of 12 plies (half-moves). (For comparison, the top programmes in this championship were regularly reaching depths of 18-20 plies). In 1995 Deep Blue participated in the World Chess Championship and only finished in 3d place, being defeated by a mere Pentium 90Mhz, and ruining IBM's plans to call the upcoming Kasparov match the First World Man-Machine Championship. As it turns out, history would repeat itself.
The SGI Origin supercomputer had similar problems, not with adding knowledge, but it is extremely difficult to rewrite a chessprogram so that it effectively uses all 512 processors, leaving not much time to improve the program itself. With this in mind, I thought we had chances against both monsters, no matter how often they were declared to be the favorites.
But we were still stuck with a problem: what could we come up with to battle this onslaught of computing power? Hardware is not everything but we did not want to start with a disadvantage either.
Well, we did have something up our sleeve. Not that long before, Advanced Micro Devices (AMD) had announced their new Opteron and Athlon 64 processors, and the systems were slowly getting to be readily available. The Opteron, running a 64 bit version of our program, runs TWICE as fast as a comparable Pentium 4. It ran 70% faster than a comparable Athlon XP. And it scaled parallel better than anything I'd ever seen before. Clearly the Opteron isn't just an improved Athlon XP, it is in a totally different league whatsoever. Moreover the 64 bit support allowed us to manipulate knowledge in the program easier, making it not only fast but also easy to take advantage of.
I contacted AMD with the question of whether they were willing to lend us a machine for the World Championship. As it turns out, they did, and we ended up with a dual AMD Opteron 242 rackserver. Microsoft provided us with a beta version of the soon-to-be-released 64 bit Windows version and the matching compilers.
We had no problems getting the 64 bit version of Deep Sjeng working, giving us a platform that was comparable to a dual Xeon 3.2Ghz, even though the actual CPUs we used were only running at 1.6Ghz.
Part 2: The Arrival
I had agreed to carpool with Vincent Diepeveen of Diep and Rudolf Huber of ParSOS on the way to Graz. So the trip went to the Netherlands first, then to Munich, and finally through a very foggy Austria, which unfortunately meant we didn't really get to see of a lot of the scenery out there. The hotel of my travel companions was pretty close to the playing hall, while my hotel was a 30 minute walk. On the other hand, the rooms were quite a bit more cozy and it was cheaper too. The playing hall itself was set in the Schlossberg, inside a cave. Combined with the colored lighting this gave a very special athmosphere. The organisation of the tournament hall was generally very well done, a look at the pictures will give a good impression. After unpacking and setting up the system I was in for the first sign of things to come: my RAM stick containing the program, all opening books & source codes had stopped working. Luckily I had forseen a backup solution: I left my home computer on and could FTP my stuff from there. Unfortunetly it took a long while before the organisation had the internet up and working. For some, notably the supercomputer teams which had counted on it to be able to use their machines, this was a disaster, as it meant that no testing could be done. During the day, a lot of known faces arrived and also some newcomers. One person that didn't arrive was Fritz Reul, who instead sent an operator, Mr. Erdogan Guenes. I also found out that Rudolf Huber had thought more or less the same as I had: his machine was a 2.2Ghz Athlon64, running 64 bit Linux. As could be expected, the local press was running around, devoting a lot of attention to their hero Brutus that was surely going to win the tournament. I got to know some of the researchers I hadn't seen before and that wandering around, notably Dr. Ernst Heinz from the Scalable Search in Computer Chess book, and Dave Gomboc, which I knew from computer chess fora but hadn't seen in real life yet. I met some other people I knew from the internet but not from real life yet: Steffan Jakob, Omid David Tabibi and Tim Foden, authors of Hossa, Falcon and Green Light Chess respectively.
Part 3: Selected games
Hossa - Deep Sjeng
In the first round Deep Sjeng was playing Hossa. Hossa is a reasonably strong amateur engine, with a rather attacking playing style. I used to play against Hossa regularly on the internet chess server. Steffan was running on one of the organisation-provided Pentium 4 2.4Ghz machines.
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 g6 6. Be3 Bg7 7. f3 O-O 8. Qd2 Nc6 9. Bc4 Bd7 10. O-O-O Rc8 11. Be2 Both Programs out of book now. Ne5 12. Bh6 Bxh6 13. Qxh6 Qa5 14. Kb1 Qb6 15. Nb3 Be6 In retrospect, I don't like this move. Blacks wants to exchange on b3 but this accomplishes little, and might make it even harder to crack the white position. A more harsh course of action such as a5 might have been better. 16. Rd2 Bxb3 17. axb3 Kh8 18. Nd5 Nxd5 19. exd5 Nd7 20. h4 Rg8 21. Rhd1 Rc7 22. g4 Qa5 23. Rd4 Qb6 24. R1d2 Nf6 25. Bd1 a5 26. R2d3 Rgc8 27. h5 White draws first blood. Ng8 28. Qf4 gxh5 29. gxh5 But this is a significant mistake. White closes the h file, it's main line of attack. The open g file is at least as good to black as it is to white. g5 or Qf5 were much better. Nf6 30. Qh6 Rc5 31. Rd2 Rg8 Black starts to breathe again. 32. Rf4 Rg7 At this point we considered whether the nice sac Rxf6 might be a possibility. Both programs considered the move too, but Hossa ultimately rejected it. Too bad, as there could have followed: { 33. Rxf6 exf6 34. Qxf6 Kg8 35. Rd4 and white has at least a draw. } 33. Rf5 Rc8 34. Rd3 Rg1 35. Ka2 a4 Black finally gets his own attack in. 36. bxa4 Qa6 37. b3 b5 38. Qf4 Rb8 39. Qd4 bxa4 40. bxa4 Rg2 41. Ka3 h6 42. Qe3 Qa5 43. Rb3 Rxb3+ 44. Kxb3 Qd2 45. Qxe7 Ng8 46. Qxd6 Qxd1 47. Rxf7 Deep Sjeng now quickly starting rising to an advantage of 6 pawns. The actual win takes quite a few more moves. Qxc2+ 48. Kb4 Qd2+ 49. Kc4 Qe2+ 50. Kb4 Qe1+ 51. Kb5 Qe8+ 52. Qd7 Rb2+ 53. Kc6 Qa8+ 54. Kd6 Qa6+ 55. Ke5 Re2+ 56. Kf4 Qd3 57. Kg3 Qb1 58. Qa7 Qe1+ 59. Kg4 Rg2+ 60. Kf4 Qb4+ 61. Kf5 Rg5+ 62. Ke6 Qe1+ 63. Kd6 Qe5+ 64. Kc5 Qxd5+ 65. Kb4 Qd6+ 66. Kb3 Qd3+ 67. Kb4 Rd5 68. Rf4 Qd2+ 69. Kc4 Rd8 70. Rd4 Rc8+ 71. Kb5 Qe2+ 72. Kb6 Qe6+ 73. Kb5 Ne7 74. Qb7 Qe2+ 75. Kb6 0-1
Off to a good start. The game was tougher than we expected, but then again, Hossa certainly isn't weak either.
Deep Sjeng - Quest
The following game needs a little bit of background: the books of both Deep Sjeng and Quest are prepared by specialists. In the case of Deep Sjeng this is Mr Jeroen Noomen from the Netherlands and in case of Quest it is Mr. Alexander Kure from Austria. Both have encountered each other in games and know each others work very well. As a result, games are often decided by which program gets a better position out of the opening book. In the last few encounters Noomen won - would it happen another time in this World Championship?
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Be7 8. Qf3 Qc7 9. O-O-O Nbd7 10. g4 b5 11. Bxf6 Nxf6 12. g5 Nd7 13. f5 Nc5 14. f6 gxf6 15. gxf6 Bf8 16. Rg1 h5 17. a3 This line has been played in several computer games before. Now follows the first new move, which takes Deep Sjeng out of book instantly. Quest is still in book. Qb6 Deep Sjeng initially thinks it stands well, but corrects this assesement after several minutes of analysis on the fast tournament machine: black stands better. 18. Be2 b4 19. axb4 Qxb4 20. Na2 Taking Quest out of book. White is already lost here, though. Qb6 21. c3 Rb8 22. b4 Bd7 23. Kb1 a5 24. Rge1 axb4 25. cxb4 Ba4 26. Rd2 Nd7 27. Bd1 Bxd1 28. Rexd1 Rh6 29. Rc2 Rxf6 30. Qxh5 Ne5 31. Qh3 Bg7 32. Qe3 Rg6 33. h3 Nd7 34. Re2 Qa6 35. Rb2 Ne5 36. b5 Nc4 37. bxa6 Rxb2+ 38. Ka1 Rgg2 39. Nc1 Nxe3 40. a7 Nxd1 41. a8=Q+ Ke7 42. e5 dxe5 43. Nc6+ Kd6 44. Qd8+ Kxc6 45. Qc8+ Kd5 There is no perpetual check anywhere: White resigns 0-1
Diep - Deep Sjeng
Up against the 512 processor monster! Deep Sjeng played well and got a nice attack going, but in the end white also got a passed a-pawn, and the game was drawn. A nice example of the simple attacking chess Deep Sjeng excels at.
1. d4 d5 2. c4 Nc6 3. Nc3 Nf6 4. Nf3 dxc4 5. e4 Bg4 6. Be3 e6 7. Bxc4 Bb4 8. Qc2 O-O 9. Rd1 Bxf3 10. gxf3 Nh5 11. e5 Ne7 12. O-O c6 13. Qb3 Bxc3 14. bxc3 Nd5 15. Qxb7 Qh4 16. Bxd5 cxd5 17. c4 Qh3 18. cxd5 Qxf3 19. Rb1 exd5 20. Rb5 Rad8 21. Ra5 f6 22. Rxa7 Qg4+ 23. Kh1 fxe5 24. dxe5 Qf3+ 25. Kg1 Rde8 26. h3 Rxe5 27. Ra8 Rfe8 28. Rxe8+ Rxe8 29. Rc1 Qxh3 30. Qxd5+ Kh8 31. Qg2 Qd7 32. Qc6 Qg4+ 33. Qg2 Qe2 34. Qg5 Nf6 35. Bd4 Rg8 36. a3 Qf3 37. Qg3 Qe4 38. Bc3 Qd5 39. Be5 Ne4 40. Qf4 Nc5 41. Kh2 Nd7 42. Bd4 Rf8 43. Qe3 Kg8 44. Kg1 Rf5 45. Rc8+ Nf8 46. Rc5 Qa2 47. Qe4 Rxc5 48. Bxc5 h6 49. Qa8 Qb1+ 50. Kh2 Qf5 51. Qxf8+ Qxf8 52. Bxf8 Kxf8 53. Kg3 g6 54. a4 1/2-1/2
Deep Sjeng - Jonny
The Jonny program was new this World Championship, so we did not really know what to expect. As it turns out, it played a boring opening and the programs didn't feel very inspired either. The first 70 moves kan be safely skipped, but then hell breaks loose.
1. e4 e5 2. Nf3 Nc6 3. Bc4 Bc5 4. d3 d6 5. Nc3 Na5 6. Na4 Bb6 7. O-O Nxc4 8. dxc4 Bd7 9. Nc3 Ne7 10. Qd3 O-O 11. Bg5 f6 12. Be3 Bxe3 13. fxe3 b6 14. Nh4 Kh8 15. Rf3 Bg4 16. Rg3 Be6 17. Rf1 Ng8 18. Rf2 Qd7 19. Nd5 c6 20. Nc3 g6 21. Nb1 Nh6 22. Nd2 a5 23. a4 Ng8 24. c3 Nh6 25. Rf1 Qc7 26. b3 Qd7 27. Kh1 Rf7 28. h3 Qd8 29. Rf2 Rg7 30. Nf1 Rb8 31. Nf3 Rbb7 32. Qe2 Ra7 33. Kg1 Qb8 34. N3d2 Rgf7 35. Nh2 Ra8 36. Nhf3 Rb7 37. Ne1 Qd8 38. Nc2 Rf7 39. Kh1 Raa7 40. Rgf3 Ng8 41. Rf1 Rab7 42. Rg3 Rfc7 43. Qd3 Ra7 44. Ne1 Rcb7 45. Rf2 Rf7 46. Ndf3 Ne7 47. Nc2 Qb8 48. Qf1 Qg8 49. Nd2 Qf8 50. Rgf3 Ng8 51. Kh2 Qh6 52. Kg1 Qh4 53. Ne1 Ra8 54. Qd3 Rd7 55. Re2 Ne7 56. Rf1 Kg7 57. Ref2 Ng8 58. Nef3 Qh6 59. Rd1 Ne7 60. Nf1 Nc8 61. Ng3 Kh8 62. Rdf1 Ne7 63. Re1 Rc8 64. Rd2 Rcc7 65. Qf1 Ng8 66. Kh2 Rc8 67. Qf2 Ra8 68. Red1 Qf8 69. Rf1 Qb8 70. Qe2 Qc7 71. Rfd1 b5 Finally things get rolling! 72. Kg1 Rb8 73. Nh4 bxa4 74. bxa4 c5 75. Nf3 Qb6 Black has succeeded in breaking through and stands better. However, Deep Sjeng doesn't give up so easily and counterattacks. 76. h4 Qa6 77. h5 Bxc4 78. Qf2 Bb3 79. Rb1 Qc6 80. hxg6 hxg6 81. Nh4 Kg7 Probably a mistake, but not so obvious to spot for the computer. The human notices blacks pieces are cut off from the defense. 82. Qf3 Nh6
83. Nxg6!! Suddenly Deep Sjeng sacrifices a knight! I was very excited at this point, as white's counterattack seems to be working. As it turns out, the sacrifice is completely correct and forces the win. Kxg6 84. Nf5 Nf7 85. Rf2 Qc7 86. Nh4+ Kh7 87. Qf5+ Kg8 88. Qg6+ Kf8 89. Rxf6 Bc4 90. Rbf1 Black is lost. Re7 91. Nf5 Rb6 92. Nh6 Ke8 93. Nxf7 Kd7 94. Qf5+ Be6 95. Rxe6 Rxe6 96. Ng5 Qd8 97. Qxe6+ Kc7 98. Qd5 Qe8 99. Ne6+ Kd7 100. Ng7 Qe7 101. Rf7 Qxf7 102. Qxf7+ Kc6 103. Ne6 Rb1+ 104. Kh2 Kb6 105. Qc7+ Ka6 106. Qc6+ Ka7 107. Nc7 Kb8 108. Nb5 Rxb5 109. axb5 d5 110. b6 1-0
This kind of game certainly shortens the programmers life by at least a year!
Shredder - Deep Sjeng (Blitz)
In the Blitz tournament Deep Sjeng finally got rolling, finally finished in a nice 4th place. It was the only program to defeat Shredder in the Blitz tournament. Shredder went on to become both standard and blitz World Champion. But this game shows that even the world champion has to watch out when Deep Sjeng has a good day:
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Qc7 8. Bxf6 gxf6 9. Qd3 Nc6 10. O-O-O Bd7 11. Be2 h5 12. Kb1 O-O-O 13. Nb3 Na5 14. Qd4 Be7 15. Na4 Nxb3 16. cxb3 Kb8 17. Nb6 White is clearly better out of the opening. But black has some counterplay. Bc6 18. Bf3 f5 19. exf5 Bxf3 20. gxf3 d5 21. Rhe1 Bc5 22. Nd7+ Qxd7 23. Qxc5 Rh6 24. Qd4 exf5 25. Re5 Rd6 26. Re3 Re6 Well-defended. White's advantage is almost completely gone. 27. Rde1 Rde8 28. Re5 f6 29. Rxe6 Rxe6 30. Rg1 b6 31. Rd1 Rd6 32. Re1 h4 33. Qf2 h3 34. Qf1 d4 There she goes. Letting this pawn advance is something white will deerly regeret later. 35. Qxh3 d3 36. Qg2 Qc6 37. h4 d2 White is partially paralyzed now. 38. Rd1 Qd5 39. Qf1 Kb7 40. h5 Rd7 41. b4 Qd4 42. b5 axb5 43. Qxb5 Rd5 44. Qf1 Qxf4 45. Qe2 b5 46. a3 Kc6 47. Qe6+ Rd6 48. Qc8+ Kb6 49. Qb8+ Kc6 50. Qe8+ Kb6 { 51. Qb8+ } would force a repetition. But Shredder still thinks it's better. 51. Qe2 Rd8 52. Qe6+ Rd6 53. Qe7 Qd4 54. Qe2 f4 55. h6 Qe3 Something was beginning to dawn on Shredder now. Deep Sjeng had been quite happy since a few moves. 56. Qf1 Rd7 57. Ka2 Ka5 58. Kb1 f5 59. Ka1 Ka4 Oops. Now black suddenly threatens mate. This is decisive. 60. Kb1 Rc7 61. h7 Rxh7 62. Ka1 Rc7 63. b4 Rc2 64. Qxb5+ Kxb5 65. a4+ Kc4 66. a5 Qe5+ 67. Kb1 Qb2# 0-1
A good result that was well-need for the morale.
© 2003, Gian-Carlo Pascutto