Using a chess engine efficiently

Sort:
Cystem_Phailure

I don't know much about using chess engines aside from the very basics.  I also don't care about the latest and greatest-- the freebies like Rybka 2.2, Spike 1.2, Pro Deo 1.5. etc. are fine for my purposes.  But I'm a little confused as to the best method to analyze a game.

I've got Arena 2.0.1, and most of the advice I've seen is to set the analysis for a certain time per move, rather than a particular ply depth.  Then they go on to point out that for maximum analysis power, your CPU shouldn't be doing anything else during the period of the analysis, so one should have this running while no other programs are being used, and should even disable screen savers and blankers, anti-virus programs, etc. so as many CPU cycles as possible are devoted to the chess engine during its time period for each move.

Well, that makes sense, but bottom line, it ain't gonna happen.  My analyses are going to be chugging along in the background while I'm doing other things on the computer at the same time, and I'm not going to bother disabling all of my normal background utilities every time I want an analysis. So I understand the analysis output will suffer if I'm using the minimum time interval setting. But what if I instead use a minimum ply setting, like 15 ply or whatever-- is the amount of other simultaneous CPU work going to reduce the quality of the analysis aside from increasing how long it takes the engine to get through the 15 plies?  If I'm occupied doing other stuff, I don't care that I'm increasing the analysis time. But would I also still somehow be reducing the analysis output quality even with a minimum ply setting instead of a time setting?

Lastly, what's a reasonable minimum ply number?  The Help file suggests that 9 plies will almost always result in the best move.  I've run through a couple full games set at 15 ply depth and am perfectly happy with the amount of time that takes in the background for a 25 to 35 move game while I'm doing other computing.

--Cystem

JG27Pyth

I think you've got it figured out. 

Keep in mind Arena was built for computer v computer matches... the no background progs running etc. also keeps things fair for your engine matches and just generally reflects the mindset of someone who's got his computer running engine v engine matches.

By the way the latest stockfish, and Fire 1.2 are very strong free engines... Fire in particular is screamingly fast and strong. I recommend both, and Fire 1.2 if you can only afford one free download ;)

philidorposition

9 plies is way too short, engines change their evaluations after 9 plies very frequently. For the record, with Fire 1.2 for example, I'm feeling pretty comfortable with the evaluation once it reaches depth 18~20.

But the problem with relying on depth rather than a certain amount of time is that different positions take different depths to reach a reasonably accurate evaluation, and it takes a different amount of time to reach to a certain depth in different positions. I think a fixed time would bring more consistent results.

Having said that, it seems both are not ideal for analysis, you should tell the engine how much time it needs on different positions, by manually going over the game and variations yourself.

And ProDeo!? I'm really happy to see it's still being used, it's a great engine, with arguably the most human-like style above a certain level. Smile

Cystem_Phailure
philidor_position wrote:

you should tell the engine how much time it needs on different positions, by manually going over the game and variations yourself.

 

I was thinking I would set the analysis to run through an entire game with a constant ply depth, and then depending on what I saw in my own notes and the full game computer output, revisit any interesting/complex positions that might benefit from more crunch time and run them individually.

philidorposition
Cystem_Phailure wrote:
philidor_position wrote:

you should tell the engine how much time it needs on different positions, by manually going over the game and variations yourself.

 

I was thinking I would set the analysis to run through an entire game with a constant ply depth, and then depending on what I saw in my own notes and the full game computer output, revisit any interesting/complex positions that might benefit from more crunch time and run them individually.


I see, in that case, although I would still prefer fixed time rather than depth, I think 16~20 plies yield pretty consistent evaluations.

Cystem_Phailure

If you use fixed time, obviously it makes a huge difference what your computer specs are.  How do you go about deciding what's a reasonable fixed time to use for a given machine?  What's a ballpark figure? 60 seconds per move? 600 seconds?

Also, when you advise using fixed time, are you assuming there's going to be no other computing going on?  That won't be the case for me. If I'm always going to be doing other things on the computer while an analysis is running in the background, would that make you change your advice, or would you still think a fixed time interval is better?

I appreciate your input-- I'm not finding this type of info discussed elsewhere.

philidorposition

