As fast as modern PC hardware can operate, there are still some jobs which are just too big for one machine to handle. That’s a basic idea behind distributed computing: dividing a large computational task between multiple machines. Another basic idea concerns the avoidance of repetition: why have a computer repeat a task that another computer has already completed? Both of these ideas are the core concepts behind the new “Let’s Check” features found in the Fritz13 chess playing and analysis program from USCFSales.
Both basic ideas behind distributed computing (at least as they apply to chess) are closely related. The principle between the latter of the two ideas is pretty easy to grasp. Let’s say you wanted to analyze the position which occurs in the French Winawer after the moves 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Nge2 dxe4 5.a3 Be7 6.Nxe4 Nc6 7.Be3 Nf6 8.N2c3 Nxe4 9.Nxe4 e5 10.dxe5:
…because the book you’re using says that White has a slight edge, but you’re not convinced. You could fire up a chess engine like Fritz in “Infinite analysis” mode to see its evaluation. But what if someone else had already done this? Wouldn’t it be convenient if their engine’s analysis was stored in a central location for you to access?
Now let’s say that you wanted to have Fritz analyze the end position from every variation in the Encyclopedia of Chess Openings. I do mean every variation – all five volumes, all one hundred classifications from each volume, every numbered main variation in each classification, and every sub-variation within those variations. We’re talking about analyzing hundreds of thousands of positions. It’s way too much for one person to accomplish.
So let’s divide the work. If you had four friends who wanted to achieve the same goal, you could split the work up with each of you analyzing every position from a single ECO volume. Each of you would now be responsible for analyzing tens of thousands of positions, instead of the hundreds of thousands you’d need to analyze if you were working alone.
That would still be too much of a task for a small group to complete. So let’s enlist a few hundred other chessplayers/computer analysts – let’s assume there would be five hundred of you, one for each ECO code. That’s still a passel of work for each individual analyst, as each would still need to have his computer analyze at least several hundred positions (and possibly into the thousands depending on the depth and breadth of the individual classification).
So let’s think bigger – let’s potentially get every chessplayer with a PC and an Internet connection to analyze positions which he finds interesting. We’ll have these players upload their analysis to a central server, where said analysis can be accessed nearly instantaneously by anyone at the click of a mouse.
In a nutshell, that’s the new “Let’s Check” feature in Fritz13 – a worldwide community of chessplayers sharing their computer analysis for each others’ benefit. You can analyze positions on your home computer (using any chess engine which runs in the Fritz13 interface, including the present multicore “Deep” versions, plus any chess engine which follows the UCI protocol), then upload the analysis to the central server. You can also see any existing analysis at the click of a mouse. You can upload positions which you’d like the international chess community to analyze, as well as whole games for which you’d like to receive shared analysis.
The new “Let’s Check” features really are revolutionary and include quite a few varied aspects, so let’s begin with one very simple idea: discovering a position. If you access the “Let’s Check” feature to see analysis of a position, and no one has yet analyzed it, you can have your engine analyze that position to a sufficient depth to have your Playchess user name permanently attached to that position.
If you haven’t yet set up a Playchess user account, you’ll want to do so before diving in to the “Let’s Check” features. It’s easy to do (it’s similar to signing up for an Internet message board); just click the “Playchess.com” link in the Fritz13 splash screen (which appears when you launch the program), click the “Create new player name” button, and then fill in the blanks:
You can now use your same Playchess user name and password when you access the “Let’s Check” features. When you see the “Let’s Check” prompt (which we’ll discuss in a moment), just use your existing Playchess user name and password, be sure to check “Use Playchess account name” box, and the software will remember the information so that you won’t have to type into the dialogue each time.
Remember that French Winawer position we were looking at? 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Nge2 dxe4 5.a3 Be7 6.Nxe4 Nc6 7.Be3 Nf6 8.N2c3 Nxe4 9.Nxe4 e5 10.dxe5:
After clicking on the final position (by clicking on 10.dxe5 in Fritz13’s Notation pane), let’s go to the “Engine” menu and select “Let’s check”:
…or we can click the blue arrow button on the righthand side of the Engine pane:
After filling our user name and password info into the dialogue (as we discussed a couple of paragraphs ago), we’ll see a new display as part of the Engine pane:
This new display shows the analysis that other Fritz13 users have uploaded to the server. My Fritz13 engine’s “Infinite analysis” (constantly updated) appears in the display – and since no one else has analyzed this position yet (which is why only my Fritz13’s variation appears in the display) , there’s the potential for me to become the “discoverer” of this position if I let my Fritz13 engine chew on this position long enough. That’s what the colored “progress bar” shows – my progress toward becoming the “discoverer” of this position.
Running Fritz13 on my machine requires about ten minutes or so to achieve the search depth required to become the discoverer of a position. Using a multi-core/processor engine (such as Deep Fritz 12) would get me there faster; for example, a multi-processor chess engine running on my dual core computer reaches that same point in about seven and a half minutes.
Notice that the progress bar shows us when we’re getting close by displaying an approximate time:
The display shows a short three-move variation that Fritz13 has found to be the best line of play at this point in its search, the positional evaluation (shown in the familiar 1/100ths of a pawn increments), the search depth, the engine I’m using, my Playchess user name, the date, and a flag showing my nationality.
When the required search depth is reached, that value in the display turns blue and you now see my user name appear as the “discoverer” of this position:
No matter how many users analyze this position in the future, my user name will always appear as the position’s discoverer.
Discovering a position also earns you points on the server’s “leader board”:
There are a lot of ways to earn points for your ranking on the board; discovering positions is just one of them (and we’ll look at others in future posts).
What do you see when you analyze a position which has already been discovered? If we click on the position after 6…Nc6 we’ll see that two other users have previously analyzed the position:
The server displays the top three engine analysis lines; since only two other players have previously analyzed this position, my analysis will appear in the display if I analyze the position long enough:
Notice that my engine’s analysis has knocked the previous Fritz13 analysis off of the display because I’ve analyzed the position to a greater depth. Should another Fritz13 user come along later and go to an greater depth than I did, it’ll knock my analysis off of the list.
The analysis list will show up to three pieces of analysis, but only if they’re from different engines. So I could switch engines here (in this case from Fritz13 to Junior12) and create that third line:
Have a look at that analysis for a moment. All three engines agree on the first moves after 6…Nc6 (that is, 7.Be3 Nf6). But we have two different opinion as to White’s best eighth move, and neither of them agree with the move from the opening reference I’m consulting (which is 8.N2c3). This gives us an opportunity for more research. Let’s click on 7…Nf6 in the game notation and see if anyone has analyzed this position with a chess engine yet:
…and we see that, even though the position is considered part of “Common theory” (based on the server’s large central opening tree), no one has yet submitted computer analysis – so we have the opportunity to “discover” yet another position.
Whenever you’re finished using the “Let’s Check” server for discovering positions, checking existing positional analysis, or adding your own analysis, just click the “Let’s Check” button in the Engine menu to disconnect from the server.
“Discovering” positions is just one of the many new “Let’s Check” features in Fritz13. We’ll have a look at another in the next blog post. Until then…
Have fun! – Steve Lopez
Chessplayers who have purchased their ChessBase brand chess computer software from USCFSales can receive free technical support and advice on their purchases straight from me; just shoot me an e-mail (firstname.lastname@example.org), but please remember to include the USCFSales order number from your ChessBase software purchase. – Steve
Copyright 2011, Steven A. Lopez. All rights reserved.