伪IT男
分类: LINUX
2011-08-21 22:43:56
BEAMnrc 并行计算环境搭建
以下章节使用的BEAMnrc版本是V4 2.3.2,操作系统为RedHat 6.1
0. 在单机REL6 系统上运行和安装BEAMnrc
(0)操作系统REL安装成software develop的版本,基本上都会把gcc,gfortran之类的装上。
(1)EGSnrc和BEAMnrc按照网站说明操作就可以,
需要注意,不能在root用户下装,否则会导致系统无法启动
(2)egsnrc 需要提前安装QT3,注意QT4不行,beam的程序不支持
如果系统默认安装了QT4,也要先卸载掉,重新安装QT3
(3)beam需要提前安装tcl/tk
a)可以使用Activetcl安装包,也可以使用源文件
b)安装后,如果报告找不到wish,可以whereis wish一下,看一下是否存在名字为wish8.5之类的可执行文件,拷贝一下改为wish就可以。
c)如果使用Tcl安装包的默认安装路径为,/opt/active...,需要将其加入PATH环境变量中,即在/etc/profile的最后增加
PATH="$PATH:/etc/ActiveTcl8.5/bin"
(4)为了使用dosxyz_show,需要安装xmgr,即xgrace,其中就包含了motif
(a)xgrace可使用rpm进行安装,但需要提前安装一些其它的rpm.
(b)如果报告缺少libtcl8.5so可以考虑下载tcl8.5.7-6.el6.i686.rpm
(c)进入HEN_HOUSE/omega/progs/dosxyz_show中make生成可执行文件。
xgrace报告找不到XmAll.h时可以安装openmotif-devel 686 rpm
(5)安装完成后,beamdp_gui应可以使用xgrace画图,
如果报告找不到libhdf5_hl.so.6时,要在/etc/bashrc ,修改其中的LD_LIBRARY_PATH变量,增加libhdf5_hl.so.6所在的lib路径
1.BEAM的单机多核并行
(1) 现在普通的计算机或者工作站都是双核或者多核的。因此可以在单机上实现并行
(2)为使beam或dosxyz并行,需要安装openpbs,即torque
按照openpbs安装指南,可以在单台多核的计算机上配置torque
(3)注意,要增加oshort,omedium和olong三个队列,对应于BEAMnrc的三个batch选项。(特别注意:olong队列可能需要在HEN_HOUSE/scripts/batch_options.pbs中设置一下,默认的情况下,可能没有设置)
(4)最后,要开启qmgr的队列调度,用如下命令:
Qmgr –c “set server scheduling=ture”
打开调度,否则,所有的提交的任务的状态都会是Q, 也就是提交的作业总是处于排队状态,需要手动qrun才能执行。
(5)pbs.conf执行时,会报告:
tail: cannot open '+2' for reading
需要在对应的语句前面增加
export _POSIX2_VERSION=199209
(6) 注意,olong 的queue,在计算时间超过resource_default.cput时会自动终止,而不是resource_max.cput
(7)每次运行的时候,要检查BEAM_**目录下是否有*.lock文件,否则会造成第一个任务终止。而正常情况下终止之后会产生一个合并后的egslst文件
2. BEAMnrc的 多机Cluster
(0)为增加并行cluster的节点如montecarlo,需要设置ssh,使得节点和服务器直接无密码ssh互连
需要注意,节点上的mom有时候启动之后,server需要过一段时间才能刷新pbsnodes,之前节点处于down的状态
(1)节点主机名称在安装时确定
之后可以通过 修改/etc/sysconfig/network中的HOSTNAME=来更换主机名称
但是在/etc/hosts中要保留127.0.0.1 localhsot localhost.localdomain
而另外增加如192.168.1.101 pbsmaster pbsmster.localdomain
否则,pbs_sched启动的时候会报错,LOG_ERROR addclient ,host localhost not found ,任务也无法发送到另外一个叫localhost的计算节点
(2)
同时要确保id_rsa.pub中的内容已经拷贝到~/.ssh/authorized_keys中
注意要将chmod 600 authorized_key,否则ssh还是会被拒绝
(3)注意要关闭服务器和节点双方的防火墙。
(4)在队列中增加可提交任务的节点,否则在计算节点montecarlo上无法提交test.pbs
qmgr -c "set server submit_hosts+=montecarlo"
(5)节点无法提交程序文件时,多看看错误日志,比如mom.log,或者error文件,还有etc/hosts里面是不是包含了完整的节点名称,如192.168.1.103 pbsnode1 pbsnode1.localdomain
(6)为了在节点上运行beam程序,需要将egsnrc_mp和HEN_HOUSE,mount到节点计算机的对应目录下,否则,在该节点上会报告找不到文件
(a)首先,pbsmaster上要启动nfs服务,service nfs start
redhat6.0没有portmap这个服务,叫portreserve
(b) 重要:
在使用fedora13 的nfs服务的时候,它的配置与以前有了一定的区别,这里把fedora13前的配置也列一下,安转nfs程序就不说了,在配置nfs的时候,只要在 /etc/exports文件里写入如:"/root/work/nfs 192.168.1.101(rw,sync,no_root_squash)“ 保存后重启nfs服务就可以通过本地挂载测试了,但在fedora13中这样还不行,fedora13默认使用NFS4, 这时候挂载将会出(尽量不要使用192.168.1.*等带通配符的,容易出错哦)
下面的错误提示:
# mount -t nfs 192.168.1.103:/root/work/nfs /mnt
mount.nfs: access denied by server while mounting 192.168.1.103:/root/work/nfs
需要修改/etc/sysconfig/nfs文件,将
# Turn off v2 and v3 protocol support
#RPCNFSDARGS="-N 2 -N 3"
# Turn off v4 protocol support
#RPCNFSDARGS="-N 4" //这句前面的#去掉就可以了。
mount.nfs: access denied by server while mounting 192.168.3.12:/home/lzgonline/rootfs
百度、谷歌了很久,大部分都说是权限设置有问题,其实文件夹权限都设为777了
(7)设置自动mount
考虑到关机之后mount就会没有,需要设置为自动mount,设置自动启动NFS服务
(a) 主机设置自动启动nfs服务
对于实际应用中的Linux系统,每次开机后都手工启动nfs服务是不现实的,应该设置系统在指定的运行级别(通常为3和5)自动启动portmap和nfs服务。
chkconfig --level 35 portmap on
chkconfig --level 35 nfs on
执行“ntsysv”命令启动服务配置程序,找到“nfs”和“portmap”服务,分别在其前面加上“*”,然后选择“确定”即可。
我们输入chkconfig --level 345 nfs on,即可使NFS服务在运行级别3、4、5上自动运行。
本篇文章来源于 Linux公社网站() 原文链接:http:///Linux/2009-12/23577p5.htm
(b) 节点机设置自动mount
能手动mount都应该能添加到/etc/fstab里,就可以开机自动挂了。
pbsmaster:/home/whl/egsnrc_mp /home/whl/egsnrc_mp nfs defaults 0 0
3.局域网架设
(1) 用交换机架局域网:
dhcp服务器软件用tftp32。
当然是用带dhcp功能的路由器也应该可以。
(2) 注意,
对于虚拟机,网络配置需要使用bridge,以获取属于虚拟机自己的IP
奇怪的是:
每次分给pbsmaster的作业数总是大于它自身的CPU数?
参考:
Openpbs安装:
SSH互连
http://blog.sina.com.cn/s/blog_632c1e8e0100hefh.html
Mount
%D0%A1%B7%C9/blog/item/5db8e7cc2e5037b08226acbd.html