LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW RT Time loops and logical cores

Solved!
Go to solution

The RT 1 training course indicates that you should only use a single timed looped for every CPU which the computer has if you want the loop to be deterministic. When using a computer with CPU's which contain multiple logical cores within a single CPU core, can you have a timed loop for every logical core with them all still being deterministic and guaranteed to run on time?

0 Kudos
Message 1 of 3
(2,479 Views)
Solution
Accepted by topic author Wildmind

If we take the example of a processor like Core i7 which has one CPU but 4 "real" cores and an additional 4 via Hyperthreading.....

 

First, deactivate Hyperthreading as these are NOT proper cores and will not benefit RT execution.

 

The other 4 cores will all run timed loops as if they were 4 distinct CPUs.

 

I don't understand how you can have multiple CPUs but a single core, it's normally the other way around, a single CPU (Physical processor) with multiple cores (Separate processing units).  Terminology may vary however.

 

 

0 Kudos
Message 2 of 3
(2,464 Views)
Since you meant Computer I am assuming you are talking about the Windows. In Computer you can get the timed loop to run at a defined rate but it is not guaranteed even if you allocate 1 timed loop for each core. The reason behind this is the OS takes the priority and can perform task in any processor which may affect the performance of the loop. This you can see in the Task Manager>Processes, right click any system/windows application is running and check the Affinity. You can see by default all the process is assigned to run on any processor, so you cannot get deterministic loop behavior. That is why RT system with Real time OS is used, which gives you the deterministic loop timing as you asked. Does it make sense?
-----

The best solution is the one you find it by yourself
0 Kudos
Message 3 of 3
(2,460 Views)