平行計算π值

不吃蘑菇的馬里奧發表於2019-01-21

平行計算定義

平行計算或稱平計算是相對於序列計算來說的。它是一種一次可執行多個指令的演算法,目的是提高計算速度,及通過擴大問題求解規模,解決大型而複雜的計算問題。所謂平行計算可分為時間上的並行和空間上的並行。時間上的並行就是指流水線技術,而空間上的並行則是指用多個處理器併發的執行計算。

平行計算特徵

1、將工作分離成離散部分,有助於同時解決;

2、隨時並及時地執行多個程式指令;

3、多計算資源下的解決問題的耗時要少於單個計算資源下的耗時。

網路設定

平行計算機是靠網路將各個處理機或者處理器連線起來的,一般有以下幾種方式,處理單元間有著固定連線的一類網路,在程式執行期間,這種點到點的連結保持不變。

命令

配置IP地址

1.點選選單欄右側的wifi圖示,選擇Edit Connections按鈕。

2.點選Edit按鈕編輯現有的有線連線。切換到IPV4 Settings選項卡,Method選擇手動設定IP模式(Manual),點選add按鈕新增IP。IP地址自行設定(如:192.168.0.1)保證4個節點在同一網段(閘道器相同)。子掩碼255.255.255.0,閘道器根據IP設定(如:192.168.0.1),儲存即設定成功。(可能需要手動點選wifi選擇Ethernet Connection1)

安裝ssh服務

sudo dpkg -i libck*
sudo dpkg -i openssh-client*
sudo dpkg -i openssh-sftp*
sudo dpkg -i openssh-server*
複製程式碼

啟動ssh服務

sudo service ssh start
複製程式碼

安裝MPICH2

cd//切換到家目錄
cp softWare/mpich2-1.0.6.tar.gz ./   //回車複製軟體包到家目錄
tar zxf mpich2-1.0.6.tar.gz  //回車解壓目錄
mv mpich2-1.0.6 mpich2 //回車對資料夾進行重新命名
cd mpich2 //回車切換到軟體根目錄
./configure //執行配置檔案,執行後會輸出很多的資訊,請注意過程中是否有Error資訊
make //編譯軟體,執行後會輸出很多的資訊,請注意過程中是否有Error資訊
sudo make install //執行後會輸出很多資訊,請注意過程中是否有Error資訊
//到此MPICH2 安裝完成
複製程式碼

檢測MPICH2是否安裝成功

which mpd
//輸出:/usr/local/bin/mpd
which mpiexec
//輸出:/usr/local/bin/mpiexec
which mpdboot
//輸出:/usr/local/bin/mpdboot
複製程式碼

配置系統檔案

1.切換到叢集機的第一個節點,開啟終端。輸入命令cd回車切換到家目錄。

2.輸入nano .mpd.conf//建立MPICH2的配置檔案。並在視窗中輸入MPD_SECRETWORD=123456,然後

ctrl+shift+o儲存更改,回車,最後ctrl+x退出nano編輯器(注意.mpd.conf是隱藏檔案,需要ls -al才能看

見,檔案結尾不要換行)

3.輸入chmod 600 .mpd.conf//修改檔案許可權

4.nano mpd.hosts//建立叢集節點的列表檔案,並在窗中輸入參與節點的主機名,檔案結尾不要換行。然

後儲存關閉視窗。

5.輸入命令 sudonano /etc/hosts 修改系統host檔案 。將第二行的127.0.0.1修改為本機的IP地址。忘記IP

地址可以使用 ifconfig 命令檢視。最後再把其他運算節點的IP 和 主機名加入到host 檔案中。儲存並退出

nano 編輯器。

6.輸入命令 ping 主機名 檢查是否能夠與其他主機聯通,如果不能聯通 使用 ping IP地址 的方式檢查。如果

不能ping 通主機名,檢查是否正確修改 /etc/hosts 檔案 ,如果不能ping 通 IP 檢查節點是否正確連線有線網

絡,或者IP地址是否正確。

7.輸入命令 ssh-keygen 生成SSH金鑰,過程中一路回車,不需要進行輸入操作。

8.輸入命令 cd .ssh 切換到ssh目錄。通過ls 命令檢視目錄下面的檔案,再輸入命令 cp id_rsa.pub

authorized_keys 複製公鑰為認證金鑰 ,通過 ls 命令顯示目錄下的檔案。

9.輸入命令 cd切換到家目錄。 再輸入命令 scp -r .sshgjy@011225-2:~/ 將ssh目錄複製到其他節點。

(scp 為遠端複製命令,該命令需要執行多次將ssh目錄複製到每一個節點 使用者名稱@**主機名),第一次復

制需要輸入yes,然後輸入密碼。

10.輸入命令 scp /etc/hosts .mpd.conf mpd.hosts gjy@011225-2:~/ 將3個檔案複製到其他節點。(該

命令需要執行多次,此時已經不需要輸入密碼,如果還需要密碼,則ssh免密碼登陸沒有生效,請檢查步驟

6、7、8操作是否正確)。

11.輸入命令 ssh 使用者名稱@主機名(如 ssh gjy@011225-2) 登陸到其他節點。

12.輸入命令 sudomv hosts /etc/替換本機etc目錄下的hosts 檔案。

13.輸入命令 exit 退出遠端登陸。重複 9 ~ 12 步,直到每個節點都有這3個檔案。

做π的平行計算

mpdboot -n 4 -f mpd.hosts //啟動並行運算節點。(4為所有運算節點數 ,不能超過mpd.host檔案中定義的主機數)
mpdtrace -l //檢視所有啟動的節點
mpiexec -n 4 ./mpich2/examples/cpi //平行計算PI值(4為運算的程式數,可以任意定義)
複製程式碼

執行其他程式

1.編譯檔案 queen.c

mpicc -o queen queen.c//編譯完成將生成一個叫.queen的檔案
複製程式碼

2.拷貝可執行檔案到其他節點

scp queen gjy@011224-2:~/
scp queen gjy@011224-2:~/
複製程式碼

3.平行計算

mpiexec -n 4 ./queen
複製程式碼

相關文章