The newest generation of multicore processors promises tantalizing boosts in speed with lower power needs than older single-core processors.
But there's a problem meeting those expectations. The only way software fully benefits from these CPUs is to be specifically written for them. Programming functions must be organized and divided up such that they execute in parallel, some tasks on one core, other tasks on alternate cores.
New versions of engineering software are starting to include this sort of optimization for multicores. The most recent example is LabView 8.5 from National Instrument Corp., Austin, Tex.
It contains a parallel dataflow language that lets engineers balance measurement and control tasks between the multiple processor cores in PC platforms.
The new version of LabView also offers machine monitoring functions for both desktop and FPGA platforms and expanded OPC connectivity to hundreds of industrial devices.
The company says the new version of LabView employs a simplified graphical approach to multi threading that lets users take ad vantage of multicore technology with little or no change to their existing code. Parallel tasks get balanced between cores automatically for such typical tasks as robotics, mechatronic systems, and industrial control applications.
Unlike sequential, text-based programming tools, the parallel dataflow language of LabView with built-in multi threading naturally divides tasks across multiple processors. This latest version adds deterministic real-time multithreading, thread-safe I/O drivers, and automatic scaling based on the total available number of processing cores.
There are functions that let embedded and industrial systems automatically load-balance tasks across multiple cores without sacrificing determinism. Engineers can manually assign portions of code to specific processor cores to fine-tune real-time performance or isolate time-critical sections of code to a dedicated core using the Real-Time Execution Trace Toolkit 2.0. The Toolkit also displays timing relationships between sections of code and individual threads, and shows which processing cores execute what code.
Parallel programming extends to FPGA-based systems with multichannel filtering and PID control algorithms. These reduce FPGA resources needed for high-performance machine control systems. In addition, an FPGA project wizard automates I/O configuration, intellectual property development, and overall setup for common I/O, counter/timer, and encoder applications. It helps simplify programming by letting designers automatically produce high-speed DMA data-transfer code.
For those engineers and designers used to dealing with statechart diagrams, LabView 8.5 now includes a statechart module. It uses standard statechart notations based on the Unified Modeling Language (UML) within the LabView graphical programming language. This lets engineers design systems by combining familiar statechart notation with real-world I/O.
Also included are enhanced vibration measurement and order analysis tools. A new library of OPC drivers expands industrial connectivity, nearly doubling the number of PLCs and industrial devices the software works with. There are also new display tools for building more realistic industrial user inter faces. An interactive drag-and-drop interface ties I/O tags directly to Windows CE-based displays running on industrial touch panels and handheld PDAs.
Additional LabView 8.5 features include new Express VIs for image acquisition and machine vision, support for Freescale ColdFire processors along with QNX operating system support, and project file management tools and graphical code-merging for team-based development. National Instruments makes an evaluation version of the LabView 8.5 available on its Web site at www.ni.com/labview85/machine.htm.
National Instruments Corp., (800) 258-7022, ni.com/labview85/machine.html