第10章多核系統(tǒng)架構(gòu)與編程_第1頁(yè)
第10章多核系統(tǒng)架構(gòu)與編程_第2頁(yè)
第10章多核系統(tǒng)架構(gòu)與編程_第3頁(yè)
第10章多核系統(tǒng)架構(gòu)與編程_第4頁(yè)
第10章多核系統(tǒng)架構(gòu)與編程_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 1/11/11第10章 多核系統(tǒng)結(jié)構(gòu)與編程張晨曦張晨曦 劉依劉依www.A微信公眾號(hào): arch3652 2/11/1110.1 多核系統(tǒng)結(jié)構(gòu)的需求10.2 多核系統(tǒng)結(jié)構(gòu)10.3 基于多核的并行程序設(shè)計(jì)10.4 多核編程實(shí)例3 3/11/111. 顯著提升系統(tǒng)的計(jì)算能力,同時(shí)每個(gè)內(nèi)核的主頻可以比以前低系統(tǒng)的總體功耗增加不大2. 多核處理器采用了與單CPU相同的硬件體系結(jié)構(gòu),用戶在提升計(jì)算能力的同時(shí)無(wú)需進(jìn)行任何硬件上的改變。多核技術(shù)的好處10.1 多核系統(tǒng)結(jié)構(gòu)的需求現(xiàn)在,90%以上的個(gè)人計(jì)算機(jī)其處理器都是多核的。從2006年以來(lái),在Intel和AMD兩大處理器巨頭的大力推動(dòng)下,多核的普及已成

2、為必然。4 4/11/111. 隨著芯片密度和時(shí)鐘頻率的不斷提高,系統(tǒng)的功耗卻呈現(xiàn)出指數(shù)性增長(zhǎng)的趨勢(shì):增加用戶的使用成本散熱等諸多難題2. 摩爾定律的指引:初期的幾十MHz到近幾年IBM的Power 6達(dá)到了4.75GHz;2002年以來(lái),CPU主頻提升的困難越來(lái)越大;從2006年開(kāi)始,Intel和AMD都推出了多款面向服務(wù)器、工作站的多核處理器。10.1.1 功耗與散熱問(wèn)題10.1 多核系統(tǒng)結(jié)構(gòu)的需求5 5/11/11控制芯片密度也是一種有效的降低功耗的方法:為了降低系統(tǒng)功耗,Cache占整個(gè)芯片面積的百分比比重越來(lái)越大。10.1.1 功耗與散熱問(wèn)題隨著芯片內(nèi)晶體管密度的增加,其面積逐漸超過(guò)

3、了50%10.1 多核系統(tǒng)結(jié)構(gòu)的需求6 6/11/111. 處理器設(shè)計(jì)中,組織的變化主要集中在增加指令級(jí)級(jí)并行度上:流水線技術(shù)、超標(biāo)量技術(shù)、同時(shí)多線程技術(shù)等2. 缺點(diǎn):流水段越多,邏輯電路、互連結(jié)構(gòu)以及控制信號(hào)就越復(fù)雜;超標(biāo)量組織也是通過(guò)增加并行流水線的個(gè)數(shù)來(lái)提高性能,需要更復(fù)雜的邏輯管理沖突和調(diào)度指令使用資源;SMT技術(shù)中的線程在一組流水線上調(diào)度的復(fù)雜度也往往會(huì)限制線程的個(gè)數(shù)和可有效利用的流水線的個(gè)數(shù),性能的改進(jìn)也是有限的。10.1.2 并行度問(wèn)題10.1 多核系統(tǒng)結(jié)構(gòu)的需求7 7/11/111. 目前的絕大部分應(yīng)用軟件,特別是互聯(lián)網(wǎng)應(yīng)用軟件都是面向多用戶的多線程軟件.2. 現(xiàn)在的數(shù)據(jù)庫(kù)管理

4、軟件、數(shù)據(jù)庫(kù)應(yīng)用等服務(wù)器軟件,一般要并行處理大量的、相對(duì)獨(dú)立的事務(wù)。多線程的本地應(yīng)用、多進(jìn)程應(yīng)用Java應(yīng)用、多實(shí)例應(yīng)用3. 超線程(Hyper Threading)和SMT技術(shù)只能在一定程度上支持多線程或多實(shí)例應(yīng)用, 本質(zhì)上還只是在一個(gè)執(zhí)行核上運(yùn)行。當(dāng)線程個(gè)數(shù)較多時(shí),就需要多核架構(gòu)或并行處理機(jī)這樣的處理系統(tǒng)了。10.1.3應(yīng)用軟件的問(wèn)題10.1 多核系統(tǒng)結(jié)構(gòu)的需求8 8/11/111. 受CPU主頻、功耗、散熱和超標(biāo)量等技術(shù)復(fù)雜度的限制,以及多線程應(yīng)用軟件需求的驅(qū)動(dòng),微處理器架構(gòu)發(fā)展到多核成為一種必然的趨勢(shì).2. 多核架構(gòu)也是摩爾定律驅(qū)動(dòng)的結(jié)果,出現(xiàn)多核處理器最根本的原因是人們對(duì)計(jì)算能力永無(wú)

