04-29-2015 02:35 PM
I have 256 two-frame timed loops in my code. When I execute the code without assigning processors only 128 of the timed loops will execute simultaneously, however when I assign a different processor to each one (0-255) then only 4 will execute at once. Why is this? How can I make them all execute simultaneously?
Attached: two snapshots of code. 1 shows a small portion of the timed loops, and the other is the part of the code that communicates with an FPGA VI that controls the state of outputs (using a CRio-9066.) For the timed loops, the little sun icon is a sub-VI that generates values for the dt time delay of the timed loops.
Solved! Go to Solution.
04-29-2015 02:41 PM
Where do the timed loops execute (FPGA, RT, etc.)?
How many processors do you have?
04-29-2015 02:47 PM
They execute on the computer VI (FPGA doesn't support multifram timed loops) and I don't know how many available processors I have! I am very new to this so any explanations, tips, or thoughts would be very helpful
04-29-2015 02:53 PM - edited 04-29-2015 02:54 PM
04-29-2015 02:58 PM
You were right! It says 4 logical processors, 1 for # of packages, 4 cores per package, and 1 logical processor per core
04-29-2015 03:18 PM
Why do you have a control writing to its local variable outside of the timed loops?
04-29-2015 04:33 PM
@doug333 wrote:
They execute on the computer VI and I don't know how many available processors I have!
Windows? If that is the case, do not bother with the timed loops. They add overhead and you are very unlikely to gain anything from it. Even the core affinity rarely helps. Just use normal While loops with a Wait ms funtion in there.