近年來因為數值模式模擬的盛行,所以『平行運算』的架構也就越來越重要了!什麼是數值模擬呢?主要就是藉由一些物理理論去開發出來的一些『計算公式』,而這些計算公式藉由程式語言(例如C、Fortran等等)實際的將他編譯成為可執行的程式,最常見的例如中央氣象局不是每天都會預報天氣嗎?這個預報的動作就是利用數值計算去演算出來的。另外,還有空氣品質模式模擬,也是經過運算出來的,除此之外,例如天文、物理、水文等等很多方面的工作,都是利用這種數值模擬的運算的喔!不過,這些程式是很大型的!也就是說,他們在運算的時間是很長的,如果使用單顆 CPU 的話,不論這顆 CPU 的頻率與效能有多高,還是得要運算個好幾個鐘頭的∼如此一來,對於像氣象預報這個急需時效性的工作可能就會有所延誤啊!不過,如果我將這個運算的工作同時丟給多顆 CPU 呢?也就是讓多顆 CPU 同時進行這個程式的運算工作,如此一來,將可以大大的減低時間的損耗了∼這就是平行運算的簡單說明。在 Linux 平台上面,要達成簡單的平行運算,可以透過 MPI 的函式庫,例如 MPICH 就是一個很有名的 MPI 軟體喔!馬上來給他看看平行運算類型的 Cluster 建置吧! |
#!/bin/bash
# This program is for iptables' rules # VBird 2003/05/02 # # 0. PATH and modules PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH modprobe ip_tables modprobe iptable_nat modprobe ip_nat_ftp modprobe ip_nat_irc modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ip_conntrack_irc # # 1. clear the rules and make the policys iptables -F iptables -X iptables -Z iptables -F -t nat iptables -X -t nat iptables -Z -t nat iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT #
|
1.
啟動 portmap 並且設定開機啟動:
[root @server root]# /etc/rc.d/init.d/portmap start [root @server root]# chkconfig --level 35 portmap on 2. 設定 NFS 分享出去: [root @server root]# vi /etc/exports /home 192.168.10.0/24(rw,async,no_root_squash) /disk1 192.168.10.0/24(rw,async,no_root_squash) [root @server root]# exportfs -rv [root @server root]# /etc/rc.d/init.d/nfs start [root @server root]# chkconfig --level 35 nfs on 3. 設定預計的掛載點: [root @server root]# mkdir -p /cluster/node1 [root @server root]# mkdir -p /cluster/node2 [root @server root]# mkdir -p /cluster/node4 [root @server root]# mkdir -p /cluster/server |
1.
啟動 portmap 並且設定開機啟動:
[root @node1 root]# /etc/rc.d/init.d/portmap start [root @node1 root]# chkconfig --level 35 portmap on 2. 設定 NFS 分享出去: [root @node1 root]# vi /etc/exports /disk1 192.168.10.0/24(rw,async,no_root_squash) [root @node1 root]# exportfs -rv [root @node1 root]# /etc/rc.d/init.d/nfs start [root @node1 root]# chkconfig --level 35 nfs on 3. 設定預計的掛載點: [root @node1 root]# mkdir -p /cluster/node1 [root @node1 root]# mkdir -p /cluster/node2 [root @node1 root]# mkdir -p /cluster/node4 [root @node1 root]# mkdir -p /cluster/server |
[root
@server root]# mount -t nfs -o bg,intr server.cluster:/disk1
/cluster/server
[root @server root]# mount -t nfs -o bg,intr node1.cluster:/disk1 /cluster/node1 [root @server root]# mount -t nfs -o bg,intr node2.cluster:/disk1 /cluster/node2 [root @server root]# mount -t nfs -o bg,intr node4.cluster:/disk1 /cluster/node4 |
[root
@node1 root]# mount -t nfs
server.cluster:/home /home
[root @node1 root]# mount -t nfs -o bg,intr server.cluster:/disk1 /cluster/server [root @node1 root]# mount -t nfs -o bg,intr node1.cluster:/disk1 /cluster/node1 [root @node1 root]# mount -t nfs -o bg,intr node2.cluster:/disk1 /cluster/node2 [root @node1 root]# mount -t nfs -o bg,intr node4.cluster:/disk1 /cluster/node4 |
1.
啟動 time 與 time-udp 這兩個預先要啟動的 daemon
[root @server root]# chkconfig --level 35 time on [root @server root]# chkconfig --level 35 time-upd on [root @server root]# /etc/rc.d/init.d/xinetd restart 2. 建立 NIS 的領域名稱 (我這裡是設定為 cluster ): [root @server root]# nisdomainname cluster [root @server root]# echo "/bin/nisdomainname cluster" >> /etc/rc.d/rc.local [root @server root]# echo "NISDOMAIN=cluster" >> vi /etc/sysconfig/network 3. 建立 NIS 設定檔: [root @server root]# vi /etc/ypserv.conf (在這個檔案內增加三行即可) 127.0.0.0/255.255.255.0 : * : * : none 192.168.10.0/255.255.255.0: * : * : none * : * : * : deny [root @server root]# touch /etc/netgroup 4. 啟動 NIS: [root @server root]# /etc/rc.d/init.d/ypserv start [root @server root]# /etc/rc.d/init.d/yppasswdd start [root @server root]# chkconfig --level 35 ypserv on [root @server root]# chkconfig --level 35 yppasswdd on 5. 製作資料庫:(每次有更動使用者資訊時,就必須要進行這個步驟!) [root @server root]# /usr/lib/yp/ypinit -m [root @server root]# chkconfig --level 35 ypserv on [root @server root]# chkconfig --level 35 yppasswdd on |
1.
建立 NIS 的領域名稱 (我這裡是設定為 cluster ):
[root @node1 root]# nisdomainname cluster [root @node1 root]# echo "/bin/nisdomainname cluster" >> /etc/rc.d/rc.local [root @node1 root]# echo "NISDOMAIN=cluster" >> vi /etc/sysconfig/network 2. 建立 NIS 查尋的主機名稱: [root @node1 root]# vi /etc/yp.conf domain cluster ypserver server.cluster 3. 修改密碼驗證方式: [root @node1 root]# vi /etc/passwd (在這個檔案的最底下新增如下一行) +:::::: [root @node1 root]# vi /etc/nsswitch.conf passwd: files nis nisplus shadow: files nis nisplus group: files nis nisplus hosts: files nis dns 4. 啟動 NIS: [root @server root]# /etc/rc.d/init.d/ypbind start [root @server root]# chkconfig --level 35 ypbind on |
1.
啟動 RSH 囉!
[root @node1 root]# chkconfig --level 35 rsh on [root @node1 root]# /etc/rc.d/init.d/xinetd restart 2. 編輯可使用 R command 的主機設定檔: [root @node1 root]# vi /etc/hosts.equiv server.cluster + |
[root
@server root]# vi /home/test/.rhosts
server.cluster [root @server root]# vi /etc/skel/.rhosts server.cluster [root @server root]# chmod 644 /etc/skel/.rhosts |
1.
建立 pgi fortran 在 /cluster/server/program/pgi 底下:
[root @server root]# cd /usr/local/src [root @server src]# mkdir pgi-fortran; cd pgi-fortran [root @server pgi-fortran]# tar -zxvf /root/software/linux86-HPF.tar.gz [root @server pgi-fortran]# ./install 接下來會有一些問題,請依序回答您的問題喔! 至於授權嘛!請建立吧! 最重要的地方,是在第三個問題,他會問你要安裝的目錄,請選擇 /cluster/server/program/pgi 2. 修改個人參數:由於 RSH 不以 root 工作,所以我以使用者 test 來測試: [root @serer root]# vi /home/test/.bashrc # 加入這幾行關於 PGI 的咚咚: PGI=/cluster/server/program/pgi export PGI PATH=$PGI/linux86/bin:$PATH 3. 設定查尋路徑: [root @server root]# vi /etc/man.config # 加入這一行: MANPATH /cluster/server/program/pgi/man |
1.
建立 mpich 在 /cluster/server/program/mpich 底下:
[root @server root]# cd /usr/local/src [root @server src]# tar -zxvf /root/software/mpich.tar.gz [root @server src]# cd mpich-1.2.5 [root @server mpich-1.2.5]# ./configure --enable-debug \ > -fc=pgf77 -f90=pgf90 \ > --prefix=/cluster/server/program/mpich [root @server mpich-1.2.5]# make && make install 2. 建立可以利用的主機狀態: [root @server mpich-1.2.5]# cd /cluster/server/program/mpich/share [root @server share]# vi machines.LINUX node1.cluster:2 node2.cluster:2 node4.cluster:2 server.cluster:2 # 這個檔案當中,格式為 <主機名稱>:<主機的 CPU 個數> 3. 建立需要的變數:(又是以 test 為準喔!) [root @server root]# vi /home/test/.bashrc # 加入這一些資料: PATH=$PATH:/cluster/server/program/mpich/bin export PATH MPI_HOME=/cluster/server/program/mpich MPI_ARCH=$MPI_HOME/bin/tarch export MPI_ARCH MPI_HOME [root @server root]# vi /etc/man.config # 加入這一行: MANPATH /cluster/server/program/mpich/man |
[test
@server test]$ cp -r /cluster/server/program/mpich/examples/
.
[test @server test]$ cd examples [test @server examples]$ make pi3f90 [test @server examples]$ mpirun -np 8 pi3f90 # 上面那個 -np 後面接的就是使用 CPU 的個數啦!因為我有 8 個 node , # 所以當然就以最大的 CPU 個數來測試看看,如果要看到底 CPU 有沒有啟動的話, # 可以先登入各個 slave 的主機,然後執行『 top -d 1 』來觀察 CPU 的使用率, # 再執行上面這個程式,就能夠知道 CPU 有沒有運作了! ^_^ |
1. 先備份原先的設定檔:
[root @server root]# cd /etc/X11/gdm [root @server gdm]# mv gdm.conf gdm.conf.bak 2. 編輯設定檔,只要底下兩行即可! [root @server gdm]# vi gdm.conf [xdmcp] Enable=1 3. 啟動 gdm : [root @server gdm]# gdm [root @server gdm]# netstat -uln udp 0 0 0.0.0.0:177 0.0.0.0:* # 如果有出現上面這行就對了! [root @server gdm]# echo "/usr/bin/gdm" >> /etc/rc.d/rc.local # 上面這行在設定開機時啟動 gdm 囉! |
0. 請務必要在
X Window 當中,進入 X Window 的方式有:
[root @client root]# startx 或 [root @client root]# init 5 1. 在 X Window 的畫面當中,啟用一個 shell ,然後輸入: [root @client root]# xhost + 192.168.10.30 192.168.10.30 being added to access control list [root @client root]# init 3 (離開 X Window) 2. 在文字介面下輸入:
|
http://linux.vbird.org/download/#x-win54