Could you please tell me more about your own threads on the graphics library which blocks NT?
Sometimes I see in Windows Task-Manager the dwm.exe being very busy.
Especially if I have several chess engines with (only) 3 cores working. Together with NT and browser
about 5 cores are used but NT has major problems and stutters (3 cores don't work!!).
The problems you describe are common for all of us, the main NT7 event and chart code loop is by default single-threaded, largely restricted by the Windows graphics and GUI library that it uses. Current Ninja only really makes much use of the extra cores when backtesting, although this is not an area I use. My own threads are used for independent stuff, e.g. special work, centralised logging, off-platform I/O, etc where I can safely control all issues.
What you see in the TM is that independent processes rather than threads can appear to make better use of the other cores, but of course they suffer other overheads.
In most cases when NT is running slowly it is caused by poor quality (i.e. inefficient) indicator code, or using a lot of cpu intensive data sources (e.g. tick or custom bar type charts,) which is why I suggest you make an evaluation. For example you could run record market data for a day and then run a series of high-speed tests using the recorded data, each time removing one of the indicators or one of the charts and measuring the impact to identify the main culprits. (NB I haven't used that approach, but I'd be interested if it helps )
There are also several threads on futures.io (formerly BMT) on Ninja tuning and other performance tips that are worth a search for.
The following user says Thank You to ratfink for this post:
In the meantime bear in mind that many indicators are coded in a manner that extravagantly wastes CPU resources. Reductions of 2 to 3 ORDERS OF MAGNITUDE are often possible. If it wasn't coded by Gomi, Fat Tails, or me, be wary.
If you are driving your car 500 miles to go around the block, a faster car is not the best solution.
"If we don't loosen up some money, this sucker is going down." -GW Bush, 2008
“Lack of proof that something is true does not prove that it is not true - when you want to believe.” -Humpty Dumpty, 2014
“The greatest shortcoming of the human race is our inability to understand the exponential function.” Prof. Albert Bartlett
The following user says Thank You to Zondor for this post:
Platform: "I trade, therefore, I AM!"; Theme Song: "Atomic Dog!"
Favorite Futures: EMD, 6J, ZB
Posts: 798 since Oct 2009
Thanks: 216 given,
I have my roots planted firmly in programming, of the ancient san-scrit mainframe languages, and while I could keep up with what you were saying and trying to convey, I seriously doubt even the modern day programmers and self taught programmers knew even two sentences of what you just said
I also doubt, whether most will understand that when you rattled off the notion of "time series" really means which bar type is chosen on any particular chart as an interval. You could easily have spent three or four (minimally) 8 sentence paragraphs explaining that brief barrage of "what's wrong".
its outstanding that you were able to program and redesign all your indicators and not let in not one badly written one. Actually most of those freely and paid available indicators are hack jobs of cut and paste and tweaked spaghetti. One participant on these threads, every so often reverse engineers these same indicators and improves them to the same point of high efficiency you spoke of. But that's just one guy.
what I found of particular interest was your comment regarding the graphics library blocking something, presume-ably usage of any available multiple core processors.
given the state of affairs, and the already understood notion that NT8 will invalidate all previous and prior written indicators, this very same issue might have already been forced to the fore and addressed.
who's to say. Ray, care to step in here?
The following user says Thank You to kronie for this post:
Within the last weeks I observe that NT7 stops to show the data flow, as soon as I start another program with say 3 cores.
Hence, if the other program works for 1 hour, all charts stop; if the other program ends all charts start to show the data from the last hour.
There is not only stuttering (which makes trading already difficult) as I wrote earlier.
My PC is an 8-core-i920 processor, NT7 uses 1 core (the browser about 1 additional core).
Hence, I can't do an additional job parallel because NT7 stops working at all.
I had to buy a second PC. Ridiculous!
Hopefully some NT guys read this and solve this problem in NT8.
No disrespect intended, but it's not a great idea to run any other heavy duty programs on a trading box anyway. Regardless of cpu core usage, Windows will still crap anything out once they start fighting for other resources like caches, ram or disk as well.