安裝和使用 mpi4py

上一篇中我們簡要介紹了 mpi4py 及其所提供的并行編程功能,本文介紹如何安裝和使用 mpi4py逼庞。

安裝依賴

要正確地安裝和使用 mpi4py,你需要先安裝和設(shè)置好以下軟件:

  • 一個 MPI 實現(xiàn)軟件,最好能支持 MPI-3 標(biāo)準(zhǔn)立轧,并且最好是動態(tài)編譯的膛虫。比較常用的 MPI 實現(xiàn)軟件有 OpenMPI草姻,MPICH 等。
  • Python 2.7稍刀,Python 3.3+撩独。要寫 Python 的并行程序,Python 自然是必不可少的账月。

安裝 mpi4py

當(dāng)你已經(jīng)安裝好以上依賴的軟件后综膀,就可以安裝 mpi4py 了,不過在這之前你需要 mpicc 在你的程序搜索路徑上局齿,可以簡單地通過以下命令查看:

$ which mpicc

如果該命令輸出對應(yīng)的 mpicc 執(zhí)行路徑剧劝,你就可以進(jìn)行下面的安裝步驟了,但是如果沒有輸出抓歼,你需要把安裝的 MPI 軟件的 bin 目錄添加到 PATH 環(huán)境變量讥此,lib 目錄添加到 LD_LIBRARY_PATH 環(huán)境變量,以使 mpicc 可以被搜索到谣妻。

使用 pip 安裝

使用 pip 安裝 mpi4py 非常簡單萄喳,如果你有 root 權(quán)限,直接在終端中輸入下面的命令就行了:

$ pip install mpi4py

如果沒有 root 權(quán)限蹋半,你可以安裝 mpi4py 到自己的 $HOME 目錄下他巨,這樣只能供你自己使用:

$ pip install mpi4py --user

保證安裝的可執(zhí)行文件路徑 ~/.local/bin 添加到了 PATH 環(huán)境變量中,庫文件路徑 ~/.local/lib 添加到了 LD_LIBRARY_PATH 環(huán)境變量中。

從源文件安裝

https://pypi.python.org/pypi/mpi4py 上下載 mpi4py 安裝包染突,然后解壓安裝包:

$ tar -xvzf mpi4py-X.Y.Z.tar.gz
$ cd mpi4py-X.Y.Z

編譯安裝包:

$ python setup.py build

編譯完成后就可以安裝了:

$ python setup.py install

或者

$ python setup.py install --user

測試 mpi4py 是否安裝正確

現(xiàn)在可以寫一段簡單的程序來測試 mpi4py 是否安裝好及能否正常使用:

# mpi_helloworld.py

from mpi4py import MPI


comm = MPI.COMM_WORLD
size = comm.Get_size()
rank = comm.Get_rank()
node_name = MPI.Get_processor_name() # get the name of the node

print 'Hello world from process %d at %s.' % (rank, node_name)

運(yùn)行 mpi4py 程序

用下面的命令運(yùn)行一個 Python 寫的 MPI 程序:

$ mpiexec -n 3 python mpi_helloworld.py
Hello world from process 2 at node1.
Hello world from process 0 at node1.
Hello world from process 1 at node1.

也可以用一種較老的方式:

$ mpirun -np 3 python mpi_helloworld.py
Hello world from process 2 at node1.
Hello world from process 0 at node1.
Hello world from process 1 at node1.

其中 -n 或者 -np 指定使用多少個 MPI 進(jìn)程來執(zhí)行這個程序匪傍。

上面的命令會在單個節(jié)點(單臺機(jī)器)上發(fā)起3個 MPI 進(jìn)程來并行執(zhí)行 mpi_helloworld.py,如果要在多個節(jié)點(多臺機(jī)器)上并行執(zhí)行程序觉痛,可以用下面的命令:

$ mpiexec -n 3 -host node1,node2,node3 python mpi_helloworld.py
Hello world from process 1 at node2.
Hello world from process 2 at node3.
Hello world from process 0 at node1.

其中 -host (或者 -H)后面指定所要使用的節(jié)點役衡,這些節(jié)點以逗號分隔。如果節(jié)點很多也可以用選項 -hostfile 或者 -machinefile 指定一個文件薪棒,在這個文件中寫入你需要使用的計算節(jié)點手蝎。更多的運(yùn)行選項可以通過下面的命令獲得:

$ mpiexec --help

下一篇中我們將通過幾個簡單的例子來展示怎么使用 mpi4py 來進(jìn)行并行編程,以使讀者能夠快速地上手使用 mpi4py俐芯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棵介,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吧史,更是在濱河造成了極大的恐慌邮辽,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贸营,死亡現(xiàn)場離奇詭異吨述,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)钞脂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門揣云,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人冰啃,你說我怎么就攤上這事邓夕。” “怎么了阎毅?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵焚刚,是天一觀的道長。 經(jīng)常有香客問我扇调,道長矿咕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任肃拜,我火速辦了婚禮痴腌,結(jié)果婚禮上雌团,老公的妹妹穿的比我還像新娘燃领。我一直安慰自己,他們只是感情好锦援,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布猛蔽。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪曼库。 梳的紋絲不亂的頭發(fā)上区岗,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機(jī)與錄音毁枯,去河邊找鬼慈缔。 笑死,一個胖子當(dāng)著我的面吹牛种玛,可吹牛的內(nèi)容都是我干的藐鹤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼赂韵,長吁一口氣:“原來是場噩夢啊……” “哼娱节!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起祭示,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤肄满,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后质涛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稠歉,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年汇陆,在試婚紗的時候發(fā)現(xiàn)自己被綠了轧抗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡瞬测,死狀恐怖横媚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情月趟,我是刑警寧澤灯蝴,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站孝宗,受9級特大地震影響穷躁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜因妇,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一问潭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧婚被,春花似錦狡忙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窜觉。三九已至,卻和暖如春北专,著一層夾襖步出監(jiān)牢的瞬間禀挫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工拓颓, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留语婴,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓驶睦,卻偏偏與公主長得像腻格,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子啥繁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

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