專利名稱:通過(guò)交互中心的空間分區(qū)進(jìn)行的負(fù)荷平衡的制作方法
技術(shù)領(lǐng)域:
所公開(kāi)的本發(fā)明廣泛涉及信息處理系統(tǒng)和方法的領(lǐng)域,尤其涉及
用于n-體仿真一包括諸如蛋白質(zhì)和DNA折疊(folding)之類(lèi)的生物 分子仿真和處理的超級(jí)計(jì)算機(jī)系統(tǒng)和方法。
背景技術(shù):
隨著強(qiáng)大的信息處理系統(tǒng)的使用,生物技術(shù)取得了實(shí)質(zhì)性的進(jìn)步。 一個(gè)這樣的系統(tǒng)是在1999年宣布的藍(lán)色基因項(xiàng)目(Blue Gene Project)。在當(dāng)時(shí),藍(lán)色基因項(xiàng)目有兩個(gè)高級(jí)目標(biāo)建立世界上最快 的超級(jí)計(jì)算機(jī)以及使用此前所未有的計(jì)算資源來(lái)解決極具挑戰(zhàn)性的生 命科學(xué)難題,諸如,增進(jìn)我們對(duì)生物上重要的過(guò)程的理解,特別是蛋 白質(zhì)折疊背后的機(jī)制。
作為實(shí)現(xiàn)這些目標(biāo)的第一個(gè)中的一步,設(shè)計(jì)和建造了藍(lán)色基因家 族中的第 一個(gè)成員,Blue Gene/L。參見(jiàn)N.R. Adiga等人的An Overview
of the Blue Gene/L supercomputer. 5^/7em 附/;M"Vig iVoce^// ^$, November 2002. http:〃www.sc-2002.org/paperpdfs/pap.pap207.pdf。 為了實(shí)現(xiàn)這些目標(biāo)中的第二個(gè),開(kāi)始研究項(xiàng)目來(lái)創(chuàng)建針對(duì)Blue Gene/L 架構(gòu)的經(jīng)典分子動(dòng)力學(xué)軟件包,并且使用該軟件包進(jìn)行長(zhǎng)時(shí)間和大規(guī) 模的生物分子仿真。參見(jiàn)F.Allen等人Blue Gene: a vision for protein science using a petaflop supercomputer. TfiAf iS",e附 Jow,聽(tīng)/, 40(2):310-327, 2001.
經(jīng)典分子動(dòng)力學(xué)主要是N-體問(wèn)題。n-體問(wèn)題的標(biāo)準(zhǔn)定義如下n-體問(wèn)題是給出n個(gè)體的初始位置、質(zhì)量和速度,求出由經(jīng)典機(jī)制確定 的、它們隨后的運(yùn)動(dòng)。
N-體問(wèn)題,例如分子動(dòng)力學(xué)(MD)作為一系列仿真時(shí)間步驟進(jìn)行。在每個(gè)時(shí)間步驟上,計(jì)算MD原子中粒子上的力;然后集成運(yùn)動(dòng) 的等式來(lái)更新粒子的速度和位置。為了計(jì)算粒子上的力,通常計(jì)算每 個(gè)粒子和每個(gè)其他粒子之間的力,計(jì)算負(fù)荷為0(n2)。
從實(shí)際上講,分子動(dòng)力學(xué)程序通過(guò)切斷一定距離上的對(duì)交互來(lái)減 少0(n2)。然而,對(duì)于許多科學(xué)相關(guān)的分子系統(tǒng),由于粒子對(duì)交互而導(dǎo) 致的計(jì)算負(fù)荷仍然很大。為了達(dá)到科學(xué)相關(guān)的仿真次數(shù),要求并行計(jì) 算機(jī)來(lái)快速計(jì)算粒子對(duì)交互。參見(jiàn)B.G. Fitch, R.S. Germain, M. Mendell, J. Pitera, M. Pitman, A. Rayshubskiy, Y. Sham, F. Suits, W. Swope, T.J.C. Ward, Y. Zhestkov, and R. Zhou, "Blue Matter, an application framework for molecular simulation on Blue Gene" /owr鼎//Vim〃e/ awd Z)/sW6",^/ CV 附/;w,/wg, 63:759-773, 2003.
要注意,BlueGene/L并行計(jì)算平臺(tái)主要使用3D圓環(huán)形網(wǎng)絡(luò)進(jìn)行 處理器間通信。處理器空間由處理器在3D圓環(huán)形網(wǎng)絡(luò)上的位置限定, 并且處理器之間的通信量隨著距離增加。需要一種允許高效映射幾何 n-體問(wèn)題(例如具有基本集合處理器空間的機(jī)器,諸如Blue Gene/L ) 的系統(tǒng)和方法。
發(fā)明內(nèi)容
簡(jiǎn)單地說(shuō),根據(jù)本發(fā)明的實(shí)施例, 一種用于創(chuàng)建結(jié)構(gòu)化、分散的、 具有成對(duì)交互的粒子的系統(tǒng)的負(fù)荷平衡的空間分區(qū)的方法,包括步驟
為兩個(gè)粒子之間的仿真空間中的點(diǎn)分配與粒子的對(duì)交互的計(jì)算量 相對(duì)應(yīng)的加權(quán)(其中,優(yōu)選的實(shí)現(xiàn)是將該計(jì)算量分配給兩個(gè)粒子位置 的中點(diǎn));執(zhí)行仿真空間的空間分區(qū);和向具有兩個(gè)粒子的位置的任 何節(jié)點(diǎn)分配對(duì)交互的計(jì)算。
該方法也可以實(shí)現(xiàn)為可以通過(guò)可編程信息處理系統(tǒng)執(zhí)行的機(jī)器可 執(zhí)行指令,或者實(shí)現(xiàn)為專用計(jì)算裝置(諸如專用集成電路(ASIC)) 中的硬件編碼邏輯。
圖l是根據(jù)本發(fā)明實(shí)施例的方法的流程圖。
圖2是示出根據(jù)本發(fā)明另 一實(shí)施例的信息處理系統(tǒng)的高層框圖。 圖3是具有所顯示的粒子位置和交互中心二者的二維系統(tǒng)的視圖。
圖4示出空間分解,其顯示了域的空間分解上疊加的兩個(gè)節(jié)點(diǎn)到 所有節(jié)點(diǎn)的廣播區(qū)域(為了簡(jiǎn)單起見(jiàn)示出二維視圖)。
具體實(shí)施例方式
在下面的討論中,我們將使用下列定義/約定
對(duì)于某些ii-體仿真,定義將粒子劃分成一個(gè)或多個(gè)粒子的組(為 特定目的而作為單元對(duì)待)是方便的。當(dāng)是這樣的意圖時(shí),將使用術(shù) 語(yǔ)"片段"來(lái)指示包括一個(gè)或多個(gè)粒子的這樣的實(shí)體。
術(shù)語(yǔ)"節(jié)點(diǎn)"是指在通過(guò)互連網(wǎng)絡(luò)定義的圖中形成節(jié)點(diǎn)的計(jì)算元 素。任何"節(jié)點(diǎn)"可以包括一個(gè)或多個(gè)處理器。在該討論中將不涉及節(jié) 點(diǎn)的內(nèi)部操作。
術(shù)語(yǔ)"仿真空間"是指n-體仿真的域。
術(shù)語(yǔ)"節(jié)點(diǎn)空間"是指機(jī)器節(jié)點(diǎn)之間的互連的幾何形狀。典型地, 我們將討論具有三維圓環(huán)形/網(wǎng)狀互連幾何形狀的機(jī)器,其中每個(gè)節(jié)點(diǎn) 連接到它的六個(gè)最近的鄰居,并且由標(biāo)識(shí)其在網(wǎng)絡(luò)內(nèi)的坐標(biāo)的三個(gè)整 數(shù)來(lái)對(duì)其進(jìn)行尋址。在圓環(huán)中,通過(guò)連接機(jī)器的相對(duì)"面,,上的節(jié)點(diǎn)來(lái) 在物理上實(shí)現(xiàn)周期性邊界條件。
參照?qǐng)D1,示出根據(jù)本發(fā)明實(shí)施例的方法100的流程圖,該方法 100用于創(chuàng)建結(jié)構(gòu)化、分散的、具有成對(duì)交互的粒子的系統(tǒng)的負(fù)荷平 衡的空間分區(qū),該系統(tǒng)可擴(kuò)展到很大數(shù)量的節(jié)點(diǎn),并且具有良好的通 信特性。
步驟102定義包括多個(gè)粒子和多個(gè)處理器節(jié)點(diǎn)的仿真空間。可以 在仿真空間上使用k-d樹(shù)來(lái)執(zhí)行該步驟102。參見(jiàn)Volker Gaede和 Oliver Gtinther, M"/^Z/附ew5^wa/ Access Afe幼o(hù)rf!s, ACM Computing Surveys, 30(2):170-231, June 1998.為了處理節(jié)點(diǎn)空間中的結(jié)構(gòu)不平衡,步驟104確定與粒子的特定 對(duì)交互或者局部成簇的粒子組的計(jì)算量相對(duì)應(yīng)的加權(quán),來(lái)仿真在這些 片段之間的點(diǎn)(諸如,片段之間的距離的中點(diǎn))上的空間。每個(gè)片段 可以包括單個(gè)粒子。
步驟106將所確定的加權(quán)分配給兩個(gè)交互粒子的位置之間的仿真 空間中的點(diǎn)。該點(diǎn)優(yōu)選地是交互片段之間的中點(diǎn)。每個(gè)粒子的位置被 廣播到在截?cái)?cut-off)半徑一半距離內(nèi)的仿真空間中的點(diǎn)。
步驟108執(zhí)行仿真空間的容積的空間分區(qū),使得所有分區(qū)具有基 本上相同的加權(quán)。
步驟110為具有兩個(gè)片段的位置的任何節(jié)點(diǎn)分配片段對(duì)交互的計(jì)算。
為了簡(jiǎn)化處理,對(duì)交互可以在定義的半徑Rc以外被截?cái)?,因此?以將粒子的位置廣播到在仿真空間中包含半徑Rb>Re/2的球面部分的 節(jié)點(diǎn)組,從而確保存在包含有計(jì)算任何交互所需的兩個(gè)粒子的位置的 至少一個(gè)節(jié)點(diǎn)。當(dāng)不止一個(gè)節(jié)點(diǎn)包含計(jì)算交互所需的位置時(shí),計(jì)算可 以被分配給這些節(jié)點(diǎn)中的任一個(gè),從而提供消除由于交互工作負(fù)荷中 短期局部波動(dòng)而引起的不平衡的機(jī)會(huì)。因?yàn)槲覀兪褂媒换ブ行膱?zhí)行負(fù) 荷平衡,所以存在許多可以使用ORB策略分區(qū)的幾何上不同的網(wǎng)絡(luò) 對(duì)象,并且這種分解允許大量使用比系統(tǒng)中存在的粒子更多的節(jié)點(diǎn)。
盡管在這里討論的實(shí)施例中,用包括圓環(huán)形的處理器節(jié)點(diǎn)網(wǎng)絡(luò)執(zhí) 行該方法,但該方法也可以以良好的效果應(yīng)用到其他網(wǎng)絡(luò)拓樸。
參照?qǐng)D2,示出根據(jù)本發(fā)明實(shí)施例的信息處理系統(tǒng)200的框圖。 系統(tǒng)200表示多處理器節(jié)點(diǎn)網(wǎng)絡(luò)中的任何處理節(jié)點(diǎn)。系統(tǒng)200包括處 理器202、存儲(chǔ)器204和輸入/輸出(I/O)子系統(tǒng)206。
存儲(chǔ)器204可以是易失性或非易失性隨機(jī)存取存儲(chǔ)器(RAM)。 系統(tǒng)200還可以包括只讀存儲(chǔ)器(ROM ) 210和》茲介質(zhì)海量存儲(chǔ)設(shè)備, 諸如硬盤(pán)驅(qū)動(dòng)器212。這些通過(guò)CPU總線208連接。
I/O子系統(tǒng)206還可以包括各種終端用戶接口,如顯示器、鍵盤(pán) 和鼠標(biāo)。I/O子系統(tǒng)206還可以包括到網(wǎng)絡(luò)的連接,如局域網(wǎng)(LAN)或諸如因特網(wǎng)的廣域網(wǎng)(WAN)。根據(jù)本發(fā)明的另一實(shí)施例,計(jì)算機(jī) 可讀介質(zhì),如CDROM214可以包括程序指令,其用于操作根據(jù)本發(fā) 明的可編程計(jì)算機(jī)200。這里所顯示和討論的是對(duì)可編程計(jì)算機(jī)裝置 的高度簡(jiǎn)化的描繪。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在計(jì)算機(jī)裝置的任何 實(shí)際應(yīng)用中需要其他低層的部件和連接。
本發(fā)明的實(shí)施例通過(guò)將仿真空間幾何映射到圓環(huán)形/網(wǎng)狀并行計(jì) 算機(jī)的節(jié)點(diǎn)空間一空間分解,有效地解決了 N-體問(wèn)題。分布工作的根 本機(jī)制是粒子位置的橢圓形廣播、其后可能跟著片段歸屬節(jié)點(diǎn)上的力 的橢圓形減少。
橢圓形通信原語(yǔ)(primitive)
橢圓形通信原語(yǔ)是對(duì)該實(shí)施例的基本要求。這些可以使用點(diǎn)對(duì)點(diǎn) 通信構(gòu)建,然而,硬件可以提供增強(qiáng)這些原語(yǔ)的性能的特征,諸如多 播。為了討論的目的,我們將描述橢圓形通信原語(yǔ)的功能要求,而非 實(shí)施。
在我們仿真空間到節(jié)點(diǎn)空間的映射中,我們將仿真空間劃分成與 我們具有的節(jié)點(diǎn)相同數(shù)量的子容積,此外,仿真空間在每一維上將具 有與節(jié)點(diǎn)空間(以節(jié)點(diǎn)度量)相同的范圍(以體元度量)。分配給每 個(gè)處理器(或體元)的容積元素的大小可以是不均勻的。
當(dāng)執(zhí)行仿真空間中球形邊界的通信圖案(pattern)時(shí)以及當(dāng)仿真空 間中的體元(voxel)大小不均勻或者不是立方形時(shí),出現(xiàn)節(jié)點(diǎn)空間中的 橢圓形通信圖案。兩個(gè)感興趣的操作是(l)橢圓形廣播在仿真空 間中給定球形,將數(shù)據(jù)從中心廣播到該球形中的每個(gè)節(jié)點(diǎn)管理空間; 和(2)橢圓形減少在仿真空間中給定球形,將數(shù)據(jù)從該球形中的每
一節(jié)點(diǎn)管理空間e-減少到中心處的根。
用于負(fù)荷平衡的N-體空間分解
周期性仿真空間中的N-體問(wèn)題通常具有由量級(jí)O(N"個(gè)可能的成 對(duì)粒子交互定義的計(jì)算負(fù)荷。在許多應(yīng)用中,通過(guò)截?cái)?即,不計(jì)算) 周期性仿真空間中相隔超過(guò)指定距離的粒子之間的交互,來(lái)將該計(jì)算 負(fù)荷減少到O(N)。一種將空間問(wèn)題映射到空間相連的機(jī)器的自然方法是使用直接映 射,其中將仿真空間均勻分配給處理器的空間。對(duì)于具有均勻粒子密
度或者其中沒(méi)有施加截?cái)嗟腘-體系統(tǒng)(假設(shè)所有對(duì)交互具有相同的計(jì) 算量),這種簡(jiǎn)單的映射將導(dǎo)致在整個(gè)機(jī)器中平衡的負(fù)荷,這是因?yàn)?每個(gè)節(jié)點(diǎn)或者節(jié)點(diǎn)區(qū)域?qū)⒕哂写笾孪嗤慕换ビ?jì)算工作負(fù)荷。
在粒子未均勻分布在仿真空間并且交互截?cái)嘤行Ш?或交互計(jì)算 量不同的情況下,直接映射導(dǎo)致負(fù)荷不平衡。有局部均衡節(jié)點(diǎn)之間的 負(fù)荷不平衡的技術(shù)。然而,如果不平衡足夠嚴(yán)重,那么這些區(qū)域均衡 技術(shù)可能是無(wú)效的。
對(duì)于粒子的任何固定分布,可以使用諸如最優(yōu)遞歸對(duì)分(ORB) 之類(lèi)的技術(shù),來(lái)通過(guò)將分區(qū)的仿真空間分配到將要分配給節(jié)點(diǎn)的不均 勻的子容量中,而平衡每個(gè)節(jié)點(diǎn)上的計(jì)算負(fù)荷。參見(jiàn)L. Nyland,丄 Prins, R.H. Yun, J. Hermans, H.畫(huà)C. Kum, and L. Wang. Achieving scalable parallel molecular dynamics using dynamic spatial decomposition techniques, /om"鼎/ 尸"rfl〃e/ 諸</ D/s/WAm,^/ C續(xù)/;函g, 47(2):125畫(huà)138, 1997.
ORB可以由表示粒子或片段中心的點(diǎn)、或者如下面所討論的對(duì)交 互的中點(diǎn)的分布來(lái)構(gòu)建。在ORB構(gòu)建之前,評(píng)估用于估計(jì)與每個(gè)點(diǎn) 相關(guān)聯(lián)的工作的函數(shù)并將其與該點(diǎn)一起存儲(chǔ)。在對(duì)交互中點(diǎn)的情況下, 這對(duì)應(yīng)于評(píng)估粒子對(duì)或片段對(duì)之間的力所需的工作。ORB構(gòu)建以仿真
開(kāi)始。ORB技術(shù)的應(yīng)用將單位單元?jiǎng)澐殖?N個(gè)更小的單元。對(duì)于N 可以被3整除的情況,子容積的數(shù)量在每一維上將是相等的(子容積 的數(shù)量=8, 64,512,4096,…)。
仿真單元容積被循環(huán)遞歸分區(qū)。每個(gè)循環(huán)沿著每一維接連對(duì)分容 積,從而在循環(huán)結(jié)束時(shí)給出八個(gè)子容積。每次對(duì)分通過(guò)將容積內(nèi)的點(diǎn) 的分布沿著它的一個(gè)維上排序、并且將最近的點(diǎn)定位到與每個(gè)點(diǎn)相關(guān) 的工作值的分布的中值(median)而開(kāi)始。然后用與所排序的維正交的、 通過(guò)所選點(diǎn)的平面劃分容積。然后每一個(gè)在平面的任一側(cè)上的子容積中的點(diǎn)被沿著另一維單獨(dú)排序,并且根據(jù)靠近它們各自工作值分布的 工作分布中值的點(diǎn)被分區(qū)。然后在最后一維上排序并分區(qū)得到的四個(gè) 子容積的每一個(gè),從而得到初始容積的八個(gè)分區(qū)。該循環(huán)對(duì)八個(gè)子容 積的每一個(gè)遞歸重復(fù),直到達(dá)到期望的子容積數(shù)量為止,該數(shù)量等于
該仿真中要使用的節(jié)點(diǎn)數(shù)量。對(duì)于N不能被3整除的情況,初始循環(huán) 沿著一個(gè)或兩個(gè)維分區(qū),而不是三個(gè)。其余的周期然后沿著三維的每 一個(gè)進(jìn)行分區(qū)。
得到的仿真空間的ORB分區(qū)大大減少了計(jì)算在給定子容積中的 點(diǎn)所表示的力所需的工作變化。由每個(gè)子容積中的點(diǎn)表示的工作到節(jié) 點(diǎn)的分配因此提供了負(fù)荷平衡的初始步驟。給定的N-體問(wèn)題可能需要 多個(gè)負(fù)載平衡技術(shù)。可能需要ORB來(lái)平衡由于正仿真的系統(tǒng)的結(jié)構(gòu) 所導(dǎo)致的全局不平衡,并且對(duì)于由分散引起的不平衡可能需要局部工 作交換方案。參見(jiàn)T.P. Straatsma和J.A. McCammon. Load balancing of molecular dynamics simulation with NWChem. /6Af iS^e鵬 /離鹿/, 40(2):328-341, 2001.
基于橢圓形通信原語(yǔ)的分子動(dòng)力學(xué)分解
4吏用ORB和動(dòng)態(tài)交互平衡的最優(yōu)交互分配
應(yīng)用到很大幾何節(jié)點(diǎn)空間上的固定大小生物分子仿真問(wèn)題的分子 動(dòng)力學(xué)要求仿真空間到節(jié)點(diǎn)空間映射,其在平衡工作負(fù)荷的同時(shí)保持 盡可能多的位置。這樣平衡中的通信量和計(jì)算量被最小化。
由于我們的n-體問(wèn)題具有由于系統(tǒng)中的不均一而引起的結(jié)構(gòu)不平 衡,因此在假設(shè)每對(duì)交互的標(biāo)定加權(quán)和指定的截?cái)嗟那闆r下,我們基 于均勻劃分工作負(fù)荷的ORB來(lái)創(chuàng)建仿真空間的分區(qū)。在粒子數(shù)量與 節(jié)點(diǎn)數(shù)之比小的限制下,可能期望使用優(yōu)化遞歸對(duì)分開(kāi)始劃分仿真空 間,然后切換到葉附近嚴(yán)格容積對(duì)分以提高粒子分配的微級(jí)別平衡。
圖3包括具有示出的粒子位置和交互中心的二維系統(tǒng)的視圖。圖 3示出在仿真空間中粒子位置(每個(gè)顯示為較大的點(diǎn))與交互中心(每 個(gè)顯示為較小的點(diǎn))的關(guān)系。交互中心位于落入截?cái)喟霃降拿繉?duì)粒子 之間的中點(diǎn)。在一個(gè)粒子周?chē)L出虛線圓圏,其半徑等于所選的截?cái)喟霃?re)。通過(guò)使用最優(yōu)遞歸對(duì)分將仿真容積分區(qū)成包含大致相等 的計(jì)算負(fù)荷的子容積,來(lái)進(jìn)行靜態(tài)或"結(jié)構(gòu)"負(fù)荷平衡。子容積的計(jì)算 負(fù)荷是通過(guò)將該子容積內(nèi)包含的每個(gè)交互中心的計(jì)算負(fù)荷相加而計(jì)算 出的。
接著,必須標(biāo)識(shí)特定粒子的通信節(jié)點(diǎn)的最小集合。通信節(jié)點(diǎn)的最 小集合定義為所有那些包含任何以該粒子為中心的球形空間容積(半 徑大于截?cái)喟霃降囊话?的節(jié)點(diǎn)。這定義了節(jié)點(diǎn)空間中的最小容積, 其確保對(duì)于截?cái)鄡?nèi)的每對(duì)粒子(能夠計(jì)算該對(duì)之間的交互),存在至 少一個(gè)節(jié)點(diǎn)。
在每個(gè)仿真步驟期間,每個(gè)節(jié)點(diǎn)將其所有粒子位置發(fā)送給其通信 伙伴的每一個(gè),并且從每一個(gè)通信伙伴接收粒子位置集合。節(jié)點(diǎn)可以 被分配來(lái)評(píng)估它接收到的位置集合中的任意粒子對(duì)之間的交互。
盡管相隔接近截?cái)嗑嚯x的仿真空間中的粒子對(duì)位置可以僅由創(chuàng)建 最后分配的單個(gè)節(jié)點(diǎn)接收,但通常任意給出的粒子對(duì)的位置將由如圖 4所示的若干節(jié)點(diǎn)接收,可以給其任何一個(gè)節(jié)點(diǎn)分配該對(duì)的交互。
可以通過(guò)導(dǎo)致一對(duì)粒子之間的交互(一個(gè)節(jié)點(diǎn)上進(jìn)行一次)的任 何方法來(lái)完成交互分配。簡(jiǎn)單算法的一個(gè)示例是,規(guī)定交互將在接收 到粒子位置并且具有最小節(jié)點(diǎn)id號(hào)的節(jié)點(diǎn)上進(jìn)行。然而這種算法具有 反映所使用的空間映射技術(shù)的負(fù)荷平衡特性。
為了減少微負(fù)荷不平衡,可以采用動(dòng)態(tài)確定交互分配。這些技術(shù) 允許快速重疊區(qū)域均衡。為了允許這些技術(shù),每個(gè)節(jié)點(diǎn)必須測(cè)量其當(dāng) 前的計(jì)算負(fù)荷,并且將該值添加到它發(fā)送給其通信伙伴的每個(gè)消息中。 當(dāng)節(jié)點(diǎn)從它的通信伙伴接收到其負(fù)荷,位置集合消息的集合時(shí),它 現(xiàn)在具有足夠信息來(lái)確定地為自己分配交互的集合。每個(gè)節(jié)點(diǎn)的交互 的集合可以有助于在其通信伙伴當(dāng)中均衡負(fù)荷。
允許確定性、均衡的交互分配的算法的示例如下(l)從通信伙 伴接收[負(fù)荷,位置集合消息的完備集合;(2)對(duì)于每對(duì)接收的消息, 創(chuàng)建包括范圍截?cái)嗟男Ч牡浞督换チ斜恚?3)對(duì)于每對(duì)接收的消息, 確定同樣接收到這對(duì)消息的節(jié)點(diǎn)的集合;(4 )使用確定性算法,為這些節(jié)點(diǎn)之一分配(出現(xiàn)在典范交互列表上的)可以由上述節(jié)點(diǎn)集合計(jì) 算出的每個(gè)交互。
這些確定性算法的示例包括使用這些節(jié)點(diǎn)的每一個(gè)上報(bào)告的負(fù) 荷,分配交互(已經(jīng)以某種典范方式被預(yù)訂)來(lái)嘗試在每個(gè)節(jié)點(diǎn)上均 衡新負(fù)荷。使用散列算法將交互的分配隨機(jī)化到節(jié)點(diǎn)集合。為包含連 接粒子交互對(duì)的線段的中點(diǎn)的、擁有體元的節(jié)點(diǎn)分配每個(gè)交互。進(jìn)行 分配的粒子對(duì)交互。將每個(gè)計(jì)算出的交互力送回到擁有交互粒子的節(jié) 點(diǎn)對(duì)。
要注意,該算法僅消耗交互計(jì)算。應(yīng)當(dāng)加上返回力的量以便反映 計(jì)算擁有一個(gè)粒子的節(jié)點(diǎn)上的交互的較低通信量。
為了增加負(fù)荷平衡的范圍的目的,或者在通信量相對(duì)于計(jì)算量較 高的情況下,將用于確定通信伙伴的仿真空間半徑增加到Rd2以上來(lái) 增加負(fù)荷平衡可用的節(jié)點(diǎn)數(shù)可能是有利的。
參照?qǐng)D4,示出空間分解,其顯示了在域的空間分解中疊加的兩 個(gè)節(jié)點(diǎn)(節(jié)點(diǎn)A和節(jié)點(diǎn)B)到所有節(jié)點(diǎn)的廣播區(qū)域(為了簡(jiǎn)單示出了 二維視圖)。包含分配給節(jié)點(diǎn)B的體元的距離Rb內(nèi)的仿真空間的區(qū) 域的節(jié)點(diǎn)處在用圖中反斜線陰影所示的區(qū)域內(nèi)。包含分配給節(jié)點(diǎn)A的 體元的距離Rb內(nèi)的仿真空間的區(qū)域的節(jié)點(diǎn)處在用正斜線陰影所示的 區(qū)域內(nèi)。重疊區(qū)域包括的節(jié)點(diǎn)同時(shí)包含分配給節(jié)點(diǎn)A和B的體元的 Rb內(nèi)的仿真空間的區(qū)域。半徑Rb分別用節(jié)點(diǎn)A和B周?chē)臋E圓示出。 半徑Rb大于或等于Rc/2,其中Rc是截?cái)喟霃?。存?chǔ)在節(jié)點(diǎn)A上的粒 子與存儲(chǔ)在節(jié)點(diǎn)B上的粒子之間的交互可以在交叉陰影區(qū)域內(nèi)的任何 節(jié)點(diǎn)上計(jì)算出。
因此,盡管描述了被認(rèn)為是優(yōu)選實(shí)施例的實(shí)施例,但本領(lǐng)域技術(shù) 人員將理解,可以在本發(fā)明的宗旨下做出其他修改。
權(quán)利要求
1.一種為包括多個(gè)處理器節(jié)點(diǎn)的處理網(wǎng)絡(luò)分配成對(duì)片段交互計(jì)算的方法,該方法包括定義包括多個(gè)片段和所述多個(gè)處理器節(jié)點(diǎn)的仿真空間;為給定的成對(duì)片段交互計(jì)算確定對(duì)應(yīng)于計(jì)算量的加權(quán);將該加權(quán)分配給兩個(gè)交互片段之間的點(diǎn)上的仿真空間;執(zhí)行所述仿真空間的容積的空間分區(qū),使得所有分區(qū)具有基本上相同的加權(quán);確定哪個(gè)節(jié)點(diǎn)具有所述兩個(gè)交互片段的位置;以及向具有兩個(gè)片段的位置的任何節(jié)點(diǎn)分配所述成對(duì)片段交互計(jì)算。
2. 如權(quán)利要求l所述的方法,其中,所述執(zhí)行空間分區(qū)的步驟包 括在所述仿真空間上使用k-d樹(shù)。
3. 如權(quán)利要求l所述的方法,其中,所述執(zhí)行空間分區(qū)的步驟包 括使用所述仿真空間的最優(yōu)遞歸對(duì)分。
4. 如權(quán)利要求3所述的方法,其中,所述分配加權(quán)的步驟包括為 片段對(duì)之間的中點(diǎn)分配加權(quán)。
5. 如權(quán)利要求l所述的方法,其中,每個(gè)片段包括單個(gè)粒子。
6. 如權(quán)利要求l所述的方法,其中,每個(gè)片段包括粒子簇。
7. 如權(quán)利要求l所述的方法,還包括在定義的半徑以外截?cái)嗝繉?duì) 粒子交互。
8. 如權(quán)利要求7所述的方法,還包括將粒子的位置廣播到包含具有半徑Rb的球形部分的節(jié)點(diǎn)組,其中Rb大于Re/2,并且Re是定義的半徑,以便確保存在包含計(jì)算任何交互所需的兩個(gè)粒子的位置的至 少一個(gè)節(jié)點(diǎn)。
9. 如權(quán)利要求8所述的方法,其中,當(dāng)不止一個(gè)節(jié)點(diǎn)包含計(jì)算粒 子交互所需的位置時(shí),將計(jì)算分配給這些節(jié)點(diǎn)的任一個(gè),從而提供消 除由于交互工作負(fù)荷中短期局部波動(dòng)而引起的不平衡的機(jī)會(huì)。
10. —種信息處理系統(tǒng),包括處理器,被配置來(lái)定義包括多個(gè)片段和多個(gè)處理器節(jié)點(diǎn)的仿真空間; 為給定對(duì)片段交互確定對(duì)應(yīng)于計(jì)算量的加權(quán); 將該加權(quán)分配給兩個(gè)交互片段之間的點(diǎn)上的仿真空間; 執(zhí)行所述仿真空間的容積的空間分區(qū),使得所有分區(qū)具有基本上 相同的加權(quán);以及向具有兩個(gè)片段組的位置的任何節(jié)點(diǎn)分配所述片段對(duì)交互的計(jì)算。
11. 如權(quán)利要求10所述的系統(tǒng),其中,所述處理器被進(jìn)一步配置 來(lái)在仿真空間上使用k-d樹(shù)執(zhí)行空間分區(qū)。
12. 如權(quán)利要求IO所述的系統(tǒng),其中,所述處理器被進(jìn)一步配置 來(lái)使用仿真空間的最優(yōu)遞歸對(duì)分執(zhí)行空間分區(qū)。
13. 如權(quán)利要求10所述的系統(tǒng),其中,所述處理器被進(jìn)一步配置 來(lái)為片段組的中心分配加權(quán)。
14. 如權(quán)利要求10所述的系統(tǒng),其中,每個(gè)片段包括單個(gè)粒子。
15. 如權(quán)利要求IO所述的系統(tǒng),其中,每個(gè)片段包括粒子簇。
16. 如權(quán)利要求10所述的系統(tǒng),其中,所述處理器被進(jìn)一步配置 來(lái)在定義的半徑以外截?cái)嗝繉?duì)交互。
17. 如權(quán)利要求10所述的系統(tǒng),其中,所述處理器還被配置來(lái)將 粒子的位置廣播到包含具有半徑Rb的球形部分的節(jié)點(diǎn)組,其中Rb大 于Re/2,并且Rc是定義的半徑,以便確保存在包含計(jì)算任何交互所需 的兩個(gè)粒子的位置的至少一個(gè)節(jié)點(diǎn)。
18. 如權(quán)利要求10所述的系統(tǒng),其中,所述處理器還被配置來(lái)當(dāng) 不止一個(gè)節(jié)點(diǎn)包含計(jì)算粒子交互所需的位置時(shí),將計(jì)算分配給這些節(jié) 點(diǎn)的任一個(gè),從而提供消除由于交互工作負(fù)荷中短期局部波動(dòng)而引起 的不平衡的機(jī)會(huì)。
19. 一種包括程序指令的計(jì)算機(jī)可讀介質(zhì),所述程序指令用于 定義包括多個(gè)粒子組和多個(gè)處理器節(jié)點(diǎn)的仿真空間; 為給定的粒子組的對(duì)交互,確定對(duì)應(yīng)于計(jì)算量的加權(quán);將該加權(quán)分配給兩個(gè)交互粒子組之間的點(diǎn)上的仿真空間; 執(zhí)行仿真空間的容積的空間分區(qū),使得所有分區(qū)具有基本上相同 的力口斥又;以及向具有兩個(gè)粒子組的位置的任何節(jié)點(diǎn)分配對(duì)交互的計(jì)算。
20. —種用于創(chuàng)建結(jié)構(gòu)化、分散的、具有成對(duì)交互的粒子的系統(tǒng)的負(fù)荷平衡的空間分區(qū)的方法,包括步驟為粒子之間的仿真空間距離分配與粒子的對(duì)交互的計(jì)算量相對(duì)應(yīng)的力口權(quán);執(zhí)行仿真空間的空間分區(qū);和向具有兩個(gè)粒子的位置的任何節(jié)點(diǎn)分配對(duì)交互的計(jì)算。
全文摘要
一種方法(100),用于創(chuàng)建結(jié)構(gòu)化、分散的、具有成對(duì)交互的粒子的系統(tǒng)的負(fù)荷平衡的空間分區(qū),包括步驟為粒子之間的仿真空間距離分配與粒子的對(duì)交互的計(jì)算量相對(duì)應(yīng)的加權(quán)(106);執(zhí)行仿真空間的空間分區(qū)(108);和向具有兩個(gè)粒子的位置的任何節(jié)點(diǎn)分配對(duì)交互的計(jì)算(110)。該方法也可以實(shí)現(xiàn)為可以通過(guò)可編程信息處理系統(tǒng)執(zhí)行的機(jī)器可執(zhí)行指令,或者實(shí)現(xiàn)為專用計(jì)算裝置,諸如專用集成電路(ASIC),中的硬件編碼邏輯。
文檔編號(hào)G06F17/50GK101529425SQ200680013847
公開(kāi)日2009年9月9日 申請(qǐng)日期2006年1月20日 優(yōu)先權(quán)日2005年4月25日
發(fā)明者亞歷桑德?tīng)枴だ潦娌妓够? 布雷克·G.·菲奇, 羅伯特·S.·格曼, 邁克爾·C.·皮特曼 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司