Optimizing RT Applications for Multiple-CPU Systems

With the LabVIEW Real-Time Module, you can take advantage of parallel processing on multiple-CPU systems, also known as multi-core, multi-processor, or SMP systems.

The Real-Time Module includes a CPU scheduler that allocates threads among available CPUs. You can take advantage of the CPU scheduler to achieve parallel execution on multiple-CPU systems. Many RT applications can benefit from additional CPUs without rewriting the application. However, by writing the RT application with multiple CPUs in mind, you might be able to achieve significant performance gains. To realize the full benefits of an RT system with multiple CPUs, you must implement a parallel or pipelined architecture in the RT target VI.

Note Some applications, such as those that consist mainly of single-point I/O, can achieve lower latency using a single CPU.

When writing a VI to run on a system with multiple CPUs, avoid shared resource conflicts whenever possible. The advantage of a system with multiple CPUs is that separate threads can execute simultaneously on separate CPUs. Simultaneous requests for a shared resource impede parallel execution and diminish the performance benefit of a multiple-CPU system.

The Real-Time Module automatically balances threads across all available CPUs. However, you might be able to optimize the performance of some applications using manual CPU assignment with timed structure and CPU pools.

Note
  • When you open a VI created in a version of LabVIEW prior to 8.5, all Timed Loops automatically run on the default CPU. In this case, you can use manual CPU assignment with timed structure and CPU pools to take advantage of multiple CPUs.
  • Refer to the NI website for more information about optimizing performance in a multiple-CPU RT system.