5、止境的追求。3. 盡管這些年來(lái),處理器從來(lái)沒(méi)有停止過(guò)前進(jìn)的腳步,但每一次性能的突破,換來(lái)的只是對(duì)更高性能的需求,特別是在油氣勘探、氣象預(yù)報(bào)、虛擬現(xiàn)實(shí)、人工智能等高度依賴于計(jì)算能力的場(chǎng)合,對(duì)性能的渴求更迫切。10.1 多核系統(tǒng)結(jié)構(gòu)的需求(總結(jié))10.1 多核系統(tǒng)結(jié)構(gòu)的需求9 9/11/111. 多核技術(shù)是指在一枚處理器中集成兩個(gè)或多個(gè)完整的計(jì)算內(nèi)核,從而提高計(jì)算能力的技術(shù)。2. 按計(jì)算內(nèi)核的對(duì)等與否,多核系統(tǒng)結(jié)構(gòu)又可以分為同構(gòu)多核結(jié)構(gòu)和異構(gòu)多核結(jié)構(gòu)兩種。計(jì)算內(nèi)核相同,地位對(duì)等的稱為同構(gòu)多核,反之稱為異構(gòu)多核。10.2 多核系統(tǒng)結(jié)構(gòu)需要注意的是,多核系統(tǒng)結(jié)構(gòu)與多處理器不同,多處理器指多個(gè)CPU,每

6、個(gè)CPU可以是單核或多核的。1010/11/111. 多核處理器的組織架構(gòu)主要包括:片上核心處理器的個(gè)數(shù)、多少級(jí)Cache、共享Cache的容量和內(nèi)部互連結(jié)構(gòu)等。2. 多核系統(tǒng)的4種典型的組織結(jié)構(gòu):專用L1 Cache多核系統(tǒng)結(jié)構(gòu)專用L2 Cache多核系統(tǒng)結(jié)構(gòu)共享L2 Cache多核系統(tǒng)結(jié)構(gòu)共享L3 Cache多核系統(tǒng)結(jié)構(gòu)10.2.1 多核的組織架構(gòu)10.2 多核系統(tǒng)結(jié)構(gòu)1111/11/11(A)專用L1 Cache多核系統(tǒng)結(jié)構(gòu)早期多核處理器的一種組織架構(gòu),現(xiàn)在在嵌入式芯片中仍能見(jiàn)到。在這種組織方式中,只有一級(jí)片內(nèi)Cache,每個(gè)核帶有自己的專用L1 Cache,分成指令Cache和數(shù)據(jù)Ca

7、che。這種組織的一個(gè)典型實(shí)例是ARM11 MPCore。10.2 多核系統(tǒng)結(jié)構(gòu)1212/11/11(B)專用L2 Cache多核系統(tǒng)結(jié)構(gòu)專用L2 Cache多核系統(tǒng)結(jié)構(gòu)無(wú)片內(nèi)共享Cache,在這種結(jié)構(gòu)里,片內(nèi)有足夠的可用面積容納多個(gè)L2 Cache。這種組織的一個(gè)典型實(shí)例是AMD Opteron。10.2 多核系統(tǒng)結(jié)構(gòu)1313/11/11(C)共享L2 Cache多核系統(tǒng)結(jié)構(gòu)共享L2 Cache多核系統(tǒng)結(jié)構(gòu)采用了和專用L2 Cache多核結(jié)構(gòu)類似的存儲(chǔ)空間分配,不同的是該處理器架構(gòu)擁有共享L2 Cache,Intel的Core Duo處理器就是這種結(jié)構(gòu)。10.2 多核系統(tǒng)結(jié)構(gòu)1414/11/

8、11(D)共享L3 Cache多核系統(tǒng)結(jié)構(gòu)共享L3 Cache多核系統(tǒng)結(jié)構(gòu)出于性能上的考慮,分離出一個(gè)獨(dú)立的三級(jí)Cache,每個(gè)CPU計(jì)算內(nèi)核除了擁有專用的一、二級(jí)Cache外,還共享L3 Cache; Intel Core i7就是這種結(jié)構(gòu)。10.2 多核系統(tǒng)結(jié)構(gòu)1515/11/11片內(nèi)Cache是一種常見(jiàn)的技術(shù)和改善性能的方法。使用共享的片內(nèi)L2 Cache 相對(duì)于專用Cache而言有如下幾個(gè)優(yōu)點(diǎn):共享片內(nèi)L2 Cache可以減少整個(gè)系統(tǒng)的不命中概率;多個(gè)核所共享的數(shù)據(jù)在共享Cache級(jí)上不需要復(fù)制;局部線程能使用更多的Cache空間;通過(guò)共享Cache能很容易地實(shí)現(xiàn)計(jì)算內(nèi)核間的通信;使用

