0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

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

免費(fèi)午餐結(jié)束了

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

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

正在轉(zhuǎn)向在單個處理器上集成多個核心的方法。

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

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

在LabVIEW中開發(fā)應(yīng)用程序的主要優(yōu)勢是這種語言有著直觀、圖形化的特點(diǎn)。在LabVIEW中,用戶解決工程問題就像是在紙上畫框圖一樣?,F(xiàn)代多核處理器技術(shù)使得LabVIEW成為一種更適合的編程工具,因?yàn)樗兄⑿谢磉_(dá)和執(zhí)行任務(wù)的能力。

LabVIEW的數(shù)據(jù)流特性使得如果連線中存在著分支,或者是框圖中存在并行序列,那么LabVIEW執(zhí)行機(jī)構(gòu)會嘗試著并行的執(zhí)行程序。在計算機(jī)科學(xué)術(shù)語中,這稱為“潛在的并行化”,因?yàn)槟悴恍枰鶕?jù)并行運(yùn)行的需要明確地編寫并行代碼,編程語言自己會進(jìn)行一定程度的并行化。

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

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


基于文本的編程語言如C語言等,在代碼中利用特殊標(biāo)記來表示并行化代碼,創(chuàng)建并行任務(wù)(也就是創(chuàng)建獨(dú)立的線程)。管理這些多線程的應(yīng)用程序?qū)⑹且粋€挑戰(zhàn)。

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

1. 由于線程太多而導(dǎo)致效率低下。

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

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

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

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

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

審核編輯 黃宇

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

    關(guān)注

    1640

    文章

    21910

    瀏覽量

    611613
  • 芯片
    +關(guān)注

    關(guān)注

    459

    文章

    51891

    瀏覽量

    433210
  • LabVIEW
    +關(guān)注

    關(guān)注

    1989

    文章

    3668

    瀏覽量

    331328
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7626

    瀏覽量

    139575
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3671

    瀏覽量

    94667
收藏 人收藏

    評論

    相關(guān)推薦

    淺談直流有刷電機(jī)驅(qū)動及調(diào)速技術(shù)

    ,圖1 為 H 橋電機(jī)驅(qū)動 電路示意圖 : 圖1 H橋電機(jī)驅(qū)動電路示意圖 點(diǎn)擊下方附件查看全文*附件:20250307_淺談直流有刷電機(jī)驅(qū)動及調(diào)速技術(shù).docx
    發(fā)表于 03-07 15:24

    2024年AI編程技術(shù)與工具發(fā)展總結(jié)

    數(shù)據(jù)進(jìn)行多方位的總結(jié)和梳理。 在第二章《TOP 101-2024 大模型觀點(diǎn)》中,同濟(jì)大學(xué)特聘教授、CCF 杰出會員 朱少民 對 2024 年 AI 編程技術(shù)與工具發(fā)展進(jìn)行了總結(jié)。 全文如下
    的頭像 發(fā)表于 02-13 09:11 ?412次閱讀
    2024年AI<b class='flag-5'>編程技術(shù)</b>與工具發(fā)展總結(jié)

    迅為RK3588開發(fā)板實(shí)時系統(tǒng)編譯-Preemption系統(tǒng)/ Xenomai系統(tǒng)編譯-編譯Linux實(shí)時系統(tǒng)

    這里以 buildroot 系統(tǒng)為例(其他 Linux 系統(tǒng)編譯步驟同)。 Buildroot 是一款集成的編譯集合包,解決了以前交叉編譯麻煩的問題,本小節(jié)將介紹buildroot 鏡像的編譯流程
    發(fā)表于 01-21 14:15

    QorIQ?T1042多核處理器

    。QorIQ?T1042多核處理器適合于路由器、交換機(jī)、網(wǎng)關(guān)ip和通用型內(nèi)嵌式計算系統(tǒng)中的組合控制、數(shù)據(jù)路徑和傳輸層處理。與多個分立器件相比,QorIQ?T1042多核處理器高度集成提供明顯的性能優(yōu)勢,同時也
    發(fā)表于 01-10 08:48

    迅為RK3588開發(fā)板實(shí)時系統(tǒng)編譯-Preemption系統(tǒng)/ Xenomai系統(tǒng)編譯-獲取Linux源碼包

    3.1 Preemption 系統(tǒng)/ Xenomai 系統(tǒng)編譯 3.1.1 獲取 Linux 源碼包 編譯環(huán)境說明: 本手冊使用的是迅為提供的編譯環(huán)境 ubuntu20.04,在網(wǎng)盤資料
    發(fā)表于 01-09 11:03

    什么是socket編程 socket與tcp/ip協(xié)議的關(guān)系

    什么是Socket編程 Socket編程是一種網(wǎng)絡(luò)編程技術(shù),它允許程序之間進(jìn)行通信。在計算機(jī)科學(xué)中,socket是一個抽象的概念,它代表了兩個應(yīng)用程序之間的一個通信端點(diǎn)。Socket編程
    的頭像 發(fā)表于 11-01 16:01 ?878次閱讀

    淺談基于物聯(lián)網(wǎng)的智能路燈系統(tǒng)-盾華電子智慧路燈解決方案

    淺談基于物聯(lián)網(wǎng)的智能路燈系統(tǒng)-盾華電子智慧路燈解決方案
    的頭像 發(fā)表于 10-11 10:08 ?704次閱讀
    <b class='flag-5'>淺談</b>基于物聯(lián)網(wǎng)的智能路燈<b class='flag-5'>系統(tǒng)</b>-盾華電子智慧路燈解決方案

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

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

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

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

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

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

    TMS320C6670多核定點(diǎn)和浮點(diǎn)片上系統(tǒng)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMS320C6670多核定點(diǎn)和浮點(diǎn)片上系統(tǒng)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-01 11:06 ?0次下載
    TMS320C6670<b class='flag-5'>多核</b>定點(diǎn)和浮點(diǎn)片上<b class='flag-5'>系統(tǒng)</b>數(shù)據(jù)表

    一文解析嵌入式多核異構(gòu)方案,東勝物聯(lián)RK3588多核異構(gòu)核心板系列一覽

    嵌入式智能系統(tǒng)更離不開兼顧強(qiáng)實(shí)時和高算力的異構(gòu)多核國產(chǎn)智能芯片和國產(chǎn)基礎(chǔ)軟件。工業(yè)智能系統(tǒng)對基于智能芯片上的混合關(guān)鍵系統(tǒng)的需求尤為強(qiáng)勁?;旌详P(guān)鍵性
    的頭像 發(fā)表于 06-17 15:45 ?2973次閱讀
    一文解析嵌入式<b class='flag-5'>多核</b>異構(gòu)方案,東勝物聯(lián)RK3588<b class='flag-5'>多核</b>異構(gòu)核心板系列一覽

    TC3x多核使用與TC2x多核使用相比是否有任何限制?

    大家好,TC3x 多核使用與 TC2x 多核使用相比是否有任何限制? 舉例說明:TC3x 是否不允許在不同內(nèi)核運(yùn)行的代碼之間進(jìn)行多內(nèi)核共享數(shù)據(jù)交換?
    發(fā)表于 05-22 07:32

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

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

    risc-v多核芯片在AI方面的應(yīng)用

    多核芯片在AI方面的應(yīng)用具有廣闊的前景和巨大的潛力。隨著技術(shù)的不斷進(jìn)步和應(yīng)用的深入,我們期待看到更多基于RISC-V多核芯片的AI解決方案在實(shí)際應(yīng)用中得到驗(yàn)證和推廣。
    發(fā)表于 04-28 09:20

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品