In general, there are two different ways of getting a “faster” computer. The first is to have a processor that has multiple cores and/or multiple hyper-threads so that simultaneous processes run faster because they can be run at the same time side by side. The second way is to have a faster clock speed and/or processing unit so that a single process runs faster.
The only way that NeuroShell Trader currently utilizes multiple cores directly is during optimization. During optimization, NeuroShell Trader can split the optimization across multiple hyper-threads, multiple cores or even multiple networked computers to speed up the optimization process.
Many multiple core processors not only have multiple cores, but also each core is hyper-threaded, which essentially means each core is setup to run multiple different processing threads through the single cores processing pipeline without slowing anything down. Since NeuroShell Trader also takes into accounts the number of hyper-threads as well as the number of cores, a 4 core machine with 2 hyper-threads per core can actually process 8 simultaneous threads at the same time without any slowdown. This is why having NST show 8 threads on a 4 core machine is not unreasonable or unexpected during optimization.
It should be noted that additional cores/hyper-threads will definitely speed up optimization, there is also an upper limit to how effective each new core/hyper-thread will be. Theoretically, up to a 12x speed increase in optimization could be realized spreading optimization across 12 cores/hyper-threads, however due to the overhead of controlling, setup and communication with each distributed thread (in addition to the differences in computer processors, cores, clock speed, etc. if optimizing across networked computers), the speed increase may approach but will never reach 12x.
Also keep in mind the law of diminishing returns for each new core/hyper-thread added. As an example if you already have an 8 core/hyper-thread I7 and upgrade to a 12 core/hyper-thread I7, assuming the clock speed stays the same, adding 4 extra cores/hyper-threads will only give you a theoretical maximum 50% speed up in optimization (i.e. 8 to 12)
Another thing to keep in mind is that because of the overhead of controlling, setup and communication with each distributed thread, small optimization problems that only take a minute or two may actually run faster with less cores/hyper-threads. Long optimization problems that take hours to run will definitely be much faster with multiple cores/hyper-threads.
Faster Clock Speed/Processing Architecture:
Unlike Optimization, other processes like calculating indicators, updating the graph, etc. all currently only run in a single process. Because these processes are not split up, having multiple cores will not help very much (other than allowing operating system functions, virus protection, etc. to run on a separate core while NeuroShell Trader runs entirely on a different core). These things will see the largest speed benefit more having a faster clock speed and/or faster processing CPU architecture, since those functions are not split up into multiple processes.
In general to speed up calculating indicators, updating the graph, etc., you would want a faster clock speed or faster throughput CPU architecture so that a single process runs faster. I know that many CPU/computer reviews compare benchmark tests. Offhand we don’t know which benchmarks would be most applicable, but imagine a single process with lots of calculations would be the most representative of how fast indicators calculate.
Optimizing a Chart For Speed:
Now that being said, you need to consider that a faster processor may not make nearly as much difference as applying the advice below on making the charts update quicker. For instance, if you were to go from a 3 GHz processor up to say a 4 GHz processor, you would in theory see a 33% increase in speed if the CPU architecture was exactly the same.
However, if you think about what it takes to compute indicators, it is directly related to how much data you have loaded. If you reduce your graph from having 1000 historical data points down to 100 historical points, your indicators will now calculate 10 times (1000%) faster simply because instead of having to do 1000 “calculations”, it now only has to do 100 “calculations”. Likewise, the graph now only has to do the computations required to place and display 100 points instead of 1000 and will likewise be 1000% faster as well. Obviously there is other overhead involved with calculating indicators and graphing, so you wouldn’t realize exactly a 1000% speed up, but it would be much more significant than the 33% speed up of going from 3 GHz to 4 GHz.
So in general, you will see some speed by upgrading processors, but smart management of the amount of data and number of calculations going on in your chart may help more. Some indicators are inherently much slower than simple indicators like a moving average simply because of what they are doing/calculating, but none the less taking a chart you use for model development/optimization and slimming it down especially for trading purposes (i.e. set first date loaded closer to current date, minimize number of chart pages, remove any unneeded indicators, predictions & trading strategies from the chart, etc.) will probably give you much more dramatic speed differences than a faster processor might. You could take it an extreme and adjust the first date loaded on a daily basis (or even more often) to only as far back as the amount of data needed to calculate the values on the last few bars (i.e. the largest indicator’s look-back window size).
To make sure you are doing everything possible to speed up your current charts, look at the following help topics:
For hardware upgrades, the following is a good rule of thumb to follow:
Larger number of cores/hyper-threads = Faster Optimization
Faster clock speed/cpu architecture = Faster graphing and faster calculation of indicators, predictions and trading strategies.
Overall you will see a modest speed increase from upgrading hardware, but a much larger increase by paring down unnecessary data/calculations and the greatest increase by doing both at the same time.