9、共享的L2 Cache將一致性問(wèn)題限制在L1 Cache層次上,具有性能上的優(yōu)點(diǎn)。10.2.1 多核的組織架構(gòu)10.2 多核系統(tǒng)結(jié)構(gòu)1616/11/11多核CPU產(chǎn)品有很多,幾乎所有的廠商都推出了自己的多核產(chǎn)品。本節(jié)介紹幾個(gè)典型的多核系統(tǒng)結(jié)構(gòu)實(shí)例:1. Intel x86多核系統(tǒng)結(jié)構(gòu)Core DuoIntel Core i72. 面向嵌入式應(yīng)用的ARM多核系統(tǒng)結(jié)構(gòu)10.2.2 多核系統(tǒng)結(jié)構(gòu)實(shí)例10.2 多核系統(tǒng)結(jié)構(gòu)1717/11/111. 2006年推出的Core Duo是全球第一個(gè)低耗電的雙核處理器(低于25瓦特)。2. Core Duo實(shí)現(xiàn)了兩個(gè)x86超標(biāo)量處理器,共享二級(jí)Cache,Co

10、re Duo的每個(gè)核有自己的專用L1 Cache:一個(gè)32KB的指令Cache和一個(gè)32KB的數(shù)據(jù)Cache。Intel x86多核系統(tǒng)結(jié)構(gòu) - Core Duo10.2 多核系統(tǒng)結(jié)構(gòu)1818/11/11Intel x86多核系統(tǒng)結(jié)構(gòu) - Intel Core i7 i7是Intel于2008年11月推出的,實(shí)現(xiàn)了4個(gè)x86 SMT計(jì)算核,每個(gè)計(jì)算核帶一個(gè)專用的L2 Cache、一個(gè)共享的L3 Cache。 在Core i7中,每個(gè)核擁有自己的專用L2 Cache,4個(gè)核共享一個(gè)8MB的L3 Cache。10.2 多核系統(tǒng)結(jié)構(gòu)1919/11/11ARM11 MPCore是基于ARM11處理器系

11、列的多核產(chǎn)品,最多可配置4個(gè)處理器,每個(gè)處理器帶有私有的L1指令Cache和L1數(shù)據(jù)Cache。ARM多核系統(tǒng)結(jié)構(gòu)10.2 多核系統(tǒng)結(jié)構(gòu)2020/11/111. 多核給我們提供了更經(jīng)濟(jì)的計(jì)算能力。但是,這種能力能否善加利用,還要取決于軟件。2. 如果不針對(duì)多核進(jìn)行軟件開(kāi)發(fā),不僅多核提供的強(qiáng)大計(jì)算能力得不到利用,相反還有可能不如單核CPU好。3. 針對(duì)多核和多線程的軟件開(kāi)發(fā)將是未來(lái)十年軟件開(kāi)發(fā)的主要挑戰(zhàn),即基于多核的并行程序設(shè)計(jì): 多核處理器的基本目的是通過(guò)多個(gè)任務(wù)的并行執(zhí)行提高應(yīng)用程序的性能;盡量分解成多個(gè)獨(dú)立任務(wù),每個(gè)任務(wù)實(shí)現(xiàn)為一個(gè)線程,從而將多個(gè)任務(wù)分布到多個(gè)計(jì)算核上執(zhí)行,減少程序的執(zhí)行時(shí)

12、間。10.3 基于多核的并行程序設(shè)計(jì)2121/11/11目前幾種最重要的并行編程模型:數(shù)據(jù)并行模型:編程級(jí)別比較高,編程相對(duì)簡(jiǎn)單,但它僅適用于數(shù)據(jù)并行問(wèn)題;消息傳遞模型:編程級(jí)別相對(duì)較低,但消息傳遞編程模型可以有更廣泛的應(yīng)用范圍;共享變量:采用多線程的方式,非常適合SMP共享內(nèi)存多處理系統(tǒng)和多核處理器體系結(jié)構(gòu)。10.3.1 并行編程模型10.3 基于多核的并行程序設(shè)計(jì)2222/11/11數(shù)據(jù)并行和消息傳遞編程模式的對(duì)比10.3.1 并行編程模型對(duì)比內(nèi)容對(duì)比內(nèi)容數(shù)據(jù)并行數(shù)據(jù)并行消息傳遞消息傳遞編程級(jí)別高低適用的并行機(jī)類型SIMD/SPMDSIMD/MIMD/SPMD/MPMD執(zhí)行效率效率依賴于編

