MT4 is not MultiThreading and I have MultiCore CPUs
I am trying to find out how to auto-open MT4s in Windows with command line options via Windows Scheduling to assign different instances of MT4 at StartUp to different CPU cores to balance the load and optimize computer operation.
I'd definitely start with a manual check that this actually makes a difference, by setting the affinity using Task Manager, before trying to automate it. If you're looking at this with regard to backtesting, then I'd also check that the backtesting process is definitely processor-bound rather than e.g. IO-bound, and try running it from a RAM disk.
[...] I've never personally seen a scenario where Windows allocates multiple copies of MT4 to a single core and leaves other cores sitting idle. [..]
Hi,
Thanks for the responses.
I'm not doing any back testing at this point in time, only forward.
Perhaps I'm misinformed about MT4's lack of MultiThreading. I came across it here at some point in time which doesn't mean it was correct; or I may have applied it in the wrong context and forgot that this was strictly a Back Testing issue.
I am using the Task Manger to assign these. Currently in an XP environment and have been assigning the affinity to the numerous simultaneous instances of MT4. I noticed that in the CPU column of the Processes tab of the Task manger that these do change dynamically. However what I find confusing about this is that on this dual core machine that while most of the time it says 0, 1 or 2, it it will occasionally have numbers higher than this. Looking at it now while doing this posting I see that the 'System Idle Process' is staying in the nineties so perhaps this column is showing the CPU load that the process is putting on the CPUs and not core assignment.
So it would seem that the best solution to this problem is that it is no problem at all and is already being taken care better automatically than confining processes to a specific CPU core manually.
'Live and Learn' It never ends. until it does! LoL (< 8)
Thanks again folks
FourX:
So it would seem that the best solution to this problem is that it is no problem at all and is already being taken care better automatically than confining processes to a specific CPU core manually.
Looking at it now while doing this posting I see that the 'System Idle Process' is staying in the nineties so perhaps this column is showing the CPU load that the process is putting on the CPUs and not core assignment.
As I think you're now aware, a percentage of e.g. 95% for the System Idle Process means that the computer is only consuming 5% of processor time. The CPU column in Task Manager always adds up to 100. If there is no processor work taking place, the total of the CPU column is not zero.
Perhaps I'm misinformed about MT4's lack of MultiThreading. I came across it here at some point in time which doesn't mean it was correct; or I may have applied it in the wrong context and forgot that this was strictly a Back Testing issue.
It is strictly a backtesting issue. The main complaint is that MT4 does optimizations serially, rather than running the different settings in parallel.
In forward operation MT4 is multi-threaded. Each copy of MT4 has a number of persistent threads (e.g. one for the GUI, one for the price feed), plus the fact that each separate tick processed by an EA is handled by a new thread.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I am trying to find out how to auto-open MT4s in Windows with command line options via Windows Scheduling to assign different instances of MT4 at StartUp to different CPU cores to balance the load and optimize computer operation.