2013年3月24日 星期日

Ubuntu12.10 Server_架設二台VM叢集跑MPI

題目:VM Cluster setup and performance results

1. Please setup a VM cluster (at least two VMs) on your computer
  
    1.1 Please clone your VM for the other, and setup networking

2. Please install HPL on one VM and get HPL result

3. Please install HPL on both VMs and get HPL result
    example
    ct@c1:~$ /usr/bin/mpirun -hostfile hosts -np 4 hello3_mpi.exe
    Hello World! from processor 0 of 4 on c1
    Hello World! from processor 1 of 4 on c1
    Hello World! from processor 2 of 4 on c2
    Hello World! from processor 3 of 4 on c2

4. Please run bwtest_mpi on both VMs
    example
    ct@c1:~$ /usr/bin/mpirun -H c1,c2 -np 2 bwtest_mpi.exe 524288
    c1 c2 156.367Mbps 52.3896ms
⓪實體機若2核,兩台VM開的也都2核。

實驗記錄

工具:Ubuntu 12.10 server
環境:架設二台VM(Ubuntu Server)、一台Client(Windows 8)
IP Address:
192.168.186.2(CC1)
192.168.186.3(CC2)

一、基本設置:

設定IP:

# sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address [IP]
netmask 255.255.255.0
gateway [GW]
dns-nameservers [168.95.1.1]

二、重啟網路:


cd /etc/init.d/
sudo restart networking





三、更改 hostname & hosts

3.1 路徑:
cd /etc/
sudo hostname


/etc/hosts
127.0.0.1 localhost cc1 or cc2
192.168.186.2 or 192.168.186.2 cc1or cc2


3.2 Windows 8修改hosts
 路徑:C:\Windows\System32\Drivers\etc
(把hosts資料放到桌面修改完後再貼回去!)

注意:
若使用VMWare Clone者,設定網路環境時,

要修改/etc/hosts底下的電腦名稱(如下圖),127.0.0.1 [電腦名稱]

四、 安裝&設定SSH

參考網址:鳥哥私房菜免密碼SSH免密碼SSH2免密碼SSH3

套件升級(包含作業系統更新),指令:sudo apt-get upgrade

之前使用CentOS的時候,SSH是內建在裡面的,現在Ubuntu要自行安裝。

安裝SSH:sudo apt-get install ssh

使用putty測試連線~~成功!


五、設定兩台PC免密碼使用SSH

5.1 在CC1 & CC2 上下指令:ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key(/home/landy/.ssh/id_rsa):[ENTER]

Enter Passphrase(Empty For No PassPhrase):[ENTER]

Enter same passphrase again:[ENTER]


5.2.1 RSA存放路徑/home/landy/.ssh/id_rsa

5.2.2 檔案異地直接複製: scp

⓪如果知道伺服器上的檔案及檔名,  則是透過 scp 這個指令較為簡單。

⓪複製key檔案,輸入命令: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    authorized_keys 專門用來存放公開金鑰的檔案


⓪我目前要把CC1的資料復製到CC2上

