Thank you for recommending "".
Your recommendation has been successfully processed.
Parallel Programming Language Brings Software Closer To Hardware
Date Posted: February 28, 2008 12:00 AM
One loop handles the data acquisition and timing of the acquisition, and it passes data off to processing. The second loop receives data from the first loop, processes it, and passes it off to the third loop, which handles the transfer of processed data to the host application.
The LabVIEW diagram is mapped to the FPGA gates and slices so parallel loops in the block diagram are implemented on different sections of the FPGA fabric. This allows all processes to run simultaneously (in parallel). The timing of each process is independent of the rest of the diagram, which eliminates jitter. Also, you can add additional loops without affecting the performance of previously implemented processes. You can add operations that enable interaction between loops for synchronization or exchanging data as well.
Conclusion
Hardware architectures continue to become more parallel, and this shift is affecting the software design approach. Traditionally, sequential languages have been the norm, though different languages with different programming constructs (i.e., C versus VHDL) have been required to take advantage of multicore processors and FPGAs, respectively.
In contrast, parallel programming with LabVIEW provides a unified graphical system design approach to program both multicore processors and FPGAs. As a parallel programming language and development tool, LabVIEW meets key requirements that embedded developers require to utilize parallel hardware: intuitive representation of parallel code with graphical programming, built-in synchronization and communication mechanisms, and integrated debugging capabilities.
While there is no silver bullet for programming complex embedded systems that rely on parallel silicon, developers now can look to programming languages and tools that help bring software closer to the hardware. For more on multicore programming with LabVIEW, check out this webcast at http://zone.ni.com/wv/app/doc/p/id/wv-359?metc=mtkwks.
References
- Asanovic, K., Bodik, R., et al., “The Landscape of Parallel Computing Research: A View from Berkeley,” Technical Report No. UCB/EECS-2006-183, University of California, Berkeley, Dec. 18, 2006
- National Instruments Developer Zone, “LabVIEW 8.5 brings the Power of Multicore to Scientists and Engineers,” http://zone.ni.com/devzone/cda/pub/p/id/158
- National Instruments Developer Zone, “Optimizing your LabVIEW FPGA VIs: Parallel Execution and Pipelining,” http://zone.ni.com/devzone/cda/tut/p/id/3749
- Multicore Technical Portal, www.ni.com
- Multicore Programming Resources, http://www.ni.com/multicore/
multicore