LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW and Multiprocessor platforms.

We're in the process of developing a fairly large LabVIEW application where CPU loading is starting to become an issue. Does executable + Run Time Engine take advantage of systems with 2 processors, overall reduction in CPU loading?
0 Kudos
Message 1 of 5
(2,592 Views)
I saw a Natuional Instruments demonstration where a LabVIEW executable was run on one and then two processors and the difference in time was plotted. After you build your executable there is a way of assigning it to a specific (or more than one) processor. I am not sure exaclty how this was done, but I did see it work.

-Jim
0 Kudos
Message 2 of 5
(2,592 Views)
You might want to read application Note 114 called Using LabVIEW to Create Multithreaded VIs for Maximun Performance and Reliability. It doesn't spell out how to make LV use dual processors but talks about dual processors and multithreading.
I also have an application that can benefit from dual processor and I will be receiving it on Monday I hope. Any way to make a long story short I've been on the phone with Tech support about the issue and they don't have a lot of good information. It seems to be the general consensus that there is an internal document that covers this issue but they have yet to locate it and send it to me. The two guys I've spoken to feel that LabView automatically detects that you have multiple processors and uses them as effi
ciently as possible. I think you have to make sure that the two vi's you call simultaniously are on different threads.

Dave
0 Kudos
Message 4 of 5
(2,592 Views)
> You might want to read application Note 114 called Using LabVIEW to
> Create Multithreaded VIs for Maximun Performance and Reliability. It
> doesn't spell out how to make LV use dual processors but talks about
> dual processors and multithreading.
> I also have an application that can benefit from dual processor and I
> will be receiving it on Monday I hope. Any way to make a long story
> short I've been on the phone with Tech support about the issue and
> they don't have a lot of good information. It seems to be the general
> consensus that there is an internal document that covers this issue
> but they have yet to locate it and send it to me. The two guys I've
> spoken to feel that LabView automatically detects that you have
> multiple
processors and uses them as efficiently as possible. I think
> you have to make sure that the two vi's you call simultaniously are on
> different threads.
>


The paper being looked for might be the presentations made at NIWeek. I
think searching for Inside LabVIEW on the devzone will lead you to the
slides.

The answer is that right out of the box, LV will adapt its execution
engines to multiple processors. This will begin to take advantage of
multiple processors, but if the dataflow sequences things into a single
chain of computations, then it will basically move the computation to
one processor and the other to UI. The parallelization can be further
aided by breaking a task into multiple loops or pipelining so that
dataflow defines more than one task at a time.

As always, I'd write the application with the simplest code possible,
then measure the processor usage with the task manager and profiler.
With the simple coding, you can rewrite subVIs or move code around if

necessary to improve things after you measure your code. If you have
questions about improving processor usage, there was another NIWeek
presentation on Multiprocessor usage, or you can ask questions here.

Greg McKaskle
0 Kudos
Message 5 of 5
(2,592 Views)
> We're in the process of developing a fairly large LabVIEW application
> where CPU loading is starting to become an issue. Does executable +
> Run Time Engine take advantage of systems with 2 processors, overall
> reduction in CPU loading?

Each executable, including the editor, has their own configuration
information stored in an ini file. Normally, the default configs
are fine and you don't have to do anything special. To see the affect
that the threading has, you can turn the threading on and off using
the options dialog, or you can go to the task manager and set the
processor affinity for an exe to a single processor and see the affect
this has compared to the default of using as many processors as possible.

Greg McKaskle
0 Kudos
Message 3 of 5
(2,592 Views)