近年来因为数值模式仿真的盛行,所以『平行运算』的架构也就越来 越重要了!什么是数值模拟呢?主要就是藉由一些物理理论去开发出来的一些『计算公式』,而这些计算公式藉由程序语言(例如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 [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
@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 |
[root
@server root]# mount -t nfs
server.cluster:/home /home
[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 |
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