• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-167  評(píng)論-8  文章-0  trackbacks-0
            http://blog.csdn.net/ifresh/article/details/7095977 

            注:本文是在查閱好多文章之后,融合自己實(shí)踐而來(lái)的,在其中會(huì)說(shuō)明查閱的文章,若有遺漏,敬請(qǐng)諒解。由于本人是剛接觸UBUNTU和MPI不久,因此其中難免有錯(cuò)誤與不足之處,這里僅做參考!

            這里我只是以兩臺(tái)機(jī)子作為參考例子,一臺(tái)裝有UBUNTU11.10,另外一臺(tái)是在虛擬機(jī)中安裝同樣版本的UBUNTU11.10,這里我也只是做一個(gè)測(cè)試,后面可能會(huì)遷移到集群中。用到的MPICH版本是mpich2-1.4.1p1。廢話不多說(shuō),現(xiàn)在開(kāi)始!


            首先MPI的配置分為幾個(gè)步驟,具體請(qǐng)參考:點(diǎn)擊打開(kāi)鏈接,這里我簡(jiǎn)要說(shuō)明一下:

            安裝前的準(zhǔn)備
            安裝MPICH步驟
            設(shè)置環(huán)境變量
            添加配置文件
            配置SSH
            測(cè)試
            1.安裝前的準(zhǔn)備

            首先肯定是需要安裝GCC和G++編譯器,這個(gè)直接apt-get就OK了,網(wǎng)上也有好多教程。


            2.安裝MPICH步驟

            2.1  首先將下載的文件解壓,下載的文件在當(dāng)前用戶目錄里面的“下載”目錄里面,我直接解壓到當(dāng)前目錄:

            [plain] view plaincopy
            tar xvfz mpich2-1.4.1p1.tar.gz  
            或者直接到文件所在目錄,直接右鍵單擊,選擇“解壓縮到此處”也可以。

            2.2  標(biāo)準(zhǔn)的 configure, make, make install 步驟,這里我是安裝官方文檔配置的,可以查看解壓后的README文檔參考:

            由于是bash,因此選擇以下命令,prefix指示安裝路徑,USERNAME就是當(dāng)前用戶的用戶名,由于這里我不用fortran,因此加上參數(shù)(--disable-f77 and --disable-fc),在此之前當(dāng)然要建立安裝MPICH的路徑,也就是:

            [plain] view plaincopy
            mkdir mpich2-install  

            接下來(lái)就是configure了:
            [plain] view plaincopy
            ./configure --prefix=/home/<USERNAME>/mpich2-install --disable-f77 --disable-fc 2>&1 | tee c.txt  
            而且在之前的安裝過(guò)程中,我發(fā)現(xiàn)如果不禁止fortran,安裝會(huì)出問(wèn)題,會(huì)導(dǎo)致MPICH2安裝不完全而出錯(cuò),所以這里建議不用的選上。


            接下來(lái)就是make了:

            [plain] view plaincopy
            make 2>&1 | tee m.txt  

            下面就是make install了:
            [plain] view plaincopy
            make install 2>&1 | tee mi.txt  

            這樣經(jīng)過(guò)漫長(zhǎng)的等待,最后在mpich2-install中會(huì)生成以下文件:



            至此,MPICH2安裝完成。


            3.設(shè)置環(huán)境變量

            這里設(shè)置環(huán)境變量主要是將MPICH的安裝目錄加到系統(tǒng)環(huán)境變量中,這里我在/etc/profile中加入對(duì)應(yīng)的路徑:

            用vim編輯器打開(kāi)/etc/profile:

            [plain] view plaincopy
            sudo vim /etc/profile  

            輸入密碼之后,將下面語(yǔ)句添加到最后一行:
            [plain] view plaincopy
            export PATH=/home/luo/mpich2-install/bin:$PATH  

            保存強(qiáng)制退出。
            最后可以用一下命令看看mpicc和mpiexec位置:

            [plain] view plaincopy
            which mpicc  
            which mpiexec  

            這里會(huì)顯示mpicc和mpiexec的位置,也就是在MPICH的安裝牡蠣中的bin文件夾中。
            至此,環(huán)境變量設(shè)置完成。


            4.添加配置文件

            這里所說(shuō)的配置文件主要是進(jìn)程管理的配置文件,由于UBUNTU11.10的進(jìn)程管理從mpd改為了hydra,因此導(dǎo)致我之前一直是無(wú)法配置成功,還在苦苦尋找mpd為何沒(méi)有安裝,這一點(diǎn)其實(shí)在官方給的文檔中有說(shuō)明,不過(guò)自己當(dāng)時(shí)因?yàn)榭吹酱笃⑽木皖^疼,所以并沒(méi)有仔細(xì)看,導(dǎo)致浪費(fèi)了好長(zhǎng)時(shí)間,這個(gè)教訓(xùn)要吸取。

            首先在/etc下面建立目錄:

            [plain] view plaincopy
            sudo mkdir /etc/hydra  

            用vim編輯器建立hosts文件:
            [plain] view plaincopy
            sudo vim /etc/hydra/hosts  
            文件的結(jié)構(gòu)如下:

            # Some Comments
            MainNode:8 # other comments
            Node1:2
            Node2:2

            每行中由冒號(hào)(:)分隔的前半部分表示節(jié)點(diǎn),可以使用節(jié)點(diǎn)名也可以使用IP地址,貌似不區(qū)分大小寫(xiě);后半部分表示可用的CPU數(shù)量。注釋用“#”前導(dǎo)。根據(jù)你的實(shí)際情況撰寫(xiě)hosts文件。這里我是將我自己的兩臺(tái)計(jì)算機(jī)名加入其中,可能在此之前需要設(shè)置/etc/hosts中IP與機(jī)器名的對(duì)應(yīng)關(guān)系:
            [plain] view plaincopy
            192.168.1.105 luo-UBUNTU  
            192.168.1.106 luo-VirtualBox  

            上面就是我自己的/etc/hosts文件中加入的信息。
            在/etc/hydra/hosts中加入:

            [plain] view plaincopy
            luo-UBUNTU:1  # 192.168.1.105  
            luo-VirtualBox:1  #192.168.1.106  

            然后我們需要告訴hydra hosts文件的位置,hydra通過(guò)環(huán)境變量進(jìn)行配置,因此我們需要修改.bashrc文件:

            [plain] view plaincopy
            $ vim ~/.bashrc  


            在其中加入如下行:

            [plain] view plaincopy
            export HYDRA_HOST_FILE=/etc/hydra/hosts  

            至此設(shè)置完畢,這里參考了其他文章(點(diǎn)擊打開(kāi)鏈接)。
            5.配置SSH

            這里主要是要各個(gè)機(jī)器之間能無(wú)密碼訪問(wèn),主要用到的就是SSH,因此需要一些設(shè)置。

            首先,我們需要導(dǎo)出各個(gè)節(jié)點(diǎn)的公鑰和私鑰:

            [plain] view plaincopy
            $ ssh-keygen -t rsa  

            在運(yùn)行過(guò)程中,會(huì)提示你輸入這個(gè)輸入那個(gè),不用管那么多,直接回車(chē)就完了。等運(yùn)行結(jié)束后,進(jìn)入.ssh目錄,你會(huì)看到公鑰和私鑰文件:
            [plain] view plaincopy
            $ cd ~/.ssh  
            $ ls  
            id_rsa   id_rsa.pub  
            (可能還有其他亂七八糟的東西)

            其中id_rsa就是私鑰,id_rsa.pub就是公鑰,現(xiàn)在我們需要把各個(gè)節(jié)點(diǎn)上的公鑰都集中發(fā)送到一個(gè)節(jié)點(diǎn)上,來(lái)制作授權(quán)文件(authorized_keys):

            $ scp id_rsa.pub User@MainNode:/path/to/yours/id_rsa.pub-X

            其中有色字體需要你根據(jù)實(shí)際情況進(jìn)行調(diào)整,這里我們講所有的公鑰發(fā)送到了MainNode,然后我們?cè)贛ainNode上用這些公鑰合成一個(gè)authorized_keys:
            [plain] view plaincopy
            $ cp ~/.ssh/id_rsa.pub authorized_keys  
            $ cat /path/to/yours/id_rsa.pub-X >> authorized_keys  

            其中第2條語(yǔ)句需要反復(fù)多次,講所有的公鑰都放入authorized_keys中,這樣就做好了authorized_keys文件。然后我們分別把他拷到各個(gè)機(jī)器的.ssh目錄中:
            [plain] view plaincopy
            $ cp authorized_keys ~/.ssh/  
            $ scp authorized_keys User@SomeNode:/home/User/.ssh/  

            如果你現(xiàn)在試一下ssh很可能發(fā)現(xiàn)他們?nèi)耘f不好用,別急,我的話還沒(méi)有說(shuō)完呢。這個(gè)東西對(duì)權(quán)限的要求很?chē)?yán)格,所以我們需要更改一下必要的文件的權(quán)限(所有節(jié)點(diǎn)都要更改):
            [plain] view plaincopy
            $ chmod 755 ~  
            $ chmod 755 ~/.ssh  
            $ chmod 600 ~/.ssh/authorized_keys  
            $ chmod 600 ~/.ssh/id_rsa  
            $ chmod 644 ~/.ssh/id_rsa.pub  

            至此,SSH配置就完成了。下面檢驗(yàn)一下:
            在一個(gè)主機(jī)上面SSH另一個(gè)主機(jī):

            [plain] view plaincopy
            ssh luo-VirtualBox  

            顯示下面截圖:


            可以看到是無(wú)密碼登錄,首次登錄的時(shí)候可能會(huì)需要密碼,后面就不需要了。在另一個(gè)主機(jī)上面也是可以SSH連接成功的。


            5.測(cè)試

            將MPICH源代碼中example目錄下面的cpi拷貝至各個(gè)節(jié)點(diǎn)的相同目錄,這里我放在當(dāng)前目錄下面的MpiWork目錄下面,然后在主節(jié)點(diǎn)上面啟動(dòng)程序:

            [plain] view plaincopy
            mpiexec -np 2 ./MpiWork/cpi  

            顯示如下圖:



            可以看到不同的進(jìn)程分別運(yùn)行在不同的機(jī)器上。


            至此MPICH2配置完成。

            其中在SSH中參考了其他的文章(點(diǎn)擊打開(kāi)鏈接),而且我也沒(méi)有這樣配置,因?yàn)樽约菏莾膳_(tái),網(wǎng)上這個(gè)配置有好多文章。還有一點(diǎn)是,不知到其他機(jī)器上面是不是需要配置MPICH2,因?yàn)槲以O(shè)置hydra的時(shí)候,并沒(méi)有在其他機(jī)器上面設(shè)置,只在主節(jié)點(diǎn)上面設(shè)置了,這個(gè)后面再研究。
            posted on 2012-02-17 15:41 老馬驛站 閱讀(1022) 評(píng)論(0)  編輯 收藏 引用 所屬分類: c++linux
            久久精品国产亚洲AV大全| 伊人久久精品无码av一区| 国产午夜久久影院| 久久综合九色综合精品| 久久香蕉一级毛片| 色欲综合久久躁天天躁| 久久99久久99精品免视看动漫| 久久久精品国产sm调教网站| 色综合久久综精品| 亚洲人成无码网站久久99热国产| 97精品依人久久久大香线蕉97| 99久久国产综合精品麻豆| 久久国产亚洲精品| 久久se精品一区二区| 亚洲精品午夜国产va久久| 91久久婷婷国产综合精品青草| 国产一区二区三精品久久久无广告| 亚洲国产成人久久精品99| 亚洲国产精品成人久久| 久久精品视频网| 人妻丰满AV无码久久不卡| 国产亚洲成人久久| 999久久久免费精品国产| 久久久久亚洲AV无码专区首JN| 久久亚洲精品视频| 国产精品久久久久蜜芽| 亚洲国产精品人久久| 狠狠88综合久久久久综合网 | 午夜精品久久久久久影视riav| 精品国产99久久久久久麻豆| 久久久精品国产Sm最大网站| 99久久无码一区人妻a黑| 久久精品无码午夜福利理论片 | 精品视频久久久久| 久久精品国产精品青草| 久久ww精品w免费人成| 日韩精品久久久久久免费| 久久精品综合网| 国产成人精品久久| 色欲综合久久躁天天躁蜜桃| 一级做a爰片久久毛片毛片|