When you install the NI RT Extensions for SMP, the Real-Time Module balances threads across available CPUs in a process called automatic load balancing. Automatic load balancing enables RT target VIs that incorporate parallelism to take advantage of multiple-CPU systems, also known as multi-core, multi-processor, or SMP systems. However, transferring data between CPUs takes longer than transferring data from one operation to the next on a single CPU. Also, the overhead of the CPU scheduler slightly increases latency on the RT system, which can slow down single-point I/O applications that do not benefit from parallelism. In general, an application will benefit from multiple CPUs only if the time saved through parallel processing exceeds the time spent allocating system resources and transferring data between CPUs.

Note If you are unsure whether to run an application with or without NI RT Extensions for SMP, you can test use the application using both configurations. Use the LabVIEW Real-Time Software Wizard in NI Measurement & Automation Explorer (MAX) to install and uninstall the NI RT Extensions for SMP. Refer to the Measurement & Automation Explorer Help for information about using the LabVIEW Real-Time Software Wizard. (NI Linux Real-Time) You cannot uninstall the NI RT Extensions for SMP on NI Linux Real-Time targets.

Applications that Benefit from Multiple CPUs

Real-time applications often include data logging or host communication tasks that run in parallel to time-critical tasks. For example, the following block diagram shows an RT target VI with two parallel loops. Because of the parallelism of the architecture, running this type of application on a multiple-CPU RT system can improve performance without any need to rewrite the VI.

Applications that require multiple time-critical processes might also benefit from multiple CPUs. Because of the preemptive nature of time-critical tasks, it is generally best to include only one time-critical loop on a single-CPU system. However, on a multiple-CPU system you can include a time-critical loop on each CPU.

Applications that Do Not Benefit from Multiple CPUs

Although most real-time applications realize an immediate performance boost by switching to a multiple-CPU system, some VIs must be rewritten to benefit from additional CPUs and other VIs cannot benefit from additional CPUs. Real-time applications that consist of a single sequential loop do not benefit immediately from additional CPUs. If the loop consists of intensive processing, you might be able to increase performance by implementing a pipelined architecture. However, applications that consist primarily of single-point I/O processing usually do not benefit from multiple CPUs because the CPU scheduler contributes a slight amount of additional latency.

Applications that contain shared resources might not benefit from additional CPUs until you rewrite the application to avoid shared resource conflicts. Simultaneous requests for a shared resource impede parallel execution and diminish the performance benefit of a multiple-CPU system.

Note Refer to the NI website for more information about when to use the NI RT Extensions for SMP.