equilator uses only 1 core

  • 3 replies
    • EuanM
      EuanM
      Bronze
      Joined: 07.05.2011 Posts: 531
      Hey slipkn6t,

      As far as I understand, the source code would have to undergo significant changes to allow it to run in a multi-thread environment.

      I appreciate it takes a while to Enumerate all when working on a specific scenario, and this would be fast in a multicore enviornment, but the rest of your PC would get low priortiy if Equilab used all four cores and you may notice a performance decrease overall, if this is the case, I imagine this is why it only runs on one core.

      If you right-click Equilab.exe in your "Processes" tab in your Task Manager, select "Set Affinity..." and you can choose how many cores it will run on, although this will have no affect unless the software is designed to use these multiple cores, but it does mean it will switch between the various cores if required to do so when you are working on something else, this may provide a slight performance increase if these options are unselected.

      On an IT forum, after some looking, I found someone who was asking the same question, to which was replied:

      "Can I run a single threaded application on a multi-core machine and take full advantage of all the cores?"

      The answer is : no

      A single threaded application can only run on one core and will never be able to use more resources than that single core can provide.


      I hope this helps & Thanks for your question!

      -Euan
    • slipkn6t
      slipkn6t
      Bronze
      Joined: 27.06.2011 Posts: 5,593
      I thought maybe there was a selection somewhere in an *.ini file for advanced users. Now I see Equilator and Equilab are hardcoded for only 1 thread.
      Maybe the author will implement something like:

      and

      in the future releases.
      Also adding 2nd launcher with x64 instructions would give some performance boost.
      I'm not a coder, so I don't know how hard it is to code a software. All I know is 4 cores x64 work faster than 1 x86 :coolface:
    • EuanM
      EuanM
      Bronze
      Joined: 07.05.2011 Posts: 531
      Hey slipkn6t,


      Good to hear from you again!

      You're totally correct, much change within the source code would need to be implemented to allow this program to function on multiple cores at the same time.

      The truth is though, you can run 20 million 6-player hands through Equilab in 5 seconds, do you need it any faster? ever?

      Also, if you choose to enumerate all Equity using 100% (2/4/8 cores) of your machines processing power, it would only allow small resource allocation to other applications until this is finished, if any at all. So its most likely counterproductive to implement this as a change that would benefit our users.

      In a few years times, when applications could be required to run on multiple cores, I can see changes being made to the code, but this would still be a required change and therefore justified in that scenario.

      With software like wPrime, in these instances you are donating your (spare) processing cycles to good causes, so of course they will take all they can get, which is as much as you will allow, therefore they will allow the program to run on any number of threads, including massive computer systems in and out-with the cloud.

      A factor to consider though, would be other types of games. As the complexity of the game increases so do the calculations required to work out equities. But the large majority of consumer processors can easily run millions of calculations on applications like these.


      Thanks for posting & Good luck at the tables!


      -Euan