
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、借助 LabVIEW 應(yīng)對(duì)多核編程的本文列舉了多核編程開發(fā)們所的,并且著重介紹了 NI 公司 LabVIEW 圖形化編程環(huán)境的特點(diǎn),它使工程師與科學(xué)家們能夠以更簡便的方式迚行多核編程。具體說來,本文主要介紹了設(shè)計(jì)并行化應(yīng)用程序構(gòu)架、處理線程同步和調(diào)試多核程序等內(nèi)容。多核技術(shù)的未來在過去幾年,處理器制造商們一直通過單純地提高時(shí)鐘頻率來提高 CPU 性能。然而近年來,處理器技術(shù)的最新趨勢(shì)變?yōu)榱说暮恕R簿褪钦f處理器制造商們正在把若干個(gè) CPU 封裝在一塊上。除了目前已經(jīng)相對(duì)成雙核與四核處理器, el 公司甚至已宣稱將在五年內(nèi)推出 80 核的處理器!圖 1 CEO Paul O lini 展示了英特爾
2、公司的 80 核處理器原型(提供)似乎這種運(yùn)算性能的無限讓可以運(yùn)行最復(fù)雜的應(yīng)用程序這聽起來真是令人興奮。同時(shí),利用這種性能的巨大,您可以想像一下現(xiàn)有的程序?qū)⑦\(yùn)行得多快!你也許會(huì)懷疑這種事情并不會(huì)這么簡單吧?那么你猜對(duì)了,事實(shí)上確實(shí)如此。在多核處理器上開發(fā)程序要比在單核處理器上要得多。雖然多個(gè)應(yīng)用程序可以方便地運(yùn)行在不同處理器上,但是程序員們必須非常謹(jǐn)慎地編寫程序代碼,以有效利用多核技術(shù)。這意味著,在現(xiàn)今的多核處理器上運(yùn)行現(xiàn)有應(yīng)用程序,性能幾乎不會(huì)得到,即使有性能也是很小的。開發(fā)并行化代碼編寫并行程序的首要就是,確定程序中哪些部分能夠并行地執(zhí)行,然后通過代碼予以實(shí)現(xiàn)。這些可以并行執(zhí)行的代碼稱為線
3、程。因此,整個(gè)并行程序也被稱為多線程應(yīng)用程序。對(duì)于傳統(tǒng)的基于文本編程的程序員來講,他們需要在應(yīng)用程序中使用諸如 OpenMP 或IX 等 API,來明確定義這些線程。這是因?yàn)榛谖谋镜木幊谭绞皆臼谴袌?zhí)行的,所以要對(duì)并行的多線程代碼予以形象的表述是十分的。另一方面,利用 NI LabVIEW 的圖形化特點(diǎn),程序員們可以很容易地編寫和表述并行程序代碼。不僅如此,LabVIEW 還可以為代碼中的并行部分自動(dòng)生成線程,這個(gè)優(yōu)點(diǎn)可以很好地幫助相對(duì)缺少或者沒有編程背景的工程師和科學(xué)家們將時(shí)間用在解決實(shí)際問題中,而無需關(guān)注應(yīng)用程序的底層實(shí)現(xiàn)。圖 2 LabVIEW 和基于文本語言的多線程編程對(duì)比線程同步
4、其次,多核編程的第二個(gè)就是線程同步。當(dāng)某個(gè)應(yīng)用程序中有成千上百個(gè)線程在運(yùn)行時(shí),須確保所有線程都能夠協(xié)調(diào)地工作。例如 ,如果兩個(gè)或兩個(gè)以上的線程在同一時(shí)間企圖同一個(gè)內(nèi)存地址,那么將會(huì)發(fā)生數(shù)據(jù)。顯然,在應(yīng)用程序中識(shí)別可能產(chǎn)生的代碼是一項(xiàng)艱巨的任務(wù)。但是,通過在 LabVIEW 中以圖形化的方式創(chuàng)建程序框圖,您可以迅速開始實(shí)現(xiàn)具體的任務(wù),將構(gòu)想變?yōu)楝F(xiàn)實(shí),而無需考慮線程同步。圖 2 給出的 LabVIEW 程序中,兩個(gè)并行的圖形化代碼段在寫入文件時(shí)都需要訪問硬盤,而 LabVIEW 可以自動(dòng)地處理這兩個(gè)線程的同步。圖 3 LabVIEW 中的自動(dòng)線程同步功能的簡單展示調(diào)試大多數(shù)的程序在第一次運(yùn)行時(shí)都無
5、法按照開發(fā)者所想地來運(yùn)行。這種情冴無論對(duì)于基于單核還是多核編寫的應(yīng)用程序來說都是一樣。為了在邏輯上確定代碼段中的功能性錯(cuò)誤,用戶必須在開發(fā)環(huán)境中利用有效的調(diào)試工具來確保應(yīng)用程序執(zhí)行正確。對(duì)于多核程序來說,調(diào)試必然帶來了更大的:您不僅需要同時(shí)多段代碼的運(yùn)行,還需要確定每段代碼在哪個(gè)核上運(yùn)行。除此以外,如果您經(jīng)常編寫多線程應(yīng)用程序,還需要處理線程交換和線程饑餓等問題,這些都是需要在調(diào)試階段確定的。LabVIEW 中則包含了若干可以極大簡化多核程序調(diào)試復(fù)雜性的特性。具體而言,您可以利用化執(zhí)行工具,將程序并行化執(zhí)行的過程快速而簡單地以圖形化的方式迚行顯示(這是由于 LabVIEW 本質(zhì)上是基于數(shù)據(jù)流的)。例如圖 3 中的簡單應(yīng)用程序,在打開式顯示出來?;瘓?zhí)行功能后,您可以容易地將并行代碼的執(zhí)行過程以圖形化的方圖 4 在 LabVIEW 開發(fā)環(huán)境中對(duì)代碼運(yùn)行迚行圖形化執(zhí)行此外,LabVIEW 實(shí)時(shí)模塊同時(shí)還提供了在多核處理器上迚行確定性執(zhí)行的能力以及更細(xì)致的調(diào)試功能。作為 LabVIEW 的新成員,Real-Time Execution Trace Toolkit 允許程序員們以圖形化的方式顯示指定線程是在哪個(gè)核上運(yùn)行的,從而迅速確定線程饑餓和交換等問題。圖 5 LabVIEW 8.5 執(zhí)行工具包總結(jié)總而言乊,熟悉多
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆中國燃?xì)庑@招聘正式啟動(dòng)筆試參考題庫附帶答案詳解
- 保證函和保證合同范本
- 加工產(chǎn)品企業(yè)合同范本
- 養(yǎng)殖買賣合同范例
- 農(nóng)村購墓地合同范本
- 介紹股合同范本
- 勞動(dòng)聘用合同范本
- 親兄弟合伙合同范本
- pe管材購銷合同范本
- 虧損分擔(dān)合同范例
- 股票入門-k線圖基礎(chǔ)知識(shí)
- 全國大全身份證前六位、區(qū)號(hào)、郵編-編碼
- 種植林業(yè)可行性研究報(bào)告
- 金和物業(yè)公司簡介
- 廣東省五年一貫制考試英語真題
- 2023年中央廣播電視總臺(tái)校園招聘筆試參考題庫附帶答案詳解
- 項(xiàng)目部崗位廉潔風(fēng)險(xiǎn)情景教育案例
- 小學(xué)英語-What a dream教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 消防栓定期檢查記錄表
- 員工面試登記表通用模板
- 單位(個(gè)人或集體)約談表
評(píng)論
0/150
提交評(píng)論