This content requires the Adobe Flash Player and a browser with JavaScript enabled. Click here to get the latest version of Adobe Flash Player.

Labview goes multicore

by Graham Prophet -- EDN Europe, 01 Sep 2007

Release 8.5 of National Instruments’ Labview graphical programming environment embodies a number of upgrades to support multicore processing. There are three separate strands to the multicore announcement: firstly, there is increased support for running multithreaded applications on multi-core processors, to take advantage of the additional power available. Then, there is a capability to implement real-time symmetric multiprocessing, balancing tasks across multiple processor cores while maintaining determinism. Designers using this facility can“ring-fence” mission-critical sections of code, assigning them to a dedicated core. Finally, there is a high-level tool to simulate event-based system behaviourusing state-chart notation: the state-chart module is underpinnedby UML.

Engineers using current PC technology for control and measurement tasks have multi-core processors available. In an IT context, the operating systems will conventionally allocate different tasks to the separate cores. In a Test & Measurement or data-acquisition context, there may be only one main application running—to take advantage of the multicore CPU, that application itself must be multithreaded. NI says that Labview has always had an inherently parallel programming view; with release 8.5, it extends this to automatically divide applications into multiple threads, inspect the target system for available cores, and scale the application accordingly, scheduling threads on to the discrete CPUs. Underlying this capability is a matching release of device drivers, which with 8.5 become “thread-aware”. Using Labview, NI says, you are shielded from much of the detailed work of setting up and closing down threads, organising communication synchronisation between threads, and handling multithreaded debug. This, broadly speaking, is task parallelism; release 8.5 also handles data parallelism: when multiple elements of a data set are available at the same time, in the Labview graphical environment you can set up multiple instances of, say, a signal-processing block to operate on several data elements at the same time. In 8.5, these become real processing threads running in parallel on separate cores. If the target system is FPGA-based, Labview can invoke multiple instances of signal-processing blocks and organise the data fl ow through them. Release 8.5 also handles pipelined processing structures with data fl owsoverlapped in time.

The company also lists a number of other updates in this release of Labview: there is support for Freescale ColdFire processors and an evaluation bundle with QNX operating- system support; updated project-fi le-management tools and graphical code merging for team-based development; tools to optimise memory-management performance with a detailed level of control; and optimised BLAS (basic linear algebra sub-program) linear algebra libraries. Videosystem design is enhanced with improved edge detection for image processing and optimised algorithms for various demodulators and channelcoding schemes: design and simulation tools for control systems now include MPC (Model Predictive Control) and analytical PID (proportional-integralderivative)controller design.

For existing supported Real- Time Labview customers, most of these features are included as part of the 8.5 release; the exception is the Statechart design module, which is a completelynew product.

National Instruments,www.ni.com.


 

Our Sponsors



Ads by Google