并行計(jì)算機(jī)體系結(jié)構(gòu)簡(jiǎn)介

單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,*,第11章 并行計(jì)算機(jī)體系結(jié)構(gòu)簡(jiǎn)介,并行技術(shù)是針對(duì)大型機(jī)和巨型機(jī)的:,第一種:多處理器(一個(gè)處理器指一個(gè)單片,CPU,芯片),第二種:多機(jī)組成,目前通常把后者并行技術(shù)稱為并行計(jì)算機(jī)體系結(jié)構(gòu)11.1 并行計(jì)算機(jī)結(jié)構(gòu)分類,并行計(jì)算機(jī)系統(tǒng)可以分成兩大類:,SIMD,系統(tǒng)和,MIMD,系統(tǒng)SIMD,(,Single Instruction Multiple Data,),計(jì)算機(jī)可以同時(shí)在多個(gè)數(shù)據(jù)集上并行執(zhí)行同一條指令這種類型計(jì)算機(jī)包括陣列處理系統(tǒng)和向量處理機(jī)MIMD,(,Multiple Instruction Multiple Data,),計(jì)算機(jī)可以同時(shí)執(zhí)行多條指令并同時(shí)處理多數(shù)據(jù)集,它是目前并行技術(shù)的主流MIMD,計(jì)算機(jī)又分成多處理器系統(tǒng)和多計(jì)算機(jī)系統(tǒng)兩大類如圖,11,1,所示圖,11,1,并行計(jì)算機(jī)分類,11.2,SIMD,并行計(jì)算機(jī),SIMD,計(jì)算機(jī):用于解決使用向量和陣列這樣比較規(guī)整的數(shù)據(jù)結(jié)構(gòu)的復(fù)雜的科學(xué)計(jì)算和工程計(jì)算問(wèn)題這種計(jì)算機(jī)特點(diǎn):只有一個(gè)控制單元,每次只能執(zhí)行一條指令,但是每一條指令可同時(shí)對(duì)多個(gè)數(shù)據(jù)進(jìn)行操作。
SIMD,分為:陣列處理機(jī)和向量處理機(jī)1.陣列處理機(jī)(,array processor),特點(diǎn):一個(gè)單一的控制單元提供信號(hào)驅(qū)動(dòng)多個(gè)處理單元同時(shí)運(yùn)行,如圖,11,2,所示組成:,PU,由,1,個(gè)處理單元,PE,同它的局部存儲(chǔ)器組成控制部件方式:向全體,PE,“,播送”控制信號(hào),所有,PE,在同一個(gè)總的時(shí)鐘信號(hào)下同步工作PE,組成:,可以簡(jiǎn)單到每個(gè),PE,由,1,位,ALU,組成,也可大到,32,位,ALU,,,或者帶浮點(diǎn)計(jì)算能力的,ALU,圖,11,2,陣列處理機(jī)組成圖,2.向量處理機(jī),SIMD,計(jì)算機(jī)中另一類是向量處理機(jī)(,vector processor)70,年代前后,為了處理向量計(jì)算研發(fā)兩種類型的巨型計(jì)算機(jī)系統(tǒng):流水線處理機(jī)和并行處理機(jī)兩者比較優(yōu)缺點(diǎn):并行處理機(jī)的結(jié)構(gòu)復(fù)雜,成本高,因而流水線處理機(jī)發(fā)展很快它是處理向量計(jì)算的主要手段,因此已把它稱為向量處理機(jī)向量運(yùn)算舉例,假定有一個(gè)向量運(yùn)算:,D=A(B+C),式中,A,B,C,D,都是長(zhǎng)度為,N,的向量若按常規(guī)處理,則流水線不能連續(xù)流動(dòng)D1=A1(B1+C1),D2=A2(B2+C2),DN=AN(BN+CN),計(jì)算這個(gè)向量流水線要反復(fù)進(jìn)行加法和乘法的切換,即流水線功能切換。
如改變處理順序,先對(duì)所有元素執(zhí)行加法運(yùn)算(,N,個(gè)加法),然后對(duì)所有元素執(zhí)行乘法運(yùn)算(,N,個(gè)乘法),其順序如下:,B,i,+C,i,D,i,(i,從1到,N),D,i,A,i,D,i,(i,從1到,N),這樣就能保證流水線暢通Cray,1,的體系結(jié)構(gòu)與后來(lái)的,RISC,體系結(jié)構(gòu)類似,它成為了很好的研究范例,許多現(xiàn)代的向量超級(jí)計(jì)算機(jī)都受到它的影響圖,11,3,Cray,1,體系結(jié)構(gòu),Cray,1,機(jī)采用多功能部件結(jié)構(gòu),一共有,12,個(gè)功能部件,分為,4,組:,3,個(gè)向量整數(shù)單元部件(加、邏輯、移位),,3,個(gè)浮點(diǎn)標(biāo)量,/,向量浮點(diǎn)單元部件(加、乘、求倒數(shù)),,4,個(gè)標(biāo)量整數(shù)單元部件(加、邏輯、移位、“,1,”個(gè)數(shù)計(jì)數(shù)),,2,個(gè)地址功能部件(加、乘)這些功能部件本身都采取流水線結(jié)構(gòu),只要不發(fā)生寄存器沖突,這些功能部件都能并行工作11.3,MIMD,并行計(jì)算機(jī),MIMD,系統(tǒng)可以分為多處理器系統(tǒng)和多計(jì)算機(jī)系統(tǒng)兩大類多處理器系統(tǒng)特點(diǎn):所有,CPU,共享同一個(gè)物理內(nèi)存,每個(gè),CPU,不帶自己的內(nèi)存或少量帶有,由統(tǒng)一操作系統(tǒng)管理,整個(gè)物理內(nèi)存空間由許多內(nèi)存模塊組成多計(jì)算機(jī)系統(tǒng)特點(diǎn):每個(gè),CPU,都有自己的內(nèi)存,即自己獨(dú)立的物理地址空間;執(zhí)行自己的操作系統(tǒng),再加上對(duì)外通信的通信處理器。
圖,11,4,a,和圖,11,4,b,分別說(shuō)明了多處理器系統(tǒng)與多計(jì)算機(jī)系統(tǒng)的區(qū)別多處理器系統(tǒng)特點(diǎn):軟件設(shè)計(jì)簡(jiǎn)單,易實(shí)現(xiàn),硬件設(shè)計(jì)比較復(fù)雜多計(jì)算機(jī)系統(tǒng)特點(diǎn):正好相反圖,11,4,a,多處理器系統(tǒng),圖,11,4,b,多計(jì)算機(jī)系統(tǒng),MIMD并行計(jì)算機(jī)設(shè)計(jì)中的互連網(wǎng)絡(luò)問(wèn)題,MIMD并行計(jì)算機(jī)設(shè)計(jì)中面臨的問(wèn)題之一:互連網(wǎng)絡(luò)多計(jì)算機(jī)系統(tǒng)中用互連網(wǎng)絡(luò)把多個(gè)計(jì)算機(jī)連接是顯而易見(jiàn)的,多處理器系統(tǒng)同樣存在這個(gè)問(wèn)題11.3.1,多處理器系統(tǒng),根據(jù)共享內(nèi)存的實(shí)現(xiàn)方式可以把多處理器系統(tǒng)分成三類:,分別是一致性內(nèi)存訪問(wèn)(,Uniform Memory Access,UMA,),非一致性內(nèi)存訪問(wèn)(,Non Uniform Memory Access,NUMA,),基于,cache,的內(nèi)存訪問(wèn)(,Cache Only Memory Access,COMA,),1.,UMA,多處理器系統(tǒng),UMA,計(jì)算機(jī)的特點(diǎn)是,CPU,訪問(wèn)所有的內(nèi)存模塊的時(shí)間都相同,即讀取每個(gè)內(nèi)存字的時(shí)間是相等的訪問(wèn)速度按最慢內(nèi)存模塊為準(zhǔn)程序員不會(huì)感覺(jué)有速度問(wèn)題存在,這就是一致的含義這種一致性可以保證系統(tǒng)的性能可以預(yù)測(cè),也有利于程序員編寫(xiě)高效率代碼如圖,11,5,所示,圖,11,5,基于總線的多處理器系統(tǒng),每個(gè),CPU,都帶有,Cache,,,當(dāng)同時(shí)操作內(nèi)存中某一塊數(shù)據(jù)時(shí),會(huì)出現(xiàn),Cache,一致性問(wèn)題。
例如,,CPU1,與,CPU2,同時(shí)讀取內(nèi)存中一塊數(shù)據(jù)到自己的,Cache,中,,CPU1,先對(duì),Cache,內(nèi)容進(jìn)行了修改,此后,CPU2,讀自己,Cache,中數(shù)據(jù)就已成為舊內(nèi)容,因?yàn)?CPU1,修改自己的,Cache,后還沒(méi)有寫(xiě)回內(nèi)存,而,CPU2,讀的數(shù)據(jù)相對(duì),CPU1,來(lái)講是舊數(shù)據(jù)解決,Cache,一致性問(wèn)題有兩種方法,一種是監(jiān)聽(tīng)型的,Cache,(,本書(shū)不再詳述,請(qǐng)查閱有關(guān)書(shū)籍),另一種是“,MESI,”,Cache,一致性協(xié)議MESI,協(xié)議是一種比較常用的寫(xiě)回,Cache,一致性協(xié)議,它是用協(xié)議中用到的四種狀態(tài)的首字母(,M、E、S、I),來(lái)命名的目前,,Pentium 4,和許多其他的,CPU,都使用了,MESI,協(xié)議來(lái)監(jiān)聽(tīng)總線每個(gè),Cache,項(xiàng)都處于下面四種狀態(tài)之一:,(1)無(wú)效(,Invalid),該,Cache,項(xiàng)包含的數(shù)據(jù)無(wú)效2)共享(,Shared),多個(gè),Cache,中都有這塊數(shù)據(jù),內(nèi)存中的數(shù)據(jù)是最新的3)獨(dú)占(,Exclusive),沒(méi)有其他,Cache,包括這塊數(shù)據(jù),內(nèi)存中的數(shù)據(jù)是最新的4,)修改(,Modified,),該項(xiàng)的數(shù)據(jù)是有效的,內(nèi)存中的數(shù)據(jù)是無(wú)效的,而且在其他,Cache,中沒(méi)有該數(shù)據(jù)項(xiàng)的拷貝。
2.,NUMA,多處理器系統(tǒng),NUMA,系統(tǒng)也為所有,CPU,提供單一的地址空間,與,UMA,不同處是靠近,CPU,的內(nèi)存模塊的訪問(wèn)速度比其他的內(nèi)存模塊快得多NUMA,計(jì)算機(jī)的主要特點(diǎn):,(1)所有的,CPU,都看到一個(gè)單一的地址空間2)使用,LOAD,和,STORE,指令訪問(wèn)遠(yuǎn)程內(nèi)存3,)訪問(wèn)遠(yuǎn)程內(nèi)存比訪問(wèn)本地內(nèi)存慢NUMA,計(jì)算機(jī)也存在,Cache,一致性問(wèn)題,除前面介紹過(guò)的,MESI,協(xié)議外,還有一個(gè),SCI,(,Scalable Coherent Interface,,,可伸縮的一致性接口)的,Cache,一致性協(xié)議3.,COMA,多處理器系統(tǒng),在,COMA,系統(tǒng)中,把每個(gè),CPU,的主存看成,Cache,來(lái)處理,物理地址空間被劃分成,Cache,塊,這些塊根據(jù)需要在系統(tǒng)中來(lái)回移動(dòng),,Cache,塊不再有宿主計(jì)算機(jī)了它要解決的新問(wèn)題:如何對(duì),Cache,塊進(jìn)行尋址和,Cache,塊丟棄了最后一個(gè)拷貝怎么辦COMA,系統(tǒng)號(hào)稱比,NUMA,有更好的性能,但實(shí)際建造的,COMA,系統(tǒng)很少11.3.2 多計(jì)算機(jī)系統(tǒng),多處理器系統(tǒng)的缺點(diǎn):規(guī)模擴(kuò)展受到限制,通常百個(gè)左右,CPU,規(guī)模,同時(shí)要用大量硬件實(shí)現(xiàn),它的最大規(guī)模是幾百個(gè),CPU,以內(nèi)。
多計(jì)算機(jī)系統(tǒng)的特點(diǎn):每個(gè),CPU,都有自己的私有內(nèi)存,,CPU,不能訪問(wèn)其他,CPU,內(nèi)存,不能再用,LOAD,和,STORE,指令訪問(wèn)任意內(nèi)存模塊,而要用,send,和,receive,這樣的原語(yǔ)相互傳遞消息每個(gè)結(jié)點(diǎn)通過(guò)高性能互連網(wǎng)絡(luò)連接起來(lái),圖,11,6,多計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),多計(jì)算機(jī)系統(tǒng)一般分成兩大類:,MPP,和,COW1.MPP,大規(guī)模并行處理機(jī)(,Massively Parallel Processor),這是一種價(jià)值數(shù)百萬(wàn)到上億美元的超級(jí)計(jì)算機(jī)系統(tǒng)MPP,系統(tǒng)已取代了原有,SIMD,計(jì)算機(jī)、向量超級(jí)計(jì)算機(jī)和陣列處理機(jī),成為當(dāng)今大型機(jī)、巨型機(jī)的主流大多數(shù)的,MPP,系統(tǒng)都使用標(biāo)準(zhǔn)的,CPU,作為它們的處理器大的系統(tǒng)都使用幾百片以上的,CPU,集合而成,巨型機(jī)使用幾千片,CPUMPP,有三大特點(diǎn),第一為它使用了高性能的私用的互連網(wǎng)絡(luò),可以在低時(shí)延和高帶寬的條件下傳遞消息另一特點(diǎn)是它們具有強(qiáng)大的輸入輸出能力第三個(gè)特點(diǎn)是如何進(jìn)行容錯(cuò)在使用數(shù)千個(gè),CPU,的情況下,每星期有若干,CPU,失效是常見(jiàn)的事情如果,因一個(gè),CPU,失效,而導(dǎo)致運(yùn)行一天的任務(wù)被中止是不能容忍的MPP,系統(tǒng)還需要使用大量定制的軟件和庫(kù)。
2.,COW,工作站集群(,Cluster of Workstation),它是另一種多計(jì)算機(jī)系統(tǒng),也被稱為工作站網(wǎng)絡(luò)COW,系統(tǒng)是由數(shù)百臺(tái),PC,機(jī)或者工作站通過(guò)商用網(wǎng)絡(luò)連接在一起構(gòu)成的COW,系統(tǒng)主要有兩種:集中式和分散式,集中式的,COW,是裝在一個(gè)大機(jī)架上的工作站或者,PC,機(jī)的集群,這些計(jì)算機(jī)都是同構(gòu)的,而且除了網(wǎng)卡和磁盤(pán)之外沒(méi)有其他的外設(shè)這是當(dāng)今第五代計(jì)算機(jī)的模型11.3.3,集群機(jī)系統(tǒng),Cluster,1.Cluster簡(jiǎn)介,計(jì)算機(jī)體系結(jié)構(gòu)的研究就是當(dāng)時(shí)的超級(jí)計(jì)算機(jī)的研究,超級(jí)計(jì)算機(jī)共經(jīng)歷了五代第一代為早期的單芯片系統(tǒng),第二代為向量處理系統(tǒng),第三代為大規(guī)模并行處理系統(tǒng),第四代為共享內(nèi)存處理系統(tǒng),第五代為集群系統(tǒng),目前全球五百?gòu)?qiáng)超級(jí)計(jì)算機(jī)排名已經(jīng)有半數(shù)以上是集群式系統(tǒng)第三代計(jì)算機(jī)(,MPP,)與第五代計(jì)算機(jī):,相同:(,Cluster,)在體系結(jié)構(gòu)上是同構(gòu)的,同屬于分布式內(nèi)存處理方式(,DMP,Distributed Memory Processing,),差別:是否采用物美價(jià)廉的普通商品組件MPP,與,Cluster,從互連角度看,區(qū)別在于,MPP,使用專用高性能互連網(wǎng)絡(luò),而,Cluster,使用商用網(wǎng)絡(luò)。
從,CPU,角度看,MPP,要用單獨(dú)設(shè)計(jì)的高性能處理器,而,Cluster,采用高性能成品處理器,從價(jià)格方面看,,MPP,比,Cluster,要貴的多集群機(jī)系統(tǒng)的主要生命力來(lái)自其經(jīng)濟(jì)有效性,它采用高性能的普通日用品,IA,芯片、公開(kāi)系統(tǒng)的主板、免費(fèi)的公開(kāi)源碼操作系統(tǒng)與并行編程接口,使超級(jí)計(jì)算機(jī)系統(tǒng)的造價(jià)告別了天文數(shù)字,讓具有一般規(guī)模的公司都用的起基于集群機(jī)特點(diǎn),它的規(guī)??纱罂尚?.Linux集群的特點(diǎn),集群機(jī)根據(jù)采用的,操作系統(tǒng)不同而稱為某某集群,例如采用,Linux,就稱為,Linux,集群,采用,UNIX,就稱為,UNIX,集群下面介紹,Linux,集群的特點(diǎn)Linux,集群可分為三類:,第一類是高可用性集群,運(yùn)行于兩個(gè)或多個(gè)節(jié)點(diǎn)上,目的是在系統(tǒng)出現(xiàn)某些故障的情況下,仍能繼續(xù)對(duì)外提供服務(wù)第二類是負(fù)載均衡集群,目的是提供和節(jié)點(diǎn)個(gè)數(shù)成正比的負(fù)載能力,這種集群很適合提供大訪問(wèn)量的,Web,服務(wù)第三類是超級(jí)計(jì)算集群,按照計(jì)算關(guān)聯(lián)程度的不同,又可以分為兩種一種是任務(wù)片方式,要把計(jì)算任務(wù)分成任務(wù)片,再把任務(wù)片分配給各節(jié)點(diǎn),在各節(jié)點(diǎn)上分別計(jì)算后再把結(jié)果匯總,生成最終計(jì)算結(jié)果另一種是并行計(jì)算方式,節(jié)點(diǎn)之間在計(jì)算過(guò)程中大量地交換數(shù)據(jù),可以進(jìn)行具有強(qiáng)耦合關(guān)系的計(jì)算。
CSM,包含多種組件,使,Linux,群集的管理更加容易:,分布式管理服務(wù)器,事件應(yīng)答資源管理器遠(yuǎn)程硬件控制,配置文件管理,分布式,Shel。
