Agent manager questions

 

Hello,

I have a question about how MetaTrader 5 counts and uses CPU cores/threads for optimization agents, especially when using one PC as the host and another PC as a worker.

My setup is:

Host PC:
Intel i9-14900K
Normally: 24 cores / 32 threads

Worker PC:
Intel i7-10700K
Normally: 8 cores / 16 threads

When I use MT5 directly on the i9-14900K host PC, I see 32 local agents.

But from the i9-14900K host PC, when I add the i7-10700K as a worker, I only see 8 remote agents, even though the i7-10700K should have 16 logical threads with Hyper-Threading enabled.

Also, when I use another PC as the host and add the i9-14900K as a worker, I only see 24 remote agents instead of 32.

So I would like to understand:

Does MT5 count physical cores or logical threads for optimization agents?

Does this behavior change depending on whether the PC is used as the host/local machine or as a remote worker?

Should a CPU with Hyper-Threading enabled always show one agent per logical thread?

For example:
i9-14900K should show 32 agents
i7-10700K should show 16 agents

Or does MT5 sometimes limit remote worker agents to physical cores only?

I hask this because i am interested buy buying a new pc with a big CPU with a lot of cores, and I am asking which one...


Thanks a lot in advance


MM

 
Michael Myers:
Or does MT5 sometimes limit remote worker agents to physical cores only?

P-cores and E-cores.

Regarding HT, see:

Forum on trading, automated trading systems and testing trading strategies

dual cpu 64 core

Dominik Egert, 2022.07.22 11:19

Hyper threading is basically sharing the input pipeline of a CPU core to two tasks. It was originally designed to fill the CPUs pipeline.

A core shared by HT will not be like 2* a separate core, it will introduce some penalty to the performance and might average around something like 1.75 times a cores performance. Depending on the workload that's applied.

There can be cases where you get even almost full 2 times the performance, but as said, it depends on the workload.

Cache misses, memory usage, type of operations performed, to name a few..

Since the workload by an optimization run is quite alike for each thread, the penalty will be more severe, although, it might reduce load on the cache, since the processed Datastream is mostly the same.

But, this is only a brief scratch on the surface of what's going on behind the scenes.