Mpich hpc(高性能计算) and torque作业调度

系统环境:rhel6.0 x86-64 iptables selinux off
host: server2.example.com(服务节点)
      server3.example.com(计算节点)
      server4.example.com(计算节点)
注:在做高性并行计算时可不指定服务节点,因为两个节点的地位是相同的

yum intall gcc gcc-c++ nfs-utils -y

注:各节点的时间基本保持一致
#在各节点建立SSH信任连接,并创建如下用户,在users用户的主目录生成SSH密钥
useradd -u 544 users
ssh-keygen                    #一路回车即可
将/home/xili/以nfs方式共享出来
vim /etc/exports
/home/xili *(rw,anonuid=544,anongid=544)

showmount -e 192.168.0.2

####在其余各节点挂在nfs共享目录
mount 192.168.0.2:/home/xili  /home/xili
vim /etc/fstab
192.168.0.2:/home/xili  /home/xili  nfs  defaults  0 0

####将SSH公钥拷贝的其余节点
ssh-copy-id -i .ssh/id_rsa_pub server3.example.com

#达到的效果就是可以在任何节点实现无密码连接,但第一连接需要密码

---->在各节点上安装软件
yum install mpich2.x86_64 -y

在添加的用户主目录创建下面的文件
创建.mpd.conf隐藏文件
vim .mpd.conf
secreword=hello

chmod 600 .mpd.conf

vim mpd.hosts
server2.example.com
server3.example.com

####本地测试
mpd &      #启动mpich2

mpdtrace   #观看启动的机器

mpdallexit #退出

---->运行集群系统
mpdboot -n 2 -f mpd.hosts
注:参数-n 2指定了要启动的机器个数, -f mpd.hosts指定了通过mpd.hosts运行

mpdtrace
station11
station12
mpdallexit

---->运行测试MPICH圆周率的程序
在mpich2的安装包examples目录里面有圆周率计算的源代码icpi.c,先编译成可执行文件

mpicc icpi-64.c -o icpi -64

####单机测试
./icpi -64
Enter the number of intervals:(0 quits) 1000000000
pi is approximately 3.1415926535921401,Error is 0.0000000000023470
wall clock time = 46.571311

Enter the number of intervals:(0 quits) 10000
pi is approximately 3.1415926535921401,Error is 0.00000000008333410
wall clock time = 0.000542

Enter the number of intervals:(0 quits) 0    #0退出

####集群测试
mpdboot -n 2 -f mpd.hosts
mpiexec -n 2 /home/xili/icpi-64
Enter the number of intervals:(0 quits) 1000000000
pi is approximately 3.1415926535921401,Error is 0.00000000000001830
wall clock time = 15.530082

Enter the number of intervals:(0 quits) 10000
pi is approximately 3.1415926535921401,Error is 0.00000000008333392
wall clock time = 0.006318

Enter the number of intervals:(0 quits) 0
mpdallexit

---->torque作业调度系统
####在服务节点安装软件
tar -zxf torque-3.0.0.tar.gz
cd torque-3.0.0
./configure --with-scp --with-default-server=server2.example.com
make
make install    (torque配置文件/var/spool/tarque/)
make packages
     #会在/usr/local/lib/生成一些torque模块
ldconfig -n /usr/local/lib

cp ~/torque-3.0.0/contrib/init.d/pbs_server /etc/init.d/
cp ~/torque-3.0.0/contrib/init.d/pbs_sched /etc/init.d/
scp ~/torque-3.0.0/contrib/init.d/pbs_mom server3.example.com:/etc/init.d/
scp ~/torque-3.0.0/contrib/init.d/pbs_mom server4.example.com:/etc/init.d/

在解压目录拷贝两个安装文件到计算节点server3.example.com,server4.example.oom,
torque-package-clients-linux-x86_64.sh
torque-package-mom-linux-x86_64.sh

chmod +x torque-package-*
执行脚本安装:
./torque-package-clients-linux-x86_64.sh --install
./torque-package-mom-linux-x86_64.sh --install

####在服务节点设定管理账户
./torque.setup root

cat /var/spool/torque/server_name         #显示调度服务节点的主机的主机名
server3.example.com
server4.example.com
....(可根据实际需要添加多个)

qterm -t quick      #停止torque
service pbs_server start     #启动torque
service pbs_server start     #启动torque自带的调度进程

####计算节点操作
ldconfig -n /usr/local/lib          #使计算节点的torque安装模块生效
vim /var/spool/torque//mom_prie/config
$pbsserver server2.example.com
$logevent 255

service pbs_mom start        #

####torque的调度程序以非root用户
su - xili
mpdboot -n 2 -f mpd.hosts   -n节点启用的计算节点数目
mpdtrace

vim job1.pbs(串行作业)
#!/bin/sh
#PBS -N job_name
#PBS -o job.log
#PBS -e job.err
#PBD -q batch

cd /home/wxh
echo Running on hosts `hostname`
echo Time is `date`
echo $PBS_NODEFILE
echo This job has allocated 1 node
mpiexec -n 4 /home/xili/prog

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3b0222ae219a8153637747b5e8d070dd.html