• If this is your first visit, you will have to register before you can post. To view messages, please scroll below and select the forum that you would like to visits. Questions? Be sure to check out the Forum FAQ.


No announcement yet.

Partner 728x90


Questions about NT8 Chart Performance Tips.

  • Filter
  • Time
  • Show
Clear All
new posts

    Questions about NT8 Chart Performance Tips.

    Hi - https://ninjatrader.com/support/help...ance_tips2.htm

    has a laundry list of performance tips, most of which I'm using or that don't apply to my setup. I do have a few questions, however, so here we go:

    * I do charts only.
    * New box, W-2145 chip, 8 cores/16 threads, fast clock speed. 64G memory(way more than I need now). Bought the box for exactly these reasons, so I wouldn't be bogged down by charts and everything else I'm running.

    * Could someone elaborate more on tip #8, which lists:

    "Workspaces which have a single or fewer number of instruments are unable to take advantage of multi-core processors. For example, having 30 charts with the same instrument will not perform as well as 30 charts of different instruments on a multi-core processor. Reducing the number of windows with the same instrument can increase performance."

    Are ALL charts on a single instrument(say, AAPL 1m, 2m, 3m charts) limited to being processed on a single cpu? This makes no sense, IF NT8 is truly multi-processing. I'll be running 5-12 diff instruments, with -many- charts for each of these instruments. I'd hope/expect that whatever chart needs juice would get it and not be in the queue, if some other charts of the -same- instrument are busy. For example, if AAPL is going bonkers one day, I don't want AAPL charts lagging behind, because they run single-threaded, and the rest of my box is idle, as the rest of the market is dead that day.

    In regards to number/size of windows, now that 4k monitors are common, how much is this gonna hose up NT8? I have a mix of 1920x1080, 1920x1200, 2560x1600 and one 4k monitor(this monitor is running in portrait mode, so is 2160x3048). I'll eventually standardize on 6-7 4ks, all running in 2160x3048 portrait mode. There will be some NT8 charts on all monitors, along with other stuff.

    Two Nvidia P620 video cards, total of 8 4k ports. Not a gaming card, but should be ok for static charts(lemme know if this is not the case). I may upgrade these later, if needed.

    IF NT8 Development did NOT test a Windows desktop that is HUGE, they better load up a couple of 8 port 4k video cards, run out and buy 16 4k monitors and see if it all blows or goes, cuz someone out in NT-land is eventually gonna run a hi-res monitor wall, if they're not already doing so...

    I'm going to experiment with turning off Hyperthreading(not for discussion here, tho), to make sure I don't run into wait time issues, which HT can cause. I'll still have 8 real cores, which I'm thinking is more than enough horsepower for everything on the box.

    Essentially what I need to know is really how multi-processing is NT8 and is NT8 up-to-date enough to handle -today's- video, which can be a many hi-res monitors and a really large Windows desktop, compared with just a few years ago.

    I do have the possibly of splitting the workload up among NT7/NT8/etc, to accommodate cpu/video workload, but of course would prefer to have it all wrapped up in one workspace on NT8.
    Last edited by AMATX; 01-24-2020, 09:52 AM.

    Hello AMATX,

    Thank you for your post.

    NinjaTrader divides up the processing of your workspace by assigning each instrument to a different core. This is important as assigning the same instrument to be processed in different cores for each different chart could cause Instrument information to become out of sync with itself. Thus it is an intentional design decision.

    For example, if you're looking at 5 charts for the ES 03--20, all of those calculations will be preformed on the same Core of your CPU. If you're looking at two different instruments each of those instruments will be assigned to a different core. If you're running 5-12 instruments the processing will be distributed among available cores by instrument following the guidelines above.

    Regarding your monitors, We have many clients that report no issues with 4K resolution. What that said, if you ever experience anything unexpected. please contact us at PlatformSupport(at)NinjaTrader(dot)com so we may troubleshoot what you're experiencing. These generally relate to not having enough Video memory to properly render multiple monitors at 4k resolution.

    Regarding specific PC components we're unable to make a specific hardware recommendation but I can point you to our Minimum and recommended specs in the help guide, adding that these requirements would scale with the complexity of your workspace.Feel free to reply if you need any additional assistance.
    Heath R.NinjaTrader Customer Service


      Ok, will sit tight on video stuff for now(no huge problems, but am looking down the read a bit).

      More clarification/detail on core assignment/usage, pls:

      * When NT 'assigns each instrument to a different core', is this fixed for the NT session? For example, might AAPL be assigned to core #3, no matter what? Since Windows normally does cpu load balancing, does this mean if core #3 is doing some other work, NT8 is stuck waiting for core 3 and AAPL charts are stalled? Or, is the AAPL workload still associated with a- single- core, but Windows can throw that workload onto another core for the duration of a timeslice and make it transparent to NT8?

      Seems like there's a lot of potential for things to stall out, here. Now, if NT8 was all that was running on a box, that'd certainly help, but it's unrealistic to assume the entire box is dedicated to NT8.

      IF the above is true/kinda true, is another answer to just dedicate a few cores to NT8 and let it all sort out that way? Or, a reverse play might be to boot up other apps that hog cpu, assign some cores to them, then boot up NT8 and let it deal with the leftovers...

      I usually up the priority on NT7 and was planning on doing so w/NT8, but am wondering if that's enough.

      I should have more than enough cpu/memory/etc to handle NT7/NT8 workload plus everything else, but need to get a better idea of what's going on here...
      Last edited by AMATX; 01-24-2020, 10:33 AM.


        Hello AMATX,

        Thank you for your reply.

        NinjaTrader does not effect how Windows handles it's load balancing, you would need to discuss that with a certified Microsoft technician.

        In NinjaTrader, once processing is assigned to a core it will continue to process on that core until the platform is closed, when reopened those cores will be reassigned.

        I can't really get into the specifics of how it was built to handle load distribution, as i am not a developer and that information is proprietary. However as mentioned each core will be assigned an instrument to process until all cores are assigned and then it will cycle back through assigning cores until all instruments are accounted for.

        As far as upping priority thats up to you, performance specs are going to vary by system and workload and complexity of the workspace.

        Please let me know if you have any additional questions.
        Heath R.NinjaTrader Customer Service


          Got it. Thx for the clarification...


            Hello AMATX,

            You're quite welcome.

            Feel free to reach out to us if you need any additional assistance.
            Heath R.NinjaTrader Customer Service


              #AMATX - FWIW: I run what seems a similar scenario to that which you envisage,

              6x4k + 1xQHD on 2vNVIDIA Quadro cards & twin multicore CPUs (many more threads than Instruments) with abundant RAM.

              12 instruments each with 3 windows/short minute & fast tick timeframes (& multiple tabs within) & a DOM each, split in 2 Workspaces running concurrently, plus another in which resides Market Analyzer

              Ninja set to high Priority in Windows

              My understanding from Ninja/this Forum is NT8 allocates each Instrument to a single thread, rather than core - the distinction being with predicted 12 instruments and 16 threads you should be over-provisioned (notwithstanding your comments about other things you're asking your pc to perform), is my understanding.

              FWIW, with the above I now have no problems relating to NT8's performance from the perspective of handling multiple instruments and charts, or chart rendering, with multiple 4k screens.
              On my fastest charts for each instrument, I have refresh forced to 10fps rather than default fixed max 4fps. So, I am asking more than NT permit and against recommendation in this regard.
              I use multiple Data Series in most charts for each instrument

              Even at times of greatest market activity, my CPUs/threads nor GPUs/video memory are ever heavily stretched.

              In layman's terms (all I know), what I've absorbed and for what you envisage - if your machine's graphics specification is up to the job of driving the number of pixels fast enough (which it is) then the critical/limiting factor is in NT8's ability to process the information required to do so i.e. efficiency of coding for rendering etc. rather than hardware limitation. For example, the 'weakest link' in this respect for me is use of Global Crosshairs which is relatively gpu-intensive and can be a little sluggish, whereas manipulating charts is both smooth and near-instant. Similarly on CPU, I have hundreds of data series/indicators in total (not by choice, due to platform design) yet 8 is un-fazed by this (I recently added 48 Data Series & simple indicators and there is no identifiable impact on cpu/ram or performance whatsoever due to this addition). As I understand it, by comparison, use of Tick Replay or Level II data are to the CPU what Global Crosshairs are to the GPU although I have no experience with either to share. As I understand it, FWIW, the limitation becomes to do with coding efficiency (& cpu speed) in that NT must process each tick per instrument sequentially on a single thread (in the context of your questions about multi-core pcs, Ninja & Windows' workload distribution, performance etc - doesn't matter how many you've got, the need for sequential treatment means it can't be distributed for parallel computation).

              Short-form - from my real-life experience which is comparable to that which you propose re: multiple 4k screens I don't believe you need be concerned. On 8's ability to take advantage of multiple cpu cores, it does do so with the two limitations it can only use one thread per instrument maximum one tick at a time sequentially. I'm not nor pretend to be a techie so the above may well be a 'very loose grasp' and laughable to those that are, it's just what I believe I've come to understand - in my real world setup that 'limitation' now doesn't appear to be one. If you were to be considering multiple instruments using Tick Replay and/or Level II data, things may be different, which you may want to consider in your setup.

              The coding of the platform is continuously improving in this regard.



                Okie dokie, Bruce, thx for layin' it all out for me

                In poking around the forums, I've read several of your posts and thought "this guy has a lot of the same issues I have with cramming a lot thru NT". Nice to know there's probably a path forward.

                I had considered contacting you via msg(and may do so sometime), but I need to muddle my way thru all of this to figure out where I'm really at first.

                At this point, coding migration issues mean I'll have to run NT7 & NT8 concurrently, keeping the migration code on NT7 and moving the more vanilla stuff to NT8, which is fine for now. Just wanna get it all up and running...

                One quick question, tho:
                * You said something about running two workspaces concurrently(?) I know NT can have multiple spaces open, but I would have to select which one was visible on the screen. So, splitting charts up into two spaces would mean some chart are usable, some or not. So, to access the out of view charts, I'd have to switch between workspaces, which is not an option. I need all charts up, all the time. THEN, I can use Autohotkey to control which charts are in view and which are not. Very easy to switch between instruments that way.

                * So, is there some way to have TWO workspaces open -and- have all of the charts from both in view concurrently??? If so, pls clue me in

                As to the rest, good to know I should be able to run a bunch of 4k monitors, as planned...

                No Level II, no replay, etc., just basic charts is all I'm doing...

                At this point, it appears I'm having an NT7 issue with back days loaded. I have a req for some really long lookbacks(say, 1000-1500 days of xx minute data). On my old Win7Pro box, it loaded slowly but ran ok. On my new Win10Pro 'fast' box, it loads fast, but hoses up later in the day. Just more crap to deal with, but for now, I'm pruning longer lookback charts and will delve into this one later. Hopefully, an NT7/NT8 split may be a workaround, but I'm not there yet, so can't say. At least NT8 has a duplicate/clone chart button, which greatly helps and speeds up chart creation a bunch.

                One thing I did yesterday/Friday, after market close was turn OFF Hyperthreading on my box and it looks to be making a hell of a + diff. 8 real cores and the entire box runs my software mucho better. Big part of that is cuz I'm running charts on Thinkorswim(TOS) and NT7, which are both single-threaded. Both TOS and NT have their pros and cons, but on the con side they each need some serious Development improvements. How much I'm gonna gain with NT8, I dunno yet, but am working on it. With TOS, it's really bloatware, but at least when I max out a copy, I can just boot up another TOS copy and do the load balancing that way. NT doesn't normally allow for multiple copies, so gots to do things differently there.

                I bought an Intel W-2145 chip cuz it was the bestest, affordable chip that had many cores(8), but with each core having relatively high clock speeds. Enuf cores for TOS, NT, rest of box, assuming everything runs right. I thought about buying the 10 core chip, but the clock speeds drop a bit, so didn't want that. Down the road, I may take a variation of your approach and get a workstation/motherboard that'll run two real chips, each with 8-10 cores, but that's for another day. Shouldn't have to do that, just for this workload.

                I will have to wait for live trading on Monday morning to see if turning off Hyperthreading is gonna work better, but right now I'm thinking so. Hope to have more NT7 charts moved to NT8, so that should help, too. Since I'm not on NT8 much, dunno if I'd see the thread performance improvement stuff you mentioned. Be interesting to find out how it all settles out.

                Thanks for the help and comments. Nice to know most/all of my issues have been overcome by others.

                More when I know sumpin'...
                Last edited by AMATX; 01-25-2020, 03:13 PM.


                  "One quick question, tho:
                  * You said something about running two workspaces concurrently(?)..........."
                  Apologies for confusing, your understanding of what I wrote is correct - I have something akin to the 'Market Watch' idea in that in one Workspace I have one set of instruments with 'full trading charts' visible (and hence using resources), with the 'other' set of instruments only displaying one small chart per instrument. If I see something of interest unfolding on the small chart I can switch workspaces to where its 'full trading charts' reside, and where I have a set of single small charts for the 'ones in the workspace I've just switched from'. May not be useful for you, just sharing. If you are concerned over hitting resources limitations when having all charts running at the same time on one workspace, whether you need to have all charts for all instruments running in a single workspace all the time, or separating what you need to see all the time from what you need when you want to 'do something', in workspaces.

                  Re: hardware, to be honest I don't think changing my PC made any significant difference at all, I simply did so to eliminate it as a constraint and help focus the spotlight on where the bottlenecks were taking place. My old PC could run NT7 with a similar setup using only one of its 4 cores.

                  Good luck!.

                  Last edited by brucerobinson; 01-25-2020, 11:40 AM.


                    Got it, Bruce, thx for the clarification. Kinda thought only one workspace at a time...

                    Similar to you, but diff approach:

                    * Setup a 30,000 ft 'dashboard' approach, with one instrument per 4k monitor.
                    * Hmm, sumpin' interesting, needing further attention/drill down??
                    * Ok, bango, hit .ahk hotkey, up pop more detailed charts, along with other goodies worth checking...
                    * When done, press another hotkey, detailed stuff goes into background, while normal dashboard stuff pops back up.
                    * Slick, easy, QUICK.
                    * Let 'WinActivate' be your friend

                    Trying to do above via separate workspaces or color linked charts(to maybe change a symbol as a way of switching) is wayyyy too slow and won't cut it. However, this can mean a LOT of charts are open, even if not in view, which is the center of my problem now. But, it's coming along; just need a bit more time.

                    On a properly working box, Ninja/TOS/everything else just pops in/out of view in a flash. Works great, kinda. Gotta get thru this Ninja mess and I'll be back the way I want.
                    Last edited by AMATX; 01-25-2020, 03:09 PM.


                    Latest Posts


                    Topics Statistics Last Post
                    Started by aaadetos, Today, 08:39 PM
                    0 responses
                    Last Post aaadetos  
                    Started by Teebone21, Today, 03:57 PM
                    0 responses
                    Last Post Teebone21  
                    Started by GeoOrtiz, Today, 03:44 PM
                    0 responses
                    Last Post GeoOrtiz  
                    Started by ralett, Today, 03:41 PM
                    1 response
                    Last Post NinjaTrader_Tyler  
                    Started by Walker DM, Today, 03:14 PM
                    2 responses
                    Last Post Walker DM