LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

rt dual core

Hello!

I am using PC as a RT target. It has i3-core processor. My question is whether it will take any advantage of the two *two logical processors. As I know if one of these processors is computing any RT task or the task is RT (needs to be handled in a specific time) the other task cannot be RT.

My question is: if I assign a task that utilizes one core in 100% the other task assigned to the logical processor of this core will not be hendled?

Example: The processor is on-line computing FFT of a signal acquired by DAQ card, stores the results on a HDD and sends it through LAN to a host the logical processor can not perform any other task. It does not have time for it?

 

0 Kudos
Message 1 of 5
(2,975 Views)

In my experience you cannot use 100% CPU load and be RT.

My time critical loop does some DAQ input, some calulations and DAQ output. This loops runs in time critical priority. Above a CPU load of about 66% we get a finished late condition from time to time and above 76% nearly continously. We used a timed loop to bind this VI to one CPU reducing jitter.

We use RT FIFOs to send data to other VIs sending them via network to a host computer and to store them as TDMS files on the local harddisk. The VIs use togehter with the ISRs about 50% of the other core.

 

Running the RT Rask unbound to a specific CPU may couse additional CPU load which can lead that the other VIs will seem to get blocked.

 

Waldemar

Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
Don't forget to give Kudos to good answers and/or questions
0 Kudos
Message 2 of 5
(2,951 Views)

You definitely want to assign the time critical tasks to one CPU, the non-critical (less critical) tasks to the other, using the time loop cpu assignment. But if one of the CPU's does attempt to run at 100% will have problems as there are OS "housekeeping" tasks, running on each processor if I recall, that will be starved of resources if you truly hit 100%  My last dual core RT project did have the time critical part running at a ~75% + loading, but the other cpu's tasks were still performed (network comms, calculations of the next waveform, etc.) in a "timely" manner. Of course the one caveat, looking back at your question, is that this was actually run on a dual processor machine. Sorry, that does muddy the waters as to your specific question.

Putnam
Certified LabVIEW Developer

Senior Test Engineer North Shore Technology, Inc.
Currently using LV 2012-LabVIEW 2018, RT8.5


LabVIEW Champion



0 Kudos
Message 3 of 5
(2,946 Views)

No no, it is not the problem, you have lost the plot. I was asking about using miltithreading and logical processors ans whether there is time for a logical processor when the first processor is busy/ burdend.

You can assign one processor to system tasks and the rest processors are free unless you give them a task. But this is not a problem. For example I have two tasks that recquires 60% of a processor time. That is ok for RT. Now I have a processors with a logical processor. I cannot assign these tasks to the two processors. I mean how fare can I go with this when using i3 core 4 processors processor (two processors + two logical processors).

0 Kudos
Message 4 of 5
(2,930 Views)

I tried to find out something about the i3 processor architecture. As far as I understand this is a processor with two cores which are capable of doing SMT each. This seem to be the same thing as Hyperthreading which my Pentium 4 processor can do. Running Windows with active hyperthreading I'm seeing two CPUs in the task manager and I know from applications which are designed to use multiple CPUs are using them simultaniously.

 

I'm currently on a machine with no LV installed so I cannot look into the readme of LV RT if it will support not only multi core CPUs but also Hyperthreading. There is a small test you can do. Activate hyperthreading in the BIOS if possible and install LV RT with SMP support, this should be done already due two the two cores. Connecting a monitor to the RT system you should see four CPUs.

 

The Intel Hyperthreading technology is a true SMT implementation. This means that the procesors are working simultanously. I think to remember that only one of the processors of each core has a floating point unit. To use the additional processor means that this prt of the code should not use floating point data types.

Waldemar

Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
Don't forget to give Kudos to good answers and/or questions
0 Kudos
Message 5 of 5
(2,921 Views)