Upgrade to Chess.com Premium!

Best CPU for chess engine game analysis


  • 2 months ago · Quote · #1

    bfn

    Hi,

    I'm thinking of upgrading/replacing my Windows 7 PC with a first generation quad core Intel i7 processor.  When I run the houdini engine to analyze games, it pegs all four cores at 100% usage.  Is this common or am I doing something wrong?  I just used the default setting from chessbase.  I also have 12 GB of RAM.  Is there a way I can improve performance (reduce CPU usage), or should I consider upgrading to a CPU with 6 or more cores?

  • 2 months ago · Quote · #2

    FirebrandX

    By default, Houdini will use 100% CPU resources. If you have a quad core and want to reduce the load, then you must set Houdini to use 3 cores instead of 4. Likewise for a hex core, you'd set it to use 5 cores. Remember though, that reducing the core count also reduces the speed at which Houdini can analyze.

    As for ram, you normally want to use about 1/3rd of your total system ram, so 4GB would be optimal.

    BTW, in answer to your thread question, the hex cores from Intel are fantastic for a lower budget desktop. If you want to drop several thousand, then you move up to a dual socket Xeon motherboard, allowing for up to 16 core usage.

  • 2 months ago · Quote · #3

    mldavis617

    I believe chasing multiple cores follows the law of diminishing returns.  Going from one to 4 cores only increases speed 60% in Fritz (according to Chessbase), so ditching a quad core for one with hyperthreading isn't going to help much.  If your cores are pegged, then hyperthreading isn't going to help much if at all.  I suspect processor speed is more important than number of cores, so if you go from a 2.2GHz CPU to a 4.0GHz CPU, you will come out better than just adding a couple of cores at a lower speed.

    I set up my computer to analyze my old games overnight, usually with a two hour total time limit.  But then I'm not depending on speed...

  • 2 months ago · Quote · #4

    FirebrandX

    Hyperthreading merely splits the cores in half (i.e. half as much speed). The concept is completely useless for chess engines, and in fact is a detriment to them when used. Also, more actual physical cores does significantly help analysis time. A current generation Intel hex core outperforms my old quad core by a factor of 4 to 1 when running Houdini.

  • 2 months ago · Quote · #5

    mldavis617

    FirebrandX wrote:

    Hyperthreading merely splits the cores in half (i.e. half as much speed). The concept is completely useless for chess engines, and in fact is a detriment to them when used. Also, more actual physical cores does significantly help analysis time. A current generation Intel hex core outperforms my old quad core by a factor of 4 to 1 when running Houdini.

    The ability of the engine to use hyperthreading would be dependent upon how the program was written and how the threads were utilized.  Obviously, chess is a multiple-threaded application, so more cores handle more threads.  Late generation Intel chips handle memory IO faster than older chips that relied on the older front side bus architecture, and yes more cores are able to handle more threads.  So there are several variables, including, as I mentioned above, CPU clock speed which has hit somewhat of a plateau unless you're willing to part with some big bucks or risk overclocking issues.

    I'm not a chess engine programmer, so I'll take your word for the 4X speed increase, but I'm skeptical that going from 4 to 6 cores gives you that jump.  And what does that speed gain you unless your're playing online against another computer?

  • 2 months ago · Quote · #6

    FirebrandX

    mldavis617 wrote:
    FirebrandX wrote:

    Hyperthreading merely splits the cores in half (i.e. half as much speed). The concept is completely useless for chess engines, and in fact is a detriment to them when used. Also, more actual physical cores does significantly help analysis time. A current generation Intel hex core outperforms my old quad core by a factor of 4 to 1 when running Houdini.

    The ability of the engine to use hyperthreading would be dependent upon how the program was written and how the threads were utilized.  Obviously, chess is a multiple-threaded application, so more cores handle more threads.  Late generation Intel chips handle memory IO faster than older chips that relied on the older front side bus architecture, and yes more cores are able to handle more threads.  So there are several variables, including, as I mentioned above, CPU clock speed which has hit somewhat of a plateau unless you're willing to part with some big bucks or risk overclocking issues.

    I'm not a chess engine programmer, so I'll take your word for the 4X speed increase, but I'm skeptical that going from 4 to 6 cores gives you that jump.  And what does that speed gain you unless your're playing online against another computer?

    Again, hyperthreading wouldn't help at all unless we're talking about not using all 100% CPU resources. Say for example you want to use 3.5 cores instead of all 4 cores, perhaps hyperthreading would allow that and still be slightly faster than 3 cores, but every chess programmers has always stated that hyperthreading does more harm than good when it comes to calculating positions.

    With regard to the 4-6 jump, I should point out that each core was also a full Ghz faster. So instead of 4 cores at 3 Ghz, the current 6-core at 4 Ghz was indeed 4x faster at full load. Houdini's knps went from 6k to 24k on the spot. Compare this to the dual Xeon that jumps it up to well over 40 knps, though obviously the 16 cores are making up for that fact that Xeon CPUs are much slower than the single hex-cores CPUs.

    What does all this benefit? The simple answer for me would be analysis time on ICCF where computers are allowed. Somebody with a hex-core could analyze in one night what would take my old quad 4 nights to do. In other words, my overnight analysis would only equal 2 hours of work on someone else's hex machine.

  • 2 months ago · Quote · #7

    bfn

    FirebrandX wrote:
    mldavis617 wrote:
    FirebrandX wrote:

    Hyperthreading merely splits the cores in half (i.e. half as much speed). The concept is completely useless for chess engines, and in fact is a detriment to them when used. Also, more actual physical cores does significantly help analysis time. A current generation Intel hex core outperforms my old quad core by a factor of 4 to 1 when running Houdini.

    The ability of the engine to use hyperthreading would be dependent upon how the program was written and how the threads were utilized.  Obviously, chess is a multiple-threaded application, so more cores handle more threads.  Late generation Intel chips handle memory IO faster than older chips that relied on the older front side bus architecture, and yes more cores are able to handle more threads.  So there are several variables, including, as I mentioned above, CPU clock speed which has hit somewhat of a plateau unless you're willing to part with some big bucks or risk overclocking issues.

    I'm not a chess engine programmer, so I'll take your word for the 4X speed increase, but I'm skeptical that going from 4 to 6 cores gives you that jump.  And what does that speed gain you unless your're playing online against another computer?

    Again, hyperthreading wouldn't help at all unless we're talking about not using all 100% CPU resources. Say for example you want to use 3.5 cores instead of all 4 cores, perhaps hyperthreading would allow that and still be slightly faster than 3 cores, but every chess programmers has always stated that hyperthreading does more harm than good when it comes to calculating positions.

    With regard to the 4-6 jump, I should point out that each core was also a full Ghz faster. So instead of 4 cores at 3 Ghz, the current 6-core at 4 Ghz was indeed 4x faster at full load. Houdini's knps went from 6k to 24k on the spot. Compare this to the dual Xeon that jumps it up to well over 40 knps, though obviously the 16 cores are making up for that fact that Xeon CPUs are much slower than the single hex-cores CPUs.

    What does all this benefit? The simple answer for me would be analysis time on ICCF where computers are allowed. Somebody with a hex-core could analyze in one night what would take my old quad 4 nights to do. In other words, my overnight analysis would only equal 2 hours of work on someone else's hex machine.

    Do your CPUs still max out with 6 cores?  Also, does your system have traditional fans or is it liquid cooled?  I'm thinking of making my own system and have a budget of ~$2,000.  Any recommendations of a build your own system or from a reputable manufacturer?  It would also need to serve as a gaming machine too.  :)

  • 2 months ago · Quote · #8

    FirebrandX

    The CPUs will only max to 100% if you set the engine to use all available cores. As I said before, simply subtract one core from the engine's parameters to avoid maxing out (if you want to multi-task).

    As for cooling, I've found a good heat-sink/fan in combination with an Antec 900 case provided plenty of cooling for slight overclocking needs. Obviously people that want to push the CPU to the limit will use more exotic cooling designs like water or freon-based radiators.

    Anyway, you're in luck because I happen to be in the process of starting a new build. Since I also game on my computer, I decided the Intel Hex core was the best way to go instead of the infinitely more expensive Xeon machines.

    I did some research and price checking for my new computer, which lists as follows:

    $540  CPU Intel i7 3930k Hex

    $90  CPU heat-sink/fan

    $300 SSD 360 GB

    $105 HD 1 TB

    $160 PSU 850 watt

    $100 Antec 900 case (tons of fans all over it)

    $320 Mobo  Asus P9X79

    $360 Ram 64GB!!

    $120 Sound Card (Creative Labs)

    $230 Video Card (Gigabyte brand)

     

    Total: $2325

     

    Now of course, the video card can be upgraded later, but that's what I'm going to start with for now.

  • 2 months ago · Quote · #10

    bfn

    Cool.  However, a little bit out of my price range (you didn't include tax, shipping, and the cost of an operating system).  Thanks.  I'll change my engine parameters, too.  I wish the engines provided better documentation on how to get better performance.

  • 2 months ago · Quote · #11

    FirebrandX

    While pfren is right about the cheaper AMD CPUs being more cost-effective for chess, I tend to use my computer for everything from gaming to rendering CGI. As such, I've always preferred the Intel line. They are more reliable in the long run. I see plenty of complaints from customer reviews over the AMD octals, whereas the intel Hex has hundreds of 5-star praise reviews.

    I wouldn't want to saddle my system build around AMD, but that's my personal preference.

  • 2 months ago · Quote · #12

    mldavis617

    As a followup to the hyperthreading comments, you do know that the Intel i7 chips all use hyperthreading, with a very few exceptions for laptops.  As I mentioned, I do not write programs any more, but a chess engine is a prime candidate for the use of as many cores (real or virtual) as there are available.  My old quad core Q9450 is overclocked to 3.21GHz and runs all four cores if the engine is programmed to do so (Fritz 13, Houdini, etc.).  What should be done is to run one benchmark (for example the one that comes with Chessbase products) with all cores hyperthreaded, then disable hyperthreading and run it again.  Tell me what you find.  The benchmark on my quad core is 8916 kN/sec.  It is not hyperthreaded, but the newer i-series are for the upper level chips.

  • 2 months ago · Quote · #13

    FirebrandX

    mldavis617 wrote:

    As a followup to the hyperthreading comments, you do know that the Intel i7 chips all use hyperthreading, with a very few exceptions for laptops.  As I mentioned, I do not write programs any more, but a chess engine is a prime candidate for the use of as many cores (real or virtual) as there are available.  My old quad core Q9450 is overclocked to 3.21GHz and runs all four cores if the engine is programmed to do so (Fritz 13, Houdini, etc.).  What should be done is to run one benchmark (for example the one that comes with Chessbase products) with all cores hyperthreaded, then disable hyperthreading and run it again.  Tell me what you find.  The benchmark on my quad core is 8916 kN/sec.  It is not hyperthreaded, but the newer i-series are for the upper level chips.

     Hyperthreading does NOTHING to improve performance, because the engine already uses 100% of the whole core. Splitting the core in half (which is what hyperthreading does) actually reduces the performance of the core in regards to pure chess calculation. All the chess programmers that have spoken on the subject have said as much. Having two simulated cores from hyperthreading does not equal a single real core because it introduces extra coding work load to split the core in real time like this.

    WIth regard to the i7s using hyperthreading, remember that this feature is optional and can be turned off. You can set the chess engine to use 6 REAL cores, and it will use all 6 cores at 100% load.

    This will be the last time I reiterate the same points. If you want to keep arguing it, take it over to the Rybka forums. They will gang up on you and set you straight double-quick.

  • 2 months ago · Quote · #14

    mldavis617

    I'm not arguing.  You stated that hyperthreading does nothing for a chess engine.  I'm saying it depends on the program and how it's coded.  I run a lot of high end heavy load programs such as Adobe Photoshop, Microsoft Flight Simulator and X-Plane.  I also have a high end graphics card onto which much of the heavy lifting can be off-loaded from the CPU to engage the massive speed of the nVidia architecture.  If chess engine authors are not availing themselves of the potential speed increases of these available features, they are missing a lot of horsepower.  If in fact the engines are being limited in their use of available multithreaded and parallel processing power, then you are correct.  Perhaps that coding is beyond the abilities of amateur programmers.  It certainly works with Photoshop and Flight Simulator.  Did you run comparative benchmarks as I suggested?  What was the result?  I cannot do that on my old Q9450 quad core.  The question is the number of simultaneous threads that can be run, or the speed of the processor.  If hyperthreading is useless, then Intel is wasting their time and we need to send them an e-mail, OR there are programmers out there who are missing the boat.  Who to trust, Intel, or amateur chess engine programmers......

  • 2 months ago · Quote · #15

    Kingpatzer

    Something like a graphics application is not entirely comparable with a chess engine. FirebrandX is absolutely correct that hyperthreading does not help chess engines. Period. End of story. If you don't believe us, go ask about it in any of the chess programming forums. 

    You are simply wrong on this point. 

    It is not that hyperthreading is useless. It is that for some algorithms it is detrimental to performance, while for others it enhances performance. Chess is an example or a problem set where the best known algorithms for producing the desired result are hampered by hyperthreading. 

  • 2 months ago · Quote · #17

    mldavis617

    mldavis617 wrote:

    I believe chasing multiple cores follows the law of diminishing returns.  Going from one to 4 cores only increases speed 60% in Fritz (according to Chessbase), so ditching a quad core for one with hyperthreading isn't going to help much.  If your cores are pegged, then hyperthreading isn't going to help much if at all.  I suspect processor speed is more important than number of cores, so if you go from a 2.2GHz CPU to a 4.0GHz CPU, you will come out better than just adding a couple of cores at a lower speed.

    Jeez, how did I get on the wrong side of these barbs?  Read my original post above.  And again, above, "...it depends on the program and how it's coded."  I also begged off on any knowledge of how chess engines are coded.  No argument on whether or not hyperthreading is helpful in this application or not.  Again, run the benchmarks and see.  I'll agree with whatever you find.  Smile

  • 2 months ago · Quote · #18

    Kingpatzer

    mldavis617 - we're TALKING about chess engines though, not about generic programs. Yes, when speaking generally without regard for the type of programs being run, hyperthreading in general increases performance. But chess engines are a specific type of application with specific needs and are the specific topic of this discussion. We aren't talking about general computer architecture questions devoid of application context. We're talking chess engines. With regard to chess engines, hyperthreading hinders rather than helps. Period.


Back to Top

Post your reply: