Why LabVIEW for Multicore Programming
National Instruments LabVIEW is a dataflow programming language, developers can write inherently parallel applications that can map to parallel hardware such as multicore processors and FPGAs for optimal performance. This white paper discusses dataflow programming and why NI LabVIEW is ideal for programming multicore systems.
Javascript Disabled To use our site, you must enable JavaScript.
Published:
Feb 06, 2009
Type:
White Paper
Length:
4 pages
White Paper
Why LabVIEW for Multicore Programming
Because National Instruments LabVIEW is a dataflow programming language, developers can write inherently parallel applications that can map to parallel hardware such as multicore processors and FPGAs for optimal performance. This white paper discusses dataflow programming and why NI LabVIEW is ideal for programming multicore systems.
The Free Lunch Is Over Processor speeds have hit a wall in recent years. Moore's Law, which states that the number of transistors on a chip will double every 18 to 24 months, still holds true as it has for the last 40 years, but it no longer translates into a linear increase in performance. Previously, chip manufacturers increased processor clock speed to double chip performance - from 100 MHz to 200 MHz and more recently into the multi-Gigahertz (GHz) range.
Today, however, increasing clock speeds for performance gains is not viable because of power consumption and heat dissipation constraints. Chip vendors have instead moved to entirely new chip architectures with multiple processor cores on a single chip. With multicore processors, programmers can complete more total work than with one core alone. To take advantage of multicore processors, programmers must reconsider how they develop applications. In the words of Herb Sutter, Microsoft software architect, the "free lunch is over" for developers who expect to see immediate software application performance gains when end users simply upgrade their computers to ones with faster processors. In short, software had it easy for a long time, but this is no longer the case.
Sequential programs saw performance improvements as a result of processor clock speed increases; upgrading to a computer with a faster CPU meant that each individual instruction in a series would run faster. To continue seeing performance gains with multicore systems, you need to design applications that divide the work among cores - in essence develop a parallel Figure 1. Moore's Law demonstrates that processors are no longer application instead of a getting faster, hence the move to more processors on a single chip sequential one. from chip vendors such as Intel and AMD.
© National Instruments Corporation Page 1 ni.com LabVIEW - A Graphical, Dataflow Programming Language The main benefit of developing your application in LabVIEW is the intuitive, graphical nature of the language. In LabVIEW, you solve your engineering problem as if you were drawing a block diagram on paper. Modern multicore processors make LabVIEW an even more favorable choice as a programming tool because of its ability to express and execute tasks in parallel.
The dataflow nature of LabVIEW means that anytime there is a branch in a wire, or a parallel sequence on the block diagram, the underlying LabVIEW executable tries to execute in parallel. In computer science terms, this is called "implicit parallelism" because you do not have to specifically write code with the purpose of running it in parallel; the language takes care of a certain degree of parallelism on its own.
The theoretical performance benefit of moving from a single- to dual-core computer is a two times improvement. But how close you get to that limit is a function of how much you can make your program execute in parallel. LabVIEW programmers naturally represent their solutions in a parallel nature. Initial benchmarks of a common representation of LabVIEW applications, without regard to multicore programming techniques, show applications automatically achieving 25 to 35 percent performance improvements with no changes to their code, simply because of the natural parallelism in common LabVIEW programs.
Figure 2 is an example of a simple application in which one branch in the LabVIEW code facilitates two analysis tasks - a filter operation and a fast Fourier transform (FFT) - for parallel execution on a dual-core machine. Not shown on the diagram is benchmarking code that runs the "for loop" once in single-core mode by turning off one of the cores, and then in normal dual-core mode. Because both tasks are computationally intensive, the improvement based on this task parallelism is an increase of 1.8 times.
Figure 2. A Typical LabVIEW Application Demonstrating Inherent Parallelism Due to Dataflow Programming
© National Instruments Corporation Page 2 ni.com Text-based langua... [download for more]
Browse Technology Topics
Application Integration ,
Analytical Applications ,
Business Intelligence ... more , Configuration Management , Database Development , Data Integration , Data Mining , Data Protection , Data Quality , Data Replication , Database Security , EDI , SOAP , Service Oriented Architecture , Web Service Management , Data Warehousing less Analog Communications ,
Digital Signal Processing ,
Electronic Design Automation ... more , System On A Chip , Electronic Test and Measurement , Embedded Design , Boards & Modules , Embedded Systems and Networking , Electromechanical & Mechanical , Optoelectonics & Displays , Packaging and Interconnects , Passive & Discrete Components , Power Sources & Conditioning Devices , Integrated Circuits and Semiconductors , Sensors & Actuators less Application Integration ,
Application Performance Management ... more , Best Practices , Business Activity Monitoring , Business Analytics , Business Integration , Business Intelligence , Business Management , Business Metrics , Business Process Automation , Business Process Management , Call Center Management , Call Center Software , Change Management , Corporate Governance , Customer Interaction Service , Customer Relationship Management , Customer Satisfaction , Customer Service , EBusiness , Enterprise Resource Planning , Enterprise Software , EProcurement , Extranets , Groupware Workflow , HIPAA Compliance , IP Faxing , IT Spending , Marketing Automation , Performance Testing , Product Lifecycle Management , Project Management , Return On Investment , Risk Management , Sales & Marketing Software , Sales Automation , Server Virtualization , Simulation Software , Supply Chain Management , System Management Software , Total Cost of Ownership , Video Conferencing , Voice Recognition , Voice Over IP , Workforce Management , Incentive Compensation , Spend Management , Manufacturing Execution Systems , International Computing less Human Resources Services ,
Payroll Software ,
Time and Attendance Software ... more , Workforce Management Software , Financial Management , Employee Monitoring Software , Employee Training Software , Recruiting Software/Services , Employee Performance Management , ELearning , Benefits Management , Expense Management less Collaboration ,
Collaborative Commerce ,
Contact Management ... more , Content Delivery , Content Integration , Content Management System , Corporate Portals , Customer Experience Management , Document Management , Information Management , Intranets , Messaging , Records Management , Search And Retrieval , Search Engines , Secure Content Management , SLA less Active Directory ,
Bandwidth Management ,
Convergence ,
Distributed Computing ... more , Ethernet Networking , Fibre Channel , Gigabit Networking , Governance , Grid Computing , Infrastructure , Internetworking Hardware , Interoperability , IP Networks , IP Telephony , Local Area Networking , Load Balancing , Migration , Monitoring , Network Architecture , Network Management , Network Performance , Network Performance Management , Network Provisioning , Network Security , OLAP , Optical Networking , Quality Of Service , Remote Access , Remote Network Management , Server Hardware , Servers , Small Business Networks , TCP/IP Protocol , Test And Measurement , Traffic Management , Tunneling , Utility Computing , VPN , Wide Area Networks , Green Computing , Cloud Computing , Power and Cooling , Data Center Design and Management , Colocation and Web Hosting less AS/400 ,
Domino ,
Linux ,
Microsoft Exchange ,
Oracle ,
PeopleSoft ... more , SAP , Siebel , Solaris , Tivoli , Unix , Web Sphere , Windows , Windows Server less Access Control ,
Anti Spam ,
Anti Spyware ,
Anti Virus ,
Application Security ... more , Auditing , Authentication , Biometrics , Business Continuity , Compliance , DDoS , Disaster Recovery , Email Security , Encryption , Firewalls , Hacker Detection , High Availability , Identity Management , Internet Security , Intrusion Detection , Intrusion Prevention , IPSec , Network Security Appliance , Password Management , Patch Management , Phishing , PKI , Policy Based Management , Security Management , Security Policies , Single Sign On , SSL , Secure Instant Messaging , Web Service Security , PCI Compliance , Vulnerability Management less .NET ,
C++ ,
Database Development ,
Java ,
Middleware ,
Open Source ... more , Software Outsourcing , Quality Assurance , Scripting , SOAP , Software Testing , Visual Basic , Web Development , Web Services , Web Service Security , XML less Backup And Recovery ,
Blade Servers ,
Clustering ,
IP Storage ... more , ISCSI , Network Attached Storage , RAID , Storage Area Networks , Storage Management , Storage Virtualization , Email Archiving , Data Deduplication less 802.11 ,
Bluetooth ,
CDMA ,
GPS ,
Mobile Computing ,
Mobile Data Systems ... more , Mobile Workers , PDA , RFID , Smart Phones , WiFi , Wireless Application Software , Wireless Communications , Wireless Hardware , Wireless Infrastructure , Wireless Messaging , Wireless Phones , Wireless Security , Wireless Service Providers , WLAN less