歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在Ubuntu下用MPICH和Intel Fortran 進行並行計算

在Ubuntu下用MPICH和Intel Fortran 進行並行計算

日期:2017/2/28 16:05:13   编辑:Linux教程

以下是最近Y某在用mpi進行某程序並行運算時所做的設置的一些總結,由於intel fortran(在intel cpu上)的效率,所以想要配置intel fortran 實現並行,放在這裡記錄備用吧……

至於什麼是mpi,自己看有關介紹。
主節點master node 就是控制其他節點進行運算的計算機,我們這裡起名為node0。
從節點slave node 嗯,就是進行計算的節點,起名為node1 ~ noden

1. 設置網絡文件系統NFS(Network File System/Need for Speed),這是進行並行計算的基礎,所有的節點必須能夠讀寫同一個網絡路徑才可以進行同步計算。需要注意的是,如果你只是在一台電腦上運行這一程序(比如你有多個處理器或者多核),你可以跳過這一步直接進行第二步……

首先要安裝NFS server
sudo apt-get install nfs-kernel-server
設置一下共享
首先在主節點(master node)建立一個共享文件夾,或者也可以自己指定一個……
sudo mkdir /sharing
設置共享
sudo cat /mirror *(rw,sync) >> /etc/exports
之後就可以運行nfs服務端
sudo /etc/init.d/nfs-kernel-server start

要進行運算,在每一個從節點(slave node)中都需要設置映射主節點的目錄……
首先加入主節點的ip
sudo cat xxx:xxx:xxx:xxx node0 >> /etc/hosts #不會有人把xxx輸進去吧…
在從節點裡面進行映射……
sudo mkdir /sharing
sudo mount node0:/sharing /sharing

2. 接下來要設置ssh(secure shell),防止每次你運行mpi程序都要輸n遍密碼(有多少個線程就多少次……),如果你的系統安全要求不那麼高,也可以選擇使用rsh(其實我只是懶得設置rsh)

首先你要裝上它……
sudo apt-get install ssh
之後在主節點上生成DSA key,注意在運行的時候把密碼留空
ssh­-keygen ­-t dsa
把密鑰加入到受信任密鑰中:
cd ~/.ssh
cat id_dsa.pub >> authorized_keys
就可以了,之後可以試著用ssh username@machinename 來連接。另外,所有的節點必須有一個同樣的用戶(如mpiusr),以便主節點通過ssh(遠程登錄)的方式與其他節點進行通信,並控制其他節點進行運算。

3. 之後要做的是裝interl fortran,請參看這裡……順便,現在的Intel fortran for linux 改名成了Intel? Fortran Composer XE 2011 for Linux and Mac OS X,詭異的名字……

4. 然後(終於)要安裝mpi了:
首先,實際上能夠使用的mpi版本有很多,可以在Ubuntu上面安裝的主要有openmpi,mpich,和mpich2,總體來說,這些版本大同小異,而且……其實盡管有的版本叫做open,有的沒有,它們都是開源軟件……我這裡安裝的是mpich2,其他的版本跟這個的設置差不多。另外,其實intel有自己的mpi,還有個什麼parallel studio什麼的,而且效率很高,不過那個是要收費……買不起

對於基於debian發行版的用戶來說,很簡單:
sudo apt-get install mpich2 #注意這裡是安裝了mpich2 而非mpich

或者,如果想要更新的版本,也可以選擇去其官方網站上下載源碼安裝:

http://www.mcs.anl.gov/research/projects/mpich2/

大概一頓configure 和一頓sudo make install 就可以了……

一點點設置:
首先要在家目錄下~/ 建立一個mpd.host文件,這樣主機才能知道有多少台機器可以供它驅使,比如包含如下的內容:
localhost
node1
node2

noden

之後建立一個conf文件用於設置口令,比如:
cat secretword=lalala >> ~/.mpd.conf
之後確保只有你自己能讀:
chmod 600 ~/.mpd.conf

之後就大功告成!可以嘗試著使用mpdboot -n N #(N=你有的節點數)啟動後台程序。
可以使用mpitrace來查看有那些節點被使用了……

Copyright © Linux教程網 All Rights Reserved