指令:scp ~/.ssh/*.pub ID@主機位置:~/.ssh/
ID:  landy(CC2's ID)
主機位置:CC2's 192.168.186.3







案例指令:scp ~/.ssh/*.pub landy@192.168.186.3:~/.ssh

 
補充1:移除.ssh目錄指令:m -rf ~/.ssh
補充2:CC1做好內部測試可以通後,將整個.ssh內的資料都copy到CC2下。
測試指令:ssh localhostssh cc1ssh cc2

六、建立一個資料夾mpi_test,然後在linux內讀取usb隨身碟,將usb內的script都copy到linux下。
⓪將usb接到nb上,在Vmware右下角USB連線。
(1)cd /dev  <放各種硬體裝罝的地方>
(2)ls sd* <顯示硬碟>
     sdb1指隨身碟
(3)sudo mount /dev/sdb1 /mnt <掛載隨身碟到mnt目錄>
(4)進入mpi_test資料夾:
     cp /mnt/shell\ scrip.zip  mpi_test(OR[.]指此目錄),\指還原符號(linux無法認空白,要給\)

(6)解壓縮:unzip shell\ scrip.zip(打s後給tab鍵即會帶出)
(7)sudo umount /mnt

⓪補充:移檔案指令mv

指令:mv ~/mpi_test/all ./   < [.]在此資料夾





指令:copy file hello3_mpi.c to "shell scrip"資料夾


七、安裝MPI
指令:
$ sudo apt-get update
$ sudo apt-get install make
$ sudo apt-get install patch
$ sudo apt-get install gcc g++ gfortran
$ which gcc
$ which g++
$ which gfortran
$ sudo apt0get install openmpi-bin openmpi-doc libopenmpi-dev
$ which mpicc
$ sudo apt-get upgrade

八、下指令 vi cpcompall.sh內容裡加入路徑mpi_test

PS:要先看cpcompall.sh在那一個路徑下,此例為在$HOME/mpi_test。


九、執行MPI<OK>

指令:./copmpall.sh all hello3_mpi
⓪ ./cpcompall.sh(執行檔)all (檔案),hello3.mpi(程式)。
⓪all及hello3.mpi檔案,使用vi編輯。

十、$mpirun -hostfile hosts -np 2(4,8) hello3_mpi.exe




指令/usr/bin/mpirun -hostsfile hosts -np 2(or4,8) hello3_mpi.exe

            -np(number process行程),4(指同時跑四個工作)

            /usr/binmpirun -H c1,c2 -np 2 bwtest_mpi.exe

十一、跑HPL

11.1 掛載USB,將sh_hpl_hpcc_NOsource_03112013.tar.gz復製到mpi_test資料夾內。

11.2 Get file "sh_hpl_hpcc_NOsource_03112013.tar.gz" and untar it from Run CC1 and CC2
       
        解壓縮:$tar zxvf  sh_hpl_hpcc_NOsource_03112013.tar.gz
                        $cd source_hpl_hpcc
                        $time sh get_all_nointel_03112013.sh

CC1(流程圖): 
CC2(流程圖): 


 十二、Install GotoBLAS2, Openblas, HPCC and HPL with gcc by your account

12.1 指令:more hpl_hpcc_all_03112013.sh




CC1
CC2



12.2 指令:time sh open026_goto2113_lap342_hpl21_hpcc142.sh gcc 64 2

 CC1(流程圖)



CC2(流程圖) 



12.3  Install openblas.so.0 library path by root account
         12.3.1  cd ~/hpl_hpcc_gcc_open_goto/xianyi-OpenBLAS-87b4d0c
        ps: xianyi-OpenBLAS-87b4d0c要解壓縮,才會出現此資料夾(CC1&CC2皆要執行)。


        12.3.2 下指令:sudo make PREFIX=/usr install 出錯


      ⓪除錯Log (Makefile.install : 13 : *** OpenBLAS: Please run "make" firstly. Stop.)
     
         下指令:make PREFIX=/usr install,流程如下圖







          12.3.2  測試還是失敗,於是下指令刪除rm -rf hpl_hpcc_gcc_open_goto,重弄

                       rm:刪除檔案或目錄 (類似dos之del、deltree)
                                rm -參數 檔案或目錄
                                1. r:刪除其下的檔案及目錄 (類似dos之deltree)
                                2. i:刪除時提出警告
                                3. f:刪除時不提出警告
                                4. d:刪除目錄,即使該目錄並非空目錄
           12.3.3 將source_hpl_hpcc移到根目錄下,指令:mv -f ~/mpi_test/source_hpl_hpcc ~/

                        (再重12.2開始做,即ok)
            12.3.4 下以下兩個指令:
           (1) sudo ldconfig
           (2) ldconfig -p | grep openblas









        
           12.3.5 指令:mpirun -hostfile hosts -np 2 xhpl & <NB風扇轉速開始大聲>
         執行完後
              more HPL.out