13、譯器高地址空間單一多個(gè)存儲(chǔ)類型共享內(nèi)存分布式或共享內(nèi)存通信的實(shí)現(xiàn)編譯器負(fù)責(zé)程序員負(fù)責(zé)問(wèn)題類數(shù)據(jù)并行類問(wèn)題數(shù)據(jù)并行任務(wù)并行目前狀況缺乏高效的編譯器支持使用廣泛10.3 基于多核的并行程序設(shè)計(jì)2323/11/11并行程序是通過(guò)并行語(yǔ)言來(lái)表達(dá)的,并行語(yǔ)言的產(chǎn)生主要有三種方式:設(shè)計(jì)全新的并行語(yǔ)言;擴(kuò)展原來(lái)的串行語(yǔ)言的語(yǔ)法成分使它支持并行特征;不改變串行語(yǔ)言僅為串行語(yǔ)言提供可調(diào)用的并行庫(kù)。10.3.2 并行語(yǔ)言10.3 基于多核的并行程序設(shè)計(jì)2424/11/11并行算法是給定并行模型的一種具體、明確的解決方法和步驟。1. 根據(jù)運(yùn)算的基本對(duì)象的不同:數(shù)值并行算法(數(shù)值計(jì)算)非數(shù)值并行算法(符號(hào)計(jì)算)2.

14、根據(jù)進(jìn)程之間的依賴關(guān)系同步并行算法(步調(diào)一致)異步并行算法(步調(diào)、進(jìn)展互不相同)純并行算法(各部分之間沒(méi)有關(guān)系)10.3.3 并行算法10.3 基于多核的并行程序設(shè)計(jì)2525/11/11根據(jù)并行計(jì)算任務(wù)的大小:粗粒度并行算法(包含較長(zhǎng)程序段和較大計(jì)算量)細(xì)粒度并行算法(包含較短程序段和較小計(jì)算量)介于二者之間的中粒度并行算法10.3.3 并行算法從本質(zhì)上說(shuō),不同的并行算法是根據(jù)問(wèn)題類別的不同和并行機(jī)體系結(jié)構(gòu)的特點(diǎn)產(chǎn)生出來(lái)的,一個(gè)好的并行算法要既能很好地匹配并行計(jì)算機(jī)硬件體系結(jié)構(gòu)的特點(diǎn),又能反映問(wèn)題內(nèi)在并行性。10.3 基于多核的并行程序設(shè)計(jì)2626/11/11程序開(kāi)發(fā)人員開(kāi)發(fā)實(shí)際的并行程序主要

15、方法是串行語(yǔ)言加并行庫(kù)的擴(kuò)展,其中比較典型的方法有兩種:共享存儲(chǔ)的方法主要是采用多線程的方式,其主要程序開(kāi)發(fā)環(huán)境就是已經(jīng)成為事實(shí)工業(yè)標(biāo)準(zhǔn)的OpenMP,目前主要是商業(yè)編譯器提供對(duì)該語(yǔ)言的支持;消息傳遞開(kāi)發(fā)則包括MPI和PVM等開(kāi)源開(kāi)發(fā)環(huán)境。10.4 多核編程實(shí)例本小結(jié)重點(diǎn)介紹基于OpenMP的多核編程環(huán)境。2727/11/111. OpenMP(Open Multi-Processing)是一套支持跨平臺(tái)共享內(nèi)存方式的多線程并發(fā)的編程API,使用C,C+和Fortran語(yǔ)言,可以在大多數(shù)的處理器體系和操作系統(tǒng)中運(yùn)行。2. OpenMP采用可移植的、可擴(kuò)展的模型,為程序員提供了一個(gè)簡(jiǎn)單而靈活的開(kāi)發(fā)平臺(tái)。3. OpenMP提供了對(duì)并行算法的高層的抽象描述,程序員通過(guò)在源代碼中加入專用的pragma來(lái)指明自己的意圖,由此編譯器可以自動(dòng)將程序進(jìn)行并行化,并在必要之處加入同步互斥以及通信。10.4 多核編程實(shí)例2828/11/11一個(gè)簡(jiǎn)單的OpenMP程序:#pragma omp parallel for 這條語(yǔ)句是用來(lái)指定后面的for循環(huán)語(yǔ)句變成并行執(zhí)行的,當(dāng)然for循環(huán)里的內(nèi)容必須滿足可以并行執(zhí)行,即每次循環(huán)互不相干,后一次循環(huán)不依賴于前面的循環(huán)。1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論