0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺談多核系統(tǒng)編程技術

jf_pJlTbmA9 ? 2023-10-27 17:08 ? 次閱讀
本文概覽

因為NI LabVIEW是數(shù)據(jù)流編程語言,開發(fā)者們可以編寫并行的應用程序,這些應用程序可以直接映射到并行的硬件(如多核心處理器FPGA等)上以獲得最優(yōu)異的性能。這篇白皮書討論了什么是數(shù)據(jù)流編程以及為什么說NI LabVIEW是多核系統(tǒng)編程的首選。

免費午餐結束了

近幾年來,處理器的速度遭遇到了瓶頸。摩爾定律表明,每隔18~24個月芯片中晶體管的數(shù)量就會增加一倍。這在過去的40年里始終是適用的,但是芯片性能卻不再保持線性增加了。過去,芯片生產(chǎn)廠商通過增加處理器的時鐘速度來提高芯片的性能,如從100~200MHz,再到最近的數(shù)GHz的范圍。

但是在今天,由于功耗和散熱的限制,通過提高時鐘速度來增加性能的方法行不通了。芯片廠商開始轉向另一種全新的芯片構架,就是在單芯片上集成多個處理器內核。相對于單核處理器,程序員們可以使用多核處理器完成更多的任務。為了充分利用多核處理器,程序員們需要重新考慮開發(fā)應用程序的方法。微軟公司的軟件設計師Herb Sutter曾說過,對于那些期望最終用戶簡單的將計算機升級到更快的處理器就可以立即看到軟件程序性能提升的開發(fā)者而言,“免費午餐結束了”。簡而言之,在相當長的一段時間里,軟件開發(fā)是這樣的,但是現(xiàn)在情況不同了。

正在轉向在單個處理器上集成多個核心的方法。

順序執(zhí)行的程序在處理器的速度提升后將得到性能的改善,將電腦升級到更快的CPU意味著一個序列中每個單獨的指令都將運行得更快。為了在多核系統(tǒng)中繼續(xù)獲得性能提升,你需要設計一個在內核間分配任務的應用程序,從本質上說來就是開發(fā)并行應用程序來取代順序執(zhí)行的程序。

LabVIEW――一種圖形化數(shù)據(jù)流式編程語言

在LabVIEW中開發(fā)應用程序的主要優(yōu)勢是這種語言有著直觀、圖形化的特點。在LabVIEW中,用戶解決工程問題就像是在紙上畫框圖一樣。現(xiàn)代多核處理器技術使得LabVIEW成為一種更適合的編程工具,因為它有著并行化表達和執(zhí)行任務的能力。

LabVIEW的數(shù)據(jù)流特性使得如果連線中存在著分支,或者是框圖中存在并行序列,那么LabVIEW執(zhí)行機構會嘗試著并行的執(zhí)行程序。在計算機科學術語中,這稱為“潛在的并行化”,因為你不需要根據(jù)并行運行的需要明確地編寫并行代碼,編程語言自己會進行一定程度的并行化。

從單核到雙核計算機,理論上講,獲得的性能應該是原來的兩倍。但是,與這個極限接近的程度取決于用戶應用程序運行的并行化程度。LabVIEW程序員們可以很方便的以并行方式來表示他們的解決方案。對于普通的LabVIEW應用程序而言,如果不考慮多核心編程技術,在不改寫代碼的情況下,與最初的程序相比,可以獲得25%到35%的性能提升,這都是緣于普通LabVIEW程序所具有的并行特性。

圖2是一個簡單的應用程序的例子。其中,LabVIEW代碼中的分支簡化了兩個分析任務――一個濾波器操作和一個快速傅立葉變換(FFT),使它們可以在雙核機器上并行執(zhí)行。在圖表中沒有顯示的性能測試代碼,它首先在單核模式下(關掉其中的一個核)運行“for loop”一次,然后在雙核的模式下運行。因為這兩項任務都是計算量很高的,利用任務并行化獲得的性能改進為原來的1.8倍。


基于文本的編程語言如C語言等,在代碼中利用特殊標記來表示并行化代碼,創(chuàng)建并行任務(也就是創(chuàng)建獨立的線程)。管理這些多線程的應用程序將是一個挑戰(zhàn)。

