并行計(jì)算系統(tǒng)中的“所有到所有”消息交換的制作方法
【專利摘要】提供了并行計(jì)算系統(tǒng)中的“所有到所有”消息交換。程序任務(wù)由具有層級(jí)網(wǎng)絡(luò)拓?fù)涞幕ミB網(wǎng)絡(luò)連接,該層級(jí)網(wǎng)絡(luò)拓?fù)浒∟>1個(gè)層級(jí)級(jí)別ln,n=1到N,其中第一級(jí)別l1包括所述任務(wù)的多個(gè)組,并且每一個(gè)較高級(jí)別l(n>1)包括級(jí)別l(n-1)組的至少一個(gè)組。對(duì)于每一個(gè)任務(wù)定義唯一的層級(jí)標(biāo)識(shí)符,所述層級(jí)標(biāo)識(shí)符取決于網(wǎng)絡(luò)拓?fù)涞南鄳?yīng)層級(jí)級(jí)別中的所述任務(wù)屬于的組。在所述交換的連續(xù)階段的每一個(gè)階段中,取決于發(fā)送任務(wù)的層級(jí)標(biāo)識(shí)符和所述網(wǎng)絡(luò)拓?fù)洌總€(gè)任務(wù)經(jīng)由所述網(wǎng)絡(luò)向其層級(jí)標(biāo)識(shí)符被確定的相應(yīng)目的地任務(wù)發(fā)送消息,以使得對(duì)于所述“所有到所有”消息交換的產(chǎn)生的交換模式按照期望的方式利用所述網(wǎng)絡(luò)拓?fù)渲械膶蛹?jí)距離。
【專利說明】并行計(jì)算系統(tǒng)中的“所有到所有”消息交換
【技術(shù)領(lǐng)域】
[0001]本發(fā)明概括地涉及并行計(jì)算系統(tǒng)中的“所有到所有”(all-to-all)消息交換。提供了用于在由層級(jí)互聯(lián)網(wǎng)絡(luò)連接的程序任務(wù)之間的“所有到所有”消息交換的方法,連同用于實(shí)現(xiàn)這樣的方法的裝置和計(jì)算機(jī)程序。
【背景技術(shù)】
[0002]在并行計(jì)算系統(tǒng)中,程序能夠由并行操作的多個(gè)計(jì)算節(jié)點(diǎn)執(zhí)行。取決于實(shí)現(xiàn)并行化的硬件水平,計(jì)算節(jié)點(diǎn)通常可以是分離的機(jī)器(例如,工作站、服務(wù)器)、處理器、核心等等。單獨(dú)的計(jì)算節(jié)點(diǎn)可以執(zhí)行并行算法的并行程序?qū)嶓w或者任務(wù)中的一個(gè)或多個(gè)(在此術(shù)語“任務(wù)”在并不意指粒度的任何特定水平的情況下在本文中通常指代這樣的程序?qū)嶓w)。大多數(shù)并行算法計(jì)算在計(jì)算和通信的階段之間交替,其中,通過程序任務(wù)來交換數(shù)據(jù)。共同實(shí)現(xiàn)并行算法的計(jì)算節(jié)點(diǎn)的集合通常經(jīng)由網(wǎng)絡(luò)互連以便允許這一數(shù)據(jù)交換。
[0003]在一組并行任務(wù)之間交換數(shù)據(jù)的方式可以寬泛地變化,但是在實(shí)際中,可以將涉及多于一對(duì)任務(wù)的大多數(shù)數(shù)據(jù)交換映射到典型交換的小的集合。最廣泛使用的共同通信操作之一是“所有到所有”交換(有時(shí)被稱為所有交換,索引操作或者個(gè)性化“所有到所有”交換)。在“所有到所有”消息交換中,給定集合中的每一個(gè)任務(wù)必須向該集合中的每一個(gè)其他任務(wù)(并且在一些情況下也向其本身)發(fā)送一個(gè)不同的消息。典型地以連續(xù)的階段來組織該交換操作,階段的數(shù)量等于要由每一個(gè)任務(wù)發(fā)送的消息的數(shù)量,以使得每一個(gè)任務(wù)在交換的每一個(gè)階段中發(fā)送一個(gè)消息。整體交換模式,即,源(發(fā)送)任務(wù)與目的地(接收)任務(wù)在交換的連續(xù)的階段中根據(jù)其來進(jìn)行通信的模式,是交換的整體效率的基礎(chǔ)。驗(yàn)證其的簡(jiǎn)單方式是考慮所有發(fā)送任務(wù)在給定的階段中同時(shí)選擇相同的目的地任務(wù)的極端情況。由于在接收方的輸入端口處消息的串行化,所有發(fā)送方都將經(jīng)歷擁堵?;ミB網(wǎng)絡(luò)中所有這些被阻擋的消息會(huì)產(chǎn)生甚至更多的擁堵并且嚴(yán)重地影響性能。容易規(guī)避這一極端示例,并且大多數(shù)“所有到所有”交換提議解決了這一特定情景。
[0004]形式上,“所有到所有”交換模式由函數(shù)f:1NXIN— IN進(jìn)行完全特征化,其利用源任務(wù)索引(S)和階段索引(P),并且將它們映射到目的地任務(wù)索引(d),以使得每一個(gè)s向每一個(gè)d發(fā)送一個(gè)(并且僅一個(gè))消息,并且每一個(gè)d從每一個(gè)s接收一個(gè)(并且僅一個(gè))消息。在大多數(shù)通信庫中存在的兩個(gè)非常普通的交換是:
[0005](a)由下面的公式表示的線性移位(或者跨越)交換:
[0006](S,P) — (s+p+移位)modulo X,
[0007]其中“移位”是固定的整數(shù)值,并且X是通信任務(wù)的總數(shù)量;以及
[0008](b)由下面的公式表示的XOR (“二進(jìn)制X0R”或者“遞推減半”):
[0009](s, P) — sXORp
[0010]任務(wù)經(jīng)由其連接的互連網(wǎng)絡(luò)的精確結(jié)構(gòu)對(duì)消息交換操作具有很強(qiáng)的影響。這樣的網(wǎng)絡(luò)通常具有某一形式的層級(jí)網(wǎng)絡(luò)拓?fù)洹蛹?jí)網(wǎng)絡(luò)明確地包括層級(jí)拓?fù)?,例如蜻蜓網(wǎng)絡(luò)以及諸如樹網(wǎng)絡(luò)和粗樹網(wǎng)絡(luò)(包括擴(kuò)展的通用粗樹、細(xì)粗樹等等)的樹形拓?fù)?。下面來?jiǎn)要地對(duì)這些進(jìn)行解釋。
[0011]在樹形拓?fù)渲?,通過從樹的葉子(級(jí)別O)到根部(級(jí)別N)的級(jí)別系列來定義層級(jí)。任務(wù)被認(rèn)為放置在葉子節(jié)點(diǎn)上,而所有其他節(jié)點(diǎn)用于消息路由。附圖中的圖1示出了三級(jí)樹互連的簡(jiǎn)單示例,每計(jì)算機(jī)節(jié)點(diǎn)一個(gè)任務(wù)。這里,由圓形表示的計(jì)算機(jī)節(jié)點(diǎn)形成在此的樹的級(jí)別O中的葉子。較高級(jí)別由交換機(jī)(由方形表示)構(gòu)成,每一個(gè)交換機(jī)經(jīng)由鏈路(由直線表示)在緊接著先前的級(jí)別中連接到一組后代或者“孩子”。在示出的示例中,級(jí)別I交換機(jī)各自連接到級(jí)別O中的一組三個(gè)計(jì)算節(jié)點(diǎn)。級(jí)別2交換機(jī)各自連接到一組三個(gè)級(jí)別I交換機(jī)。在這一示例中的最高級(jí)別為級(jí)別3,這里級(jí)別3由單個(gè)交換機(jī)構(gòu)成,再次連接到先前級(jí)別中的一組三個(gè)交換機(jī)。公知的粗樹網(wǎng)絡(luò)拓?fù)渑c如下標(biāo)準(zhǔn)樹拓?fù)漕愃?,即,在?jí)別O中的葉子之上具有N個(gè)級(jí)別,級(jí)別I上的每一個(gè)節(jié)點(diǎn)精確地具有M1個(gè)后代,區(qū)別在于任何給定的節(jié)點(diǎn)與其父輩之間的連接由多個(gè)鏈路構(gòu)成。在原始設(shè)計(jì)中,從節(jié)點(diǎn)到其父輩可用的鏈路容量等于從該節(jié)點(diǎn)的孩子到其自身的聚合鏈路容量。結(jié)果,在級(jí)別I處每一個(gè)向上的鏈路的
總?cè)萘康扔趶脑撓蛏系逆溌窂钠溟_始的節(jié)點(diǎn)可到達(dá)的葉子的數(shù)量(等于M1.M2........M1,
其中,“.”指代乘法)乘以每節(jié)點(diǎn)注入容量。由于這一數(shù)量隨著樹的高度呈指數(shù)增長(zhǎng),因此引入了擴(kuò)展的通用粗樹(XGFT)的概念。這一類別的拓?fù)鋵?shí)現(xiàn)了具有與基本的粗樹網(wǎng)絡(luò)類似的功能的設(shè)計(jì),而不要求交換機(jī)具有朝向網(wǎng)絡(luò)的根部呈指數(shù)增加的容量。XGFT目前是在高性能計(jì)算的互連設(shè)計(jì)中最流行的選項(xiàng)之一。
[0012]蜻蜓網(wǎng)絡(luò)是另一公知的層級(jí)網(wǎng)絡(luò),圖2示出了其簡(jiǎn)單示例。這一示例具有按照兩個(gè)一組連接到該層級(jí)的級(jí)別I中的相應(yīng)交換機(jī)(再次由方形表示)的每計(jì)算機(jī)節(jié)點(diǎn)一個(gè)任務(wù)(再次由圓形表示)。在該圖中,較高級(jí)別由虛線指示。級(jí)別2包括四組級(jí)別I的交換機(jī),這里,每一個(gè)級(jí)別2的組包括三個(gè)互連的級(jí)別I的“本地組”。這里為最高級(jí)別的級(jí)別3包括包含所有四個(gè)級(jí)別2的本地組的單個(gè)組。
[0013]盡管給定的“所有到所有”交換操作可以成功地完成,而與潛在的拓?fù)錈o關(guān),但是交換模式會(huì)導(dǎo)致次優(yōu)的性能。通過示出的方式,圖3示出了用于在由具有圖4所示的網(wǎng)絡(luò)拓?fù)涞幕ミB網(wǎng)絡(luò)連接的十六個(gè)任務(wù)之間的線性移位交換的交換模式。這里,該特定的網(wǎng)絡(luò)實(shí)現(xiàn)可以是(N=2)級(jí)別樹形網(wǎng)絡(luò),其中十六個(gè)通信任務(wù)放置在葉子級(jí)別處的各自計(jì)算節(jié)點(diǎn)中、四個(gè)第一級(jí)別交換機(jī)和單個(gè)第二級(jí)別交換機(jī)。該拓?fù)鋵蛹?jí)的第一級(jí)別,這里標(biāo)記為I1,包括四個(gè)I1組,每一個(gè)組具有四個(gè)任務(wù)。下一個(gè)(這里為最高)級(jí)別,標(biāo)記為I2,包括作為具有所有四個(gè)級(jí)別I1組的組的單個(gè)12。圖3的交換模式示出了在這一拓?fù)渲芯哂幸莆恢礝的線性移位交換模式。任務(wù)由圓形指代,在圖的左面標(biāo)號(hào)為O到15。該圖的連續(xù)列中的直線表示在該交換的十六個(gè)連續(xù)的階段中發(fā)送和目的地任務(wù)的配對(duì)。在如這里由虛線指示的階段O中,每一個(gè)任務(wù)向其自身發(fā)送消息。
[0014]通過考慮圖3交換模式,顯然,線性移位交換函數(shù)完全忽略了網(wǎng)絡(luò)拓?fù)涞牟季?。這一交換模式因而對(duì)于該拓?fù)涞膶蛹?jí)結(jié)構(gòu)是未察覺的。不考慮發(fā)送和接收節(jié)點(diǎn)之間的層級(jí)距離(即,對(duì)于通信必須遍歷的層級(jí)級(jí)別的數(shù)量)。然而,這一層級(jí)距離的概念對(duì)于層級(jí)網(wǎng)絡(luò)是基本的,提供在這些拓?fù)渲袃?nèi)在的本地/遠(yuǎn)程的概念。分離一對(duì)任務(wù)的層級(jí)級(jí)別越少,任務(wù)就“越近”,即,它們之間的路徑就越短,并且到達(dá)彼此的延遲時(shí)間就越低。
[0015]圖5示出了利用對(duì)于圖4的層級(jí)網(wǎng)絡(luò)拓?fù)涞腦OR交換算法獲得的交換模式。可以看出,前四個(gè)階段處理在相同的級(jí)別I1組中的任務(wù)之間的本地交換。如由這一簡(jiǎn)單示例示出的,XOR交換模式在這一網(wǎng)絡(luò)拓?fù)渲械膽?yīng)用產(chǎn)生按照遠(yuǎn)程遞增順序執(zhí)行的消息交換。因而,在相同的節(jié)點(diǎn)上配置(collocate)的任務(wù)首先在它們本身之間執(zhí)行交換(如果存在每計(jì)算節(jié)點(diǎn)多于一個(gè)任務(wù)),然后,相鄰節(jié)點(diǎn)(在層級(jí)的意義上)中的任務(wù)專門地在它們本身之間執(zhí)行交換(因此排除了節(jié)點(diǎn)內(nèi)交換),等等,經(jīng)過層級(jí)繼續(xù)進(jìn)行。這具有確定在大多數(shù)階段中將業(yè)務(wù)盡可能地包含在較低級(jí)別處的優(yōu)點(diǎn),以及確保在給定階段中的所有對(duì)之間通信延遲時(shí)間恒定(當(dāng)不存在競(jìng)爭(zhēng)時(shí))的優(yōu)點(diǎn)。這在每一個(gè)階段內(nèi)提供了更好的同步。同步是優(yōu)化交換的整體性能的關(guān)鍵因素,因?yàn)榻馔交岛S后的階段將重復(fù),因而導(dǎo)致附加的競(jìng)爭(zhēng),或者將形成在隨后的階段中間的間隙。
[0016]XOR交換的嚴(yán)重局限在于,僅在能夠放置任務(wù)的互連節(jié)點(diǎn)的數(shù)量是二的整數(shù)冪時(shí)可用。這排除了許多實(shí)際感興趣的網(wǎng)絡(luò),包括蜻蜓網(wǎng)絡(luò)。而且,XOR交換僅在應(yīng)用能夠被劃分為二的冪數(shù)量的任務(wù)時(shí)可用。實(shí)際上,該算法僅在經(jīng)過將其應(yīng)用局限于這一限制類別的網(wǎng)絡(luò)時(shí)才實(shí)現(xiàn)上述的“增加的遠(yuǎn)程性”特征。該算法本身對(duì)于真實(shí)的網(wǎng)絡(luò)拓?fù)淙匀皇俏床煊X的,簡(jiǎn)單地執(zhí)行源任務(wù)索引s和階段索引P的二進(jìn)制表示的按位模2加法,而與物理網(wǎng)絡(luò)層級(jí)無關(guān)。在圖4和圖5的示例中,例如,如同對(duì)于具有四個(gè)級(jí)別的重疊拓?fù)?每一個(gè)級(jí)別I1組中具有兩個(gè)任務(wù),并且每一個(gè)級(jí)別I (n>1)組包含兩個(gè)級(jí)別I (n>1)組)運(yùn)行XOR交換。圖4中的網(wǎng)絡(luò)拓?fù)渲械拿恳粋€(gè)真實(shí)層級(jí)級(jí)別因而被有效地分離為兩個(gè)重疊的級(jí)別。結(jié)果,我們看到,本地和遠(yuǎn)程交換在兩個(gè)分離的種類中的差異,一個(gè)僅涉及一個(gè)重疊的子級(jí)別,而一個(gè)涉及另一個(gè)。因此可以看出,XOR功能確定對(duì)于消息的目的地任務(wù)的方式不取決于實(shí)際的網(wǎng)絡(luò)拓?fù)洌侨Q于僅能夠被施加在有限類別的網(wǎng)絡(luò)拓?fù)渖系暮?jiǎn)單的重疊結(jié)構(gòu)。
[0017]實(shí)際上,并行計(jì)算系統(tǒng)很少符合使用XOR交換函數(shù)必需的限制,特別是關(guān)于潛在的網(wǎng)絡(luò)拓?fù)?。由于這一原因,人們經(jīng)常致力于上面討論的使用不太有效的、但是更加通常的線性移位交換。Thakur 等人在 International Journal of Performance ComputingApplication, Vol.19,N0.1,Spring2005, pp.49-66 中的 “Optimization of CollectiveCommunication Operations in MPICH”中,提出了 XOR模式在節(jié)點(diǎn)的原始數(shù)量的二的冪子劃分中的非均衡和次優(yōu)應(yīng)用。在Proceedings of the8th International Euro-ParConference onParalIeIProcessing, 2002, LNCS2400, pp.799-803 中的 The HierarchicalFactor Algorithm for All-to-All Communication 中,Sanders 等人提出了一種描述用于具有節(jié)點(diǎn)的層級(jí)系統(tǒng)的方案,該節(jié)點(diǎn)具有不同數(shù)量的處理器,從而按照節(jié)點(diǎn)尺度(節(jié)點(diǎn)中處理器的數(shù)量)的順序來交換消息。
[0018]將高度期望用于層級(jí)網(wǎng)絡(luò)的“所有到所有”交換操作的改善。
【發(fā)明內(nèi)容】
[0019]本發(fā)明的第一方面提供一種用于在由具有層級(jí)網(wǎng)絡(luò)拓?fù)涞幕ミB網(wǎng)絡(luò)連接的程序任務(wù)之間的“所有到所有”消息交換的方法,所述層級(jí)網(wǎng)絡(luò)拓?fù)浒∟>1個(gè)層級(jí)級(jí)別ln,n=l到N,其中第一級(jí)別I1包括所述任務(wù)的多個(gè)組,并且每一個(gè)較高級(jí)別1(η_υ包括級(jí)別
的至少一個(gè)組。所述方法包括:
[0020]對(duì)于每一個(gè)任務(wù),在所述網(wǎng)絡(luò)拓?fù)涞南鄳?yīng)層級(jí)級(jí)別中定義取決于該任務(wù)屬于的所述組的唯一的層級(jí)標(biāo)識(shí)符;以及
[0021]在每一個(gè)任務(wù)處,在所述交換的連續(xù)階段的每一個(gè)階段中,經(jīng)由所述網(wǎng)絡(luò)向其層級(jí)標(biāo)識(shí)符被確定的相應(yīng)目的地任務(wù)發(fā)送消息,取決于發(fā)送任務(wù)的層級(jí)標(biāo)識(shí)符以及網(wǎng)絡(luò)拓?fù)?,以使得?duì)于所述“所有到所有”消息交換的產(chǎn)生的交換模式按照期望的方式利用所述網(wǎng)絡(luò)拓?fù)渲械膶蛹?jí)距離。
[0022]因而,體現(xiàn)本發(fā)明的方法提供系統(tǒng)中的“所有到所有”消息交換,在該系統(tǒng)中任務(wù)經(jīng)由其進(jìn)行通信的網(wǎng)絡(luò)具有層級(jí)拓?fù)?。?duì)于任務(wù)的層級(jí)標(biāo)識(shí)符取決于這些任務(wù)在所述拓?fù)涞牟煌瑢蛹?jí)級(jí)別中屬于的組,并且因而捕捉關(guān)于所述網(wǎng)絡(luò)的層級(jí)信息。在所述消息交換處理的每一個(gè)階段中,所述任務(wù)各自向相應(yīng)目的地任務(wù)發(fā)送消息,從而每一個(gè)任務(wù)在每一個(gè)連續(xù)的階段中既發(fā)送消息也接收消息。對(duì)于給定階段中的發(fā)送任務(wù),以所述發(fā)送任務(wù)的所述層級(jí)標(biāo)識(shí)符和所述網(wǎng)絡(luò)拓?fù)錇榛A(chǔ)來確定對(duì)于每一個(gè)消息的目的地任務(wù)的層級(jí)標(biāo)識(shí)符,按照期望的方式利用所述網(wǎng)絡(luò)中的層級(jí)距離。因而,與上面討論的先前交換不同,在這一意義上,所述交換操作真正地是“拓?fù)涓兄保驗(yàn)槠淙Q于物理網(wǎng)絡(luò)的實(shí)際層級(jí)拓?fù)?這與在真實(shí)的網(wǎng)絡(luò)拓?fù)漤敳可鲜┘拥闹丿B的某一固定拓?fù)湎鄬?duì),例如被嵌入在XOR交換函數(shù)中)。這允許根據(jù)期望來利用網(wǎng)絡(luò)拓?fù)渲械膶蛹?jí)距離,在層級(jí)網(wǎng)絡(luò)中提供高度有效的交換模式。而且,體現(xiàn)本發(fā)明的方法并不局限于類似上面討論的XOR交換的有效類別的網(wǎng)絡(luò)。如由下面描述的示例示出的,體現(xiàn)本發(fā)明的拓?fù)涓兄慕粨Q方法提供顯著性能益處并且能夠容易地適合于相異的性能需求,允許根據(jù)對(duì)于層級(jí)網(wǎng)絡(luò)的不同類型的不同準(zhǔn)則的交換的優(yōu)化。
[0023]本發(fā)明實(shí)施方式中的交換模式可以按照各種方式利用該網(wǎng)絡(luò)拓?fù)渲械膶蛹?jí)距離。例如,所述交換模式可以按照增加層級(jí)距離的順序?qū)崿F(xiàn)所述消息交換(全部或者部分地)。所述交換因而可以按照如上面討論的“增加的遠(yuǎn)程性”的順序發(fā)生。一些實(shí)施方式進(jìn)一步適于改善操作的某一特定方面,例如負(fù)載均衡、延遲時(shí)間、階段內(nèi)同步或帶寬效率。利用體現(xiàn)本發(fā)明的一些交換,所述交換模式在某一程度上按照增加的遠(yuǎn)程性的順序進(jìn)行,與這一順序偏離,以便實(shí)現(xiàn)帶寬優(yōu)化的期望程度。在將被描述的特定示例中,所述交換模式通過確保增加的遠(yuǎn)程性的程度被有效地最小化并且實(shí)現(xiàn)完全的帶寬優(yōu)化來利用層級(jí)距離。
[0024]盡管可以設(shè)計(jì)其中對(duì)于每一個(gè)發(fā)送任務(wù)預(yù)先計(jì)算對(duì)于連續(xù)的消息的目的地任務(wù)的特定序列的實(shí)施方式,但是典型地在每一個(gè)任務(wù)處動(dòng)態(tài)地確定對(duì)于每一個(gè)消息的合適的目的地任務(wù)的層級(jí)標(biāo)識(shí)符。因而,體現(xiàn)本發(fā)明的方法優(yōu)選地在每一個(gè)任務(wù)處包括動(dòng)態(tài)地確定對(duì)于在所述交換的每一個(gè)階段中發(fā)送的消息的目的地任務(wù)的層級(jí)標(biāo)識(shí)符。
[0025]本發(fā)明的第二方面提供一種包括多個(gè)計(jì)算節(jié)點(diǎn)的并行計(jì)算系統(tǒng),所述計(jì)算節(jié)點(diǎn)包含由所述系統(tǒng)的互連網(wǎng)絡(luò)連接的程序任務(wù),所述網(wǎng)絡(luò)具有包括N> I個(gè)層級(jí)級(jí)別In的層級(jí)網(wǎng)絡(luò)拓?fù)?,n=l到N,其中第一級(jí)別I1包括所述任務(wù)的多個(gè)組并且每一個(gè)較高級(jí)別I (11>1)包括級(jí)別l(n_D組的至少一個(gè)組,其中所述系統(tǒng)適于執(zhí)行根據(jù)本發(fā)明第一方面的用于所述程序任務(wù)之間的“所有到所有”消息交換的方法。
[0026]本發(fā)明的第三方面提供一種根據(jù)本發(fā)明第二方面的并行計(jì)算系統(tǒng)的計(jì)算節(jié)點(diǎn),所述計(jì)算節(jié)點(diǎn)包含所述系統(tǒng)的至少一個(gè)程序任務(wù)并且適于與所述系統(tǒng)的其他計(jì)算節(jié)點(diǎn)共同執(zhí)行對(duì)于所述系統(tǒng)的所述程序任務(wù)之間的“所有到所有”消息交換的所述方法。
[0027]本發(fā)明的第四方面提供一種包括用于使根據(jù)本發(fā)明第三方面的計(jì)算節(jié)點(diǎn)與所述其他計(jì)算節(jié)點(diǎn)共同地執(zhí)行用于“所有到所有”消息交換的所述方法的程序代碼裝置的計(jì)算機(jī)程序。一種計(jì)算節(jié)點(diǎn)能夠由某一形式的計(jì)算機(jī)實(shí)現(xiàn),這里術(shù)語“計(jì)算機(jī)”在大多數(shù)通常的意義上使用,并且包括具有用于實(shí)現(xiàn)計(jì)算機(jī)程序的數(shù)據(jù)處理能力的任何設(shè)備、部件或者系統(tǒng)。而且,體現(xiàn)本發(fā)明的計(jì)算機(jī)程序可以構(gòu)成獨(dú)立的程序或者可以是較大程序的元素,并且可以例如被提供、體現(xiàn)在諸如盤或者用于在計(jì)算機(jī)中加載的電子傳輸?shù)挠?jì)算機(jī)可讀介質(zhì)中。所述計(jì)算機(jī)程序的程序代碼裝置可以包括意在使計(jì)算機(jī)執(zhí)行所討論的方法的一組指令的以任何語言的任何表達(dá)、代碼或者注釋,或者直接或者在(a)轉(zhuǎn)換到另一語言、代碼或注釋,和(b)按照不同的材料形式的再現(xiàn)中的一個(gè)或二者之后。
[0028]通常,本文參照本發(fā)明一個(gè)方面的實(shí)施方式描述了特征,可以適當(dāng)?shù)卦诒景l(fā)明另一方面的實(shí)施方式中提供相對(duì)應(yīng)的特征。
【專利附圖】
【附圖說明】
[0029]現(xiàn)在將參照附圖通過示例的方式來描述本發(fā)明的優(yōu)選實(shí)施方式,在附圖中:
[0030]圖1示出了樹形互連網(wǎng)絡(luò)的示例;
[0031 ]圖2示出了蜻蜓網(wǎng)絡(luò)的示例;
[0032]圖3示出了對(duì)于示例性網(wǎng)絡(luò)拓?fù)涞木€性移位交換模式;
[0033]圖4示出了對(duì)于圖3交換模式的網(wǎng)絡(luò)拓?fù)洌?br>
[0034]圖5示出了對(duì)于圖4拓?fù)涞腦OR交換模式;
[0035]圖6指示了在體現(xiàn)本發(fā)明的方法中子組標(biāo)簽到層級(jí)互連拓?fù)涞娜蝿?wù)和組的分配;
[0036]圖7示出了對(duì)于體現(xiàn)本 發(fā)明的第一“所有到所有”交換方法的交換模式;
[0037]圖8示出了對(duì)于體現(xiàn)本發(fā)明的第二“所有到所有”交換方法的交換模式;
[0038]圖9指示了在體現(xiàn)本發(fā)明的第三“所有到所有”交換方法中的步驟的排序;以及
[0039]圖10示出了對(duì)于體現(xiàn)本發(fā)明的第四“所有到所有”交換方法的交換模式。
【具體實(shí)施方式】
[0040]要描述的方法提供用于在并行計(jì)算系統(tǒng)中的“所有到所有”消息交換,其中通信程序任務(wù)在該系統(tǒng)中通過具有層級(jí)網(wǎng)絡(luò)拓?fù)涞幕ミB網(wǎng)絡(luò)連接。通常,可以認(rèn)為這樣的網(wǎng)絡(luò)拓?fù)浒ㄟ@里由In指代的N>1個(gè)層級(jí)級(jí)別,其中n=l到N。所述層級(jí)的第一級(jí)別I1包括程序任務(wù)的多個(gè)組。每一個(gè)較高級(jí)別I (n>1)包括級(jí)別I (n>1)組的至少一個(gè)組。
[0041]圖6示出了將用于解釋在體現(xiàn)本發(fā)明的交換方法中如何定義對(duì)于任務(wù)的層級(jí)標(biāo)識(shí)符的示例性系統(tǒng)的拓?fù)?。所示出的特定拓?fù)渑c樹形互連網(wǎng)絡(luò)相對(duì)應(yīng),每計(jì)算節(jié)點(diǎn)一個(gè)任務(wù),四個(gè)級(jí)別I交換機(jī),四個(gè)級(jí)別2交換機(jī)以及一個(gè)級(jí)別3交換機(jī)。然而,將理解,能夠?qū)⒁枋龅脑砣菀椎財(cái)U(kuò)展到其他層級(jí)網(wǎng)絡(luò)。
[0042]在圖6的拓?fù)渲?,具有陰影的圓形與在共同通信操作中涉及的并行程序任務(wù)的集合相對(duì)應(yīng)。這些任務(wù)中的每一個(gè)以在計(jì)算節(jié)點(diǎn)上運(yùn)行的軟件實(shí)現(xiàn)。假設(shè)在這一示例中每計(jì)算節(jié)點(diǎn)一個(gè)任務(wù),具有陰影的圓形代表各自包含一個(gè)任務(wù)的相應(yīng)計(jì)算節(jié)點(diǎn)。所述層級(jí)的第一級(jí)別I1包括十二個(gè)級(jí)別I1組,每一個(gè)包含三個(gè)程序任務(wù)。所述層級(jí)的第二級(jí)別I2包括四個(gè)級(jí)別I2組,每一個(gè)包含三個(gè)級(jí)別I1組。所述層級(jí)的第三級(jí)別(這里為最高)包括單個(gè)級(jí)別13組,包含四個(gè)級(jí)別I2組。產(chǎn)生的機(jī)構(gòu)是同質(zhì)的層級(jí),從而相同的層級(jí)級(jí)別In中的所有組具有相同的尺寸Mn (其中,這里將組的“尺寸”定義為其包含的來自先前層級(jí)級(jí)別的元素的數(shù)量)。在示出的示例中,組尺寸因而為乂=3,]/[2=3,]/[3=4。推廣到N-級(jí)別層級(jí),可以看出所述層級(jí)的級(jí)別I1中的組由M1個(gè)通信任務(wù)構(gòu)成,級(jí)別I2中的組由M2個(gè)級(jí)別I1組(因而M1.M2)個(gè)任務(wù)構(gòu)成,并且直到級(jí)別N,該級(jí)別N由Mn個(gè)級(jí)別I (Ν_υ組構(gòu)成,并且因而由
【權(quán)利要求】
1.一種用于在由具有層級(jí)網(wǎng)絡(luò)拓?fù)涞幕ミB網(wǎng)絡(luò)連接的程序任務(wù)之間的“所有到所有”消息交換的方法,所述層級(jí)網(wǎng)絡(luò)拓?fù)浒∟>1個(gè)層級(jí)級(jí)別ln,n=l到N,其中第一級(jí)別I1包括所述任務(wù)的多個(gè)組,并且每一個(gè)較高級(jí)別I (n>1)包括級(jí)別I (η_υ組的至少一個(gè)組,所述方法包括: 對(duì)于每一個(gè)任務(wù),在所述網(wǎng)絡(luò)拓?fù)涞南鄳?yīng)層級(jí)級(jí)別中定義取決于所述任務(wù)屬于的組的唯一的層級(jí)標(biāo)識(shí)符;以及 在每一個(gè)任務(wù)處,在所述交換的連續(xù)階段的每一個(gè)階段中,取決于發(fā)送任務(wù)的層級(jí)標(biāo)識(shí)符和所述網(wǎng)絡(luò)拓?fù)?,?jīng)由所述網(wǎng)絡(luò)向其層級(jí)標(biāo)識(shí)符被確定的相應(yīng)目的地任務(wù)發(fā)送消息,以使得對(duì)于所述“所有到所有”消息交換的產(chǎn)生的交換模式按照期望的方式利用所述網(wǎng)絡(luò)拓?fù)渲械膶蛹?jí)距離。
2.根據(jù)權(quán)利要求1所述的方法,其中: 相同層級(jí)級(jí)別In中的所有組具有相同的尺寸Mn ; 對(duì)于每一個(gè)級(jí)別I1組中的每一個(gè)任務(wù),并且對(duì)于每一個(gè)級(jí)別I (η>1)組中的每一個(gè)級(jí)別I (η-D組,定義唯一的子組標(biāo)簽Si, 1 = 1到Mn ;以及 用于所述任務(wù)的所述層級(jí)標(biāo)識(shí)符包括與相應(yīng)的層級(jí)級(jí)別相對(duì)應(yīng)的N個(gè)標(biāo)識(shí)符元素的集合,其中與層級(jí)級(jí)別I1相對(duì)應(yīng)的標(biāo)識(shí)符元素Hl1取決于用于所述任務(wù)的子組標(biāo)簽Si,并且與層級(jí)級(jí)別I (η>1)相對(duì)應(yīng)的標(biāo)識(shí)符元素m(n>1)取決于用于所述任務(wù)屬于的所述級(jí)別I (n_nS的所述子組標(biāo)簽Si。
3.根據(jù)權(quán)利要求2所述的方法,其中每一個(gè)子組標(biāo)簽Si=C1-D0
4.根據(jù)權(quán)利要求2或者3所述的方法,其中在用于所述任務(wù)的所述層級(jí)標(biāo)識(shí)符中,所述標(biāo)識(shí)符元素Hi1是用于所述任務(wù)的所述子組標(biāo)簽Si,并且每一個(gè)標(biāo)識(shí)符元素m (11>1)是用于所述任務(wù)屬于的所述級(jí)別I Ori)組的所述子組標(biāo)簽Si。
5.根據(jù)前述權(quán)利要求中的任意一項(xiàng)所述的方法,其中對(duì)于在所述交換中發(fā)送的每一個(gè)消息,用于所述消息的所述目的地任務(wù)的所述層級(jí)標(biāo)識(shí)符進(jìn)一步取決于其值對(duì)于所述交換的每一個(gè)連續(xù)階段改變的階段索引。
6.根據(jù)引用權(quán)利要求2的權(quán)利要求5所述的方法,其中所述階段索引包括與所述層級(jí)標(biāo)識(shí)符的相應(yīng)識(shí)別元素mn相對(duì)應(yīng)的N個(gè)階段元素Pn的集合。
7.根據(jù)權(quán)利要求6所述的方法,其中對(duì)于所述交換的每一個(gè)連續(xù)階段,所述階段索引P
取整數(shù)值
8.根據(jù)權(quán)利要求7所述的方法,其中對(duì)于在所述交換的所述階段的每一個(gè)階段中發(fā)送的每一個(gè)消息,將用于所述消息的所述目的地任務(wù)的所述層級(jí)標(biāo)識(shí)符的N個(gè)識(shí)別元素確定為:
mdn=(mn5 +pn) modulo Mn, η = I 到 N, 其中是所述目的地任務(wù)的所述層級(jí)標(biāo)識(shí)符的第η個(gè)識(shí)別元素,并且是用于所述消息的所述發(fā)送任務(wù)的所述層級(jí)標(biāo)識(shí)符的第η個(gè)識(shí)別元素。
9.根據(jù)權(quán)利要求7所述的方法,其中:對(duì)于屬于每一個(gè)級(jí)別In組的任務(wù),對(duì)于每一個(gè)任務(wù)定義偏移值O,所述偏移值在所述組中的任務(wù)之間唯一;以及 對(duì)于在所述交換的每一個(gè)階段中由每一個(gè)任務(wù)發(fā)送的每一個(gè)消息,用于所述消息的所述目的地任務(wù)的所述層級(jí)標(biāo)識(shí)符取決于偏移-階段表示ps,該偏移-階段表示Ps取決于用于所述階段的階段索引P以及對(duì)于在相應(yīng)層級(jí)級(jí)別中所述任務(wù)屬于的所述組中的所述任務(wù)而定義的偏移值。
10.根據(jù)權(quán)利要求9所述的方法,其中對(duì)于在所述交換的每一個(gè)階段中由每一個(gè)任務(wù)發(fā)送的每一個(gè)消息,所述偏移-階段表示Ps包括N個(gè)分量P的集合,所述N個(gè)分量< 的集合取決于用于所述階段的所述階段索引P的相應(yīng)相對(duì)應(yīng)的階段元素Pn,以使得:
Pt = Px \ 對(duì)于η>1,如果所述相對(duì)應(yīng)的階段元素pn=0,則^ = O ;以及否則< =1加上(Pn-1)與所述任務(wù)在所述任務(wù)屬于的級(jí)別I (n_n組中的偏移值O之和對(duì)(Mn-1)取模的結(jié)果。
11.根據(jù)權(quán)利要求10所述的方法,其中對(duì)于在所述交換的所述階段的每一個(gè)中發(fā)送的每一個(gè)消息,將用于所述消息的所述目的地任務(wù)的所述層級(jí)標(biāo)識(shí)符的所述N個(gè)識(shí)別元素確定為:
m: = (in:: + p:) modulo Mn, η = I 到 N, 其中,是所述目的地任務(wù)的所述層級(jí)標(biāo)識(shí)符的第η個(gè)識(shí)別元素,以及是用于所述 消息的所述發(fā)送任務(wù)的所述層級(jí)標(biāo)識(shí)符的第η個(gè)識(shí)別元素。
12.根據(jù)權(quán)利要求3和4所述的方法, 包括將用于每一個(gè)任務(wù)的次要標(biāo)識(shí)符定義為用于所述任務(wù)在可變基數(shù)ΜΝ,Μ(Ν_η,……,Mk+2,Mk+1,M1, M2……,Mk中的任務(wù)索引t表示,其中k是預(yù)定的調(diào)節(jié)參數(shù)以使得l〈k〈N,其中所述任務(wù)索引t是由可變基數(shù)表示中用于所述任務(wù)的所述層級(jí)標(biāo)識(shí)符的N個(gè)標(biāo)識(shí)符元素mn的上述集合指示的值,其中每一個(gè)標(biāo)識(shí)符元素mn與基數(shù)Mn相對(duì)應(yīng),從而所述次要標(biāo)識(shí)符包括與相應(yīng)基數(shù)Mj相對(duì)應(yīng)的N個(gè)次要元素Hi」的集合,其中j=N,(N-1),……,k+2, k+1, I, 2,……,k ; 其中,對(duì)于在所述交換的所述階段的每一個(gè)中發(fā)送的每一個(gè)消息,用于所述消息的所述目的地任務(wù)的所述層級(jí)標(biāo)識(shí)符進(jìn)一步取決于階段索引P,所述階段索引P對(duì)于所述交換的每一個(gè)連續(xù)階段取整數(shù)值OS < fj/W,,中的不同值,所述階段索引P包括在所述可變基
K=I數(shù)Mn,M (n_1);……,Mk+2,Mk+1,M1, M2……,Mk中提供所述整數(shù)值的可變基數(shù)表示的N個(gè)階段元素Pj的集合;以及 其中,對(duì)于在所述交換的所述階段的每一個(gè)中發(fā)送的每一個(gè)消息,通過將所述目的地任務(wù)的所述次要標(biāo)識(shí)符獲得如下來確定用于所述消息的所述目的地任務(wù)的所述層級(jí)標(biāo)識(shí)符的所述N個(gè)識(shí)別元素:
W; = (m'j + Pj) modulo Mj, j=N, (N-1),......, k+2, k+1, I, 2,......, k,其中,< 是所述目的地任務(wù)的所述次要標(biāo)識(shí)符的第j個(gè)元素,并且 <是用于所述消息的所述發(fā)送任務(wù)的所述次要標(biāo)識(shí)符的第j個(gè)元素,并且繼而將所述目的地任務(wù)的所述次要標(biāo)識(shí)符的N個(gè)元孝",排列為所述基數(shù)順序Mn, n=l到N。
13.根據(jù)權(quán)利要求1到7中的任意一項(xiàng)所述的方法,其中所述網(wǎng)絡(luò)包括蜻蜓網(wǎng)絡(luò),其中所述層級(jí)級(jí)別I。中的所述組與連接到包含所述任務(wù)的計(jì)算節(jié)點(diǎn)的相應(yīng)交換機(jī)相對(duì)應(yīng),其中,如果每一個(gè)計(jì)算節(jié)點(diǎn)包含單個(gè)任務(wù)則c=l,并且如果每一個(gè)計(jì)算節(jié)點(diǎn)包含多個(gè)任務(wù)則c=2,其中每一個(gè)級(jí)別1。+1組與級(jí)別I。交換機(jī)的本地組相對(duì)應(yīng),所述級(jí)別I。交換機(jī)的每一個(gè)經(jīng)由遠(yuǎn)距離鏈路連接到位于至少一個(gè)其他級(jí)別1。+1組中的交換機(jī),并且每一個(gè)級(jí)別1。+2組與級(jí)別1。+1組中的組相對(duì)應(yīng),并且其中在所述交換的連續(xù)階段中,每一個(gè)任務(wù)向按照下面的順序選擇的相應(yīng)目的地任務(wù)發(fā)送消息: a.與所述任務(wù)位于相同計(jì)算節(jié)點(diǎn)中的任務(wù); b.在連接到與所述任務(wù)相同級(jí)別I。交換機(jī)S的計(jì)算節(jié)點(diǎn)中的任務(wù); c.在連接到與所述交換機(jī)S位于相同級(jí)別1。+1本地組中的交換機(jī)的計(jì)算節(jié)點(diǎn)中的任務(wù); d.在連接到交換機(jī)S’的計(jì)算節(jié)點(diǎn)中的任務(wù),在所述至少一個(gè)其他級(jí)別1。+1組中,所述交換機(jī)S’經(jīng)由所述遠(yuǎn)距離鏈路連接到所述交換機(jī)S ; e.在連接到與所 述交換機(jī)S’位于相同級(jí)別1。+1本地組中的級(jí)別I。交換機(jī)的計(jì)算節(jié)點(diǎn)中的任務(wù); f.在連接到所述交換機(jī)S’的計(jì)算節(jié)點(diǎn)中的任務(wù),在所述至少一個(gè)其他級(jí)別1。+1組中,所述交換機(jī)S’經(jīng)由所述遠(yuǎn)距離鏈路連接到與所述交換機(jī)S位于相同的級(jí)別1。+1本地組中的另一交換機(jī); g.所有其他任務(wù)。
14.根據(jù)權(quán)利要求13所述的方法,其中按照另一階段順序來執(zhí)行所述交換的產(chǎn)生的階段。
15.根據(jù)前述權(quán)利要求中的任意一項(xiàng)所述的方法,包括:在每一個(gè)任務(wù)處,動(dòng)態(tài)地確定用于在所述交換的每一個(gè)階段中發(fā)送的所述消息的所述目的地任務(wù)的所述層級(jí)標(biāo)識(shí)符。
16.一種包括多個(gè)計(jì)算節(jié)點(diǎn)的并行計(jì)算系統(tǒng),所述多個(gè)計(jì)算節(jié)點(diǎn)包含通過所述系統(tǒng)的互連網(wǎng)絡(luò)連接的程序任務(wù),所述網(wǎng)絡(luò)具有層級(jí)網(wǎng)絡(luò)拓?fù)?,所述層?jí)網(wǎng)絡(luò)拓?fù)浒∟>1個(gè)層級(jí)級(jí)別ln,n=l到N,其中第一級(jí)別I1包括所述任務(wù)的多個(gè)組并且每一個(gè)較高級(jí)別I (11>1)包括級(jí)別1(η_υ組中的至少一個(gè)組,其中所述系統(tǒng)適于執(zhí)行根據(jù)在前述權(quán)利要求中的任意一項(xiàng)中所述的用于所述程序任務(wù)之間的“所有到所有”消息交換的方法。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述網(wǎng)絡(luò)是粗樹網(wǎng)絡(luò),所述系統(tǒng)適于執(zhí)行根據(jù)權(quán)利要求8所述的用于所述程序任務(wù)之間的“所有到所有”消息交換的方法。
18.根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述網(wǎng)絡(luò)包括蜻蜓網(wǎng)絡(luò),所述系統(tǒng)適于執(zhí)行根據(jù)權(quán)利要求11所述的用于所述程序任務(wù)之間的“所有到所有”消息交換的方法。
19.根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述網(wǎng)絡(luò)包括細(xì)粗樹網(wǎng)絡(luò),所述系統(tǒng)適于執(zhí)行根據(jù)權(quán)利要求12所述的用于所述程序任務(wù)之間的“所有到所有”消息交換的方法。
20.根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述網(wǎng)絡(luò)包括蜻蜓網(wǎng)絡(luò),所述系統(tǒng)適于執(zhí)行根據(jù)權(quán)利要求13或者14所述的用于所述程序任務(wù)之間的“所有到所有”消息交換的方法。
21.一種根據(jù)權(quán)利要求16到20中的任意一項(xiàng)所述的并行計(jì)算系統(tǒng)的計(jì)算節(jié)點(diǎn),所述計(jì)算節(jié)點(diǎn)包含所述系統(tǒng)的至少一個(gè)程序任務(wù),并且適于與所述系統(tǒng)的其他計(jì)算節(jié)點(diǎn)共同執(zhí)行用于所述系統(tǒng)的所述程序任務(wù)之間的“所有到所有”消息交換的所述方法。
22.一種包括程序代碼裝置的計(jì)算機(jī)程序,所述程序代碼裝置用于使根據(jù)權(quán)利要求21所述的計(jì)算節(jié)點(diǎn)與其 他計(jì)算節(jié)點(diǎn)共同地執(zhí)行用于“所有到所有”消息交換的所述方法。
【文檔編號(hào)】H04L12/58GK104009907SQ201410048340
【公開日】2014年8月27日 申請(qǐng)日期:2014年2月12日 優(yōu)先權(quán)日:2013年2月22日
【發(fā)明者】B·普里薩卡里, C·J·明肯伯格, G·羅德里奎茲赫瑞拉 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司