Chinaunix首页 | 论坛 | 博客
  • 博客访问: 165021
  • 博文数量: 36
  • 博客积分: 648
  • 博客等级: 上士
  • 技术积分: 335
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-09 15:29
文章分类

全部博文(36)

文章存档

2013年(2)

2012年(26)

2011年(8)

我的朋友

分类: LINUX

2011-09-19 16:33:23

环境设置:两台 Redhat LINUX5-32 机器,分别为 green blue,已配置 NFS 共享目录为 /upcnfs,已配置 SSH 无密码互登陆(包括 root 用户和普通用户 guser)

(一)建立用户

建立用户 guser,ID1000

注:guser用户用作 PBS 的提交作业用户,用于一般的作业提交任务,这个用户的id在每个节点机器上的id必须是一样的,我们在建立用户时手动指定其idguser用户的id1000

具体步骤为,直接添加用户,指定ID即可

(二)NFS共享文件系统

为简单省事,共享目录和目标的挂载目录均为 /upcnfs,也就是说 NFS 主节点直接使用该目录,就不用执行 mount 命令挂载到别的地方了。

注:guser 用户根目录保存到该目录下,即 /upcnfs/home/guser

(三)SSH无密码登陆

配置普通用户 guser 时注意权限问题就是了。 

(四)PBS详细安装部署过程

1.1首先关闭所有节点上的防火墙!!否则server_logs日志中可能可能出现:

WARNING;ALERT: unable to contact  node node13-2

04/06/2006 16:24:51;0008;PBS_Server;Job;165.node13-2.cern.ch;unable to run job, MOM rejected/rc=2

04/06/2006 16:24:51;0080;PBS_Server;Req;req_reject;Reject reply code=15041(Execution server rejected request MSG=send failed, PRERUN), aux=0, type=RunJob, from ……

1.2配置所有节点上的guser用户的UIDGID相同

1.3配置NFS,并在所有节点上挂载该NFS

1.4SSH设置,由于采用scp传输,所以需要节点之间无密码的ssh互通,但是需要注意,在进行ssh设置时,运行命令“ssh <主机名>”<主机名>不能采用简写,要同$torque_home/server_priv/nodes文件中相一致,否则无法传回运行结果。参看二。否则可能在调试pbs_mom时出现:

Host key verification failed.

lost connection

对应就行,都是简写也行,然后要调通scp,结果和日志是通过guser用户创建和传递的,要调通不同机器guser用户之间的scp,第一次yes,以后就好了,把rootguser之间的sshyes

一、Torque安装

master(green) 为管理结点,others(blue) 为其他计算节点。

1、解压安装包

[root@master tmp]# tar zxvf torque-2.3.0.tar.gz

2、进入到解压后的文件夹master为主机名)

//采用scp,默认是rcp

./configure --prefix=/usr/local/pbs --with-default-server=master --with-scp --enable-syslog

make

make install

3

在此之前要加入环境变量

/etc/profile中,指定PATH的变量值,添加上/usr/local/pbs/bin/usr/local/pbs/sbin

#vi /etc/profile

path抛出之前加入

PATH=/usr/local/pbs/bin:$PATH

PATH=/usr/locals/pbs/bin:$PATH

完成后使配置生效

#source /etc/profile

测试是否生效

1[root@master torque-2.3.0]#./torque.setup guser

 

2[root@master torque-2.3.0]#make packages

把产生的 tpackages , torque-package-clients-linux-x86-64.sh,

torque-package-mom-linux-x86-64.sh 拷贝到所有节点。

 

3)在others上安装mom(可以省略)

[root@others torque-2.3.0]# ./torque-package-clients-linux-x86_64.sh --install

[root@others torque-2.3.0]# ./torque-package-mom-linux-x86_64.sh --install

 

Clients在提交作业的机子上安装,mom在计算节点上安装,server在主节点上安装

安装后并用pbs_server pobs_mom启动后qnodes里才显示free状态

 

4)在master上增加计算节点

编辑/var/spool/torque/server_priv/nodes (需要自己建立)

加入如下内容

master  np=4

node01 np=4 

........

node09 np=4  

5)启动pbs_server,pbs_sched,pbs_mom,并把其写到/etc/rc.local里使其能开机自启动。

pbs_servernetworkAddress already in use

解决方法:

查看占用端口进程  查杀

#ps -e |grep pbs_

#kill -9 <进程号>

然后[root@blade01 msi]# pbs_server

成功

6)创建队列(可以省去,现在已经有默认的队列了,无须执行该步骤)

[root@master ~]# qmgr

create queue students

set queue students queue_type = Execution

set queue students Priority = 40

set queue students resources_max.cput = 96:00:00

set queue students resources_min.cput = 00:00:01

set queue students resources_default.cput = 96:00:00

set queue students enabled = True

set queue students started = True

4、在node0x x=1-9,计算结点上)

[root@node0x torque-2.3.0]# ./torque-package-clients-linux-x86_64.sh --install

[root@node0x torque-2.3.0]# ./torque-package-mom-linux-x86_64.sh --install

然后启动pbs_mom ,pbs_mom写入/etc/rc.local

 

二、配置普通用户的ssh

1master

ssh-keygen -t rsa

cd .ssh

cp id_pub.dsaid_rsa.pub authorized_keys

2others(反过去认证)

#ssh-keygen -t rsa

会重复吧?重命名一下?

#cd .ssh

#scp id_pub.dsaid_rsa.pub master:///home/guser/others

3、返回master

#cat others >> authorized_keys

三、Torque PBS使用

1、简单命令测试

使用guser用户

$echo 'sleep 10; hostname' | qsub

$qstat

查看作业运行情况。

2、编写并行作业脚本

[test1@master t]vi pbsjob

#!/bin/tcsh

#PBS -o /home/test1/pbstest/t/output 标准输出文件

#PBS -e /home/test1/pbstest/t/error 错误输出文件

#PBS -l nodes=5:ppn=4 规定使用的节点数以及每个节点能跑多少核

#PBS q students 把任务提交到students队列中

cd $PBS_O_WORKDIR 到工作目录下(此为PBS提供的环境变量)

mpirun –machine $PBS_NODEFILE -np 20 ./vasp

4、启动mpd

mpdboot -n 10 -f mfa

 

mfa内容:

master:4

node01:4

.

node09:4

5、提交,查询,删除作业

提交作业:qsub pbsjob

作业提交后会有一个作业号

[test1@master pbstest]$ qsub pbsjob

48.master

查询作业:qstat

[test1@master pbstest]$ qstat

Job id                               Name                User            Time Use  S        Queue

------------------------- ---------------- --------------- --------  - -------------------------------

48.master                         pbstest               test1            00:00:00   R        students

删除作业:qdel 作业号

[test1@master pbstest]$ qdel 48

其他节点提交时出现这个错误

如上修改即可

解决:

在提交节点要运行该命令,修改服务器的属性

#qmgr –c “set server allow_node_submit=true”

这样其他节点才能提交任务

 

但是目前其他节点提交的任务不会出现STDIN.o*文件Scp的问题,调通guser之间的scpok了,guser之间的无密码登录和scp日志在/var/spool/torque/mom_logs里,qstat -f 可显示作业详细状态

 

还有个问题:提交作业后有时在/mountnfs/usr/home/guser中出现 STDIN.o*,有时不出现

解决:

要在/mountnfs/usr/home/guser目录下提交才可以,这就是利用nfs的原因了,程序和数据都要拷贝到这个目录才可以提交作业!!

 

阅读(5842) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~