資源描述:
《并行處理機(jī)和相聯(lián)處理機(jī)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第6章并行處理機(jī)和相聯(lián)處理機(jī)6.1并行處理機(jī)原理6.2并行處理機(jī)舉例6.3相聯(lián)處理機(jī)6.1并行處理機(jī)原理6.1.1并行處理機(jī)的構(gòu)形與特點(diǎn)1.并行處理機(jī)的基本構(gòu)形圖6.1具有分布式存貯器的并行處理機(jī)構(gòu)形圖6.2具有集中式共享存貯器的并行處理機(jī)構(gòu)形2.并行處理機(jī)的特點(diǎn)并行處理機(jī)的單指令流多數(shù)據(jù)流處理方式和由它產(chǎn)生的特殊結(jié)構(gòu)是以諸如有限差分、矩陣、信號(hào)處理、線性規(guī)劃等一系列計(jì)算問(wèn)題為背景發(fā)展起來(lái)的。這些計(jì)算問(wèn)題的共同特點(diǎn)是可以通過(guò)各種途徑把它們轉(zhuǎn)化成為對(duì)數(shù)組或向量的處理,而并行處理機(jī)正好利用多個(gè)處理單元對(duì)向量或數(shù)組所包含的各個(gè)分量同時(shí)計(jì)
2、算,從而獲得很高的處理速度。與同樣擅長(zhǎng)于向量處理的流水線處理機(jī)相比,并行處理機(jī)利用的是資源重復(fù),而不是時(shí)間重疊;利用并行性中的同時(shí)性,而不是并發(fā)性。它的每個(gè)處理單元要同等地?fù)?dān)負(fù)起各種運(yùn)算功能,但其設(shè)備利用率卻可能沒(méi)有多個(gè)單功能流水線部件那樣高。因此,只有在硬件價(jià)格有了大幅度下降及系統(tǒng)結(jié)構(gòu)有了較大改進(jìn)的情況下,并行處理機(jī)才能具有較好的性能價(jià)格比。并行理機(jī)主要是靠增大處理單元個(gè)數(shù)來(lái)提高運(yùn)算速度,比起向量流水線處理機(jī)主要依靠縮短時(shí)鐘周期來(lái)說(shuō),速度提高的潛力要大得多。6.1.2并行處理機(jī)的算法1.ILLIACⅣ的處理單元陣列結(jié)構(gòu)圖6.3IL
3、LIACⅣ處理單元的互連結(jié)構(gòu)PUi為處理部件,包含64位的算術(shù)處理單元PEi、所帶的局部存貯器PEMi和存貯器邏輯部件MLU。64個(gè)處理部件PU0~PU63排列成8×8的方陣。任何一個(gè)PUi只與其上、下、左、右4個(gè)近鄰PUi-8(mod64)、PUi+8(mod64)、PUi-1(mod64)和PUi+1(mod64)直接相連。循此規(guī)則,上、下方向上同一列兩端的PU相連構(gòu)成一個(gè)環(huán),左、右方向上每一行的右端PU與下一行的左端PU相連,最下面一行右端的PU與最上面一行左端PU相連,從而形成一種閉合的螺線形狀,所以又稱閉合螺線陣列。在這個(gè)
4、陣列中,步距不等于±1或±8的任意處理單元之間的通信,可以用軟件方法尋找最短路徑進(jìn)行,其最短距離都不會(huì)超過(guò)7步。例如,要將PU63的信息傳送到PU10,最快可經(jīng)PU63→PU7→PU8→PU9→PU104步即可實(shí)現(xiàn),而要將PU9的信息傳送到PU45,最快可經(jīng)PU9→PU1→PU57→PU56→PU48→PU47→PU46→PU457步實(shí)現(xiàn)。普遍來(lái)講,個(gè)處理單元組成的陣列中,任意兩個(gè)處理單元之間的最短距離不會(huì)超過(guò)步。2.陣列處理機(jī)的算法舉例1)有限差分問(wèn)題求解場(chǎng)方程時(shí),常使用有限差分法。它是把一個(gè)有規(guī)則的網(wǎng)格覆蓋在整個(gè)場(chǎng)域上,用
5、網(wǎng)格點(diǎn)上的變量值寫出差分方程組來(lái)代替場(chǎng)方程進(jìn)行計(jì)算。在解決物理問(wèn)題時(shí),如果將描述平面場(chǎng)的拉普拉斯方程中的二階偏導(dǎo)數(shù)表示為差分形式:并代入原方程,即可得有限差分計(jì)算公式式中,(x,y)為網(wǎng)格點(diǎn)坐標(biāo),h為網(wǎng)格點(diǎn)的間距。2)矩陣加在陣列處理機(jī)上,解決矩陣加法是最簡(jiǎn)單的一維情形。若有兩個(gè)8×8的矩陣A、B相加,所得結(jié)果矩陣C也是一個(gè)8×8的矩陣。只需把A、B居于相應(yīng)位置的分量存放在同一個(gè)PEM內(nèi),且在全部64個(gè)PEM中,令A(yù)的分量均為同一地址α,B的分量單元均為同一地址α+1,而結(jié)果矩陣C的各個(gè)結(jié)果分量也相應(yīng)存放于各PEM同一地址α+2的
6、單元內(nèi),如圖6.4所示。這樣,只需用下列3條ILLIACⅣ的匯編指令就可以一次實(shí)現(xiàn)矩陣相加:LDAALPHA;全部(α)由PEMi送PEi的累加器RGAiADRNALPHA+1;全部(α+1)與(RGAi)進(jìn)行浮點(diǎn)規(guī)舍加,結(jié)果送RGAiSTAALPHA+2;全部(RGAi)由PEi送PEMi的α+2單元這里,0≤i≤63。圖6.4矩陣相加的存貯器分配舉例3)矩陣乘由于矩陣乘是二維數(shù)組運(yùn)算,故它比循環(huán)加要復(fù)雜一些。設(shè)A、B和C為3個(gè)8×8的二維矩陣。若給定A和B,則為計(jì)算C=A*B的64個(gè)分量,可用下列公式其中,0≤i≤7且0≤j
7、≤7。在SISD計(jì)算機(jī)上求解這個(gè)問(wèn)題,可執(zhí)行用FORTRAN語(yǔ)言編寫的下列程序DO10I=0,7DO10J=0,7C(I,J)=0DO10K=0,710C(I,J)=C(I,J)+A(I,K)*B(K,J)需要經(jīng)過(guò)I、J、K三重循環(huán)完成。每重循環(huán)執(zhí)行8次,總共需要512次乘、加的時(shí)間,此外每次還應(yīng)包括執(zhí)行循環(huán)控制、判別等其他操作需花費(fèi)的時(shí)間。而如果在SIMD陣列處理機(jī)上運(yùn)算,則可用8個(gè)處理單元并行計(jì)算矩陣C(I,J)的某一行或某一列,即將J循環(huán)或I循環(huán)轉(zhuǎn)化成一維的向量處理,從而消去了一重循環(huán)。以消去J循環(huán)為例,可執(zhí)行用FO
8、RTRAN語(yǔ)言編寫的下列程序DO10I=0,7C(I,J)=0DO10K=0,710C(I,J)=C(I,J)+A(I,K)*B(K,J)圖6.5矩陣乘程序執(zhí)行流程圖圖6.6矩陣乘的存貯器分配舉例4)累加和這是一個(gè)將N個(gè)數(shù)的