在C語言中,用戶必須使用鎖操作、互斥量、原子操作和其他高級編程技術來管理同步。當多線程變得難于跟蹤調試,通常的編程缺陷便出現(xiàn)了,如下所示:

1. 由于線程太多而導致效率低下。

2. 死鎖――線程一直在等待某些而不能進行處理。

3. 競爭狀況- 代碼運行的時序沒有被正確管理,在需要數(shù)據(jù)時,數(shù)據(jù)不是沒有準備好就是已經(jīng)被覆蓋掉了。

4. 存儲器沖突――與代碼中存儲器管理相關的問題。

由于使用C語言進行開發(fā)面臨的這些挑戰(zhàn),LabVIEW程序員們可以獲得比以往更高的效率。

LabVIEW是利用實時SMP支持,處于“Multicore Ready”軟件層的最上層Intel公司定義了用戶需要評估的四個軟件層次來確定多核系統(tǒng)的可用程度。如果所用的應用程序庫和設備驅動不是為多核而設計的,或者操作系統(tǒng)不能夠在多個核心上進行負載均衡,那么并行程序在多核心系統(tǒng)上并不會運行得更快。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1620

    文章

    21510

    瀏覽量

    598880
  • 芯片
    +關注

    關注

    450

    文章

    49631

    瀏覽量

    417115
  • LabVIEW
    +關注

    關注

    1954

    文章

    3647

    瀏覽量

    320405
  • C語言
    +關注

    關注

    180

    文章

    7575

    瀏覽量

    134027
  • 編程
    +關注

    關注

    88

    文章

    3521

    瀏覽量

    93263
