




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
并行計算
2023/7/221第三篇并行數(shù)值算法
第八章基本通訊操作
第九章稠密矩陣運算
第十章線性方程組的求解
第十一章快速傅里葉變換
2023/7/222第九章稠密矩陣運算
9.1矩陣的劃分
9.2矩陣轉(zhuǎn)置
9.3矩陣-向量乘法
9.4矩陣乘法
2023/7/2239.1矩陣的劃分
9.1.1帶狀劃分
9.1.2棋盤劃分
2023/7/224帶狀劃分16×16階矩陣,p=4列塊帶狀劃分行循環(huán)帶狀劃分2023/7/225帶狀劃分示例:p=3,27×27矩陣的3種帶狀劃分
2023/7/2269.1矩陣的劃分
9.1.1帶狀劃分
9.1.2棋盤劃分
2023/7/227棋盤劃分8×8階矩陣,p=16塊棋盤劃分循環(huán)棋盤劃分2023/7/228棋盤劃分示例:p=4,16×16矩陣的3種棋盤劃分
2023/7/229第九章稠密矩陣運算
9.1矩陣的劃分
9.2矩陣轉(zhuǎn)置
9.3矩陣-向量乘法
9.4矩陣乘法
2023/7/22109.2矩陣轉(zhuǎn)置
9.2.1棋盤劃分的矩陣轉(zhuǎn)置
9.2.2帶狀劃分的矩陣轉(zhuǎn)置
2023/7/2211棋盤劃分的矩陣轉(zhuǎn)置網(wǎng)孔連接情形1:p=n2。通訊步轉(zhuǎn)置后2023/7/2212棋盤劃分的矩陣轉(zhuǎn)置情形2:p<n2。
-劃分:-算法:①按mesh連接進(jìn)行塊轉(zhuǎn)置(不同處理器間)②進(jìn)行塊內(nèi)轉(zhuǎn)置(同一處理器內(nèi))通訊步轉(zhuǎn)置后2023/7/2213棋盤劃分的矩陣轉(zhuǎn)置超立方連接劃分:算法:
①
②對Aij遞歸應(yīng)用①進(jìn)行轉(zhuǎn)置,直至分塊矩陣的元素處于同一處理器;
③進(jìn)行同一處理器的內(nèi)部轉(zhuǎn)置。運行時間:
2023/7/2214棋盤劃分的矩陣轉(zhuǎn)置超立方連接:示例
2023/7/22159.2矩陣轉(zhuǎn)置
9.2.1棋盤劃分的矩陣轉(zhuǎn)置
9.2.2帶狀劃分的矩陣轉(zhuǎn)置
2023/7/2216帶狀劃分的矩陣轉(zhuǎn)置
劃分:An×n分成p個(n/p)×n大小的帶算法:
①Pi有p-1個(n/p)×(n/p)大小子塊發(fā)送到另外p-1個處理器中;②每個處理器本地交換相應(yīng)的元素
2023/7/2217第九章稠密矩陣運算
9.1矩陣的劃分
9.2矩陣轉(zhuǎn)置
9.3矩陣-向量乘法
9.4矩陣乘法
2023/7/22189.3矩陣-向量乘法
9.3.1帶狀劃分的矩陣-向量乘法
9.3.2棋盤劃分的矩陣-向量乘法
2023/7/2219帶狀劃分的矩陣-向量乘法
劃分(行帶狀劃分):Pi存放xi和ai,0,ai,1,…,ai,n-1,并輸出yi算法:對p=n情形①每個Pi向其他處理器播送xi(多到多播送);②每個Pi計算;注:對p<n情形,算法中Pi要播送X中相應(yīng)的n/p個分量(1)超立方連接的計算時間
(2)網(wǎng)孔連接的計算時間2023/7/2220帶狀劃分的矩陣-向量乘法
示例2023/7/22219.3矩陣-向量乘法
9.3.1帶狀劃分的矩陣-向量乘法
9.3.2棋盤劃分的矩陣-向量乘法
2023/7/2222棋盤劃分的矩陣-向量乘法
劃分(塊棋盤劃分):Pij存放ai,j,xi置入Pi,i中算法:對p=n2情形
①每個Pi,i向Pj,i播送xi(一到多播送);②按行方向進(jìn)行乘-加與積累運算,最后一列Pi,n-1收集的結(jié)果為yi;注:對p<n2情形,p個處理器排成的二維網(wǎng)孔,算法中Pi,i向Pj,i播送X中相應(yīng)的個分量(1)網(wǎng)孔連接的計算時間Tp(CT):.X中相應(yīng)分量置入Pi,i的通訊時間:.按列一到多播送時間:.按行單點積累的時間:2023/7/2223棋盤劃分的矩陣-向量乘法
示例2023/7/2224帶狀與棋盤劃分比較以網(wǎng)孔鏈接為例網(wǎng)孔上帶狀劃分的運行時間網(wǎng)孔上棋盤劃分的運行時間棋盤劃分要比帶狀劃分快。2023/7/2225第九章稠密矩陣運算
9.1矩陣的劃分
9.2矩陣轉(zhuǎn)置
9.3矩陣-向量乘法
9.4矩陣乘法
2023/7/22269.4矩陣乘法
9.4.1簡單并行分塊乘法
9.4.2Cannon乘法
9.4.3Fox乘法
9.4.4Systolic乘法
9.4.5DNS乘法2023/7/2227矩陣乘法符號及定義jiABCA中元素的第1下標(biāo)與B中元素的第2下標(biāo)相一致(對準(zhǔn))2023/7/2228矩陣乘法并行實現(xiàn)方法計算結(jié)構(gòu):二維陣列空間對準(zhǔn)(元素已加載到陣列中)
Cannon’s,Fox’s,DNS時間對準(zhǔn)(元素未加載到陣列中)SystolicA0,0B0,0A1,0B1,0A2,0B2,0A3,0B3,0A0,1B0,1A1,1B1,1A2,1B2,1A3,1B3,1A0,2B0,2A1,2B1,2A2,2B2,2A3,2B3,2A0,3B0,3A1,3B1,3A2,3B2,3A3,3B3,32023/7/2229簡單并行分塊乘法分塊:
A、B和C分成的方塊陣Ai,j、Bi,j和Ci,j,大小均為
p個處理器編號為,Pi,j存放Ai,j、Bi,j和Ci,j。算法:
①通訊:每行處理器進(jìn)行A矩陣塊的多到多播送(得到Ai,k,k=0~)每列處理器進(jìn)行B矩陣塊的多到多播送(得到Bk,j,k=0~)
②乘-加運算:Pi,j做運行時間
(1)超立方連接:①的時間②的時間2023/7/2230簡單并行分塊乘法運行時間
(1)超立方連接:(2)二維環(huán)繞網(wǎng)孔連接:①的時間:②的時間t2=n3/p注(1)本算法的缺點是對處理器的存儲要求過大每個處理器有個塊,每塊大小為n2/p,
所以需要,p個處理器共需要,是串行算法的倍
(2)p=n2時,t(n)=O(n),c(n)=O(n3)2023/7/22319.4矩陣乘法
9.4.1簡單并行分塊乘法
9.4.2Cannon乘法
9.4.3Fox乘法
9.4.4Systolic乘法
9.4.5DNS乘法2023/7/2232Cannon乘法分塊:A、B和C分成的方塊陣Ai,j、Bi,j和Ci,j,大小均為p個處理器編號為,Pi,j存放Ai,j、Bi,j和Ci,j(n>>p)P0,0P1,0P2,0P3,0P0,1P1,1P2,1P3,1P0,2P1,2P2,2P3,2P0,3P1,3P2,3P3,32023/7/2233Cannon乘法算法原理(非形式描述)
①所有塊Ai,j(0≤i,j≤)向左循環(huán)移動i步(按行移位);所有塊Bi,j(0≤i,j≤)向上循環(huán)移動j步(按列移位);
②所有處理器Pi,j做執(zhí)行Ai,j和Bi,j的乘-加運算;
③A的每個塊向左循環(huán)移動一步;
B的每個塊向上循環(huán)移動一步;
④轉(zhuǎn)②執(zhí)行次;2023/7/2234Cannon乘法示例:A4×4,B4×4,p=16
A0,0A1,0A2,0A3,0A0,1A1,1A2,1A3,1A0,2A1,2A2,2A3,2A0,3A1,3A2,3A3,3B0,0B1,0B2,0B3,0B0,1B1,1B2,1B3,1B0,2B1,2B2,2B3,2B0,3B1,3B2,3B3,3InitialalignmentofAInitialalignmentofB2023/7/2235Cannon乘法示例:A4×4,B4×4,p=16
AandBafterinitialalignmentandshiftsaftereverystepA0,0B0,0A1,1B1,0A2,2B2,0A3,3B3,0A0,1B1,1A1,2B2,1A2,3B3,1A3,0B0,1A0,2B2,2A1,3B3,2A2,0B0,2A3,1B1,2A0,3B3,3A1,0B0,3A2,1B1,3A3,2B2,32023/7/2236Cannon乘法示例:A4×4,B4×4,p=16
AfterfirstshiftA0,1B1,0A1,2B2,0A2,3B3,0A3,0B0,0A0,2B2,1A1,3B3,1A2,0B0,1A3,1B3,1A0,3B3,2A1,0B0,2A2,1B1,2A3,2B2,2A0,0B0,3A1,1B1,3A2,2B2,3A3,3B3,3AftersecondshiftA0,2B2,0A1,3B3,0A2,0B0,0A3,1B1,0A0,3B3,1A1,0B0,1A2,1B1,1A3,2B2,1A0,0B0,2A1,1B1,2A2,2B2,2A3,3B3,2A0,1B1,3A1,2B2,3A2,3B3,3A3,0B0,3AfterthirdshiftA0,3B3,0A1,0B0,0A2,1B1,0A3,2B2,0A0,0B0,1A1,1B1,1A2,2B2,1A3,3B3,1A0,1B1,2A1,2B2,2A2,3B3,2A3,0B0,2A0,2B2,3A1,3B3,3A2,0B0,3A3,1B1,32023/7/2237Cannon乘法算法描述:Cannon分塊乘法算法
//輸入:An×n,Bn×n;輸出:Cn×nBegin(1)fork=0todoforallPi,jpar-do(i)ifi>kthen
Ai,j
Ai,(j+1)mod
endif(ii)ifj>kthen
Bi,j
B(i+1)mod,j
endif
endfor
endfor(2)forallPi,jpar-doCi,j=0endfor
(3)fork=0todoforallPi,jpar-do(i)Ci,j=Ci,j+Ai,jBi,j(ii)Ai,j
Ai,(j+1)mod(iii)Bi,j
B(i+1)mod,j
endfor
endfor
End時間分析:2023/7/22389.4矩陣乘法
9.4.1簡單并行分塊乘法
9.4.2Cannon乘法
9.4.3Fox乘法
9.4.4Systolic乘法
9.4.5DNS乘法2023/7/2239Fox乘法分塊:
同Cannon分塊算法算法原理
①Ai,i向所在行的其他處理器進(jìn)行一到多播送;②各處理器將收到的A塊與原有的B塊進(jìn)行乘-加運算;
③B塊向上循環(huán)移動一步;
④如果Ai,j是上次第i行播送的塊,本次選擇向所在行的其他處理器進(jìn)行一到多播送;
⑤轉(zhuǎn)②執(zhí)行次;
A0,0B0,0A1,0B1,0A2,0B2,0A3,0B3,0A0,1B0,1A1,1B1,1A2,1B2,1A3,1B3,1A0,2B0,2A1,2B1,2A2,2B2,2A3,2B3,2A0,3B0,3A1,3B1,3A2,3B2,3A3,3B3,32023/7/2240Fox乘法示例:A4×4,B4×4,p=16
(a)(b)A0,0B0,0B1,0B2,0B3,0B0,1A1,1B1,1B2,1B3,1B0,2B1,2A2,2B2,2B3,2B0,3B1,3B2,3A3,3B3,3B1,0B2,0B3,0A0,1B1,1B2,1B3,1B0,1B1,2B3,2B0,2B1,3B2,3B0,3A1,2B2,2A2,3B3,3A3,0B0,02023/7/2241Fox乘法示例:A4×4,B4×4,p=16
(c)(d)B2,0B3,0B2,1B3,1B0,1B3,2B0,2B1,2B2,3B0,3B1,3B3,0B1,0B3,1B0,1B2,1B3,2B1,2B0,3B2,3B0,2B1,3B2,0A0,2B2,2A1,3B3,3A2,0B0,0B1,0A3,1B1,1A0,3B3,3A1,0B0,2A2,1B1,1A3,2B2,22023/7/22429.4矩陣乘法
9.4.1簡單并行分塊乘法
9.4.2Cannon乘法
9.4.3Fox乘法
9.4.4Systolic乘法
9.4.5DNS乘法2023/7/2243Systolic乘法a1,4b4,1b3,1b2,1b2,2b4,2b3,2b2,3b3,3b4,3b2,4b3,4b4,4a1,3a1,1a1,2a2,4a2,1a2,2a2,3a3,1a3,2a3,3a3,4b1,1b1,2b1,3b1,4Step1P1,1c1,1P1,2c1,2P1,3c1,3P1,4c1,4P2,1c2,1P2,2c2,2P2,3c2,3P2,4c2,4P3,1c3,1P3,2c3,2P3,3c3,3P3,4c3,42023/7/2244Systolic乘法c1,1c1,2c1,3c1,4c2,1c2,2c2,3c2,4c3,1c3,2c3,3c3,4b3,1b2,1b2,2b4,2b3,2b2,3b3,3b4,3b2,4b3,4b4,4a1,3a1,1a1,2a2,4a2,1a2,2a2,3a3,1a3,2a3,3a3,4b1,1b1,2b1,3b1,4a1,4b4,1+Step22023/7/2245Systolic乘法c1,1c1,2c1,3c1,4c2,1c2,2c2,3c2,4c3,1c3,2c3,3c3,4b2,1b2,2b3,2b2,3b3,3b4,3b2,4b3,4b4,4a1,1a1,2a2,1a2,2a2,3a3,1a3,2a3,3a3,4b1,1b1,2b1,3b1,4a1,3b3,1+a1,4b4,2+a2,4b4,1+Step32023/7/2246Systolic乘法c1,1c1,2c1,3c1,4c2,1c2,2c2,3c2,4c3,1c3,2c3,3c3,4b2,2b2,3b3,3b2,4b3,4b4,4a1,1a2,1a2,2a3,1a3,2a3,3b1,1b1,2b1,3b1,4a1,2b2,1+a1,3b3,2+a2,3b3,1+a1,4b4,3+a3,4b4,1+a2,4b4,2+Step42023/7/2247Systolic乘法c1,1c1,2c1,3c1,4c2,1c2,2c2,3c2,4c3,1c3,2c3,3c3,4b2,3b2,4b3,4a2,1a3,1a3,2b1,2b1,3b1,4a1,1b1,1+a1,2b2,2+a2,2b2,1+a1,3b3,3+a3,3b3,1+a2,3b3,2+a1,4b4,4+a2,4b4,3+a3,4b4,2+Step52023/7/2248Systolic乘法c1,1c1,2c1,3c1,4c2,1c2,2c2,3c2,4c3,1c3,2c3,3c3,4b2,4a3,1b1,3b1,4a1,1b1,2+a2,1b1,1+a1,2b2,3+a3,2b2,1+a2,2b2,2+a1,3b3,4+a2,3b3,3+a3,3b3,2+a2,4b4,4+a3,4b4,3+Step62023/7/2249Systolic乘法c1,1c1,2c1,3c1,4c2,1c2,2c2,3c2,4c3,1c3,2c3,3c3,4b1,4a1,1b1,3+a3,1b1,1+a2,1b1,2+a1,2b2,4+a2,2b2,3+a3,2b3,2+a2,3b3,4+a3,3b3,3+a3,4b4,4+Step72023/7/2250Systolic乘法c1,1c1,2c1,3c1,4c2,1c2,2c2,3c2,4c3,1c3,2c3,3c3,4a1,1b1,4+a2,1b1,3+a3,1b1,2+a2,2b2,4+a3,2b2,3+a3,3b3,4+Step82023/7/2251Systolic乘法c1,1c1,2c1,3c1,4c2,1c2,2c2,3c2,4c3,1c3,2c3,3c3,4a2,1b1,4+a3,1b1,3+a3,2b2,4+Step92023/7/2252Systolic乘法c1,1c1,2c1,3c1,4c2,1c2,2c2,3c2,4c3,1c3,2c3,3c3,4a3,1b1,4+Step102023/7/2253Systolic乘法P1,1c1,1P1,2c1,2P1,3c1,3P1,4c1,4P2,1c2,1P2,2c2,2P2,3c2,3P2,4c2,4P3,1c3,1P3,2c3,2P3,3c3,3P3,4c3,4Overc1,1=a1,1
b1,1+a1,2
b2,1
+a1,3
b3,1
+a1,4
b4,1c1,2=a1,1b1,2
+a1,2
b2,2+a1,3
b3,2
+a1,4
b4,2
…………c3,4=a3,1
b1,4
+a3,2b2,4
+a3,3
b3,4+a3,4b4,4
2023/7/2254Systolic乘法
Systolic算法
//輸入:Am×n,Bn×k;輸出:Cm×kBeginfori=1tompar-doforj=1tokpar-do(i)ci,j=0 (ii)whilePi,j收到a和b時do
ci,j=ci,j+ab ifi<mthen發(fā)送b給Pi+1,j
endif
ifj<kthen發(fā)送a給Pi,j+1
endif
endwhile
endfor
endforEnd2023/7/22559.4矩陣乘法
9.4.1簡單并行分塊乘法
9.4.2Cannon乘法
9.4.3Fox乘法
9.4.4Systolic乘法
9.4.5DNS乘法2023/7/2256DNS乘法背景:
由Dekel、Nassimi和Sahni提出的SIMD-CC上的矩陣乘法,處理器數(shù)目為n3,運行時間為O(logn),是一種速度很快的算法?;舅枷?
通過一到一和一到多的播送辦法,使得處理器(k,i,j)擁有ai,k和bk,j,
進(jìn)行本地相乘,再沿k方向進(jìn)行單點積累求和,結(jié)果存儲在處理器(0,i,j)中。處理器編號:
處理器數(shù)p=n3=(2q)3=23q,處理器Pr位于位置(k,i,j),這里r=kn2+in+j,(0≤i,j,k≤n-1)。位于(k,i,j)的處理器Pr的三個寄存器
Ar,Br,Cr分別表示為A[k,i,j],B[k,i,j]和C[k,i,j],初始時均為0。算法:
初始時ai,j和bi,j存儲于寄存器A[0,i,j]和B[0,i,j];①數(shù)據(jù)復(fù)制:A,B同時在k維復(fù)制(一到一播送);
A在j維復(fù)制(一到多播送);B在i維復(fù)制(一到多播送);②相乘運算:所有處理器的A、B寄存器兩兩相乘;
③求和運算:沿k方向進(jìn)行單點積累求和;
2023/7/2257示例
C00=1×(-5)+2×7=9C01=1×(-6)+2×8=10C10=3×(-5)+4×7=13C11=3×(-6)+4×8=14
kji初始加載(b)A,B沿k維復(fù)制(c)A沿j維復(fù)制(d)B沿i維復(fù)制(e)點積(f)沿k維求和BBAA000010001011100110101111P0P1P2P3P4P5P6P72023/7/2258算法描述://令r(m)表示r的第m位取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電商平臺在智慧城市中的角色與價值研究
- 國際合作會議合同范本
- 限價房合同范本
- 曲邊絨帶企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 2025至2030年中國整體硬質(zhì)合金鉸刀數(shù)據(jù)監(jiān)測研究報告
- 真實玉石合同范本
- 水桶企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 低碳水化合物零食系列行業(yè)跨境出海戰(zhàn)略研究報告
- 臥室用竹家具企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 人造毛皮企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 2024學(xué)年九年級英語上冊 Unit 4 Stories and poems教案(新版)冀教版
- 2022年1月福建省合格性考試生物真題卷
- 2024農(nóng)村宅基地轉(zhuǎn)讓合同范本
- 公務(wù)員考試言語理解高頻詞匯
- 各類學(xué)校校園安全應(yīng)急預(yù)案匯編-(附應(yīng)急全套流程圖)
- 《積極心理學(xué)(第3版)》 課件 第3章 積極情緒的價值
- 斯坦福大學(xué)人生設(shè)計課 (美比爾·博內(nèi)特 戴夫·伊萬斯)
- 信息技術(shù)必修一《數(shù)據(jù)與計算》三章第二節(jié)《數(shù)據(jù)分析與可視化》教案
- JT-T-1211.1-2018公路工程水泥混凝土用快速修補材料第1部分:水泥基修補材料
- 全國青少年文化遺產(chǎn)知識大賽題庫
- 2024年邵陽工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
評論
0/150
提交評論