mpi4py 中的組與通信子

上一篇中我們簡要總結(jié)了 mpi4py 中的點(diǎn)到點(diǎn)通信,下面我們將介紹組與通信子的基本概念嵌施。

為了理解 MPI 中的組與通信子的概念饲化,我們先來了解以下一些術(shù)語的含義。

  1. 組(group)

所謂組吗伤,在 MPI 環(huán)境里就是指一組進(jìn)程標(biāo)識(shí)所組成的有序集合吃靠。組中的每個(gè)進(jìn)程都有一個(gè)唯一的 rank 加以標(biāo)識(shí)。組對(duì)象存在于通信子環(huán)境內(nèi)足淆,為通信子定義和描述通信參與者(進(jìn)程)巢块,并提供表示和管理進(jìn)程的若干功能。組內(nèi)的每個(gè)進(jìn)程與一個(gè)整數(shù) rank 相聯(lián)系巧号,rank 的序列號(hào)是連續(xù)的并從 0 開始族奢。mpi4py 有一個(gè)特殊的預(yù)定義組 MPI_GROUP_EMPTY,這是一個(gè)沒有成員的組丹鸿。預(yù)定義的常數(shù) MPI_GROUP_NULL 是為無效組句柄使用的值越走。

注意:不要將 MPI_GROUP_EMPTY 與 MPI_GROUP_NULL 混淆,前者是一個(gè)空組的有效句柄,而后者則是一個(gè)無效句柄廊敌。前者可以在組操作中作為一個(gè)參數(shù)使用铜跑;后者在組釋放時(shí)被返回,不能存在于一個(gè)有效參數(shù)中骡澈。

  1. 上下文(context)

上下文是通信子所具有的一個(gè)屬性锅纺,它允許對(duì)通信空間進(jìn)行劃分。一個(gè)上下文所發(fā)送的消息不能被另一個(gè)上下文所接收秧廉。不同的庫可使用彼此獨(dú)立的上下文伞广,彼此互不干擾。上下文不是顯式的 MPI 對(duì)象疼电;它們僅作為通信子實(shí)現(xiàn)的一部分而出現(xiàn)嚼锄。

同一進(jìn)程內(nèi)的不同通信子有不同的上下文。上下文實(shí)質(zhì)上是一個(gè)系統(tǒng)管理的標(biāo)志蔽豺,用于保證通信子在點(diǎn)對(duì)點(diǎn)和 MPI 定義的集合通信中的安全性区丑。安全意味著同一通信子內(nèi)的集合和點(diǎn)對(duì)點(diǎn)通信互不干擾,而且不同通信子上的通信也互不干擾修陡。

在組間通信中(嚴(yán)格的點(diǎn)對(duì)點(diǎn)通信〕沧侥,每個(gè)通信子中都存放這兩個(gè)上下文標(biāo)志,一個(gè)在組 A 中用于發(fā)送魄鸦,在組 B 中用于接收宴杀,第二個(gè)在組 B 中用于發(fā)送,在組 A 中用于接收拾因。

  1. 通信子(communicator)

通信子定義了封裝 MPI 通信的基本模型旺罢。通信子可分為兩類:組內(nèi)通信子(intra-communicator)和組間通信子(inter-communicator)。

  1. 通信子緩存(cache)

通信子提供了一種緩存機(jī)制绢记,使得用戶可為其關(guān)聯(lián)屬性扁达。

  1. 組內(nèi)通信子(intra-communicator)

組內(nèi)通信子將組的概念和上下文的概念結(jié)合到一起,其包含了一個(gè) group 實(shí)例蠢熄,作為點(diǎn)到點(diǎn)和/或集合通信的通信上下文跪解,并包含了虛擬進(jìn)程拓?fù)浜推渌鼘傩浴C總€(gè) MPI 通信函數(shù)都要通過通信子確定其通信環(huán)境签孔。每個(gè)通信子都包含了一組進(jìn)程叉讥,消息的源和目的進(jìn)程都由組內(nèi)保存的進(jìn)程 rank 加以區(qū)分。每個(gè)組都必然包含其宿主進(jìn)程本身饥追,即組內(nèi)必然包含本地進(jìn)程图仓。

