anyone have other solution on this? my network farm only utilize about half of CPU and RAM while the main pc running MT5 is at close to 100% with single tester per thread instead of physical core.
can we allow testing agent in local farm to make use of additional threads?
understand that the reason to allow only 1 tester agent per core is due to memory error when someone selling the testing services.
I'm setting up local tester farm and most of the time it only use up to 50+% of the CPU and RAM due to it doesn't actually allow us to create agent more than the number of physical cores
While I don't like the heavy handed approach of preventing users from forming threads... Oftentimes MQL5 will perform worse running with hyperthreading than without it (and it is usually on par or slightly better). The reason being that MQL5 is really good at fully loading cores, so while taskmanager shows that your hyperthreading cores are under or not utilized, this is not a very accurate reflection of the actual goings on.
Part of this has to do with what hyperthreading was designed for. It was designed for providing a core's scheduler the ability to plot things in parallel for each core... which is great when a process if underutilizing the core, but if it nearly completely fills a core it will decrease the overall performance because the scheduler then has to try and force feed the core more than it can handle, which sends more information to memory as the tasks overflow. That creates extra work for the processor to negotiate and store the pending tasks.
TLDR: hyperthreading usually isn't worth it in MQL5, especially for ram intensive tasks.
While I don't like the heavy handed approach of preventing users from forming threads... Oftentimes MQL5 will perform worse running with hyperthreading than without it (and it is usually on par or slightly better). The reason being that MQL5 is really good at fully loading cores, so while taskmanager shows that your hyperthreading cores are under or not utilized, this is not a very accurate reflection of the actual goings on.
Part of this has to do with what hyperthreading was designed for. It was designed for providing a core's scheduler the ability to plot things in parallel for each core... which is great when a process if underutilizing the core, but if it nearly completely fills a core it will decrease the overall performance because the scheduler then has to try and force feed the core more than it can handle, which sends more information to memory as the tasks overflow. That creates extra work for the processor to negotiate and store the pending tasks.
TLDR: hyperthreading usually isn't worth it in MQL5, especially for ram intensive tasks.
i'm now using the pc with the most core as main machine and surprisingly it is way faster now.
it might be decrease slightly but it seems to depend on amount of RAM available. I dont understand why they allow main terminal to use thread but not the tester agent.
does anyone have a way to enable it? or otherwise i'm only able to utilize most threads for the pc with most cores.
i'm now using the pc with the most core as main machine and surprisingly it is way faster now.
it might be decrease slightly but it seems to depend on amount of RAM available. I dont understand why they allow main terminal to use thread but not the tester agent.
does anyone have a way to enable it? or otherwise i'm only able to utilize most threads for the pc with most cores.
2 separate MT5 installations on one machine to be used for a local network farm. Will use 2x as much disk space and may take longer to sync tick data but it seems to work. I don't see why it wouldn't work for selling too.
Security, memory requirements and efficiency issues acknowledged but I'd still like to have the option to utilize my HT without using that workaround. Please consider unblocking extra threads, especially considering recent advances in HT: https://www.anandtech.com/show/16261/investigating-performance-of-multithreading-on-zen-3-and-amd-ryzen-5000 (some new computers may actually get 25% faster with HT. )
EDIT: I'm sure it will be better to have the two separate installations actually be on different SSD (or otherwise fast drives.)
- Dr. Ian Cutress
- www.anandtech.com
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
can we allow testing agent in local farm to make use of additional threads?
understand that the reason to allow only 1 tester agent per core is due to memory error when someone selling the testing services.
I'm setting up local tester farm and most of the time it only use up to 50+% of the CPU and RAM due to it doesn't actually allow us to create agent more than the number of physical cores