並行計算定義
並行計算或稱平計算是相對於串行計算來說的。它是一種一次可執行多個指令的算法,目的是提高計算速度,及通過擴大問題求解規模,解決大型而複雜的計算問題。所謂並行計算可分爲時間上的並行和空間上的並行。時間上的並行就是指流水線技術,而空間上的並行則是指用多個處理器併發的執行計算。
並行計算特徵
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