專利名稱:環(huán)形和樹形網(wǎng)絡(luò)中的算術(shù)函數(shù)的制作方法
對(duì)相關(guān)申請(qǐng)的交叉引用本發(fā)明請(qǐng)求于2001年2月24日提交的題為“MASSIVELY PARALLELSUPERCOMPUTER”的共同擁有、共同未決的美國臨時(shí)專利申請(qǐng)No.60/271,124的利益,通過引用的方式將該申請(qǐng)的全部內(nèi)容和公開直接并入到這里,就好像是在這里完整給出的一樣。本專利申請(qǐng)還涉及下面與之同日提交的共同擁有、共同未決的美國專利申請(qǐng),通過引用的方式將這些申請(qǐng)的每一個(gè)的全部內(nèi)容和公開直接并入到這里,就好像是在這里完整給出的一樣美國專利申請(qǐng)No.(Y0R920020027US1,YOR920020044US1(15270)),“Class NetworkingRouting”;美國專利申請(qǐng)No.(YOR920020028US1(152771),“A GlobalTree Network for Computing Structures”;美國專利申請(qǐng)No.(YOR920020029US1(15272)),“Global Interrupt and BarrierNetworks”;美國專利申請(qǐng)No.(YOR920020030US1(15273)),“Optimized Scalable Network Switch”;美國專利申請(qǐng)No.(YOR920020031US1,YOR920020032US1(15258)),“ArithmeticFunctions in Torus and Tree Networks”;美國專利申請(qǐng)No.(YOR920020033US1,YOR920020034US1(15259)),“Data CaptureTechnique for High Speed Signaling”;美國專利申請(qǐng)No.(YOR920020035US1(15260)),“Managing Coherence Via Put/GetWindows”;美國專利申請(qǐng)No.(YOR920020036US1,YOR920020037US1(15261)),“Low LatencyMemory Access And Synchronization”;美國專利申請(qǐng)No.(YOR920020038US1(15276)),“Twin-Tailed Fail-Over forFileservers Maintaining Full Performance in the Presence ofFailure”;美國專利申請(qǐng)No.(YOR920020039US1(15277)),“FaultIsolation Through No-Overhead Link Level Checksums”;美國專利申請(qǐng)No.(YOR920020040US1(15278)),“Ethernet AddressingVia Physical Location for Massively Parallel Systems”;美國專利申請(qǐng)No.(YOR920020041US1(15274)),“Fault Toleranceina Supercomputer Through Dynamic Repartitioning”;美國專利申請(qǐng)No.(YOR920020042US1(15279)),“checkpointingFilesystem”;美國專利申請(qǐng)No.(YOR920020043US1(15262)),“Efficient Implementation of Multidimensional Fast FourierTransform on a Distributed-Memory Parallel Multi-NodeComputer”;美國專利申請(qǐng)No.(YOR9-20010211US2(15275)),“ANovel Massively Parallel Supercomputer”;以及美國專利申請(qǐng)No.(YOR920020045US1(15263)),“Smart Fan Modules and System”。
背景技術(shù):
題為“A Novel Massively Parallel Supercomputer”的臨時(shí)專利申請(qǐng)中,描述了一種包含許多計(jì)算節(jié)點(diǎn)和較少量輸入/輸出節(jié)點(diǎn)的計(jì)算機(jī)。這些節(jié)點(diǎn)通過幾個(gè)網(wǎng)絡(luò)連接。特別地,這些節(jié)點(diǎn)通過環(huán)形網(wǎng)絡(luò)和雙重功能樹形網(wǎng)絡(luò)互相連接??捎枚喾N方式使用環(huán)形網(wǎng)絡(luò),以提高該計(jì)算機(jī)的有效性。
詳細(xì)地說,在擁有足夠數(shù)量節(jié)點(diǎn)的機(jī)器上,并且有一個(gè)擁有M維環(huán)形連通性的網(wǎng)絡(luò),進(jìn)行全局操作的一般方法是借助于移位和運(yùn)算。例如,為了對(duì)所有節(jié)點(diǎn)進(jìn)行全局求和,在每個(gè)計(jì)算機(jī)節(jié)點(diǎn)完成自身的本地求和后,第一,每個(gè)節(jié)點(diǎn)沿著一個(gè)方向?qū)⒈镜睾蛡魉偷较乱粋€(gè)節(jié)點(diǎn),并將從上一節(jié)點(diǎn)接收到的數(shù)加到它自己的和上。第二,將從上一節(jié)點(diǎn)接收到的數(shù)送到下一個(gè)節(jié)點(diǎn),并且再將收到的數(shù)加到它自己的和上。重復(fù)第二步驟(N-1)次(其中N是沿著這一方向節(jié)點(diǎn)的數(shù)目),隨后一次一個(gè)方向在所有方向上重復(fù)整個(gè)過程,在所有節(jié)點(diǎn)上產(chǎn)生期望的結(jié)果??墒牵瑢?duì)于浮點(diǎn)數(shù)來說,因?yàn)槊總€(gè)節(jié)點(diǎn)上操作的浮點(diǎn)求和的次序是不同的,因此每個(gè)節(jié)點(diǎn)的結(jié)果由于四舍五入效果而略有不同。假如需要進(jìn)行全局判斷,而該判斷又取決于全局求和數(shù)值的話,就會(huì)出現(xiàn)問題。在許多情況下,通過選用一個(gè)特殊節(jié)點(diǎn),該節(jié)點(diǎn)首先從其它節(jié)點(diǎn)收集數(shù)據(jù),進(jìn)行整體計(jì)算并將該和向所有節(jié)點(diǎn)廣播,從而避免了這一問題。但是,當(dāng)節(jié)點(diǎn)數(shù)足夠大時(shí),該方法比移位和運(yùn)算方法速度慢。另外,如上面指出的,在臨時(shí)專利申請(qǐng)60/271,124中所公開的計(jì)算機(jī)中,該節(jié)點(diǎn)也可通過雙重功能樹形網(wǎng)絡(luò)連接,該網(wǎng)絡(luò)支持整數(shù)混合運(yùn)算,如整數(shù)求和和整數(shù)求最大值(max)和最小值(min)。全局混合網(wǎng)絡(luò)的存在引發(fā)了在該網(wǎng)絡(luò)中有效實(shí)施全局算術(shù)運(yùn)算的可能性。例如,將來自每個(gè)計(jì)算節(jié)點(diǎn)的浮點(diǎn)數(shù)加起來,并將和向所有參與節(jié)點(diǎn)廣播。在普通并行超級(jí)計(jì)算機(jī)中,這些運(yùn)算通常是在承載正常信息傳送流量的網(wǎng)絡(luò)上進(jìn)行的。通常存在與該種全局運(yùn)算相關(guān)的高延遲。
發(fā)明概述本發(fā)明的一個(gè)目的是在分布式并行計(jì)算機(jī)上改進(jìn)用于全局運(yùn)算的全局?jǐn)?shù)值的計(jì)算方法。
本發(fā)明的另一個(gè)目的是在擁有許多節(jié)點(diǎn)的分布式并行M-環(huán)結(jié)構(gòu)上,使用移位和運(yùn)算方法計(jì)算一個(gè)用于全局運(yùn)算的唯一全局?jǐn)?shù)值。
本發(fā)明的另一個(gè)目的是提供方法和裝置,和類網(wǎng)絡(luò)路由的軟件算法和硬件實(shí)施一起作用,以顯著減少環(huán)形結(jié)構(gòu)上全局算法運(yùn)算所需要的時(shí)間。
本發(fā)明的另一個(gè)目的是在支持全局混合運(yùn)算的網(wǎng)絡(luò)上,有效實(shí)施全局算法運(yùn)算。
本發(fā)明的另一個(gè)目的是實(shí)施全局算法運(yùn)算,以生成二進(jìn)制復(fù)驗(yàn)性的結(jié)果。
本發(fā)明的另一個(gè)目的是提供一個(gè)用于處理全局求和運(yùn)算的改進(jìn)的方法。
本發(fā)明的另一個(gè)目的是提供一個(gè)用于處理全局整體合并運(yùn)算的改進(jìn)的方法。
用以下描述的方法和系統(tǒng)執(zhí)行算術(shù)功能,可以達(dá)到這些目的和其它目的。根據(jù)該發(fā)明的第一方面,提供了一種方法和設(shè)備,和類網(wǎng)絡(luò)路由的軟件算法和硬件實(shí)施一起作用,用以顯著減少環(huán)形結(jié)構(gòu)上全局算術(shù)運(yùn)算所需要的時(shí)間。這導(dǎo)致了在大型并行機(jī)器上運(yùn)行的應(yīng)用程序的更大的可量測(cè)性。本發(fā)明包含用于改進(jìn)全局運(yùn)算的效率,精確性和精確復(fù)驗(yàn)性性的三個(gè)步驟1.需要時(shí),確保所有節(jié)點(diǎn)以同樣的次序?qū)?shù)據(jù)進(jìn)行全局運(yùn)算,從而獲得唯一的答案,而不受四舍五入誤差的影響。
2.使用環(huán)形拓?fù)?,使得跳點(diǎn)數(shù)最小,使用網(wǎng)絡(luò)的雙向能力,將數(shù)據(jù)傳送操作中的時(shí)間步數(shù)降低到絕對(duì)最小值。
3.使用類函數(shù)路由(專利申請(qǐng)?zhí)?----(代理卷號(hào)15270)),以降低數(shù)據(jù)傳送中的延遲。使用本發(fā)明的方法,每個(gè)單個(gè)單元只被注入網(wǎng)絡(luò)一次,它將被存儲(chǔ)并發(fā)送,而不需要加任何軟件開銷。
根據(jù)本發(fā)明的第二方面,提供了方法和系統(tǒng),用以在支持全局混合運(yùn)算的網(wǎng)絡(luò)上,有效實(shí)施全局算術(shù)運(yùn)算。通過使用該方法,極大地降低了進(jìn)行該全局運(yùn)算的延遲。特別地,使用支持整數(shù)求最大值MAX,求和SUM,和位運(yùn)算AND,OR,和XOR的混合樹型網(wǎng)絡(luò),我們可以在該網(wǎng)絡(luò)上實(shí)現(xiàn)MPI(信息傳送接口標(biāo)準(zhǔn))的事實(shí)上所有的預(yù)定義全局簡(jiǎn)化運(yùn)算MPI_SUM,MPI_MAX,MPI_MIN,MPI_LAND,MPI_BAND,MPI_LOR,MPI_BOR,MPI_LXOR,MPI_BXOR,MPI_MAXLOC,AND MPI_MINLOC和MPI_ALLGATHER。這種實(shí)現(xiàn)簡(jiǎn)單有效,證明了混合樹形網(wǎng)絡(luò)給大規(guī)模并行超級(jí)計(jì)算機(jī)帶來的巨大的靈活性和有效性。
通過考慮以下參考附圖給出的詳細(xì)描述,本發(fā)明的其它好處和優(yōu)點(diǎn)將變得顯而易見,該附圖詳細(xì)說明并示出了本發(fā)明的優(yōu)選實(shí)施例。
附圖簡(jiǎn)述
圖1示意性地表示了連接計(jì)算機(jī)各節(jié)點(diǎn)的環(huán)形網(wǎng)絡(luò)。沒有示出有包裝的網(wǎng)絡(luò)連接。
圖2示意性地表示了連接計(jì)算機(jī)各節(jié)點(diǎn)的樹形網(wǎng)絡(luò)。
圖3說明了在單向環(huán)形網(wǎng)絡(luò)中實(shí)現(xiàn)全局求和的方法。
圖4是一個(gè)表示幾個(gè)步驟的表格,該步驟可以用來提高在環(huán)形結(jié)構(gòu)中全局算數(shù)運(yùn)算的有效性。
圖5說明了在雙重功能樹形網(wǎng)絡(luò)中全局求和的運(yùn)算。
圖6說明了在雙重功能樹形網(wǎng)絡(luò)中全局整體合并運(yùn)算。
圖7說明了3×4環(huán)形網(wǎng)絡(luò)。
圖8說明了用于進(jìn)行最終廣播操作的樹形網(wǎng)絡(luò)。
優(yōu)選實(shí)施例的詳細(xì)說明本發(fā)明涉及在計(jì)算機(jī)上實(shí)現(xiàn)算術(shù)功能,并涉及在臨時(shí)專利申請(qǐng)No.60/271,124中公開的一種適合的計(jì)算機(jī)。該計(jì)算機(jī)包含許多計(jì)算節(jié)點(diǎn)和較少量輸入/輸出節(jié)點(diǎn);該計(jì)算機(jī)的各個(gè)節(jié)點(diǎn)通過圖1中以10示意性表示的環(huán)形網(wǎng)絡(luò)和圖2中以20示意性表示的雙重功能樹形網(wǎng)絡(luò)互相連接。
更具體地說,本發(fā)明的一個(gè)方面提供方法和設(shè)備,和類網(wǎng)絡(luò)路由的軟件算法和硬件實(shí)施一起作用,用以顯著減少環(huán)形結(jié)構(gòu)上全局算法運(yùn)算所需要的時(shí)間。因此,這導(dǎo)致了在大型并行機(jī)器上運(yùn)行的應(yīng)用程序的更大的可量測(cè)性。如圖3所說明的,本發(fā)明包含用于改進(jìn)全局運(yùn)算的效率和精確性的三個(gè)步驟1.需要時(shí),確保所有節(jié)點(diǎn)以同樣的次序進(jìn)行全局運(yùn)算,從而獲得唯一的答案,不受四舍五入誤差的影響。
2.使用環(huán)形拓?fù)浣Y(jié)構(gòu),以使得跳點(diǎn)數(shù)最小,使用網(wǎng)絡(luò)的雙向能力,以將數(shù)據(jù)傳送操作中的時(shí)間步數(shù)降低到絕對(duì)最小值。
3.使用類函數(shù)路由,以減少數(shù)據(jù)傳送中的延遲。使用本發(fā)明的優(yōu)選方法,每個(gè)單個(gè)單元只被注入網(wǎng)絡(luò)一次,它將被存儲(chǔ)并發(fā)送,而不需要加任何軟件開銷。
下面詳細(xì)討論每個(gè)步驟1.確保所有節(jié)點(diǎn)以同樣的次序進(jìn)行全局運(yùn)算(如MPI_SUM)當(dāng)進(jìn)行本地部分求和的單向移位和加法,而不是當(dāng)數(shù)字進(jìn)來時(shí)將它們相加時(shí),每個(gè)節(jié)點(diǎn)將保持從各個(gè)方向接收的N-1個(gè)數(shù)。在接收到數(shù)字后對(duì)這些數(shù)字進(jìn)行全局運(yùn)算,因此運(yùn)算是以固定的次序進(jìn)行的,從而導(dǎo)致在所有節(jié)點(diǎn)上唯一的結(jié)果。
例如,如圖4中所說明的,假如每個(gè)節(jié)點(diǎn)在收到數(shù)字時(shí)就將其相加,那么在節(jié)點(diǎn)0計(jì)算的和為S0+S3+S2+S1,在節(jié)點(diǎn)1為S1+S0+S3+S2,在節(jié)點(diǎn)2為S2+S1+S0+S3,在節(jié)點(diǎn)3為S3+S2+S1+S0。在這些和中會(huì)有四舍五入差??墒牵绻總€(gè)節(jié)點(diǎn)接收到的數(shù)都保存著,然后所有的節(jié)點(diǎn)以相同的次序求和以獲得S0+S1+S2+S3,所以不會(huì)存在四舍五入差。
在所有其它方向重復(fù)該過程。最后,所有節(jié)點(diǎn)將獲得同樣的數(shù)字,不需要最后的廣播。
2.在M-環(huán)形結(jié)構(gòu)中,將數(shù)據(jù)傳送步驟數(shù)減到最小在兩個(gè)相鄰節(jié)點(diǎn)之間的網(wǎng)絡(luò)連接是雙向的任何機(jī)器中,我們可以在每個(gè)步驟中雙向傳送數(shù)據(jù)。這意味著每個(gè)數(shù)據(jù)單元必須在網(wǎng)絡(luò)上傳播的距離減小了1/2。這使得在環(huán)形網(wǎng)絡(luò)中進(jìn)行全局算術(shù)運(yùn)算的時(shí)間也減小了差不多1/2。
3.使用類函數(shù)路由減少延遲通過在網(wǎng)絡(luò)硬件中加入存儲(chǔ)和發(fā)送類網(wǎng)絡(luò)路由運(yùn)算,可以取得額外的性能收益,從而去除多次提取和加入同樣的數(shù)據(jù)單元到該網(wǎng)絡(luò)的軟件開銷。當(dāng)在能夠進(jìn)行類路由的網(wǎng)絡(luò)上實(shí)現(xiàn)全局算術(shù)運(yùn)算時(shí),圖4中說明的步驟1到3將簡(jiǎn)化為單個(gè)網(wǎng)絡(luò)步驟,即每個(gè)節(jié)點(diǎn)只需要加入一個(gè)數(shù)字一次,每個(gè)其它節(jié)點(diǎn)在保存一個(gè)拷貝自己用的同時(shí),還將自動(dòng)發(fā)送該數(shù)字到需要該數(shù)字的所有其它節(jié)點(diǎn)。這極大地減少了全局運(yùn)算的延遲。不用在環(huán)形網(wǎng)絡(luò)的每個(gè)跳點(diǎn)加軟件開銷,而只要在該機(jī)器的每個(gè)方向加一個(gè)開銷。例如,對(duì)于臨時(shí)專利申請(qǐng)?zhí)?0/271,124中公開的計(jì)算機(jī)系統(tǒng),我們估計(jì)當(dāng)CPU在單用戶模式下運(yùn)行時(shí),至少可以有5倍的提高,而在多用戶模式下有超過10倍的提高。
使用以上討論的三個(gè)改進(jìn)步驟,在分布式并行結(jié)構(gòu)的全局算術(shù)運(yùn)算方面,我們至少可以取得10倍的提高,并很大地提高大型并行機(jī)器上應(yīng)用程序的可量測(cè)性。
另外,如上所述,在上述臨時(shí)申請(qǐng)中公開的計(jì)算機(jī)系統(tǒng)中,節(jié)點(diǎn)也是通過樹形網(wǎng)絡(luò)連接的,該樹形網(wǎng)絡(luò)支持?jǐn)?shù)據(jù)混合運(yùn)算,如整數(shù)求和,整數(shù)求最大值和最小值,面向位的AND,OR和XOR。另外,該樹形網(wǎng)絡(luò)將自動(dòng)向所有參與的節(jié)點(diǎn)廣播最終混合運(yùn)算結(jié)果。假如計(jì)算機(jī)網(wǎng)絡(luò)支持全局混合運(yùn)算,那么該網(wǎng)絡(luò)可以有效支持許多全局通訊模式。到現(xiàn)在為止對(duì)于混合網(wǎng)絡(luò)硬件最簡(jiǎn)單的要求是支持一定精度的無符號(hào)整數(shù)加法和無符號(hào)整數(shù)求最大值。例如,在上述臨時(shí)專利申請(qǐng)中公開的超級(jí)計(jì)算機(jī)將支持至少32位,64位和128位無符號(hào)整數(shù)和或最大值,加上一個(gè)高達(dá)2048位數(shù)據(jù)包大小的很長精度的和或最大值。在實(shí)施高性能全局算術(shù)函數(shù)時(shí),該網(wǎng)絡(luò)硬件中的混合函數(shù)提供了很大的靈活性。下面描述了該實(shí)施的幾個(gè)案例。
1.帶符號(hào)整數(shù)求和圖5示出了全局求和運(yùn)算。每個(gè)參與節(jié)點(diǎn)擁有一個(gè)同樣大小的數(shù)組,這些數(shù)組有相同數(shù)量數(shù)組元素。全局求和運(yùn)算的結(jié)果是每個(gè)節(jié)點(diǎn)都將擁有來自所有節(jié)點(diǎn)的相應(yīng)數(shù)組元素的和。這涉及MPI(信息傳送接口)標(biāo)準(zhǔn)中的MPI_SUM函數(shù)。
相比本地?cái)?shù)來說,在網(wǎng)絡(luò)中需要使用更高精度來獲得最終結(jié)果的精度。用N表示參與求和的節(jié)點(diǎn)數(shù),M表示用來求和的整數(shù)數(shù)字中的最大絕對(duì)值,2^P表示一個(gè)比M大的大正整數(shù)。為了在支持無符號(hào)運(yùn)算的網(wǎng)絡(luò)中實(shí)施帶符號(hào)整數(shù)求和,我們只需(1)將所有需要相加的數(shù)加上大正整數(shù)2^P,使得它們現(xiàn)在都變成非負(fù)的。
(2)在網(wǎng)絡(luò)中進(jìn)行無符號(hào)整數(shù)求和。
(3)在結(jié)果中減去(N*2^P)。
選擇P使得2^P>M,并且(N*2^(P+1))不會(huì)在混合網(wǎng)絡(luò)中溢出。
2.全局帶符號(hào)整數(shù)求最大值和最小值除了最終結(jié)果不是相應(yīng)元素之和,而是最大值和最小值外,該運(yùn)算和上述全局求和運(yùn)算非常類似。它們涉及帶有整數(shù)輸入的MPI標(biāo)準(zhǔn)中的MPI_MAX和MPI_MIN函數(shù)。全局求最大值的實(shí)施和上述全局求和的實(shí)施非常類似。
(1)將所有數(shù)字都加上大正整數(shù)2^P,使它們都變成非負(fù)的。
(2)在網(wǎng)絡(luò)中進(jìn)行無符號(hào)全局求最大值。
(3)從結(jié)果中減去2^P。
要進(jìn)行全局求最小值,只要對(duì)所有數(shù)求反,然后進(jìn)行全局求最大值。
3.浮點(diǎn)數(shù)全局求和除了現(xiàn)在輸入是浮點(diǎn)數(shù)外,浮點(diǎn)數(shù)全局求和運(yùn)算和前面討論的整數(shù)求和非常類似。為簡(jiǎn)潔起見,我們將示范對(duì)來自各節(jié)點(diǎn)的一個(gè)數(shù)進(jìn)行求和。要對(duì)數(shù)列求和,只要重復(fù)這些步驟。
基本思想是在混合網(wǎng)絡(luò)中進(jìn)行兩個(gè)來回過程。
(1)使用全局求最大值中列出的步驟,尋找所有數(shù)的指數(shù)的整數(shù)最大值Emax。
(2)每個(gè)節(jié)點(diǎn)將使本地?cái)?shù)標(biāo)準(zhǔn)化,并將它轉(zhuǎn)換成整數(shù)。使得節(jié)點(diǎn)“i”上的本地?cái)?shù)變成X_i,其指數(shù)為E_i。使用全局求和描述中定義的符號(hào),該轉(zhuǎn)換對(duì)應(yīng)計(jì)算A_i=2^P+2^[P-(Emax-E)-1]*X_i[公式1]其中A_i是無符號(hào)整數(shù)。然后在使用混合硬件的網(wǎng)絡(luò)中進(jìn)行全局無符號(hào)整數(shù)求和。一旦最終和A到達(dá)各個(gè)節(jié)點(diǎn),通過以下計(jì)算可以獲得真正的和SS=(A-N*2^P)/2^(P-1)
再次選擇P使得N*2^(P+1)不會(huì)在混合網(wǎng)絡(luò)中溢出。
需要指出的是上面公式1中進(jìn)行的步驟獲得盡可能高的精度,是通過使用微處理器的浮點(diǎn)單元來將負(fù)數(shù)轉(zhuǎn)化成正數(shù),并使用它的整數(shù)單元來進(jìn)行適當(dāng)?shù)囊莆猾@得的。
該浮點(diǎn)求和運(yùn)算的一個(gè)重要特征在于,因?yàn)閷?shí)際求和是通過整數(shù)求和進(jìn)行的,因此和求和進(jìn)行的次序無關(guān)。在全局求和后,每個(gè)參與節(jié)點(diǎn)將得到完全相同的數(shù)。不需要另外的來自特殊節(jié)點(diǎn)的廣播,而當(dāng)經(jīng)由一般消息傳送網(wǎng)絡(luò)實(shí)施浮點(diǎn)全局求和時(shí),通常需要這種廣播。
本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到當(dāng)整數(shù)是以2的補(bǔ)碼表示時(shí),即使網(wǎng)絡(luò)硬件僅支持無符號(hào)整數(shù)求和,只要最終和中間結(jié)果不溢出,并且任何兩個(gè)數(shù)之和的進(jìn)位都不被硬件漏掉的話,就可以獲得正確的和。對(duì)全局整數(shù)和浮點(diǎn)求和運(yùn)算步驟進(jìn)行簡(jiǎn)化,和網(wǎng)絡(luò)硬件直接支持帶符號(hào)整數(shù)求和并帶有正確的溢出處理,都在本發(fā)明的范圍內(nèi)。
例如,當(dāng)硬件僅支持無符號(hào)整數(shù)求和,并漏掉所有無符號(hào)整數(shù)溢出的攜帶位時(shí),如在臨時(shí)專利申請(qǐng)?zhí)?0/271,124中公開的超級(jí)計(jì)算機(jī)上實(shí)施的,簡(jiǎn)化的帶符號(hào)整數(shù)求和步驟可以是(1)將每個(gè)整數(shù)加符號(hào)擴(kuò)展到更高的精度,以保證不會(huì)發(fā)生任何結(jié)果溢出;即給所有正整數(shù)和零的擴(kuò)展高位補(bǔ)0,給所有負(fù)整數(shù)的擴(kuò)展位補(bǔ)1;(2)在網(wǎng)絡(luò)上進(jìn)行求和。最終的結(jié)果將有正確的符號(hào)。
以上步驟也可應(yīng)用于浮點(diǎn)求和的求和步驟。
在全局整數(shù)求和描述的基礎(chǔ)上進(jìn)行類似的修改,用到全局求最大值的描述上,也可以很容易地獲得浮點(diǎn)求最大值和最小值的方法。
這里還有一個(gè)浮點(diǎn)非負(fù)數(shù)求最大值的特殊例子,該運(yùn)算可以在一個(gè)來回過程中完成,而不需要兩個(gè)。對(duì)于使用IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)二進(jìn)制算術(shù)格式的數(shù)來說,就像在大多數(shù)現(xiàn)代微處理器中的,不需要額外的本地運(yùn)算。通過適當(dāng)?shù)淖止?jié)排序,每個(gè)節(jié)點(diǎn)可以只將數(shù)字放在混合網(wǎng)絡(luò)上。對(duì)于其它浮點(diǎn)格式,象那些用于一些數(shù)字信號(hào)處理器的,可能需要一些本地操作。通過對(duì)它們絕對(duì)值進(jìn)行全局求最大值,負(fù)數(shù)求最小值也只要單個(gè)來回過程就可獲得。
4.使用整數(shù)全局求和的全局整體合并運(yùn)算圖6中闡述了全局整體合并運(yùn)算。每個(gè)節(jié)點(diǎn)貢獻(xiàn)一個(gè)或多個(gè)數(shù)字。最終結(jié)果是這些數(shù)字都放進(jìn)一個(gè)數(shù)組,在該數(shù)組中它們的位置對(duì)應(yīng)于它們來自的位置。例如,來自節(jié)點(diǎn)1的數(shù)字在最終的數(shù)組中出現(xiàn)在第一個(gè),后面緊跟著來自節(jié)點(diǎn)2的數(shù)字,...,等等。該運(yùn)算對(duì)應(yīng)于MPI標(biāo)準(zhǔn)中的MPI_ALLGATHER函數(shù)。
在支持整數(shù)求和的混合網(wǎng)絡(luò)中,可以很容易地將該函數(shù)實(shí)現(xiàn)為一次完成的運(yùn)算。利用零加一個(gè)數(shù)等于該數(shù)的事實(shí),每個(gè)節(jié)點(diǎn)只需要產(chǎn)生一個(gè)數(shù)組,該數(shù)組的大小等于最終數(shù)組,然后將該節(jié)點(diǎn)的數(shù)放在相應(yīng)的位置上并將零放在所有對(duì)應(yīng)來自所有其它節(jié)點(diǎn)的數(shù)的其它位置上。在混合網(wǎng)絡(luò)上對(duì)來自所有節(jié)點(diǎn)的數(shù)列進(jìn)行整數(shù)求和后,每個(gè)節(jié)點(diǎn)將獲得最終數(shù)列,所有的數(shù)字都存儲(chǔ)在相應(yīng)位置上。
5.使用整數(shù)全局求最大值的全局min_loc和max_loc這些函數(shù)對(duì)應(yīng)于MPI標(biāo)準(zhǔn)中的MPI_MINLOC和MPI_MAXLOC。例如,除了尋找全局最小值和最大值外,還給每個(gè)數(shù)加了一個(gè)標(biāo)記,使得人們可以找到是哪個(gè)節(jié)點(diǎn)有全局最小值或最大值。
在支持整數(shù)全局求最大值的混合網(wǎng)絡(luò)中,該函數(shù)是直接實(shí)施的。作為例子,我們將闡述全局max_loc。假設(shè)節(jié)點(diǎn)j,j=1,...,N的數(shù)為X_j,標(biāo)記為K_j。假設(shè)M為一個(gè)大整數(shù),M>max(K_j),節(jié)點(diǎn)j只需要將兩個(gè)數(shù)X_jM-K_j作為一個(gè)單元放在混合網(wǎng)絡(luò)中進(jìn)行全局整數(shù)求最大值。在該運(yùn)算的最后,每個(gè)節(jié)點(diǎn)將收到XM-K其中X=max(X_j)是所有X_j的最大值,K是對(duì)應(yīng)最大數(shù)X的標(biāo)記數(shù)。假如等于最大值X的不止一個(gè)數(shù),那么K是最小的標(biāo)記數(shù)。
在上述過程中,將X_j改為P-X_j,其中P是一個(gè)大正整數(shù)且P>max(X_j),就可以類似地得到全局min_loc。
在全局求最大值或最小值運(yùn)算中將標(biāo)記數(shù)附加到數(shù)字后的想法也可應(yīng)用到浮點(diǎn)數(shù)上。在全局浮點(diǎn)數(shù)求和操作步驟的討論中使用類似于上述的步驟。
6.其它運(yùn)算
在臨時(shí)專利申請(qǐng)60/271,124中描述的超級(jí)計(jì)算機(jī)系統(tǒng)上,混合網(wǎng)絡(luò)也支持其它全局位運(yùn)算AND,OR和XOR。這使得全局簡(jiǎn)化位運(yùn)算可以很容易地實(shí)施,如MPI標(biāo)準(zhǔn)中的MPI_BAND,MPI_BOR和MPI_BXOR?;旧?,每個(gè)節(jié)點(diǎn)只需將用于全局運(yùn)算的操作數(shù)放到網(wǎng)絡(luò)上,網(wǎng)絡(luò)就可以自動(dòng)處理全局運(yùn)算。
另外,只要在位運(yùn)算中僅使用一位,就可以實(shí)施邏輯運(yùn)算MPI_LAND,MPI_LOR和MPI_LXOR。
最后,每個(gè)全局運(yùn)算也意味著全局障礙(barrier)運(yùn)算。這是因?yàn)橹钡剿胁僮鲾?shù)都被注入網(wǎng)絡(luò),網(wǎng)絡(luò)才會(huì)繼續(xù)工作。因此,使用任何一個(gè)全局算術(shù)運(yùn)算,如全局位運(yùn)算AND,就可實(shí)施有效的MPI_BARRIER運(yùn)算。
7.使用環(huán)形和樹形兩種網(wǎng)絡(luò)的運(yùn)算依靠環(huán)形和樹形網(wǎng)絡(luò)的相對(duì)帶寬,并且依靠在浮點(diǎn)和定點(diǎn)表示法之間進(jìn)行轉(zhuǎn)換所必要的開銷,同時(shí)使用環(huán)形和樹形網(wǎng)絡(luò)進(jìn)行全局浮點(diǎn)簡(jiǎn)化運(yùn)算可能更有效。在這種情況下,環(huán)形網(wǎng)絡(luò)用于進(jìn)行簡(jiǎn)化運(yùn)算,而樹形網(wǎng)絡(luò)用于向所有節(jié)點(diǎn)廣播最終結(jié)果。在環(huán)形網(wǎng)絡(luò)中進(jìn)行簡(jiǎn)化運(yùn)算的現(xiàn)有技術(shù)眾所周知??墒?,在現(xiàn)有技術(shù)中,廣播階段也是在環(huán)形網(wǎng)絡(luò)中進(jìn)行的。例如,在圖7中以30表示的一個(gè)3×4環(huán)形網(wǎng)絡(luò)(或網(wǎng)狀網(wǎng)絡(luò))中,沿著行進(jìn)行簡(jiǎn)化運(yùn)算,然后在一行的最后一個(gè)節(jié)點(diǎn)轉(zhuǎn)到下一行。特別地,在求和簡(jiǎn)化運(yùn)算中,圖7描述了節(jié)點(diǎn)Q20插入一個(gè)數(shù)據(jù)包,并將它傳送到節(jié)點(diǎn)Q21。Q21處理該數(shù)據(jù)包,將它的相應(yīng)元素和該引入的數(shù)據(jù)包的相應(yīng)元素相加,并將包含和的數(shù)據(jù)包傳送到Q22。Q22處理該數(shù)據(jù)包,將它的相應(yīng)元素和該引入的數(shù)據(jù)包的相應(yīng)元素相加,并將包含和的數(shù)據(jù)包傳送到Q23。每一行都重復(fù)該過程。節(jié)點(diǎn)Q23將它的本地值和來自Q22的數(shù)據(jù)包中的相應(yīng)值相加,并將作為結(jié)果的數(shù)據(jù)包傳送到Q13。節(jié)點(diǎn)Q13將它的本地值和來自Q12和Q23的數(shù)據(jù)包的值相加,并將作為結(jié)果的和送到Q03。Q03將它的本地值和來自Q13和Q02的數(shù)據(jù)包的相應(yīng)值相加。這時(shí)Q03擁有全局和。在現(xiàn)有技術(shù)中,該全局和是通過環(huán)形網(wǎng)絡(luò)送到所有其它節(jié)點(diǎn)(而不是如圖中所示在樹形網(wǎng)絡(luò)上)。擴(kuò)展到更多的節(jié)點(diǎn)和更加高維的環(huán)形網(wǎng)絡(luò)在本領(lǐng)域的技術(shù)人員能力范圍內(nèi),所以也屬于本發(fā)明的范圍。為了對(duì)很多值進(jìn)行簡(jiǎn)化運(yùn)算,以流水線方式使用多個(gè)數(shù)據(jù)包。
可是,和環(huán)形網(wǎng)絡(luò)相比,使用樹形網(wǎng)絡(luò)可以進(jìn)行更加快速并且更加有效的最終廣播操作。在圖8中說明了這一點(diǎn)。在簡(jiǎn)化步驟中通過減少跳點(diǎn)數(shù)可以進(jìn)一步優(yōu)化性能。例如,數(shù)據(jù)包可以在一行的中間進(jìn)行傳送(和相加),而不是在一行的末端。
在一個(gè)三維環(huán)形網(wǎng)絡(luò)中,在上述基礎(chǔ)上直接擴(kuò)展導(dǎo)致了在每個(gè)z平面中單個(gè)節(jié)點(diǎn)沿著z方向?qū)λ鼈兊闹登蠛汀_@有個(gè)缺點(diǎn),需要這些節(jié)點(diǎn)處理三個(gè)引入數(shù)據(jù)包。例如節(jié)點(diǎn)Q03z必須接收來自Q02z,Q13z和Q03(z+1)的數(shù)據(jù)包。假如該處理器不夠快,這就會(huì)成為運(yùn)算中的瓶頸。為優(yōu)化性能,我們修改通信模式,使得沒有節(jié)點(diǎn)需要在環(huán)形網(wǎng)絡(luò)中處理兩個(gè)以上引入數(shù)據(jù)包。這在圖8中進(jìn)行闡述。在圖中,為了沿著z方向求和,節(jié)點(diǎn)Q03z將它的數(shù)據(jù)包送到節(jié)點(diǎn)Q00z。另外,節(jié)點(diǎn)Q00z不傳送它的數(shù)據(jù)包到節(jié)點(diǎn)Q01z,而只是接收來自節(jié)點(diǎn)Q00(z+1)的數(shù)據(jù)包,并將它的本地值和兩個(gè)引入數(shù)據(jù)包的相應(yīng)值相加。最后,節(jié)點(diǎn)Q000通過樹形網(wǎng)絡(luò)廣播最終結(jié)果。
顯然,這里公開的發(fā)明是經(jīng)過很好的設(shè)計(jì),用來滿足上述目的的,而本領(lǐng)域的技術(shù)人員還可以設(shè)計(jì)許多變體和實(shí)施例,意圖是所附權(quán)利要求涵蓋所有在本發(fā)明的真正精神和范圍內(nèi)的變體和實(shí)施例。
權(quán)利要求
1.在有多個(gè)相互連接的節(jié)點(diǎn)的分布式并行環(huán)形結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng)中,使用移位和運(yùn)算程序執(zhí)行算術(shù)運(yùn)算的方法,該方法包含步驟提供同一組數(shù)據(jù)值給一組節(jié)點(diǎn)中的每一個(gè);執(zhí)行全局算術(shù)運(yùn)算,其中每個(gè)節(jié)點(diǎn)對(duì)所有數(shù)據(jù)值執(zhí)行算術(shù)運(yùn)算以獲得最終值;和確保該組中所有節(jié)點(diǎn)以相同次序?qū)?shù)據(jù)值執(zhí)行全局運(yùn)算以確保二進(jìn)制有復(fù)驗(yàn)性的結(jié)果。
2.根據(jù)權(quán)利要求1的方法,其中確保步驟包括每個(gè)節(jié)點(diǎn)在被提供了所有數(shù)據(jù)值后才執(zhí)行全局算術(shù)運(yùn)算這一步驟。
3.根據(jù)權(quán)利要求2的方法,其中提供步驟包括該組中每個(gè)節(jié)點(diǎn)從該組其它節(jié)點(diǎn)接收數(shù)據(jù)值這一步驟。
4.根據(jù)權(quán)利要求1的方法,其中該節(jié)點(diǎn)通過雙向鏈接連接起來,并且提供步驟包括在所述鏈接上雙向傳送數(shù)據(jù)值到節(jié)點(diǎn)這一步驟。
5.根據(jù)權(quán)利要求1的方法,其中提供步驟包括每一個(gè)節(jié)點(diǎn)僅將一個(gè)數(shù)據(jù)值注入網(wǎng)絡(luò)一次這一步驟。
6.根據(jù)權(quán)利要求5的方法,其中注入步驟包括節(jié)點(diǎn)組中的節(jié)點(diǎn),而不是所述每個(gè)節(jié)點(diǎn),傳送所述一個(gè)數(shù)據(jù)值到該組中的其它節(jié)點(diǎn),以減少全局運(yùn)算的延遲這一步驟。
7.在有多個(gè)相互連接的節(jié)點(diǎn)的分布式并行環(huán)形結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng)中,使用移位和運(yùn)算程序執(zhí)行算術(shù)函數(shù)的系統(tǒng),該系統(tǒng)包含一組節(jié)點(diǎn),該組節(jié)點(diǎn)被提供有同一組數(shù)據(jù)值;用來執(zhí)行全局算術(shù)運(yùn)算的裝置,其中每個(gè)節(jié)點(diǎn)對(duì)所有數(shù)據(jù)值執(zhí)行算術(shù)運(yùn)算以獲得最終值;和用來確保該組中所有節(jié)點(diǎn)以相同次序?qū)?shù)據(jù)值執(zhí)行全局運(yùn)算以確保二進(jìn)制有復(fù)驗(yàn)性結(jié)果的裝置。
8.根據(jù)權(quán)利要求7的系統(tǒng),其中確保裝置包括用來在每個(gè)節(jié)點(diǎn)被提供了所有數(shù)據(jù)值后才在該節(jié)點(diǎn)執(zhí)行全局算術(shù)運(yùn)算的裝置。
9.根據(jù)權(quán)利要求7的系統(tǒng),其中該組中的每個(gè)節(jié)點(diǎn)從該組中其它節(jié)點(diǎn)接收數(shù)據(jù)值。
10.根據(jù)權(quán)利要求7的系統(tǒng),其中節(jié)點(diǎn)通過雙向鏈接連接起來,并且提供裝置包括用來在所述鏈接上雙向傳送數(shù)據(jù)值到節(jié)點(diǎn)的裝置。
11.根據(jù)權(quán)利要求7的系統(tǒng),其中每一個(gè)節(jié)點(diǎn)僅將一個(gè)數(shù)據(jù)值注入網(wǎng)絡(luò)一次。
12.根據(jù)權(quán)利要求7的系統(tǒng),其中該組節(jié)點(diǎn)中的節(jié)點(diǎn),而不是所述每個(gè)節(jié)點(diǎn),傳送所述一個(gè)數(shù)據(jù)值到該組中的其它節(jié)點(diǎn),以減少全局運(yùn)算的延遲。
13.機(jī)器可讀的程序存儲(chǔ)設(shè)備,該設(shè)備確實(shí)包含可由機(jī)器執(zhí)行的指令程序,用以在有多個(gè)相互連接的節(jié)點(diǎn)的分布式并行環(huán)形結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng)中,使用移位和運(yùn)算程序?qū)崿F(xiàn)執(zhí)行算術(shù)函數(shù)的方法步驟,該方法步驟包含提供同一組數(shù)據(jù)值給一組節(jié)點(diǎn)中的每一個(gè);執(zhí)行全局算術(shù)運(yùn)算,其中每個(gè)節(jié)點(diǎn)對(duì)所有數(shù)據(jù)值執(zhí)行算術(shù)運(yùn)算以獲得最終值;和確保該組中所有節(jié)點(diǎn)以相同次序?qū)?shù)據(jù)值執(zhí)行全局運(yùn)算以確保二進(jìn)制有復(fù)驗(yàn)性的結(jié)果。
14.根據(jù)權(quán)利要求13的程序存儲(chǔ)設(shè)備,其中確保步驟包括每個(gè)節(jié)點(diǎn)在被提供了所有數(shù)據(jù)值后才執(zhí)行全局算術(shù)運(yùn)算這一步驟。
15.根據(jù)權(quán)利要求14的程序存儲(chǔ)設(shè)備,其中提供步驟包括該組中每個(gè)節(jié)點(diǎn)從該組其它節(jié)點(diǎn)接收數(shù)據(jù)值這一步驟。
16.根據(jù)權(quán)利要求13的程序存儲(chǔ)設(shè)備,其中該節(jié)點(diǎn)通過雙向鏈接連接起來,并且提供步驟包括在所述鏈接上雙向傳送數(shù)據(jù)值到節(jié)點(diǎn)這一步驟。
17.根據(jù)權(quán)利要求13的程序存儲(chǔ)設(shè)備,其中提供步驟包括每一個(gè)節(jié)點(diǎn)僅將一個(gè)數(shù)據(jù)值注入網(wǎng)絡(luò)一次這一步驟。
18.根據(jù)權(quán)利要求17的程序存儲(chǔ)設(shè)備,其中注入步驟包括該組節(jié)點(diǎn)中的節(jié)點(diǎn),而不是所述每個(gè)節(jié)點(diǎn),傳送所述一個(gè)數(shù)據(jù)值到該組中的其它節(jié)點(diǎn),以減少全局運(yùn)算的延遲這一步驟。
19.在有多個(gè)通過支持整數(shù)混合運(yùn)算的全局樹形網(wǎng)絡(luò)相互連接的節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中,執(zhí)行算術(shù)運(yùn)算的方法,該方法包含步驟向一組節(jié)點(diǎn)中的每一個(gè)提供第一數(shù)值;根據(jù)第一定義程序,處理每個(gè)第一數(shù)值,從每個(gè)第一數(shù)值得到第二數(shù)值,其中所有第二數(shù)值都是整數(shù)數(shù)值;和使用所述第二數(shù)值,在網(wǎng)絡(luò)上執(zhí)行全局整數(shù)混合運(yùn)算。
20.根據(jù)權(quán)利要求19的方法,其中執(zhí)行步驟包括在網(wǎng)絡(luò)上執(zhí)行全局無符號(hào)整數(shù)求和這一步驟。
21.根據(jù)權(quán)利要求19的方法,其中執(zhí)行步驟包括在網(wǎng)絡(luò)上執(zhí)行全局求最大值運(yùn)算,并使用所述全局求最大值運(yùn)算的結(jié)果來確定第一數(shù)值的最大值這一步驟。
22.根據(jù)權(quán)利要求19的方法,其中執(zhí)行步驟包括在網(wǎng)絡(luò)上執(zhí)行全局求最大值運(yùn)算,并使用所述全局求最大值運(yùn)算的結(jié)果來確定第一數(shù)值的最小值這一步驟。
23.在有多個(gè)通過支持整數(shù)混合運(yùn)算的全局樹形網(wǎng)絡(luò)相互連接的節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中,用來執(zhí)行算術(shù)函數(shù)的系統(tǒng),該系統(tǒng)包括一組節(jié)點(diǎn),該組中的每個(gè)節(jié)點(diǎn)被提供有第一數(shù)值;根據(jù)第一定義程序,處理每個(gè)第一數(shù)值的處理器,該處理器從第一數(shù)值得到第二數(shù)值,其中所有的第二數(shù)值都是整數(shù)數(shù)值;和使用所述第二數(shù)值,在網(wǎng)絡(luò)上執(zhí)行全局整數(shù)混合運(yùn)算的裝置。
24.根據(jù)權(quán)利要求23的系統(tǒng),其中用于執(zhí)行的裝置包括在網(wǎng)絡(luò)上執(zhí)行全局無符號(hào)整數(shù)求和的裝置。
25.根據(jù)權(quán)利要求23的系統(tǒng),其中用于執(zhí)行步驟的裝置包括在網(wǎng)絡(luò)上執(zhí)行全局求最大值運(yùn)算,并使用所述全局求最大值的運(yùn)算的結(jié)果來確定第一數(shù)值的最大值的裝置。
26.根據(jù)權(quán)利要求23的系統(tǒng),其中用于執(zhí)行步驟的裝置包括在網(wǎng)絡(luò)上執(zhí)行全局求最大值運(yùn)算,并使用所述全局求最大值的運(yùn)算的結(jié)果來確定第一數(shù)值的最小值的裝置。
27.機(jī)器可讀的程序存儲(chǔ)設(shè)備,該設(shè)備確實(shí)包含可由機(jī)器執(zhí)行的指令程序,以便在有多個(gè)通過支持整數(shù)混合運(yùn)算的全局樹形網(wǎng)絡(luò)相互連接的節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中,實(shí)現(xiàn)執(zhí)行算術(shù)運(yùn)算的方法步驟,該方法步驟包含向一組節(jié)點(diǎn)中的每一個(gè)提供第一數(shù)值;根據(jù)第一定義程序,處理每個(gè)第一數(shù)值,從每個(gè)第一數(shù)值得到第二數(shù)值,其中所有第二數(shù)值都是整數(shù)值;和使用所述第二數(shù)值,在網(wǎng)絡(luò)上執(zhí)行全局整數(shù)混合運(yùn)算。
28.根據(jù)權(quán)利要求27的程序存儲(chǔ)設(shè)備,其中執(zhí)行步驟包括在網(wǎng)絡(luò)上執(zhí)行全局無符號(hào)整數(shù)求和這一步驟。
29.根據(jù)權(quán)利要求27的程序存儲(chǔ)設(shè)備,其中執(zhí)行步驟包括在網(wǎng)絡(luò)上執(zhí)行全局求最大值運(yùn)算,并使用所述全局求最大值運(yùn)算的結(jié)果來確定第一數(shù)值的最大值這一步驟。
30.根據(jù)權(quán)利要求27的程序存儲(chǔ)設(shè)備,其中執(zhí)行步驟包括在網(wǎng)絡(luò)上執(zhí)行全局求最大值運(yùn)算,并使用所述全局求最大值運(yùn)算的結(jié)果來確定第一數(shù)值的最小值這一步驟。
31.在有多個(gè)通過支持整數(shù)混合運(yùn)算的全局樹形網(wǎng)絡(luò)相互連接的節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中,執(zhí)行全局運(yùn)算的方法,該方法包含將一個(gè)或多個(gè)任何類型的數(shù)提供給每個(gè)節(jié)點(diǎn);將該節(jié)點(diǎn)的數(shù)結(jié)合成一個(gè)數(shù)組,該數(shù)組有特定數(shù)量的位置,所述結(jié)合步驟包含步驟i)每個(gè)節(jié)點(diǎn)將該節(jié)點(diǎn)的一個(gè)或多個(gè)數(shù)放進(jìn)該數(shù)組的一個(gè)或多個(gè)位置,并將零值放進(jìn)該數(shù)組的所有其它位置,和ii)使用全局樹形網(wǎng)絡(luò)來將放進(jìn)數(shù)組中每個(gè)位置的所有數(shù)相加。
32.根據(jù)權(quán)利要求31的方法,其中數(shù)組中特定數(shù)量的位置被排成特定的順序;和結(jié)合步驟包含另一步驟,每個(gè)節(jié)點(diǎn)建立一個(gè)相關(guān)數(shù)組,該數(shù)組也含有所述特定數(shù)量的位置,且這些位置排成特定順序,并且將該節(jié)點(diǎn)的一個(gè)或多個(gè)放進(jìn)該相關(guān)數(shù)組的一個(gè)或多個(gè)位置中,將零值放進(jìn)該相關(guān)數(shù)組的所有其它位置。
33.在有多個(gè)通過支持整數(shù)混合運(yùn)算的全局樹形網(wǎng)絡(luò)相互連接的節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中,用來執(zhí)行全局運(yùn)算的系統(tǒng),該系統(tǒng)包含一組節(jié)點(diǎn),該組中每個(gè)節(jié)點(diǎn)有一個(gè)或多個(gè)數(shù);用來將該節(jié)點(diǎn)的數(shù)結(jié)合成一個(gè)數(shù)組的裝置,該數(shù)組有特定數(shù)量的位置,所述結(jié)合裝置包含i)將該組節(jié)點(diǎn)的一個(gè)或多個(gè)數(shù)放進(jìn)該數(shù)組的一個(gè)或多個(gè)位置,并將零值放進(jìn)該數(shù)組的所有其它位置的裝置,和ii)使用全局樹形網(wǎng)絡(luò)來將放進(jìn)數(shù)組中每個(gè)位置的所有數(shù)相加的裝置。
34.根據(jù)權(quán)利要求33的系統(tǒng),其中數(shù)組中特定數(shù)量的位置排成特定的順序;且結(jié)合的裝置還包含另一裝置,用于建立與該組的每個(gè)節(jié)點(diǎn)分別相關(guān)的一個(gè)相應(yīng)數(shù)組,該數(shù)組也含有所述特定數(shù)量位置,且這些位置排成特定順序,并且將每個(gè)節(jié)點(diǎn)的一個(gè)或多個(gè)數(shù)放進(jìn)該相關(guān)數(shù)組的一個(gè)或多個(gè)位置中,將零值放進(jìn)該相關(guān)數(shù)組的所有其它位置。
35.機(jī)器可讀的程序存儲(chǔ)設(shè)備,該設(shè)備確實(shí)包含可由機(jī)器執(zhí)行的指令程序,用以在有多個(gè)通過支持整數(shù)混合運(yùn)算的全局樹形網(wǎng)絡(luò)相互連接的節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中,實(shí)現(xiàn)執(zhí)行全局運(yùn)算的方法步驟,該方法步驟包含將一個(gè)或多個(gè)數(shù)提供給每個(gè)節(jié)點(diǎn);將該節(jié)點(diǎn)的數(shù)結(jié)合成一個(gè)數(shù)組,該數(shù)組有特定數(shù)量的位置,所述結(jié)合步驟包含步驟a.每個(gè)節(jié)點(diǎn)將該節(jié)點(diǎn)的一個(gè)或多個(gè)數(shù)放進(jìn)該數(shù)組的一個(gè)或多個(gè)位置,并將零值放進(jìn)該數(shù)組的所有其它位置,和b.使用全局樹形網(wǎng)絡(luò)來將放進(jìn)數(shù)組中每個(gè)位置的所有數(shù)相加。
36.根據(jù)權(quán)利要求35的方法,其中數(shù)組中特定數(shù)量的位置排成特定的順序;且結(jié)合步驟包含另一步驟,每個(gè)節(jié)點(diǎn)建立一個(gè)相關(guān)數(shù)組,該數(shù)組也含有所述特定數(shù)量的位置,且這些位置排成特定順序,并且將該節(jié)點(diǎn)的一個(gè)或多個(gè)數(shù)放進(jìn)該相關(guān)數(shù)組的一個(gè)或多個(gè)位置中,將零值放進(jìn)該相關(guān)數(shù)組的所有其它位置。
37.在有多個(gè)通過支持整數(shù)混合運(yùn)算的全局樹形網(wǎng)絡(luò)相互連接的節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中,執(zhí)行算術(shù)運(yùn)算的方法,該方法包含步驟每個(gè)節(jié)點(diǎn)貢獻(xiàn)一組第一數(shù)值;和使用所述第一數(shù)值,在網(wǎng)絡(luò)上執(zhí)行全局整數(shù)混合運(yùn)算。
38.根據(jù)權(quán)利要求37的方法,其中執(zhí)行步驟包括使用該全局整數(shù)混合運(yùn)算的結(jié)果來判斷第一數(shù)值的特性。
39.在有多個(gè)通過支持整數(shù)混合運(yùn)算的全局樹形網(wǎng)絡(luò)相互連接的節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中,用來執(zhí)行全局運(yùn)算的系統(tǒng),該系統(tǒng)包含一組節(jié)點(diǎn),該組的每個(gè)節(jié)點(diǎn)含有一組第一數(shù)值;和使用第一數(shù)值,在網(wǎng)絡(luò)上執(zhí)行全局整數(shù)混合運(yùn)算的處理器。
40.根據(jù)權(quán)利要求39的系統(tǒng),其中該處理器包括使用全局整數(shù)混合運(yùn)算的結(jié)果來判斷第一數(shù)值特性的裝置。
41.操作并行處理計(jì)算機(jī)系統(tǒng)的方法,該系統(tǒng)擁有多個(gè)通過全局樹形網(wǎng)絡(luò)和環(huán)形網(wǎng)絡(luò)共同連接的節(jié)點(diǎn),該方法包含使用計(jì)算機(jī)系統(tǒng)執(zhí)行特定運(yùn)算;和使用環(huán)形和樹形網(wǎng)絡(luò),協(xié)作進(jìn)行簡(jiǎn)化運(yùn)算。
42.根據(jù)權(quán)利要求41的方法,其中使用環(huán)形和樹形網(wǎng)絡(luò)的步驟包括通過使用一個(gè)處理器處理環(huán)形運(yùn)算,使用另一個(gè)處理器處理樹形運(yùn)算,從而使用環(huán)形和樹形兩種網(wǎng)絡(luò)的步驟。
43.根據(jù)權(quán)利要求41的方法,其中使用環(huán)形和樹形網(wǎng)絡(luò)的步驟包括,在三維環(huán)形網(wǎng)絡(luò)中如此進(jìn)行環(huán)形通信,使得環(huán)形網(wǎng)絡(luò)上沒有一個(gè)節(jié)點(diǎn)接收兩個(gè)以上數(shù)據(jù)包來混合的步驟。
44.機(jī)器可讀的程序存儲(chǔ)設(shè)備,該設(shè)備確實(shí)包含可由機(jī)器執(zhí)行的指令程序,用來實(shí)現(xiàn)操作并行處理計(jì)算機(jī)系統(tǒng)的方法步驟,該系統(tǒng)擁有多個(gè)通過全局樹形網(wǎng)絡(luò)和環(huán)形網(wǎng)絡(luò)連接的節(jié)點(diǎn),該方法步驟包含使用計(jì)算機(jī)系統(tǒng)執(zhí)行特定運(yùn)算;和使用環(huán)形和樹形兩種網(wǎng)絡(luò),協(xié)作進(jìn)行簡(jiǎn)化運(yùn)算。
45.根據(jù)權(quán)利要求44的程序存儲(chǔ)設(shè)備,其中使用環(huán)形和樹形兩種網(wǎng)絡(luò)的步驟包括通過使用一個(gè)處理器處理環(huán)形運(yùn)算,使用另一個(gè)處理器處理樹形運(yùn)算,從而共同使用環(huán)形和樹形網(wǎng)絡(luò)的步驟。
46.根據(jù)權(quán)利要求44的程序存儲(chǔ)設(shè)備,其中使用環(huán)形和樹形兩種網(wǎng)絡(luò)的步驟包括,在三維環(huán)形網(wǎng)絡(luò)中如此進(jìn)行環(huán)形通信,使得環(huán)形網(wǎng)絡(luò)上沒有一個(gè)節(jié)點(diǎn)接收兩個(gè)以上數(shù)據(jù)包來混合的步驟。
47.一種并行處理計(jì)算機(jī)系統(tǒng),包含多個(gè)節(jié)點(diǎn);全局樹形網(wǎng)絡(luò),該網(wǎng)絡(luò)還使節(jié)點(diǎn)相互連接;環(huán)形網(wǎng)絡(luò),該網(wǎng)絡(luò)還使節(jié)點(diǎn)相互連接;和使用環(huán)形和樹形兩種網(wǎng)絡(luò),協(xié)作進(jìn)行簡(jiǎn)化運(yùn)算的裝置。
48.根據(jù)權(quán)利要求47的計(jì)算機(jī)系統(tǒng),其中使用環(huán)形和樹形兩種網(wǎng)絡(luò)的裝置包括處理環(huán)形運(yùn)算的一個(gè)處理器和處理樹形運(yùn)算的另一個(gè)處理器。
49.根據(jù)權(quán)利要求47的計(jì)算機(jī)系統(tǒng),其中使用環(huán)形和樹形兩種網(wǎng)絡(luò)的裝置包括在三維環(huán)形網(wǎng)絡(luò)中如此進(jìn)行環(huán)形通信,使得環(huán)形網(wǎng)絡(luò)上沒有一個(gè)節(jié)點(diǎn)接收兩個(gè)以上數(shù)據(jù)包來混合的裝置。
全文摘要
執(zhí)行算術(shù)函數(shù)的方法和系統(tǒng)。根據(jù)本發(fā)明的第一方面,提供了方法和裝置,該方法和裝置和類網(wǎng)絡(luò)路由的軟件算法和硬件實(shí)現(xiàn)共同工作,極大地減少了環(huán)形網(wǎng)絡(luò)上全局算術(shù)運(yùn)算所需要的時(shí)間。因此,它使得在大型并行機(jī)器上運(yùn)行的應(yīng)用程序更具有可量測(cè)性。在改進(jìn)全局運(yùn)算的效率和精確性方面,該發(fā)明包含三個(gè)步驟1)需要時(shí),確保所有節(jié)點(diǎn)以同樣的次序進(jìn)行全局運(yùn)算,從而獲得唯一的答案,不受四舍五入誤差的影響。2)使用環(huán)形拓?fù)?,以使得跳點(diǎn)數(shù)最小,使用網(wǎng)絡(luò)的雙向能力,以將數(shù)據(jù)傳送操作中的時(shí)間步數(shù)降低到絕對(duì)最小值。3)使用類函數(shù)路由,以減少數(shù)據(jù)傳送中的延遲。使用本發(fā)明的方法,每個(gè)單個(gè)單元只被注入網(wǎng)絡(luò)一次,它將被存儲(chǔ)并發(fā)送,而不需要加任何軟件開銷。根據(jù)本發(fā)明的第二方面,提供方法和系統(tǒng),在支持全局混合運(yùn)算的網(wǎng)絡(luò)上有效執(zhí)行全局算術(shù)運(yùn)算。通過使用這些方法,極大地減少了進(jìn)行這種全局運(yùn)算的延遲(圖4,節(jié)點(diǎn)1,節(jié)點(diǎn)2,節(jié)點(diǎn)3)。
文檔編號(hào)G06F13/24GK1493041SQ02805423
公開日2004年4月28日 申請(qǐng)日期2002年2月25日 優(yōu)先權(quán)日2001年2月24日
發(fā)明者蓋恩V·班諾特, 蓋恩V 班諾特, 斯A 布盧姆里奇, 馬賽厄斯A·布盧姆里奇, ぜ永, 陳東, ぜ幟放僚, 艾倫G·加拉, 海德伯格, 馬克E·賈姆帕帕, 德D 斯坦馬徹-伯羅, 菲利普·海德伯格, 伯克哈德D·斯坦馬徹-伯羅, 斯M 弗拉納斯, 帕夫羅斯M·弗拉納斯 申請(qǐng)人:國際商業(yè)機(jī)器公司