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