OK, it's hard to give a figure because as you mentioned this depends on hardware and the engine. If this could give you an idea, if I'll let the engine analyze alone on a quad, I would trust 2~3 minutes with the likes of fire, shredder 12 and rybka 3 etc, without turning off any other processes.

However while going over the game manually, I usually have the first 3 multiple best moves running and hang around there for about 30~60 seconds per position, which I find good enough to let me know what's going on. But because I walk into variations too, this actually gives a much longer time per line than automatic analysis gives in 3 minutes per move, because when I do it manually, many times the engine would find something along the way as I look around in a line and then I'd go back and try a different subvariation etc.

I think other processes wouldn't make much of a difference unless your computer is 1 CPU, and the other processes are very consuming like Counter Strike or Winning Eleven or something. Smile I would imagine antivirus programs or web browsers etc. would only make a difference when you're making engine tests or playing with your engine against other engines etc.

A good way to check this is looking at your task manager in windows and see what percentage does the engine use. If it stays above 98% or something like that, you should be fine, however if something steals power frequently and it moves up and down around 80% and 90% etc a lot, that could make a difference.

A more detailed discussion about this time per move for analysis topic was on chesstempo forums if you're interested.

Travisjw

The real problem with ply-depth is that you need a WAAAY more of it for endgame scenarios than you do middlegame.  You rarely need your computer to have more than say 20-22 ply for a middlegame position (and since positions typically increase exponentially you're wasing time trying to get more than that anyways).  In the endgame though, 20ish ply is often barely enough to figure out who wins a contested pawn race.   Furthermore, since there's less pieces on the board any decent engine can calculate considerably past 20 :).

 

I'd say set the ply depth to around 20, then interrupt your analysis once you hit endgame and double it.

Cystem_Phailure

Thanks for the link philidor-- I read through it.

Travisjw, I think that should be easy to do. It looks like Arena allows one to specify the beginning and ending moves for an analysis, so it would be easy to analyze a game in separate chunks with different time or ply parameters.

JG27Pyth

Wow, I think this discussion of ply-depth vs. set time etc. is mostly inane. 

The question of how to use a chess computer efficiently first depends on what it is you're trying to do. Engine v engine tests have their own specific demands.

But if you're trying to use an engine to evaluate your own chess moves in order to improve your own chess ability -- then the only time increment that really matters is how long you spend thinking about the computer's suggested improvements! 

Seriously, even weak engines at low ply will greatly improve on most amateurs' games -- any of the engines discussed in this thread will give excellent evaluations and good top 3 candidate moves nearly instantly. And that's all you need before you go to work.  Or, you can let the engine run 15 mins a ply and do lot's of fancy back-and-forth work with the engine to really massage it into finding the very best move and at the end of the day you've wasted a lot of time not really learning anything.

So, the question was about using a chess engine "efficiently" -- If the goal is to efficiently improve at chess, some teaching masters will tell you that below 2200 ELO the most efficient use of a chess engine is to turn the damn thing off and think for yourself.

FWIW, I don't think that extreme is true, I think engines can be used, intelligently, for self-teaching. 

My tips for engine use: think as little as possible about about numerical evaluations -- look at variations. Can you find a theme in the top three moves (do they all target the same positional feature) or do they involve totally different plans? What plans does the computer see? What's wrong with my X move? Oh, the computer suggests move Z, why didn't I see move Z? And, ultimately, can I puzzle out any positional truths from the computer's tactically discovered suggestions?

trigs
Steinar wrote:

I just hit infinite analysis, set to 3-4 simultaneous lines, and move through the game, giving the comp time as I deem necessary. A good trick is to lock the engine to the current position when you feel some analysis time is necessary, and then you go through some lines at the board and mess around a bit to figure out what's the deal with the variations it's giving, and why in the world you didn't find those moves :-)


yeah this is how i usually do it as well

Cystem_Phailure

I'm not sure what you mean by "3 or 4 simultaneous lines".  Is this maybe something that Arena can't do, or is there another way of phrasing it that it might use?

PrawnEatsPrawn
Cystem_Phailure wrote:

I'm not sure what you mean by "3 or 4 simultaneous lines".  Is this maybe something that Arena can't do, or is there another way of phrasing it that it might use?


When you configure the engine set MPV = 3 (say).