Will adding more threads make MultiWalk run faster?
The answer is yes… and no. There is an effect of diminishing returns as you add more threads and this is due to both (1) limitations in TradeStation and (2) hperthreading nature of CPU architecture.
(Note: also see this related article Will upgrading my CPU make MultiWalk faster?)
Important note concerning TradeStation and threads
After conducting the below thread tests, I found that TradeStation will max out and actually began to run slower at around 10-12 threads. I later found this discussion on the TS forum:
“For TradeStation, 8 logical cores is the sweet spot. More cores will slow down TradeStation. I’ve been on the phone with tech support twice over this and this is what I was told… the faster the clock speed, the better. But more cores will not only slow down processing… TS is not a multi-threaded program for the most part. It can use up to 16 threads for charting only. You are better off with higher clock speed than more threads.”
So all those 24 and 32 threaded CPUs are a waste with TradeStation because of their internal threading design limitation. 🙁
Another factor is Intel’s hyperthreading CPU architecture. Each CPU core can time-share itself with two threads (called “logical” threads) and process them in parallel.
So won’t a 24-thread CPU run twice as fast as a 12-thread CPU?
No!
According to Intel (the creators of hyperthreading technology), hypterthreading may result in up to a 30% performance increase “under the right circumstances” (see this Intel article for more information). Forbes did a study that showed only a 17% increase. Creating two “logical threads” in each core is not a 2x performance increase, but at best 17-30% increase in performance.
For those who do not want the nitty-gritty, here is my summary on CPU and thread usage::
Summary: My Take-Away Points
- Buy a FASTER CPU with 8 cores instead of a slower CPU with more cores. CPU speed is much more important than number of threads. You will gain an across-the-board performance increase with faster GHz than number of cores/threads.
- Due to TradeStation limitations (and MultiWalk runs under TradeStation), there are no gains beyond 8 cores. Indeed, performance suffers by adding more threads beyond 10-12.
- Simple strategies and simple MultiWalk projects will not see great performance gains with more CPU power. More complex strategies and MultiWalks projects will require and utilitize more CPU power.
- Rather than specifying “Max” in MultiWalk’s CPU threads configuration setting, consider making this equal to the number of CORES in your CPU, not max number of threads. You may get better performance!
For those who want a deeper look into the issue, read on…
The Thread Test: Testing results across many MultiOpt and MultiWalk user CPUs
I ran a test using one 60 minute symbol on a Bollinger Band strategy, 77 in/out walkforward periods and 17 computationally heavy fitness functions.
I gave this same test project to many MultiOpt and MultiWalk users who ran it on their systems and the results were the same — there was a significant drop-off in performance after 10 threads, and in many cases a degragation in performance the more threads that were added. This occurred with both Intel and AMD CPUs.
These test results are for this particular benchmark project that is meant to stress test the cores a CPU. A different MultiWalk project configuration that has different objectives (and potentially less stressful on a CPU) will yield different results, but they will ALL show the same performance degradation after 10-12 threads.
Here are the results for this test using Intel’s i7-5820K CPU:
This system has 6 cores and can thereby run up to 12 logical threads. Notice that adding more threads after 6 threads only resulted in about an 11% performance increase.
Here are the results of the same test from a user with a Ryzen 9 16-core processor:
These results are even more dramatic. Adding more threads after 10 cores on this 16-core CPU actually decreased performance. It took more time to complete the MultiWalk project!
Aug 2024 Update: I had to upgrade my i9-11900k CPU because I melted it with too much overclocking. Oops. 🙂 I upgraded to an i9-13900K. I didn’t expect a huge increase, but thought there would be more than I got.
Here are the i9-13900K results:
The rising curve around 8-10 threads shows the bottleneck effect of TradeStation’s threading implementation.
Here is a summary of the my various CPUs:
I included the passmark rating to give a comparative “strength” rating of each CPU.
There is an approximate 20% speed increase from the lowely i7-5820K CPU to the mighty i9-13900K. Not at all what we would expect. But given other factors that CPU power alone cannot improve (such as the disk access for data, data load/unload time for each optimization and walkforward, TradeStation’s 8 thread limitation, etc), it does make sense.