對(duì)于集合通信,組內(nèi)通信子指明了一系列參加集合操作的進(jìn)程(及它們的次序——當(dāng)需要時(shí)〕判耕。這樣通信子就約束了通信的空間范圍透绩,而且通過 rank 提供了與機(jī)器無關(guān)的進(jìn)程訪問翘骂。

mpi4py 的 MPI 環(huán)境啟動(dòng)后壁熄,自動(dòng)創(chuàng)建兩個(gè)組內(nèi)通信子帚豪,MPI.COMM_WORLD 和 MPI.COMM_SELF,前者包含了啟動(dòng)時(shí)的所有進(jìn)程草丧,后者則僅包含進(jìn)程自身狸臣。另外,預(yù)定義的常數(shù) MPI.COMM_NULL 是為無效通信子使用的值昌执。

在 MPI 的靜態(tài)進(jìn)程模型中烛亦,所有參加計(jì)算的進(jìn)程在 MPI 被初始化后都可得到。對(duì)于這種情況懂拾,MPI.COMM_WORLD 是所有進(jìn)程在計(jì)算時(shí)都可獲得的通信子煤禽;該通信子在所有進(jìn)程具有同樣的值。在進(jìn)程可以動(dòng)態(tài)加入 MPI 執(zhí)行的 MPI 實(shí)現(xiàn)中岖赋,可能是這樣的情形:一個(gè)進(jìn)程開始一個(gè) MPI 計(jì)算無需訪問其它的進(jìn)程檬果。在這種情況下,MPI.COMM_WORLD 是合并所有進(jìn)程的通信子唐断,每一個(gè)加入的進(jìn)程都可立即與之通信选脊。因此 MPI.COMM_WORLD 可能在不同的進(jìn)程中同時(shí)具有不同的值。

所有的 MPI 實(shí)現(xiàn)都要求提供 MPI.COMM_WORLD 通信子脸甘。在進(jìn)程的生命期中不允許將其釋放恳啥。與該通信子對(duì)應(yīng)的組不是以預(yù)定義常數(shù)的形式出現(xiàn)的,但是可以使用 MPI.Comm.Get_group 來獲取和訪問它丹诀。MPI 不指明 MPI.COMM_WORLD 中進(jìn)程序列號(hào)間的對(duì)應(yīng)關(guān)系及其(與機(jī)器相關(guān)的〕絕對(duì)地址钝的,MPI 也不指明任何主進(jìn)程函數(shù)。

  1. 組間通信子(inter-communicator)

組間通信與組內(nèi)通信是兩個(gè)相對(duì)的概念忿墅,參與組內(nèi)通信的進(jìn)程扁藕,都屬于相同的進(jìn)程組,并在相同的組內(nèi)通信子對(duì)象上下文環(huán)境中執(zhí)行疚脐。相應(yīng)地亿柑,組間通信子把兩個(gè)組綁定在一起,共享通信上下文棍弄,用于管理兩者之間的通信望薄。組間通信常用于解決采取模塊化結(jié)構(gòu)設(shè)計(jì)的,在多個(gè)空間中運(yùn)行的復(fù)雜應(yīng)用中的通信問題呼畸。一個(gè)組內(nèi)的進(jìn)程要與另一個(gè)組的進(jìn)程進(jìn)行通信就要指定目標(biāo)組和目標(biāo)進(jìn)程在目標(biāo)組內(nèi)的 rank 兩個(gè)信息痕支。

MPI 的進(jìn)程總是屬于某些進(jìn)程組。我們稱發(fā)起通信的進(jìn)程所屬進(jìn)程組為本地組(local group)蛮原,而稱包含某次通信發(fā)起者所指定目標(biāo)進(jìn)程的組為遠(yuǎn)程組(remote group)卧须。所謂遠(yuǎn)程組和本地組只是在一次通信過程中形成的相對(duì)的、臨時(shí)的概念。

對(duì)點(diǎn)到點(diǎn)通信花嘶,通信雙方所需指定的消息“信封”仍是(通信子笋籽,rank,tag)椭员,與組內(nèi)通信不同的是车海,組間通信的 rank 總是遠(yuǎn)程組里的 rank。

以上介紹了 mpi4py 中組與通信子的基本概念隘击,要很好地使用組與通信子進(jìn)行組間和/或組內(nèi)的通信操作侍芝,我們需要知道怎么管理組與通信子,訪問組與通信子的相關(guān)信息和屬性埋同,這些都是通過 mpi4py 中提供的相應(yīng)函數(shù)方法來完成的州叠,在下一篇中我們將介紹組管理 API。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凶赁,一起剝皮案震驚了整個(gè)濱河市留量,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哟冬,老刑警劉巖楼熄,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浩峡,居然都是意外死亡可岂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門翰灾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缕粹,“玉大人,你說我怎么就攤上這事纸淮∑秸叮” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵咽块,是天一觀的道長绘面。 經(jīng)常有香客問我,道長侈沪,這世上最難降的妖魔是什么揭璃? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮亭罪,結(jié)果婚禮上瘦馍,老公的妹妹穿的比我還像新娘。我一直安慰自己应役,他們只是感情好情组,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布燥筷。 她就那樣靜靜地躺著,像睡著了一般院崇。 火紅的嫁衣襯著肌膚如雪荆责。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天亚脆,我揣著相機(jī)與錄音,去河邊找鬼盲泛。 笑死濒持,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寺滚。 我是一名探鬼主播柑营,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼村视!你這毒婦竟也來了官套?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤蚁孔,失蹤者是張志新(化名)和其女友劉穎奶赔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杠氢,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡站刑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鼻百。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绞旅。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖温艇,靈堂內(nèi)的尸體忽然破棺而出因悲,到底是詐尸還是另有隱情,我是刑警寧澤勺爱,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布晃琳,位于F島的核電站,受9級(jí)特大地震影響琐鲁,放射性物質(zhì)發(fā)生泄漏蝎土。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一绣否、第九天 我趴在偏房一處隱蔽的房頂上張望誊涯。 院中可真熱鬧,春花似錦蒜撮、人聲如沸暴构。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽取逾。三九已至耗绿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砾隅,已是汗流浹背误阻。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晴埂,地道東北人究反。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像儒洛,于是被迫代替她去往敵國和親精耐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,082評(píng)論 25 707
  • 作者:邵正將PytLab琅锻,Python 中文社區(qū)專欄作者卦停。主要從事科學(xué)計(jì)算與高性能計(jì)算領(lǐng)域的應(yīng)用,主要語言為Pyt...
    Python中文社區(qū)閱讀 4,835評(píng)論 1 31
  • 2016年3月12日恼蓬,雖然是周末惊完,但如此上進(jìn)又好學(xué)的我,自然是去奔赴學(xué)校上課处硬。第一天上課的我专执,因?yàn)椴皇煜W(xué)校的路線...
    笑笑_feng閱讀 585評(píng)論 0 0
  • 本文參加#未完待續(xù),就要表白#活動(dòng)郁油,本人承諾本股,文章內(nèi)容為原創(chuàng),且未在其他平臺(tái)發(fā)表過桐腌。 毓秀橋上抹不去的風(fēng)景拄显,虹子湖...
    洋洋呼啦呼啦閱讀 238評(píng)論 0 0