收藏 人收藏

    評論

    相關推薦

    M800/M80/E80/C80系列編程說明書(M系)

    三菱數(shù)控系統(tǒng)編程說明書(M系)
    發(fā)表于 09-09 10:17 ?0次下載

    工業(yè)機器人的四種編程(示教編程、離線編程、自增強現(xiàn)實編程編程)剖析!

    和工作量,提高編程效率,實現(xiàn)編程的自適應性,從而提高生產(chǎn)效率,是機器人編程技術發(fā)展的終極追求。本文將就機器人編程技術的發(fā)展作一介紹,希望能給讀者帶來一些啟發(fā)。對工業(yè)
    的頭像 發(fā)表于 08-30 12:14 ?258次閱讀
    工業(yè)機器人的四種<b class='flag-5'>編程</b>(示教<b class='flag-5'>編程</b>、離線<b class='flag-5'>編程</b>、自增強現(xiàn)實<b class='flag-5'>編程</b>主<b class='flag-5'>編程</b>)剖析!

    多核CPU的優(yōu)勢是什么

    多核CPU(Central Processing Unit,中央處理器)作為現(xiàn)代計算機技術的重要里程碑,其優(yōu)勢在于顯著提升了計算性能、多任務處理能力、系統(tǒng)穩(wěn)定性以及能效比等多個方面。以下將詳細闡述
    的頭像 發(fā)表于 08-22 14:30 ?571次閱讀

    淺談煤礦企業(yè)能耗在線監(jiān)測系統(tǒng)的設計與應用

    淺談煤礦企業(yè)能耗在線監(jiān)測系統(tǒng)的設計與應用
    的頭像 發(fā)表于 05-15 16:07 ?362次閱讀
    <b class='flag-5'>淺談</b>煤礦企業(yè)能耗在線監(jiān)測<b class='flag-5'>系統(tǒng)</b>的設計與應用

    淺談無線物聯(lián)網(wǎng)技術的電氣火災監(jiān)控系統(tǒng)設計

    淺談無線物聯(lián)網(wǎng)技術的電氣火災監(jiān)控系統(tǒng)設計 張穎姣 安科瑞電氣股份有限公司?上海嘉定 201801 摘要:電氣故障是引起火災的重要原因。由于傳統(tǒng)的火災報警器都是獨立存在的,不僅沒有組網(wǎng),數(shù)據(jù)也不同步
    的頭像 發(fā)表于 03-12 11:03 ?258次閱讀
    <b class='flag-5'>淺談</b>無線物聯(lián)網(wǎng)<b class='flag-5'>技術</b>的電氣火災監(jiān)控<b class='flag-5'>系統(tǒng)</b>設計

    淺談基于物聯(lián)網(wǎng)技術的無線測溫系統(tǒng)設計

    淺談基于物聯(lián)網(wǎng)技術的無線測溫系統(tǒng)設計 張穎姣 安科瑞電氣股份有限公司 上海嘉定 201801 摘要: 傳統(tǒng)10kV環(huán)網(wǎng)柜存在智能化程度低、電纜頭故障率高、測溫困難等問題,缺乏一種有效的在線測溫
    的頭像 發(fā)表于 03-12 10:51 ?389次閱讀
    <b class='flag-5'>淺談</b>基于物聯(lián)網(wǎng)<b class='flag-5'>技術</b>的無線測溫<b class='flag-5'>系統(tǒng)</b>設計

    碩博電子推出一款基于CoDeSys3.5編程技術的高性能主控制器

    碩博電子自主研發(fā)的移動控制器SPC-SFMC-X2214A,采用了CoDeSys3.5編程技術,為分布式應用場合提供了理想的主控制器解決方案。
    的頭像 發(fā)表于 03-01 11:34 ?861次閱讀

    AURIX系列MCU多核系統(tǒng)和時鐘有關系嗎?

    AURIX系列MCU多核系統(tǒng)和時鐘有關系嗎?2.如何系統(tǒng)的理解GTM的時鐘結構(以前用的ST的片子,發(fā)現(xiàn)英飛凌MCU的時鐘樹和ST的很不一樣,有些時鐘實現(xiàn)的功能和原理是一樣的)?3.編寫應用程序是不是不能脫離底層比較好?
    發(fā)表于 02-05 06:10

    淺談多CPU、多核CPU、超線程技術、SMP

    Local APIC: APIC全稱是Advanced Programmable Interrupt Controller,翻譯過來就是高級可編程中斷控制器,用來處理CPU中斷。
    的頭像 發(fā)表于 01-06 10:38 ?1726次閱讀
    <b class='flag-5'>淺談</b>多CPU、<b class='flag-5'>多核</b>CPU、超線程<b class='flag-5'>技術</b>、SMP

    C語言的基本概念和編程技術

    電子發(fā)燒友網(wǎng)站提供《C語言的基本概念和編程技術.pdf》資料免費下載
    發(fā)表于 11-20 10:18 ?0次下載
    C語言的基本概念和<b class='flag-5'>編程技術</b>

    C語言嵌入式系統(tǒng)編程修煉之一:背景篇

    電子發(fā)燒友網(wǎng)站提供《C語言嵌入式系統(tǒng)編程修煉之一:背景篇.rar》資料免費下載
    發(fā)表于 11-17 11:35 ?1次下載
    C語言嵌入式<b class='flag-5'>系統(tǒng)編程</b>修煉之一:背景篇

    淺談在綜合布線系統(tǒng)中如何避免感應雷的襲擊

    電子發(fā)燒友網(wǎng)站提供《淺談在綜合布線系統(tǒng)中如何避免感應雷的襲擊.doc》資料免費下載
    發(fā)表于 11-10 16:09 ?0次下載
    <b class='flag-5'>淺談</b>在綜合布線<b class='flag-5'>系統(tǒng)</b>中如何避免感應雷的襲擊

    淺談100G OTN運維技術

    電子發(fā)燒友網(wǎng)站提供《淺談100G OTN運維技術.pdf》資料免費下載
    發(fā)表于 11-10 14:57 ?0次下載
    <b class='flag-5'>淺談</b>100G OTN運維<b class='flag-5'>技術</b>

    淺談煤礦固定設備中變頻技術的廣泛應用

    電子發(fā)燒友網(wǎng)站提供《淺談煤礦固定設備中變頻技術的廣泛應用.doc》資料免費下載
    發(fā)表于 11-03 09:43 ?0次下載
    <b class='flag-5'>淺談</b>煤礦固定設備中變頻<b class='flag-5'>技術</b>的廣泛應用

    淺談單片機的燒錄方式

    單片機的燒錄方式主要可以分為三種:在電路編程(In-Circuit Programming,簡稱ICP)、在應用編程(In-Application Programming,簡稱IAP)和在系統(tǒng)編程(In-System Progr
    發(fā)表于 10-16 17:02 ?2005次閱讀