Client multi cpu performace

I have access to a dual cpu server. Each CPU is 6 core hyperthreaded giving me 24 threads in total.

Now I haven’t run the client in a while. But I use to run it on my i7-3930 (6 core hyperthreaded) and the cpu would right 80%+ when running a simulation.

With this server it constantly fluctuates between 40% and 80%. Is this expected behavior? Seems to sit at the lower % more than hitting the high numbers.

edit: I should add that it’s in normal priority mode.

If you run it in normal mode, it won’t use your full CPU. Set it to Max if you want that, or specify your thread count manually.

You can also see lower overall CPU usage if you run a client with a lot of threads – that is something we plan to improve automatically in a future update. In the meantime, you can see better throughput by running multiple clients on the same machine. e.g. for your machine, try running 3 or 4 clients set to use 8 threads.

To run multiple clients, you have to make multiple copies – can’t start multiple instances of the same program. For example, make an AskMrRobotClient1, AskMrRobotClient2, etc. folder on your machine, and start a client from each of them.

Note that if you are just running single simulations at 0.25% margin of error or so (as opposed to lower margin of error or batch simulations), using more than 10-12 threads won’t give you much gain – they finish too quickly. Using more threads is mainly a benefit for long or batch simulations.

I’m just basing it on observations of running on different machines. On one on normal mode running batch it sits at 80% cpu usage as long as I’m not using the machine. The other in the same scenario with only AMR running the usage fluctuates between 40% and 80%.

I don’t want to run max just in case I need the machine for something while it’s running.

But I decided to run it max to see what would happen. Exact same behavior. CPU usage fluctuates between 40% and 80% sometimes hitting 90%

edit: I should add on my desktop it ping the CPU at 100% when in max mode.

Yeah see my previous post – with machines that have a large number of threads, right now you get better performance by running multiple clients.

It also depends a lot on the kind of simulations you are running.

Normal mode will run on half the cpu’s threads. Depending on the CPU, this can get different total CPU usage.

In my scenario. A computer with 12 threads will sit at 100% while a computer with 24 threads will drop to below 40% at times, indicating it’s using fewer than 12 threads (even though AMR.exe has almost 100 threads running). Hence my question in regards to using multiple CPU’s not just thread count. Does it negatively affect the performance having multiple numa zones.

One of our lab machines has a 24 core Xeon in it. I will see if I can get some time on it to compare.

I took your suggestion and ran multiple clients. CPU sitting pretty at 100%.


Yeah it depends a lot on the kinds of simulations you are running: are you running large batches? Single sims?

For single sims, you won’t see as much gain by splitting it across a huge number of threads. They finish quickly enough that the overhead of splitting it to more threads starts to outweigh the gain. The “sweet spot” for a 0.25% margin of error simulation is around 8 threads… beyond that you might see some speed increase, but it drops off pretty quick.

Batch simulations on the other hand, can make very good use of large numbers of threads if you run multiple clients. Running multiple clients also has the added benefit of keeping your CPU busy during any IO time transferring results to/from our servers.

When I get some free time, I plan to make a single client handle spreading batch simulations across large machines automatically, but for now the multiple client trick does the job. Not that many users have machines with more than 8 cores, so it keeps getting bumped down the priority list. But one day I’ll get to it!

Batch simulations also work very well if spread across multiple machines. For my personal use I run up to 10 clients on 5 different computers sometimes.

I am running the gearing strat sims. 1200+ runs.

The multi client approach works so I see why it would drop in the priority.

Thanks for all the effort though. I love AMR.