Open MPI 的配置和使用

2021-05-23 20:38:37 字數 1264 閱讀 7622

最近想要投ieee cloud 這個會議,因此需要做一些實驗。為了比較節點之間的通訊效能,採用了mpi benchmark來作為基準的測試程式

實驗採用的是nasa的npb(nasa parallel benchmark)。實驗平台是plane-lab。由於涉及到了mpi程式,因此要用到mpi類庫。之前一直用的是mpich,但是planet-lab的安裝源沒有mpich只有open mpi只好該有後者了!

由於是剛接觸open mpi, 因此在整個實驗中碰到了一些問題,最後終於解決了。現在把這些問題及解決方列出來:

1.安裝open mpi

2.mpi程式的執行

如果是在單一節點上:

n 是程序個數,exe是執行檔案的名字。

如果是多個節點:

hostfile 是參與計算的節點列表。其格式如下:

ip1ip2ip3

上面的命令,則本地節點也會參與運算,不推薦這樣(本地節點複製排程最好),可以採用如下方法:

mpirun -nolocal -hostfile hostfile -np n exe

則可以讓本地節點不參與計算。

一般來說mpi程式都是部署在集群上執行的,但是我的節點是都是部署在internet環境下,因此有很多意想不到的錯誤發生:

ip1[0,1,0]:connect() failed with errno=110

ip2[0,1,1]: connect

() failed with errno=110

具體的錯誤原因可以用檢視:

$: perl -e 'die$!=110

從錯誤來看是超時錯誤,然後網上搜尋下,又不會少人都是這個問題,他們的程式都是執行在集群上。

從搜尋結果總結出,問題的原因是:節點具有多個網絡卡、多個節點共享乙個ip(區域網很常見)。

解決這個問題可以通過設定mca引數。通過查閱mca文件終於找到解決的辦法:

改引數定義了強制使用第一塊網絡卡來通訊!最後整個命令如下:

另外還有不少錯誤事mca引數設定造成的,可以通過mca引數更改來搞定。如果不想每次執行都輸入mca引數。可以在

$home/.openmpi/

mca-params.conf 中直接定義:

oob_tcp_include=eth0

btl_tcp_if_include=eth0

關於mca詳細的定義可以參考:

Samba的配置和使用

教程 http www.linuxsir.org main q node 158 samba的位置 etc init.d b 用cat命令可以檢視此檔案內容,可見其有start stop restart reload rhstatus等函式。啟動 b root localhost etc init....

Git 的使用和配置

git 常用命令 git init here 建立本地倉庫 repository 將會在資料夾下建立乙個 git 資料夾,git 資料夾裡儲存了所有的版本資訊 標記等內容 git remote add origin git github.com winter1991 helloworld.git 把...

logback的配置和使用

logback是由log4j創始人設計的又乙個開源日誌元件。logback當前分成三個模組 logback core,logback classic和logback access。logback core是其它兩個模組的基礎模組。logback classic是log4j的乙個 改良版本。此外log...