分布存儲(chǔ)并行系統(tǒng)中的共享存儲(chǔ)編程環(huán)境課件_第1頁(yè)
分布存儲(chǔ)并行系統(tǒng)中的共享存儲(chǔ)編程環(huán)境課件_第2頁(yè)
分布存儲(chǔ)并行系統(tǒng)中的共享存儲(chǔ)編程環(huán)境課件_第3頁(yè)
分布存儲(chǔ)并行系統(tǒng)中的共享存儲(chǔ)編程環(huán)境課件_第4頁(yè)
分布存儲(chǔ)并行系統(tǒng)中的共享存儲(chǔ)編程環(huán)境課件_第5頁(yè)
已閱讀5頁(yè),還剩97頁(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)介

分布存儲(chǔ)并行系統(tǒng)中的

共享存儲(chǔ)編程環(huán)境唐志敏tang@中國(guó)科學(xué)院計(jì)算技術(shù)研究所分布存儲(chǔ)并行系統(tǒng)中的

共享存儲(chǔ)編程環(huán)境唐志敏1提綱什么是分布式共享存儲(chǔ)JIAJIA分布式共享存儲(chǔ)系統(tǒng)JIAJIA系統(tǒng)的性能JIAJIA系統(tǒng)的應(yīng)用JIAJIA的編程界面和性能優(yōu)化lssc機(jī)群上的JIAJIA提綱什么是分布式共享存儲(chǔ)2幾種常見(jiàn)的并行計(jì)算系統(tǒng)對(duì)稱多處理(SMP)工作站和服務(wù)器集中式共享內(nèi)存,處理機(jī)數(shù)一般不多大規(guī)模并行機(jī)(MPP)與機(jī)群系統(tǒng)(Cluster)分布式存儲(chǔ),處理機(jī)數(shù)可以較多一般采用PVM,MPI等消息傳遞編程環(huán)境也可以實(shí)現(xiàn)分布式共享存儲(chǔ)(或虛擬共享存儲(chǔ))每個(gè)結(jié)點(diǎn)可以是一個(gè)SMP系統(tǒng)由工作站、服務(wù)器構(gòu)成的網(wǎng)絡(luò)并行計(jì)算環(huán)境分布式存儲(chǔ),可能是異構(gòu)的可以用消息傳遞,可以用虛擬共享存儲(chǔ)幾種常見(jiàn)的并行計(jì)算系統(tǒng)對(duì)稱多處理(SMP)工作站和服務(wù)器3體系結(jié)構(gòu):分布存儲(chǔ)與集中存儲(chǔ)多地址空間消息傳遞通信編程、移植困難可伸縮性好單地址空間共享存儲(chǔ)通信編程容易、程序易移植可伸縮性一般體系結(jié)構(gòu):分布存儲(chǔ)與集中存儲(chǔ)多地址空間單地址空間4編程模型:共享存儲(chǔ)與消息傳遞并行計(jì)算機(jī)程序設(shè)計(jì)的兩種主要方式并行意味著計(jì)算過(guò)程的劃分:子任務(wù)、子問(wèn)題同一問(wèn)題的各子任務(wù)間有聯(lián)系:同步、數(shù)據(jù)交換共享存儲(chǔ)與消息傳遞提供了不同的數(shù)據(jù)交換方式共享存儲(chǔ)數(shù)據(jù)不必劃分,每個(gè)子任務(wù)都能看到完整的數(shù)據(jù)需要同步,不同子任務(wù)都按確定的次序訪問(wèn)數(shù)據(jù)消息傳遞數(shù)據(jù)也要?jiǎng)澐?,每個(gè)子任務(wù)只能看到一部分?jǐn)?shù)據(jù)任務(wù)通過(guò)發(fā)送或接收消息來(lái)交換數(shù)據(jù)、保持同步編程模型:共享存儲(chǔ)與消息傳遞并行計(jì)算機(jī)程序設(shè)計(jì)的兩種主要方式5分布式共享存儲(chǔ)系統(tǒng)在分布存儲(chǔ)系統(tǒng)上提供共享存儲(chǔ)抽象分布式共享存儲(chǔ)系統(tǒng)在分布存儲(chǔ)系統(tǒng)上提供共享存儲(chǔ)抽象6分布式共享存儲(chǔ)(DSM)系統(tǒng)結(jié)合共享存儲(chǔ)的易編程和分布式存儲(chǔ)的易擴(kuò)展在分布式系統(tǒng)的基礎(chǔ)上通過(guò)軟件或軟硬結(jié)合的方法提供共享存儲(chǔ)的編程環(huán)境硬件DSM系統(tǒng):DASH,FLASH,Alewife,DDM商品化系統(tǒng):KSR-1,Origin2000,NUMA-Q軟件DSM系統(tǒng):IVY,Midway,Munin,Quarks,TreadMarks,CVM,JIAJIA,…又稱為虛擬共享存儲(chǔ)系統(tǒng)、共享虛擬存儲(chǔ)系統(tǒng)硬軟件結(jié)合的DSM系統(tǒng):Shrimp,Typhoon,Simple-COMA,...分布式共享存儲(chǔ)(DSM)系統(tǒng)結(jié)合共享存儲(chǔ)的易編程和分布式存儲(chǔ)7軟件DSM系統(tǒng)與消息傳遞系統(tǒng)硬件平臺(tái)相同,都是分布式存儲(chǔ)的并行系統(tǒng)最低層的數(shù)據(jù)交換手段只能是消息傳遞數(shù)據(jù)在物理上仍然分布在各個(gè)結(jié)點(diǎn)的存儲(chǔ)器內(nèi)軟件分布式共享存儲(chǔ)提供一個(gè)邏輯上統(tǒng)一的虛擬地址空間自動(dòng)識(shí)別非本地存儲(chǔ)訪問(wèn),并轉(zhuǎn)換為消息傳遞性能:與消息傳遞相當(dāng)與精雕細(xì)刻的消息傳遞相比,可能會(huì)多送消息自動(dòng)地緩存遠(yuǎn)程數(shù)據(jù),有效地利用訪存局部性軟件DSM系統(tǒng)與消息傳遞系統(tǒng)硬件平臺(tái)相同,都是分布式存儲(chǔ)的并8軟件DSM系統(tǒng)JIAJIA建立在分布存儲(chǔ)并行系統(tǒng)上的共享存儲(chǔ)環(huán)境把用戶從繁瑣的數(shù)據(jù)劃分和通信組織中解放出來(lái)使多臺(tái)工作站的存儲(chǔ)器真正聯(lián)接成了一個(gè)大容量的共享空間在國(guó)外的同類系統(tǒng)(如CVM,TreadMarks等)系統(tǒng)中,共享內(nèi)存容量受限于單機(jī)內(nèi)存的容量簡(jiǎn)單精巧、開(kāi)銷(xiāo)小、效率高新穎的cache一致性協(xié)議能有效地緩存遠(yuǎn)程數(shù)據(jù)以運(yùn)行庫(kù)的方式支持共享存儲(chǔ)和并行計(jì)算軟件DSM系統(tǒng)JIAJIA建立在分布存儲(chǔ)并行系統(tǒng)上的共享存儲(chǔ)9JIAJIA的主要特點(diǎn)基于主流的操作系統(tǒng)平臺(tái),系統(tǒng)移植方便是一個(gè)純用戶級(jí)軟件系統(tǒng),不修改操作系統(tǒng)Solaris,AIX,Linux,SUNOS,IRIX,WinNT/9x已運(yùn)行于:SPARC機(jī)群、Alpha機(jī)群、IBMSP2、曙光系列、Pentium微機(jī)機(jī)群等平臺(tái)支持C和FORTRAN編程接口可方便地移植已有的共享存儲(chǔ)應(yīng)用程序SPLASH2,NASParallelBenchmark一批實(shí)際應(yīng)用程序可以根據(jù)用戶的需要,增加新的功能提供適當(dāng)?shù)南鬟f函數(shù)jia_send,jia_recvJIAJIA的主要特點(diǎn)基于主流的操作系統(tǒng)平臺(tái),系統(tǒng)移植方便10JIAJIA共享空間的組織CC-NUMA結(jié)構(gòu)P1P3P4P2CacheHomeHomeHomeHomeCacheCacheCache0m-1m2m-12m3m-13m4m-1Non-UniformMemoryAccessJIAJIA共享空間的組織P1P3P4P2CacheHome11JIAJIA共享空間的組織地址映射home0m-1homem2m-1home(n-1)mnm-1P1P2PncachecachecachecachecachecacheJIAJIA共享空間的組織home0homemhome(n-12基于鎖的Cache一致性協(xié)議支持域存儲(chǔ)一致性(ScopeConsistency)模型對(duì)程序員的“額外”要求用臨界區(qū)或其它同步機(jī)制保護(hù)對(duì)共享數(shù)據(jù)的沖突訪問(wèn)(即對(duì)同一共享單元的兩個(gè)訪問(wèn)且其中至少有一個(gè)是寫(xiě)訪問(wèn))對(duì)同一個(gè)共享數(shù)據(jù)的沖突訪問(wèn)需用同一把鎖保護(hù)采用寫(xiě)無(wú)效(Write-Invalidate)協(xié)議采用多寫(xiě)(Multiple-Writer)協(xié)議基于鎖的Cache一致性協(xié)議支持域存儲(chǔ)一致性(ScopeC13JIAJIA系統(tǒng)的性能(1)性能測(cè)試程序Water:水分子模擬程序,來(lái)自SPLASHBarnes:解決天體物理中的N-body問(wèn)題,SPLASHLU(blocked):用分塊算法作LU分解,SPLASH2IS:桶算法整數(shù)排序,來(lái)自NASParallelBenchmarkEP:EmbarrassinglyParallel程序,來(lái)自NASTSP:貨郎擔(dān)問(wèn)題,來(lái)自TreadMarksBenchmarksSOR:逐次超松弛法,來(lái)自TreadMarksILINK:一個(gè)遺傳鏈分析的實(shí)際應(yīng)用問(wèn)題,來(lái)自RiceMM:矩陣乘法JIAJIA系統(tǒng)的性能(1)性能測(cè)試程序14JIAJIA系統(tǒng)的性能(2)測(cè)試環(huán)境SPARCstation工作站網(wǎng)絡(luò)IBMSP2Dawning1000A,2000太極和清華的Ultra工作站機(jī)群性能比較的對(duì)象CVM,TreadMarksPVM測(cè)試語(yǔ)言C,優(yōu)化選項(xiàng):gcc-O2FORTRAN,優(yōu)化選項(xiàng):xlf-O3JIAJIA系統(tǒng)的性能(2)測(cè)試環(huán)境15曙光1000A上的8機(jī)加速比曙光1000A上的8機(jī)加速比16太極工作站機(jī)群上的加速比太極工作站機(jī)群上的加速比17PVM與JIAJIA的性能比較

(曙光1000A,8個(gè)結(jié)點(diǎn))PVM與JIAJIA的性能比較

(曙光1000A,8個(gè)結(jié)點(diǎn))18性能小結(jié)JIAJIA可以把多個(gè)結(jié)點(diǎn)的內(nèi)存連成大共享空間,解決單機(jī)無(wú)法解決的大問(wèn)題JIAJIA的性能與消息傳遞系統(tǒng)相當(dāng)JIAJIA是可擴(kuò)展的嗎?最近在曙光2000-II上做了128個(gè)CPU的試算實(shí)驗(yàn)性能小結(jié)JIAJIA可以把多個(gè)結(jié)點(diǎn)的內(nèi)存連成大共享空間,解決19利用JIAJIA移植的應(yīng)用程序FDTD,電磁場(chǎng)模擬串行程序來(lái)自中科院電子所,需要大內(nèi)存相關(guān)工作在HPCNEurope’99上作了報(bào)告遙感圖像處理:非監(jiān)督分類和幾何精糾正來(lái)自中科院地理所IAP18,全球氣候模擬來(lái)自中科院大氣物理研究所有SGIPowerChallenge上的并行版本膠體質(zhì)量計(jì)算程序來(lái)自中科院高能物理研究所利用JIAJIA移植的應(yīng)用程序FDTD,電磁場(chǎng)模擬20電磁場(chǎng)模擬:FDTD來(lái)自中國(guó)科學(xué)院電子學(xué)研究所用FDTD計(jì)算加載波導(dǎo)的諧振頻率問(wèn)題時(shí)域有限差分算法:FDTDFiniteDifferenceTimeDomain用于電磁場(chǎng)輻射和散射、微波和毫米波電路以及電磁兼容和電磁劑量學(xué)等方面的計(jì)算FDTD的特點(diǎn)較大的內(nèi)存容量、較長(zhǎng)的計(jì)算時(shí)間適合分布式共享存儲(chǔ)環(huán)境下的并行計(jì)算電磁場(chǎng)模擬:FDTD來(lái)自中國(guó)科學(xué)院電子學(xué)研究所21FDTD分塊并行算法塊邊界,易于平衡負(fù)載,計(jì)算/通信比高FDTD分塊并行算法塊邊界,易于平衡負(fù)載,計(jì)算/通信比高22FDTD在JIAJIA系統(tǒng)上的并行化串行程序中: DOk=1,NEy(i,j,k)=cey(i,j,k)*(-dey(i,j,k)*Ey(i,j,k) +(Hx(i,j,k)-Hx(i,j,k-1))/dlz -(Hz(i,j,k)-Hz(i-1,j,k))/dlx)消息傳遞系統(tǒng)中: DOk=1,N/4Ey2(i,j,k)=cey2(i,j,k)*(-dey2(i,j,k)*Ey2(i,j,k) +(Hx2(i,j,k)-Hx2(i,j,k-1))/dlz -(Hz2(i,j,k)-Hz2(i-1,j,k))/dlx)JIAJIA系統(tǒng)中: DOk=N/4,N/2Ey(i,j,k)=cey(i,j,k)*(-dey(i,j,k)*Ey(i,j,k) +(Hx(i,j,k)-Hx(i,j,k-1))/dlz -(Hz(i,j,k)-Hz(i-1,j,k))/dlx)Hx1(I,j,N/4)Receive_from_Proc1,Send-to-Proc3FDTD在JIAJIA系統(tǒng)上的并行化串行程序中: DOk23曙光1000A上FDTD試算結(jié)果曙光1000A上FDTD試算結(jié)果24遙感圖像處理集成環(huán)境硬件平臺(tái):微機(jī)機(jī)群(百兆交換式以太網(wǎng))8臺(tái)PII400,內(nèi)存容量256MB軟件平臺(tái):Linux操作系統(tǒng),JIAJIA系統(tǒng)主要特點(diǎn)利用分布式并行處理及大內(nèi)存的優(yōu)勢(shì),提高圖像處理的速度,性能價(jià)格比高針對(duì)遙感圖像處理的特殊要求,提供了一組圖象操作“指令”供用戶選用可利用多條指令批處理,如糾正、分類、水體提取等遙感圖像處理集成環(huán)境硬件平臺(tái):微機(jī)機(jī)群(百兆交換式以太網(wǎng))25性能優(yōu)勢(shì)舉例基于3次多項(xiàng)式的圖像糾正皤陽(yáng)湖的圖像數(shù)據(jù):13200*15000串行時(shí)間:25:08.73(1508.73秒)8機(jī)并行時(shí)間:94秒;加速比為168CPU的Origin2000上需要2分鐘圖像分類7個(gè)6546*5728的圖像串行時(shí)間:21:25.70(1285.70秒)8機(jī)并行時(shí)間:114秒;加速比為11.3性能優(yōu)勢(shì)舉例基于3次多項(xiàng)式的圖像糾正26JIAJIA的程序設(shè)計(jì)接口(1)基本函數(shù)調(diào)用jia_init(argc,argv),jia_exit()jia_alloc(size),jia_alloc2(size,blocksize),jia_alloc2p(size,proc),jia_alloc3(size,block,startp)jia_lock(lockid),jia_unlock(lockid)jia_barrier()JIAJIA的程序設(shè)計(jì)接口(1)基本函數(shù)調(diào)用27JIAJIA的程序設(shè)計(jì)接口(2)輔助函數(shù)調(diào)用jia_setcv(condv),jia_resetcv(),jia_waitcv()jia_wait()jia_error(errinfo),jia_clock()jia_send(buf,len,topid,tag)jia_recv(buf,len,frompid,tag)jia_reduce(send,recv,c,op,root)jia_bcast(buf,len,root)JIAJIA的程序設(shè)計(jì)接口(2)輔助函數(shù)調(diào)用28JIAJIA的程序設(shè)計(jì)接口(3)使用多少個(gè)結(jié)點(diǎn)?系統(tǒng)配置文件.jiahosts指示用哪些結(jié)點(diǎn)全局共享變量jiahosts給出參與運(yùn)算的結(jié)點(diǎn)數(shù)本結(jié)點(diǎn)的序號(hào)每個(gè)結(jié)點(diǎn)都有一個(gè)私有變量jiapid指示結(jié)點(diǎn)號(hào)并行編程模式:SPMD用jiapid控制計(jì)算任務(wù)在各結(jié)點(diǎn)間的劃分JIAJIA的程序設(shè)計(jì)接口(3)使用多少個(gè)結(jié)點(diǎn)?29JIAJIA的程序設(shè)計(jì)接口(4)系統(tǒng)參數(shù)配置:.jiaconfig文件Pagesize=…Cachepages=…系統(tǒng)功能配置:jia_config函數(shù)voidjia_config(func,value)HMIG:Home遷移功能PREFETCH:預(yù)取功能WVEC:寫(xiě)向量功能JIAJIA的程序設(shè)計(jì)接口(4)系統(tǒng)參數(shù)配置:.jiacon30例子:積分求p串行程序h=1.0/N;pi=0;for(i=1;i<=N;i++){ temp=(i-0.5)*h; pi=pi+4/(1+temp*temp);}pi=pi*h;printfpi;例子:積分求p串行程序31JIAJIA積分求pMPIjia_init(argc,argv);pi=jia_alloc(8);h=1.0/N;pi=0;for(i=jiapid+1;i<=N;i+=jiahosts) {mypi=...}jia_lock(1); pi+=mypi;jia_unlock(1);printfpi;jia_exit();MPI_Init(argc,argv);MPI_Comm_size();MPI_Comm_rand();h=1.0/N;for(i=myid+1;i<=N;i+=numprocs) {mypi=...}MPI_Reduce(mypi,pi,1 ...);printfpi;MPI_Finalize();JIAJIA積分求pMPIjia_in32并行處理的過(guò)程:矩陣乘法AB=C的過(guò)程可分為四個(gè)獨(dú)立的部分: AiB=Ci,i=1,2,3,4每部分包含的運(yùn)算可由一臺(tái)處理機(jī)單獨(dú)完成矩陣較大時(shí),需分開(kāi)存放,即Ai,Bi,Ci放在結(jié)點(diǎn)i上每結(jié)點(diǎn)的工作分為AiB1,AiB2,AiB3,AiB4四個(gè)部分ABCX=A1A2A3A4C1C2C3C4B1B2B3B4并行處理的過(guò)程:矩陣乘法AB=C的過(guò)程可分為四個(gè)獨(dú)33矩陣乘法的共享存儲(chǔ)程序double(*a)[N],(*b)[N],(*c)[N];a=jia_alloc2(N*N*8,N*N*8/jiahosts);b=jia_alloc2(...);c=jia_alloc(...);begin=N*jiapid/jiahosts;end=N*(jiapid+1)/jiahosts;for(i=begin;i<end;i++) for(j=0;j<N;j++) for(k=0;k<N;k++) c[i][j]+=a[i][k]*b[k][j];計(jì)算的組織與數(shù)據(jù)的組織是分離的而在消息傳遞程序中,Bi需要傳送矩陣乘法的共享存儲(chǔ)程序double(*a)[N],(*b)34共享數(shù)據(jù)與私有數(shù)據(jù)只有通過(guò)jia_alloc分配空間的數(shù)據(jù)才是共享的共享數(shù)據(jù)本質(zhì)上是通過(guò)指針訪問(wèn)的在C和Fortran中可以將指針訪問(wèn)轉(zhuǎn)換為常規(guī)訪問(wèn)其它數(shù)據(jù),C外部量、Fortran公共塊,是私有的如何定義Fortran公共塊為共享數(shù)據(jù)?原公共塊:Common/c1/array(n,n)可重寫(xiě)為:Common/c1/parray增加說(shuō)明:Pointer(parray,array)分配空間:parray=jia_alloc(n*n*8)后續(xù)訪問(wèn)仍可通過(guò)array(i,j)進(jìn)行共享數(shù)據(jù)與私有數(shù)據(jù)只有通過(guò)jia_alloc分配空間的數(shù)據(jù)才35共享內(nèi)存的分配最簡(jiǎn)單的方式:不管它的具體位置jia_alloc(size_in_byte),以頁(yè)為單位輪流分配系統(tǒng)會(huì)自動(dòng)將頁(yè)面移動(dòng)到使用最多的結(jié)點(diǎn)處用戶也可以自行控制共享數(shù)據(jù)的具體位置jia_alloc2(size,block),以block為單位輪流分配jia_alloc3(size,block,startp),指定起始結(jié)點(diǎn)如能做到擁有者計(jì)算,有可能達(dá)到更好的性能例:按行塊均勻地分布NN矩陣Apointer(pa,a) //real*8a(N,N)pa=jia_alloc2(N*N*8,N*N*8/jiahosts)共享內(nèi)存的分配最簡(jiǎn)單的方式:不管它的具體位置36JIAJIA的內(nèi)存分配方法靈活的共享空間分配功能:允許用戶控制數(shù)據(jù)分布P0P2P3P1jia_alloc3(0x1800000,0x600000,0)JIAJIA的內(nèi)存分配方法靈活的共享空間分配功能:允許用戶控37均勻地分段分配P0P2P3P1jia_alloc3(0x1800000,0x300000,0)均勻地分段分配P0P2P3P1jia_alloc3(0x1838不在P2上分配P0P2P3P1jia_alloc3(0x1800000,0x800000,3)不在P2上分配P0P2P3P1jia_alloc3(0x1839僅在后兩個(gè)結(jié)點(diǎn)上分配P0P2P3P1jia_alloc3(0x1800000,0xc00000,2)僅在后兩個(gè)結(jié)點(diǎn)上分配P0P2P3P1jia_alloc3(040提高性能的方法提高性能的方法增加HOME的局部性增加Cache的局部性例:矩陣乘法共享內(nèi)存的分配:按行平均分配,按塊平均分配算法;中積法,內(nèi)積法Cache大小的影響提高性能的方法提高性能的方法41對(duì)共享數(shù)據(jù)的互斥訪問(wèn)互斥的要求:修改共享數(shù)據(jù)時(shí)不能被打斷任一時(shí)刻只有一個(gè)結(jié)點(diǎn)(進(jìn)程)修改共享數(shù)據(jù)為什么需要保證互斥?設(shè)x=0為共享變量 Proc1 Proc2語(yǔ)句 x=x+5 x=x+6代碼 LoadR1,x LoadR1,x AddR1,#5 AddR1,#6 StoreR1,x StoreR1,x若先執(zhí)行P1的3條指令后執(zhí)行P2的指令,x=11若P1與P2的指令交替執(zhí)行,則x=6,結(jié)果不正確對(duì)共享數(shù)據(jù)的互斥訪問(wèn)互斥的要求:修改共享數(shù)據(jù)時(shí)不能被打斷42同步操作的兩種基本形式通過(guò)加鎖和開(kāi)鎖操作構(gòu)成臨界區(qū)P1和P2修改共享數(shù)據(jù)的語(yǔ)句都改成:jia_lock(i); x=x+...; jia_unlock(i);其中i為鎖的編號(hào),一把鎖通常保護(hù)一組數(shù)據(jù)另外一種常用的同步方式:柵障(barrier)所有參與計(jì)算的結(jié)點(diǎn)在某一點(diǎn)取齊,先到達(dá)柵障的結(jié)點(diǎn)等待其余結(jié)點(diǎn),全到后再執(zhí)行后續(xù)語(yǔ)句例如,結(jié)點(diǎn)0為共享變量x賦初值,其它結(jié)點(diǎn)等待 if(jiapid==0)x=0; jia_barrier();//經(jīng)后,所有結(jié)點(diǎn)都看到x==0同步操作的兩種基本形式通過(guò)加鎖和開(kāi)鎖操作構(gòu)成臨界區(qū)43JIAJIA的程序設(shè)計(jì)接口(5)鎖同步機(jī)制值的傳播P1jia_lock(0)x=1jia_unlock(0)jia_lock(1)y=1jia_unlock(1)P2jia_lock(1)a=xb=yjia_unlock(1)P3jia_lock(0)a=xb=yjia_unlock(0)執(zhí)行后:P2:a=0,b=1;P3:a=1,b=0x=1y=1JIAJIA的程序設(shè)計(jì)接口(5)鎖同步機(jī)制值的傳播P1P2P44JIAJIA的程序設(shè)計(jì)接口(6)Barrier同步機(jī)制值的傳播P1x=1jia_barrier()a=xb=yc=zP2y=1jia_barrier()a=xb=yc=z執(zhí)行后:P1,P2,P3:a=b=c=1x=1,y=1,z=1P3z=1jia_barrier()a=xb=yc=zJIAJIA的程序設(shè)計(jì)接口(6)Barrier同步機(jī)制值的傳45其它需要注意的問(wèn)題沖突訪問(wèn):多個(gè)結(jié)點(diǎn)修改同一個(gè)變量x=1; y=2;jia_barrier(); jia_barrier();a=y; b=x;jia_barrier(); jia_barrier();x=3; y=4;輸入輸出和文件操作控制臺(tái)輸入只能由0號(hào)結(jié)點(diǎn)上的進(jìn)程接收其它結(jié)點(diǎn)的標(biāo)準(zhǔn)輸出被重定向到apps-?.log中一個(gè)文件只能由一個(gè)結(jié)點(diǎn)打開(kāi)和讀寫(xiě)其它需要注意的問(wèn)題沖突訪問(wèn):多個(gè)結(jié)點(diǎn)修改同一個(gè)變量46LSSC機(jī)群上的JIAJIA位置:/usr/local/jiajiainclude,lib,Makefile.sample作業(yè)提交bsub-n處理器數(shù)“jiajia程序名參數(shù)表”LSSC機(jī)群上的JIAJIA位置:/usr/local/ji47JIAJIA系統(tǒng)成果應(yīng)用及影響在20多個(gè)國(guó)家或地區(qū)的80多所大學(xué)或研究機(jī)構(gòu)得到試用Brazil,Canada,Croatia,France,Germany,HongKong,Iran,Israel,Italy,Japan,Korea,Mexico,Netherlands,Norway,Singapore,Spain,Sweden,Taiwan,UK,USAPrincetonUniv.,UCDavis,USCNationalAutonomousUniversityofMexicoUniversityofHongKong國(guó)內(nèi),在曙光系列并行機(jī)、太極Ultra工作站機(jī)群、國(guó)防科大Alpha工作站機(jī)群得到應(yīng)用JIAJIA系統(tǒng)成果應(yīng)用及影響在20多個(gè)國(guó)家或地區(qū)的80多所48未來(lái)的工作實(shí)現(xiàn)專用的快速遠(yuǎn)程存儲(chǔ)訪問(wèn)網(wǎng)絡(luò)目標(biāo):遠(yuǎn)程訪問(wèn)延遲不超過(guò)本地延遲的3-4倍支持通用的共享存儲(chǔ)編程環(huán)境如CRAY,Origin2000,OpenMP等DSM系統(tǒng)的高可用性并行程序在單結(jié)點(diǎn)出錯(cuò)時(shí),自動(dòng)進(jìn)行負(fù)載重分配基于JIAJIA的遙感圖像快速處理實(shí)用系統(tǒng)快速處理能力、大內(nèi)存、友好的界面為災(zāi)害的實(shí)時(shí)監(jiān)測(cè)與快速預(yù)報(bào)作出貢獻(xiàn)未來(lái)的工作實(shí)現(xiàn)專用的快速遠(yuǎn)程存儲(chǔ)訪問(wèn)網(wǎng)絡(luò)49有關(guān)文檔有關(guān)文檔50演講完畢,謝謝觀看!演講完畢,謝謝觀看!51分布存儲(chǔ)并行系統(tǒng)中的

共享存儲(chǔ)編程環(huán)境唐志敏tang@中國(guó)科學(xué)院計(jì)算技術(shù)研究所分布存儲(chǔ)并行系統(tǒng)中的

共享存儲(chǔ)編程環(huán)境唐志敏52提綱什么是分布式共享存儲(chǔ)JIAJIA分布式共享存儲(chǔ)系統(tǒng)JIAJIA系統(tǒng)的性能JIAJIA系統(tǒng)的應(yīng)用JIAJIA的編程界面和性能優(yōu)化lssc機(jī)群上的JIAJIA提綱什么是分布式共享存儲(chǔ)53幾種常見(jiàn)的并行計(jì)算系統(tǒng)對(duì)稱多處理(SMP)工作站和服務(wù)器集中式共享內(nèi)存,處理機(jī)數(shù)一般不多大規(guī)模并行機(jī)(MPP)與機(jī)群系統(tǒng)(Cluster)分布式存儲(chǔ),處理機(jī)數(shù)可以較多一般采用PVM,MPI等消息傳遞編程環(huán)境也可以實(shí)現(xiàn)分布式共享存儲(chǔ)(或虛擬共享存儲(chǔ))每個(gè)結(jié)點(diǎn)可以是一個(gè)SMP系統(tǒng)由工作站、服務(wù)器構(gòu)成的網(wǎng)絡(luò)并行計(jì)算環(huán)境分布式存儲(chǔ),可能是異構(gòu)的可以用消息傳遞,可以用虛擬共享存儲(chǔ)幾種常見(jiàn)的并行計(jì)算系統(tǒng)對(duì)稱多處理(SMP)工作站和服務(wù)器54體系結(jié)構(gòu):分布存儲(chǔ)與集中存儲(chǔ)多地址空間消息傳遞通信編程、移植困難可伸縮性好單地址空間共享存儲(chǔ)通信編程容易、程序易移植可伸縮性一般體系結(jié)構(gòu):分布存儲(chǔ)與集中存儲(chǔ)多地址空間單地址空間55編程模型:共享存儲(chǔ)與消息傳遞并行計(jì)算機(jī)程序設(shè)計(jì)的兩種主要方式并行意味著計(jì)算過(guò)程的劃分:子任務(wù)、子問(wèn)題同一問(wèn)題的各子任務(wù)間有聯(lián)系:同步、數(shù)據(jù)交換共享存儲(chǔ)與消息傳遞提供了不同的數(shù)據(jù)交換方式共享存儲(chǔ)數(shù)據(jù)不必劃分,每個(gè)子任務(wù)都能看到完整的數(shù)據(jù)需要同步,不同子任務(wù)都按確定的次序訪問(wèn)數(shù)據(jù)消息傳遞數(shù)據(jù)也要?jiǎng)澐?,每個(gè)子任務(wù)只能看到一部分?jǐn)?shù)據(jù)任務(wù)通過(guò)發(fā)送或接收消息來(lái)交換數(shù)據(jù)、保持同步編程模型:共享存儲(chǔ)與消息傳遞并行計(jì)算機(jī)程序設(shè)計(jì)的兩種主要方式56分布式共享存儲(chǔ)系統(tǒng)在分布存儲(chǔ)系統(tǒng)上提供共享存儲(chǔ)抽象分布式共享存儲(chǔ)系統(tǒng)在分布存儲(chǔ)系統(tǒng)上提供共享存儲(chǔ)抽象57分布式共享存儲(chǔ)(DSM)系統(tǒng)結(jié)合共享存儲(chǔ)的易編程和分布式存儲(chǔ)的易擴(kuò)展在分布式系統(tǒng)的基礎(chǔ)上通過(guò)軟件或軟硬結(jié)合的方法提供共享存儲(chǔ)的編程環(huán)境硬件DSM系統(tǒng):DASH,FLASH,Alewife,DDM商品化系統(tǒng):KSR-1,Origin2000,NUMA-Q軟件DSM系統(tǒng):IVY,Midway,Munin,Quarks,TreadMarks,CVM,JIAJIA,…又稱為虛擬共享存儲(chǔ)系統(tǒng)、共享虛擬存儲(chǔ)系統(tǒng)硬軟件結(jié)合的DSM系統(tǒng):Shrimp,Typhoon,Simple-COMA,...分布式共享存儲(chǔ)(DSM)系統(tǒng)結(jié)合共享存儲(chǔ)的易編程和分布式存儲(chǔ)58軟件DSM系統(tǒng)與消息傳遞系統(tǒng)硬件平臺(tái)相同,都是分布式存儲(chǔ)的并行系統(tǒng)最低層的數(shù)據(jù)交換手段只能是消息傳遞數(shù)據(jù)在物理上仍然分布在各個(gè)結(jié)點(diǎn)的存儲(chǔ)器內(nèi)軟件分布式共享存儲(chǔ)提供一個(gè)邏輯上統(tǒng)一的虛擬地址空間自動(dòng)識(shí)別非本地存儲(chǔ)訪問(wèn),并轉(zhuǎn)換為消息傳遞性能:與消息傳遞相當(dāng)與精雕細(xì)刻的消息傳遞相比,可能會(huì)多送消息自動(dòng)地緩存遠(yuǎn)程數(shù)據(jù),有效地利用訪存局部性軟件DSM系統(tǒng)與消息傳遞系統(tǒng)硬件平臺(tái)相同,都是分布式存儲(chǔ)的并59軟件DSM系統(tǒng)JIAJIA建立在分布存儲(chǔ)并行系統(tǒng)上的共享存儲(chǔ)環(huán)境把用戶從繁瑣的數(shù)據(jù)劃分和通信組織中解放出來(lái)使多臺(tái)工作站的存儲(chǔ)器真正聯(lián)接成了一個(gè)大容量的共享空間在國(guó)外的同類系統(tǒng)(如CVM,TreadMarks等)系統(tǒng)中,共享內(nèi)存容量受限于單機(jī)內(nèi)存的容量簡(jiǎn)單精巧、開(kāi)銷(xiāo)小、效率高新穎的cache一致性協(xié)議能有效地緩存遠(yuǎn)程數(shù)據(jù)以運(yùn)行庫(kù)的方式支持共享存儲(chǔ)和并行計(jì)算軟件DSM系統(tǒng)JIAJIA建立在分布存儲(chǔ)并行系統(tǒng)上的共享存儲(chǔ)60JIAJIA的主要特點(diǎn)基于主流的操作系統(tǒng)平臺(tái),系統(tǒng)移植方便是一個(gè)純用戶級(jí)軟件系統(tǒng),不修改操作系統(tǒng)Solaris,AIX,Linux,SUNOS,IRIX,WinNT/9x已運(yùn)行于:SPARC機(jī)群、Alpha機(jī)群、IBMSP2、曙光系列、Pentium微機(jī)機(jī)群等平臺(tái)支持C和FORTRAN編程接口可方便地移植已有的共享存儲(chǔ)應(yīng)用程序SPLASH2,NASParallelBenchmark一批實(shí)際應(yīng)用程序可以根據(jù)用戶的需要,增加新的功能提供適當(dāng)?shù)南鬟f函數(shù)jia_send,jia_recvJIAJIA的主要特點(diǎn)基于主流的操作系統(tǒng)平臺(tái),系統(tǒng)移植方便61JIAJIA共享空間的組織CC-NUMA結(jié)構(gòu)P1P3P4P2CacheHomeHomeHomeHomeCacheCacheCache0m-1m2m-12m3m-13m4m-1Non-UniformMemoryAccessJIAJIA共享空間的組織P1P3P4P2CacheHome62JIAJIA共享空間的組織地址映射home0m-1homem2m-1home(n-1)mnm-1P1P2PncachecachecachecachecachecacheJIAJIA共享空間的組織home0homemhome(n-63基于鎖的Cache一致性協(xié)議支持域存儲(chǔ)一致性(ScopeConsistency)模型對(duì)程序員的“額外”要求用臨界區(qū)或其它同步機(jī)制保護(hù)對(duì)共享數(shù)據(jù)的沖突訪問(wèn)(即對(duì)同一共享單元的兩個(gè)訪問(wèn)且其中至少有一個(gè)是寫(xiě)訪問(wèn))對(duì)同一個(gè)共享數(shù)據(jù)的沖突訪問(wèn)需用同一把鎖保護(hù)采用寫(xiě)無(wú)效(Write-Invalidate)協(xié)議采用多寫(xiě)(Multiple-Writer)協(xié)議基于鎖的Cache一致性協(xié)議支持域存儲(chǔ)一致性(ScopeC64JIAJIA系統(tǒng)的性能(1)性能測(cè)試程序Water:水分子模擬程序,來(lái)自SPLASHBarnes:解決天體物理中的N-body問(wèn)題,SPLASHLU(blocked):用分塊算法作LU分解,SPLASH2IS:桶算法整數(shù)排序,來(lái)自NASParallelBenchmarkEP:EmbarrassinglyParallel程序,來(lái)自NASTSP:貨郎擔(dān)問(wèn)題,來(lái)自TreadMarksBenchmarksSOR:逐次超松弛法,來(lái)自TreadMarksILINK:一個(gè)遺傳鏈分析的實(shí)際應(yīng)用問(wèn)題,來(lái)自RiceMM:矩陣乘法JIAJIA系統(tǒng)的性能(1)性能測(cè)試程序65JIAJIA系統(tǒng)的性能(2)測(cè)試環(huán)境SPARCstation工作站網(wǎng)絡(luò)IBMSP2Dawning1000A,2000太極和清華的Ultra工作站機(jī)群性能比較的對(duì)象CVM,TreadMarksPVM測(cè)試語(yǔ)言C,優(yōu)化選項(xiàng):gcc-O2FORTRAN,優(yōu)化選項(xiàng):xlf-O3JIAJIA系統(tǒng)的性能(2)測(cè)試環(huán)境66曙光1000A上的8機(jī)加速比曙光1000A上的8機(jī)加速比67太極工作站機(jī)群上的加速比太極工作站機(jī)群上的加速比68PVM與JIAJIA的性能比較

(曙光1000A,8個(gè)結(jié)點(diǎn))PVM與JIAJIA的性能比較

(曙光1000A,8個(gè)結(jié)點(diǎn))69性能小結(jié)JIAJIA可以把多個(gè)結(jié)點(diǎn)的內(nèi)存連成大共享空間,解決單機(jī)無(wú)法解決的大問(wèn)題JIAJIA的性能與消息傳遞系統(tǒng)相當(dāng)JIAJIA是可擴(kuò)展的嗎?最近在曙光2000-II上做了128個(gè)CPU的試算實(shí)驗(yàn)性能小結(jié)JIAJIA可以把多個(gè)結(jié)點(diǎn)的內(nèi)存連成大共享空間,解決70利用JIAJIA移植的應(yīng)用程序FDTD,電磁場(chǎng)模擬串行程序來(lái)自中科院電子所,需要大內(nèi)存相關(guān)工作在HPCNEurope’99上作了報(bào)告遙感圖像處理:非監(jiān)督分類和幾何精糾正來(lái)自中科院地理所IAP18,全球氣候模擬來(lái)自中科院大氣物理研究所有SGIPowerChallenge上的并行版本膠體質(zhì)量計(jì)算程序來(lái)自中科院高能物理研究所利用JIAJIA移植的應(yīng)用程序FDTD,電磁場(chǎng)模擬71電磁場(chǎng)模擬:FDTD來(lái)自中國(guó)科學(xué)院電子學(xué)研究所用FDTD計(jì)算加載波導(dǎo)的諧振頻率問(wèn)題時(shí)域有限差分算法:FDTDFiniteDifferenceTimeDomain用于電磁場(chǎng)輻射和散射、微波和毫米波電路以及電磁兼容和電磁劑量學(xué)等方面的計(jì)算FDTD的特點(diǎn)較大的內(nèi)存容量、較長(zhǎng)的計(jì)算時(shí)間適合分布式共享存儲(chǔ)環(huán)境下的并行計(jì)算電磁場(chǎng)模擬:FDTD來(lái)自中國(guó)科學(xué)院電子學(xué)研究所72FDTD分塊并行算法塊邊界,易于平衡負(fù)載,計(jì)算/通信比高FDTD分塊并行算法塊邊界,易于平衡負(fù)載,計(jì)算/通信比高73FDTD在JIAJIA系統(tǒng)上的并行化串行程序中: DOk=1,NEy(i,j,k)=cey(i,j,k)*(-dey(i,j,k)*Ey(i,j,k) +(Hx(i,j,k)-Hx(i,j,k-1))/dlz -(Hz(i,j,k)-Hz(i-1,j,k))/dlx)消息傳遞系統(tǒng)中: DOk=1,N/4Ey2(i,j,k)=cey2(i,j,k)*(-dey2(i,j,k)*Ey2(i,j,k) +(Hx2(i,j,k)-Hx2(i,j,k-1))/dlz -(Hz2(i,j,k)-Hz2(i-1,j,k))/dlx)JIAJIA系統(tǒng)中: DOk=N/4,N/2Ey(i,j,k)=cey(i,j,k)*(-dey(i,j,k)*Ey(i,j,k) +(Hx(i,j,k)-Hx(i,j,k-1))/dlz -(Hz(i,j,k)-Hz(i-1,j,k))/dlx)Hx1(I,j,N/4)Receive_from_Proc1,Send-to-Proc3FDTD在JIAJIA系統(tǒng)上的并行化串行程序中: DOk74曙光1000A上FDTD試算結(jié)果曙光1000A上FDTD試算結(jié)果75遙感圖像處理集成環(huán)境硬件平臺(tái):微機(jī)機(jī)群(百兆交換式以太網(wǎng))8臺(tái)PII400,內(nèi)存容量256MB軟件平臺(tái):Linux操作系統(tǒng),JIAJIA系統(tǒng)主要特點(diǎn)利用分布式并行處理及大內(nèi)存的優(yōu)勢(shì),提高圖像處理的速度,性能價(jià)格比高針對(duì)遙感圖像處理的特殊要求,提供了一組圖象操作“指令”供用戶選用可利用多條指令批處理,如糾正、分類、水體提取等遙感圖像處理集成環(huán)境硬件平臺(tái):微機(jī)機(jī)群(百兆交換式以太網(wǎng))76性能優(yōu)勢(shì)舉例基于3次多項(xiàng)式的圖像糾正皤陽(yáng)湖的圖像數(shù)據(jù):13200*15000串行時(shí)間:25:08.73(1508.73秒)8機(jī)并行時(shí)間:94秒;加速比為168CPU的Origin2000上需要2分鐘圖像分類7個(gè)6546*5728的圖像串行時(shí)間:21:25.70(1285.70秒)8機(jī)并行時(shí)間:114秒;加速比為11.3性能優(yōu)勢(shì)舉例基于3次多項(xiàng)式的圖像糾正77JIAJIA的程序設(shè)計(jì)接口(1)基本函數(shù)調(diào)用jia_init(argc,argv),jia_exit()jia_alloc(size),jia_alloc2(size,blocksize),jia_alloc2p(size,proc),jia_alloc3(size,block,startp)jia_lock(lockid),jia_unlock(lockid)jia_barrier()JIAJIA的程序設(shè)計(jì)接口(1)基本函數(shù)調(diào)用78JIAJIA的程序設(shè)計(jì)接口(2)輔助函數(shù)調(diào)用jia_setcv(condv),jia_resetcv(),jia_waitcv()jia_wait()jia_error(errinfo),jia_clock()jia_send(buf,len,topid,tag)jia_recv(buf,len,frompid,tag)jia_reduce(send,recv,c,op,root)jia_bcast(buf,len,root)JIAJIA的程序設(shè)計(jì)接口(2)輔助函數(shù)調(diào)用79JIAJIA的程序設(shè)計(jì)接口(3)使用多少個(gè)結(jié)點(diǎn)?系統(tǒng)配置文件.jiahosts指示用哪些結(jié)點(diǎn)全局共享變量jiahosts給出參與運(yùn)算的結(jié)點(diǎn)數(shù)本結(jié)點(diǎn)的序號(hào)每個(gè)結(jié)點(diǎn)都有一個(gè)私有變量jiapid指示結(jié)點(diǎn)號(hào)并行編程模式:SPMD用jiapid控制計(jì)算任務(wù)在各結(jié)點(diǎn)間的劃分JIAJIA的程序設(shè)計(jì)接口(3)使用多少個(gè)結(jié)點(diǎn)?80JIAJIA的程序設(shè)計(jì)接口(4)系統(tǒng)參數(shù)配置:.jiaconfig文件Pagesize=…Cachepages=…系統(tǒng)功能配置:jia_config函數(shù)voidjia_config(func,value)HMIG:Home遷移功能PREFETCH:預(yù)取功能WVEC:寫(xiě)向量功能JIAJIA的程序設(shè)計(jì)接口(4)系統(tǒng)參數(shù)配置:.jiacon81例子:積分求p串行程序h=1.0/N;pi=0;for(i=1;i<=N;i++){ temp=(i-0.5)*h; pi=pi+4/(1+temp*temp);}pi=pi*h;printfpi;例子:積分求p串行程序82JIAJIA積分求pMPIjia_init(argc,argv);pi=jia_alloc(8);h=1.0/N;pi=0;for(i=jiapid+1;i<=N;i+=jiahosts) {mypi=...}jia_lock(1); pi+=mypi;jia_unlock(1);printfpi;jia_exit();MPI_Init(argc,argv);MPI_Comm_size();MPI_Comm_rand();h=1.0/N;for(i=myid+1;i<=N;i+=numprocs) {mypi=...}MPI_Reduce(mypi,pi,1 ...);printfpi;MPI_Finalize();JIAJIA積分求pMPIjia_in83并行處理的過(guò)程:矩陣乘法AB=C的過(guò)程可分為四個(gè)獨(dú)立的部分: AiB=Ci,i=1,2,3,4每部分包含的運(yùn)算可由一臺(tái)處理機(jī)單獨(dú)完成矩陣較大時(shí),需分開(kāi)存放,即Ai,Bi,Ci放在結(jié)點(diǎn)i上每結(jié)點(diǎn)的工作分為AiB1,AiB2,AiB3,AiB4四個(gè)部分ABCX=A1A2A3A4C1C2C3C4B1B2B3B4并行處理的過(guò)程:矩陣乘法AB=C的過(guò)程可分為四個(gè)獨(dú)84矩陣乘法的共享存儲(chǔ)程序double(*a)[N],(*b)[N],(*c)[N];a=jia_alloc2(N*N*8,N*N*8/jiahosts);b=jia_alloc2(...);c=jia_alloc(...);begin=N*jiapid/jiahosts;end=N*(jiapid+1)/jiahosts;for(i=begin;i<end;i++) for(j=0;j<N;j++) for(k=0;k<N;k++) c[i][j]+=a[i][k]*b[k][j];計(jì)算的組織與數(shù)據(jù)的組織是分離的而在消息傳遞程序中,Bi需要傳送矩陣乘法的共享存儲(chǔ)程序double(*a)[N],(*b)85共享數(shù)據(jù)與私有數(shù)據(jù)只有通過(guò)jia_alloc分配空間的數(shù)據(jù)才是共享的共享數(shù)據(jù)本質(zhì)上是通過(guò)指針訪問(wèn)的在C和Fortran中可以將指針訪問(wèn)轉(zhuǎn)換為常規(guī)訪問(wèn)其它數(shù)據(jù),C外部量、Fortran公共塊,是私有的如何定義Fortran公共塊為共享數(shù)據(jù)?原公共塊:Common/c1/array(n,n)可重寫(xiě)為:Common/c1/parray增加說(shuō)明:Pointer(parray,array)分配空間:parray=jia_alloc(n*n*8)后續(xù)訪問(wèn)仍可通過(guò)array(i,j)進(jìn)行共享數(shù)據(jù)與私有數(shù)據(jù)只有通過(guò)jia_alloc分配空間的數(shù)據(jù)才86共享內(nèi)存的分配最簡(jiǎn)單的方式:不管它的具體位置jia_alloc(size_in_byte),以頁(yè)為單位輪流分配系統(tǒng)會(huì)自動(dòng)將頁(yè)面移動(dòng)到使用最多的結(jié)點(diǎn)處用戶也可以自行控制共享數(shù)據(jù)的具體位置jia_alloc2(size,block),以block為單位輪流分配jia_alloc3(size,block,startp),指定起始結(jié)點(diǎn)如能做到擁有者計(jì)算,有可能達(dá)到更好的性能例:按行塊均勻地分布NN矩陣Apointer(pa,a) //real*8a(N,N)pa=jia_alloc2(N*N*8,N*N*8/jiahosts)共享內(nèi)存的分配最簡(jiǎn)單的方式:不管它的具體位置87JIAJIA的內(nèi)存分配方法靈活的共享空間分配功能:允許用戶控制數(shù)據(jù)分布P0P2P3P1jia_alloc3(0x1800000,0x600000,0)JIAJIA的內(nèi)存分配方法靈活的共享空間分配功能:允許用戶控88均勻地分段分配P0P2P3P1jia_alloc3(0x1800000,0x300000,0)均勻地分段分配P0P2P3P1jia_alloc3(0x1889不在P2上分配P0P2P3P1jia_alloc3(0x1800000,0x800000,3)不在P2上分配P0P2P3P1jia_alloc3(0x1890僅在后兩個(gè)結(jié)點(diǎn)上分配P0P2P3P1jia_alloc3(0x1800000,0xc00000,2)僅在后兩個(gè)結(jié)點(diǎn)上分配P0P2P3P1jia_alloc3(091提高性能的方法提高性能的方法增加HOME的局部性增加Cache的局部性例:矩陣乘法共享內(nèi)存的分配:按行平均分配,按塊平均分配算法;中積法,內(nèi)積法Cache大小的影響提高性能的方法提高性能的方法92對(duì)共享數(shù)據(jù)的互斥訪問(wèn)互斥的要求:修改共享數(shù)據(jù)時(shí)不能被打斷任一時(shí)刻只有一個(gè)結(jié)點(diǎn)(進(jìn)程)修改共享數(shù)據(jù)為什么需要保證互斥?設(shè)x=0為共享變量 Proc1

溫馨提示

  • 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)論