專利名稱:用于開發(fā)在并行計算機(jī)中執(zhí)行的集合操作的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的領(lǐng)域是數(shù)據(jù)處理,更具體地,是用于開發(fā)在并行計算機(jī)中執(zhí)行的集合操作的方法、裝置和產(chǎn)品。
背景技術(shù):
1948年EDVAC計算機(jī)系統(tǒng)的開發(fā)通常被稱為計算機(jī)時代的開始。自從那時起,計算機(jī)系統(tǒng)已經(jīng)發(fā)展為極其復(fù)雜的設(shè)備。當(dāng)今的計算機(jī)比諸如EDVAC的早期系統(tǒng)復(fù)雜得多。計算機(jī)系統(tǒng)通常包括硬件和軟件組件、應(yīng)用程序、操作系統(tǒng)、處理器、總線、存儲器、輸入/輸出設(shè)備等等的組合。隨著半導(dǎo)體處理和計算機(jī)架構(gòu)的進(jìn)步將計算機(jī)的性能推向越來越高,更復(fù)雜的計算機(jī)軟件已經(jīng)發(fā)展為利用更高性能的硬件,得到比僅幾年前強(qiáng)大得多的當(dāng)今的計算機(jī)系統(tǒng)。并行計算是已經(jīng)經(jīng)歷進(jìn)步的計算機(jī)技術(shù)領(lǐng)域。并行計算是同一個任務(wù)(被分割并具體適配)在多個處理器上的同時執(zhí)行以便更快地獲得結(jié)果。并行計算是基于以下事實(shí):解決問題的處理通常可以被劃分為更小的任務(wù),這些更小的任務(wù)可以通過某些協(xié)調(diào)而同時執(zhí)行。并行計算機(jī)執(zhí)行并行算法。并行算法可以被分割以在許多不同的處理設(shè)備上每次一段地執(zhí)行,然后最終再收回到一起以得到數(shù)據(jù)處理結(jié)果。一些算法容易劃分成段(piece)。劃分檢查從I到十萬的所有數(shù)字以查看哪些是質(zhì)數(shù)的任務(wù)可以通過例如向每個可用的處理器分配數(shù)字的子集然后將肯定結(jié)果的列表放回在一起來進(jìn)行。在此說明書中,執(zhí)行并行程序的各個段的多個處理設(shè)備被稱為“計算節(jié)點(diǎn)”。并行計算機(jī)由計算節(jié)點(diǎn)以及其他處理節(jié)點(diǎn)構(gòu)成,其他處理節(jié)點(diǎn)包括例如輸入/輸出(“I/O”)節(jié)點(diǎn)以及服務(wù)節(jié)點(diǎn)。
并行算法是有價值的,因?yàn)橛捎诂F(xiàn)代處理器工作的方式,經(jīng)由并行算法比經(jīng)由串行(非并行)算法更快地進(jìn)行某些種類的大的計算任務(wù)。構(gòu)造具有單個快速處理器的計算機(jī)遠(yuǎn)比構(gòu)造具有相同吞吐量的具有許多慢處理器的計算機(jī)難得多。還存在對串行處理器的潛在速度的某些理論限制。另一方面,每個并行算法具有串行部分,因此串行算法具有飽和點(diǎn)。在該點(diǎn)之后添加更多的處理器不能產(chǎn)生任何更多的吞吐量,而僅僅是增加開銷(overhead)和成本。并行算法還被設(shè)計用于優(yōu)化更多一個資源、即并行計算機(jī)的節(jié)點(diǎn)之間的數(shù)據(jù)通信要求。存在兩種并行處理器通信方式,共享存儲器或者消息傳遞。共享存儲器處理需要對于數(shù)據(jù)的另外鎖定并且強(qiáng)加了另外的處理器和總線循環(huán)的開銷,并且還串行化該算法的某些部分。消息傳遞處理使用高速數(shù)據(jù)通信網(wǎng)絡(luò)和消息緩存,但是此通信在數(shù)據(jù)通信網(wǎng)絡(luò)上添加了傳送開銷以及消息緩存的另外的存儲器需要和節(jié)點(diǎn)之間的數(shù)據(jù)通信中的等待時間。并行計算機(jī)的設(shè)計使用專門設(shè)計的數(shù)據(jù)通信鏈接以便通信開銷將是小的,但是決定流量的是并行算法。許多數(shù)據(jù)通信網(wǎng)絡(luò)架構(gòu)被用于并行計算機(jī)中的節(jié)點(diǎn)之間的消息傳遞。計算節(jié)點(diǎn)可以在網(wǎng)絡(luò)中被組織為例如“環(huán)狀結(jié)構(gòu)(torus)”或者“網(wǎng)狀結(jié)構(gòu)(mesh)”。而且,計算節(jié)點(diǎn)在網(wǎng)絡(luò)中可以被組織為樹。環(huán)狀網(wǎng)絡(luò)(mesh network)用環(huán)繞的鏈接來連接三維網(wǎng)狀結(jié)構(gòu)中的節(jié)點(diǎn)。每個節(jié)點(diǎn)通過該環(huán)狀網(wǎng)絡(luò)連接到其六個相鄰者,每個節(jié)點(diǎn)通過其在網(wǎng)狀結(jié)構(gòu)中的x、y、z坐標(biāo)被尋址。以這樣的方式,環(huán)狀網(wǎng)絡(luò)使其自身適合于點(diǎn)對點(diǎn)操作。在樹狀網(wǎng)絡(luò)中,節(jié)點(diǎn)通常連接為二叉樹:每個節(jié)點(diǎn)具有一個雙親和兩個孩子(盡管依賴于硬件配置,一些節(jié)點(diǎn)可能僅具有O個孩子或者一個孩子)。盡管樹狀網(wǎng)絡(luò)通常在點(diǎn)對點(diǎn)通信中效率低,但是樹狀網(wǎng)絡(luò)提供高帶寬和以及對于某些集合(collective)操作、其中所有計算節(jié)點(diǎn)同時參與的消息傳遞操作諸如例如全聚集(allgather)操作的低等待時間。在使用環(huán)狀網(wǎng)絡(luò)和樹狀網(wǎng)絡(luò)的計算機(jī)中,這兩個網(wǎng)絡(luò)通常彼此獨(dú)立地實(shí)現(xiàn),具有分離的布線電路、分離的物理鏈接以及分離的消息緩沖器。
發(fā)明內(nèi)容
在本說明書中公開了開發(fā)在并行計算機(jī)執(zhí)行的集合操作的方法、裝置和產(chǎn)品。該并行計算機(jī)包括通過一個或多個數(shù)據(jù)通信網(wǎng)絡(luò)耦接用于數(shù)據(jù)通信的多個計算節(jié)點(diǎn)。根據(jù)本發(fā)明的實(shí)施例在這樣的并行計算機(jī)中開發(fā)集合操作包括:由集合開發(fā)工具接收要開發(fā)的目標(biāo)集合操作的詳細(xì)說明;由該集合開發(fā)工具接收該目標(biāo)集合操作將在其中執(zhí)行的并行計算機(jī)的計算機(jī)硬件特性的詳細(xì)說明;由該集合開發(fā)工具依賴于該計算機(jī)硬件特性的詳細(xì)說明以及指定基于計算機(jī)硬件特性的集合基元的選擇標(biāo)準(zhǔn)的預(yù)定規(guī)則集,自動地、無需用戶交互地、對于該目標(biāo)集合操作的每個階段重復(fù)地選擇集合基元;以及由該集合開發(fā)工具依賴于所選的集合基元產(chǎn)生目標(biāo)集合操作。本發(fā)明的以上以及其他目標(biāo)、特征和優(yōu)點(diǎn)將從如在附圖中例示的本發(fā)明的示例實(shí)施例的以下更具體的描述而顯而易見,附圖中類似的參考標(biāo)記一般表示本發(fā)明的示例實(shí)施例的類似的部分。
圖1例示根據(jù)本發(fā)明的實(shí)施例為其開發(fā)集合操作的示例系統(tǒng)。圖2給出根據(jù)本發(fā)明的實(shí)施例在可以為其開發(fā)集合操作的并行計算機(jī)中有用的示例計算節(jié)點(diǎn)的框圖。圖3A給出根據(jù)本發(fā)明的實(shí)施例在可以為其開發(fā)集合操作的并行計算機(jī)中有用的示例點(diǎn)對點(diǎn)適配器的框圖。圖3B給出根據(jù)本發(fā)明的實(shí)施例在可以為其開發(fā)集合操作的并行計算機(jī)中有用的示例全局組合網(wǎng)絡(luò)適配器的框圖。圖4給出例示根據(jù)本發(fā)明的實(shí)施例可以為其開發(fā)集合操作的并行計算機(jī)中有用的對于點(diǎn)對點(diǎn)操作優(yōu)化的示例數(shù)據(jù)通信網(wǎng)絡(luò)的線條圖。圖5給出例示根據(jù)本發(fā)明的實(shí)施例可以為其開發(fā)集合操作的并行計算機(jī)中有用的示例全局組合網(wǎng)絡(luò)的線條圖。圖6給出根據(jù)本發(fā)明的實(shí)施例的用于開發(fā)在并行計算機(jī)中執(zhí)行的集合操作的示例方法的流程圖。圖7給出例示根據(jù)本發(fā)明的實(shí)施例的用于開發(fā)在并行計算機(jī)中執(zhí)行的集合操作的另一示例方法的流程圖。圖8給出例示根據(jù)本發(fā)明的實(shí)施例的用于開發(fā)在并行計算機(jī)中執(zhí)行的集合操作的另一示例方法的流程圖。圖9給出例示根據(jù)本發(fā)明的實(shí)施例的用于開發(fā)在并行計算機(jī)中執(zhí)行的集合操作的另一示例方法的流程圖。
具體實(shí)施例方式參考附圖描述根據(jù)本發(fā)明的用于開發(fā)在并行計算機(jī)中執(zhí)行的集合操作的示例方法、裝置和產(chǎn)品,以圖1開始。圖1例示根據(jù)本發(fā)明的實(shí)施例的可以為其開發(fā)集合操作的示例系統(tǒng)。圖1的系統(tǒng)包括并行計算機(jī)(100)、數(shù)據(jù)存儲設(shè)備(118)形式的用于該計算機(jī)的非易失性存儲器、打印機(jī)(120)形式的用于該計算機(jī)的輸出設(shè)備以及計算機(jī)終端(122)形式的用于該計算機(jī)的輸入/輸出設(shè)備。在圖1的例子中的并行計算機(jī)(100)包括多個計算節(jié)點(diǎn)(102)。計算節(jié)點(diǎn)(102)通過幾種獨(dú)立的數(shù)據(jù)通信網(wǎng)絡(luò)耦接用于數(shù)據(jù)通信,該幾種獨(dú)立的數(shù)據(jù)通信網(wǎng)絡(luò)包括高速以太網(wǎng)絡(luò)(174)、聯(lián)合測試行動組(“JTAG”)網(wǎng)絡(luò)(104)、使用二叉樹網(wǎng)絡(luò)拓?fù)涞膶τ诩喜僮鲀?yōu)化的全局組合網(wǎng)絡(luò)(106)、以及使用環(huán)狀網(wǎng)絡(luò)拓?fù)涞膶τ邳c(diǎn)對點(diǎn)操作優(yōu)化的點(diǎn)對點(diǎn)網(wǎng)絡(luò)(108)。全局組合網(wǎng)絡(luò)(106)是包括連接到計算節(jié)點(diǎn)(102)的數(shù)據(jù)通信鏈接以便將計算節(jié)點(diǎn)(102)組織為二叉樹的數(shù)據(jù)通信網(wǎng)絡(luò)。每個數(shù)據(jù)通信網(wǎng)絡(luò)利用在計算節(jié)點(diǎn)(102)之間的數(shù)據(jù)通信鏈接實(shí)現(xiàn)。數(shù)據(jù)通信鏈接提供用于并行計算機(jī)(100)的計算節(jié)點(diǎn)(102)之間的并行操作的數(shù)據(jù)通信。并行計算機(jī)(100)的計算節(jié)點(diǎn)(102)被組織為用于并行計算機(jī)(100)上的集合并行操作的計算節(jié)點(diǎn)的至少一個操作組(132)。計算節(jié)點(diǎn)的每個操作組(132)是這樣的計算節(jié)點(diǎn)的集合:集合并行操作在這些節(jié)點(diǎn)上執(zhí)行 。操作組(132)中的每個計算節(jié)點(diǎn)被分配了標(biāo)識該操作組(132)中的特定計算節(jié)點(diǎn)的唯一秩(rank)。利用操作組的計算節(jié)點(diǎn)之間的數(shù)據(jù)通信實(shí)現(xiàn)集合操作。集合操作是涉及操作組(132)的所有計算節(jié)點(diǎn)的那些功能。集合操作是由計算節(jié)點(diǎn)的操作組(132)中的所有計算節(jié)點(diǎn)同時、即近似在相同時間執(zhí)行的操作、即消息傳遞型計算機(jī)程序指令。這樣的操作組(132)可以包括并行計算機(jī)(100)中的所有計算節(jié)點(diǎn)(102)或者所有計算節(jié)點(diǎn)(102)的子集。集合操作通常圍繞點(diǎn)對點(diǎn)操作而建立。集合操作需要在操作組(132)內(nèi)的所有計算節(jié)點(diǎn)上的所有處理利用匹配的變量調(diào)用相同的集合操作?!皬V播”是用于在操作組的計算節(jié)點(diǎn)之間移動數(shù)據(jù)的集合操作的例子?!皻w約(reduce)”操作是對分布在操作組(132)的計算節(jié)點(diǎn)之間的數(shù)據(jù)執(zhí)行算術(shù)或邏輯功能的集合操作的例子。操作組(132)可以實(shí)現(xiàn)為例如MPI “通信器”?!癕PI”指“消息傳遞接口”,即現(xiàn)有技術(shù)的并行通信庫,即用于并行計算機(jī)上的數(shù)據(jù)通信的計算機(jī)程序指令的模塊??梢愿倪M(jìn)以用在根據(jù)本發(fā)明的實(shí)施例而配置的系統(tǒng)中的現(xiàn)有技術(shù)的并行通信庫的例子包括MPI和“并行虛擬機(jī)”(“PVM”)庫。PVM由田納西(Tennessee)大學(xué)、橡樹嶺國家實(shí)驗(yàn)室(Oak Ridge National Laboratory)和埃默里(Emory)大學(xué)開發(fā)。MPI由MPI論壇公布,MPI論壇即具有來自定義和維護(hù)MPI標(biāo)準(zhǔn)的許多組織的代表的開放組。在撰寫本文時MPI是用于在分布式存儲器并行計算機(jī)上運(yùn)行并行程序的計算節(jié)點(diǎn)之間通信的實(shí)際標(biāo)準(zhǔn)。為了易于說明,本說明書有時使用MPI術(shù)語,不過像這樣使用MPI不是本發(fā)明的要求或者限制。一些集合操作具有在操作組(132)中的特定計算節(jié)點(diǎn)上運(yùn)行的單個發(fā)起或接收處理。例如,在“廣播”集合操作中,在計算節(jié)點(diǎn)上的將數(shù)據(jù)分發(fā)到所有其他計算節(jié)點(diǎn)的處理是發(fā)起處理。例如,在“聚集”操作中,在計算節(jié)點(diǎn)上的接收來自其他計算節(jié)點(diǎn)的所有數(shù)據(jù)的處理是接收處理。這樣的發(fā)起或者接收處理在其上運(yùn)行的計算節(jié)點(diǎn)被稱為邏輯根。大多數(shù)集合操作是四個基本操作的變型或組合:廣播、聚集、散布和歸約。用于這些集合操作的接口在由MPI論壇公布的MPI標(biāo)準(zhǔn)中定義。但是,在該MPI標(biāo)準(zhǔn)中未定義用于執(zhí)行集合操作的算法。在廣播操作中,所有處理指定相同的根處理,其緩沖器內(nèi)容將被發(fā)送。除了根之外的處理指定接收緩沖器。在該操作之后,所有緩沖器包含來自該根處理的消息。像廣播操作那樣,散布操作也是一對多集合操作。在散布操作中,邏輯根將根上的數(shù)據(jù)劃分為片段并且將不同的片段分發(fā)到操作組(132)中的每個計算節(jié)點(diǎn)。在散布操作中,所有處理通常指定相同的接收計數(shù)。發(fā)送變量僅對于根處理是重要的,該根處理的緩沖器實(shí)際上包含了給定數(shù)據(jù)類型的發(fā)送計數(shù)*N元素,其中N是給定組的計算節(jié)點(diǎn)中的處理的數(shù)量。發(fā)送緩沖器被劃分并散發(fā)到所有處理(包括在邏輯根上的處理)。每個計算節(jié)點(diǎn)被分配了稱為“秩”的順序標(biāo)識符。在該操作之后,根已經(jīng)按增加的秩的順序向每個處理發(fā)送了發(fā)送計數(shù)(sendcount)數(shù)據(jù)元素。秩O接收來自發(fā)送緩沖器的第一發(fā)送計數(shù)數(shù)據(jù)元素。秩I接收來自發(fā)送緩沖器的第二發(fā)送計數(shù)數(shù)據(jù)元素,等等。聚集操作是與散步操作的描述完全相反的多對一集合操作。即,聚集是多對一集合操作,其中將來自排序了(ranked)的計算節(jié)點(diǎn)的某數(shù)據(jù)類型的元素聚集到根節(jié)點(diǎn)中的接收緩沖器中。歸約操作也是多對一集合操作,其包括對兩個數(shù)據(jù)元素進(jìn)行的算術(shù)或邏輯功能。所有處理指定相同的“計數(shù)”和相同的算術(shù)或邏輯功能。在該歸約之后,所有處理已將來自計算節(jié)點(diǎn)發(fā)送緩沖器的計數(shù)數(shù)據(jù)元素發(fā)送到根處`理。在歸約操作中,來自相應(yīng)的發(fā)送緩沖器位置的數(shù)據(jù)元素通過算術(shù)或邏輯操作被成對地組合以產(chǎn)生根處理的接收緩沖器中的單個相應(yīng)的元素??梢栽谶\(yùn)行時定義專用歸約操作。并行通信庫可以支持預(yù)定操作。例如,MPI提供以下預(yù)定歸約操作:
權(quán)利要求
1.一種用于開發(fā)在并行計算機(jī)中執(zhí)行的集合操作的方法,該并行計算機(jī)包括通過一個或多個數(shù)據(jù)通信網(wǎng)絡(luò)耦接用于數(shù)據(jù)通信的多個計算節(jié)點(diǎn),所述方法包括: 由集合開發(fā)工具接收要開發(fā)的目標(biāo)集合操作的詳細(xì)說明; 由該集合開發(fā)工具接收該目標(biāo)集合操作將在其中執(zhí)行的并行計算機(jī)的計算機(jī)硬件特性的詳細(xì)說明; 由該集合開發(fā)工具依賴于該計算機(jī)硬件特性的詳細(xì)說明以及指定基于計算機(jī)硬件特性的集合基元的選擇標(biāo)準(zhǔn)的預(yù)定規(guī)則集,自動地、無需用戶交互地、對于該目標(biāo)集合操作的每個階段重復(fù)地選擇集合基元;以及 由該集合開發(fā)工具依賴于所選的集合基元產(chǎn)生目標(biāo)集合操作。
2.如權(quán)利要求1的方法,還包括: 確定該目標(biāo)集合操作是否滿足用戶指定的集合操作標(biāo)準(zhǔn),所述用戶指定的集合操作標(biāo)準(zhǔn)包括集合基元的最大數(shù)量的指定;以及 如果該目標(biāo)集合操作不滿足用戶指定的集合操作標(biāo)準(zhǔn),則由該集合開發(fā)工具進(jìn)行對于該目標(biāo)集合操作的集合操作開發(fā)的隨后的重復(fù)。
3.如權(quán)利要求1的方法,還包括: 確定該目標(biāo)集合操作是否滿足用戶指定的集合操作標(biāo)準(zhǔn),所述用戶指定的集合操作標(biāo)準(zhǔn)包括目標(biāo)集合操作的最大執(zhí)行時間的指定;以及 如果該目標(biāo)集合操作不滿足用戶指定的集合操作標(biāo)準(zhǔn),則由該集合開發(fā)工具進(jìn)行對于該目標(biāo)集合操作的集合操作開發(fā)的隨后的重復(fù)。
4.如權(quán)利要求1的方法,還包括: 確定該目標(biāo)集合操作是否滿足用戶指定的集合操作標(biāo)準(zhǔn),所述用戶指定的集合操作標(biāo)準(zhǔn)包括在該目標(biāo)集合操作的執(zhí)行期間發(fā)送的消息的最大數(shù)量的指定;以及 如果該目標(biāo)集合操作不滿足用戶指定的集合操作標(biāo)準(zhǔn),則由該集合開發(fā)工具進(jìn)行對于該目標(biāo)集合操作的集合操作開發(fā)的隨后的重復(fù)。
5.如權(quán)利要求1的方法,其中至少一個集合基元包括: 多同步基元,該多同步基元在被執(zhí)行時實(shí)行多個計算節(jié)點(diǎn)之間的同步。
6.如權(quán)利要求1的方法,其中至少一個集合基元包括: 多播基元,該多播基元在被執(zhí)行時并行地向一組節(jié)點(diǎn)發(fā)送消息。
7.如權(quán)利要求1的方法,其中至少一個集合基元包括: 多組合基元,該多組合基元在被執(zhí)行時對從多于一個計算節(jié)點(diǎn)接收的數(shù)據(jù)進(jìn)行操作。
8.如權(quán)利要求1的方法,其中至少一個集合基元包括: 多對多基元,該多對多基元在被執(zhí)行時向一組計算節(jié)點(diǎn)發(fā)送唯一的數(shù)據(jù)并從另一組計算節(jié)點(diǎn)接收數(shù)據(jù)。
9.一種用于開發(fā)在并行計算機(jī)中執(zhí)行的集合操作的裝置,該并行計算機(jī)包括通過一個或多個數(shù)據(jù)通 信網(wǎng)絡(luò)耦接用于數(shù)據(jù)通信的多個計算節(jié)點(diǎn),所述裝置包括計算機(jī)處理器和操作地耦接到該計算機(jī)處理器的計算機(jī)存儲器,該計算機(jī)存儲器具有布置在其中的計算機(jī)程序指令,該計算機(jī)程序指令在被該計算機(jī)處理器執(zhí)行時致使所述裝置實(shí)行以下步驟: 由集合開發(fā)工具接收要開發(fā)的目標(biāo)集合操作的詳細(xì)說明; 由該集合開發(fā)工具接收該目標(biāo)集合操作將在其中執(zhí)行的并行計算機(jī)的計算機(jī)硬件特性的詳細(xì)說明; 由該集合開發(fā)工具依賴于該計算機(jī)硬件特性的詳細(xì)說明以及指定基于計算機(jī)硬件特性的集合基元的選擇標(biāo)準(zhǔn)的預(yù)定規(guī)則集,自動地、無需用戶交互地、對于該目標(biāo)集合操作的每個階段重復(fù)地選擇集合基元; 以及由該集合開發(fā)工具依賴于所選的集合基元產(chǎn)生目標(biāo)集合操作。
10.如權(quán)利要求9的裝置,還包括在被該計算機(jī)處理器執(zhí)行時致使所述裝置實(shí)行以下步驟的計算機(jī)程序指令: 確定該目標(biāo)集合操作是否滿足用戶指定的集合操作標(biāo)準(zhǔn),所述用戶指定的集合操作標(biāo)準(zhǔn)包括集合基元的最大數(shù)量的指定;以及 如果該目標(biāo)集合操作不滿足用戶指定的集合操作標(biāo)準(zhǔn),則由該集合開發(fā)工具進(jìn)行對于該目標(biāo)集合操作的集合操作開發(fā)的隨后的重復(fù)。
11.如 權(quán)利要求9的裝置,還包括在被該計算機(jī)處理器執(zhí)行時致使所述裝置實(shí)行以下步驟的計算機(jī)程序指令: 確定該目標(biāo)集合操作是否滿足用戶指定的集合操作標(biāo)準(zhǔn),所述用戶指定的集合操作標(biāo)準(zhǔn)包括目標(biāo)集合操作的最大執(zhí)行時間的指定;以及 如果該目標(biāo)集合操作不滿足用戶指定的集合操作標(biāo)準(zhǔn),則由該集合開發(fā)工具進(jìn)行對于該目標(biāo)集合操作的集合操作開發(fā)的隨后的重復(fù)。
12.如權(quán)利要求9的裝置,還包括在被該計算機(jī)處理器執(zhí)行時致使所述裝置實(shí)行以下步驟的計算機(jī)程序指令: 確定該目標(biāo)集合操作是否滿足用戶指定的集合操作標(biāo)準(zhǔn),所述用戶指定的集合操作標(biāo)準(zhǔn)包括在該目標(biāo)集合操作的執(zhí)行期間發(fā)送的消息的最大數(shù)量的指定;以及 如果該目標(biāo)集合操作不滿足用戶指定的集合操作標(biāo)準(zhǔn),則由該集合開發(fā)工具進(jìn)行對于該目標(biāo)集合操作的集合操作開發(fā)的隨后的重復(fù)。
13.如權(quán)利要求9的裝置,其中至少一個集合基元包括: 多同步基元,該多同步基元在被執(zhí)行時實(shí)行多個計算節(jié)點(diǎn)之間的同步。
14.如權(quán)利要求9的裝置,其中至少一個集合基元包括: 多播基元,該多播基元在被執(zhí)行時并行地向一組節(jié)點(diǎn)發(fā)送消息。
15.如權(quán)利要求9的裝置,其中至少一個集合基元包括: 多組合基元,該多組合基元在被執(zhí)行時對從多于一個計算節(jié)點(diǎn)接收的數(shù)據(jù)進(jìn)行操作。
16.如權(quán)利要求9的裝置,其中至少一個集合基元包括: 多對多基元,該多對多基元在被執(zhí)行時向一組計算節(jié)點(diǎn)發(fā)送唯一的數(shù)據(jù)并從另一組計算節(jié)點(diǎn)接收數(shù)據(jù)。
全文摘要
開發(fā)在包括通過一個或多個數(shù)據(jù)通信網(wǎng)絡(luò)耦接用于數(shù)據(jù)通信的多個計算節(jié)點(diǎn)的并行計算機(jī)中執(zhí)行的集合操作,包括由集合開發(fā)工具接收要開發(fā)的目標(biāo)集合操作的詳細(xì)說明;由該集合開發(fā)工具接收該目標(biāo)集合操作將在其中執(zhí)行的并行計算機(jī)的計算機(jī)硬件特性的詳細(xì)說明;由該集合開發(fā)工具依賴于該計算機(jī)硬件特性的詳細(xì)說明以及指定基于計算機(jī)硬件特性的集合基元的選擇標(biāo)準(zhǔn)的預(yù)定規(guī)則集,自動地、無需用戶交互地、對于該目標(biāo)集合操作的每個階段重復(fù)地選擇集合基元;以及由該集合開發(fā)工具依賴于所選的集合基元產(chǎn)生目標(biāo)集合操作。
文檔編號G06F9/38GK103246507SQ201310049230
公開日2013年8月14日 申請日期2013年2月7日 優(yōu)先權(quán)日2012年2月9日
發(fā)明者C.J.阿徹, J.E.凱里, P.J.桑德斯, B.E.史密斯 申請人:國際商業(yè)機(jī)器公司