本文参考,感谢原创: https://blog.csdn.net/weixin_45606067/article/details/109962484 https://blog.csdn.net/secyb/article/details/78697976 https://blog.csdn.net/smart9527_zc/article/details/85174102 https://blog.csdn.net/weixin_45842014/article/details/108779004 https://blog.csdn.net/zqwzlanbao/article/details/83987570 http://thisis.yorven.site/blog/index.php/2020/12/06/openpbs-install-instructions/ 版权声明:以上文章为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
此外还有openpbs的官方手册,地址: https://www.altair.com/pbs-works-documentation/
涉及到的安装包: MPICH: https://www.mpich.org/static/downloads/3.3/mpich-3.3.tar.gz Openpbs:https://github.com/openpbs/openpbs/releases/download/v19.1.3/pbspro_19.1.3.centos_7.zip
这里我使用的Linux版本是centos7,其他linux操作系统比如Ubuntu、Fredora等和centos类似,但是有一些命令和文件的位置不同,比如说安装命令。下载系统镜像iso文件可以到清华镜像网站https://mirrors.tuna.tsinghua.edu.cn/
我使用的虚拟机平台是VMware Workstation Pro ,也可以使用免费的VMware Player进行安装,具体安装步骤可参考
https://blog.csdn.net/weixin_45606067/article/details/109962484
建议将虚拟机和虚拟硬盘放在同一个自己能找到的文件夹下,例如D:/centos7/,以便后续复制虚拟机。
在配置虚拟机网络时可直接查看虚拟机设置里的DHCP选项,直接勾选即可。如果DHCP是打开的, 那虚拟机应该是已经连上网的,可以在终端ping一下百度能不能连接上,或者直接打开Firefox试试。


下面表格是我在创建集群时的配置
主机IP备注master192.68.45.131主节点host1192.68.45.132子节点host2192.68.45.133子节点
搭建pbs集群时我选择了一个主节点和两个子节点,可以在vm上创建多个虚拟机来模拟集群,这里我用的是复制虚拟机。
复制虚拟机的具体步骤可以参考
复制虚拟机相关文章(https://blog.csdn.net/zqwzlanbao/article/details/83987570)
(也可以在VM里直接克隆虚拟机,克隆后需要更改的配置和上面这个文章相同。)
需要注意的是,本文上面提到将虚拟机和虚拟硬盘放在同一文件夹下,可以直接复制该文件夹再按照上面的文章进行虚拟机复制。
按照上述文章,发现不能同时打开被复制和复制后的虚拟机,原因是两台虚拟机占用了同一个虚拟硬盘。可以通过更改虚拟机的虚拟硬盘来解决这个问题。
关闭虚拟机master和host1
打开host1的虚拟机设置

移除现有的虚拟硬盘

添加新硬盘

选择SCSI(S)

选择使用现有虚拟磁盘

选择后缀名没有s00x的这个vmdk文件,完成。

两个子节点的配置操作是一样的,下面的操作就以master和host1为例。由于后面有些操作不能使用root用户,建议全程用普通用户登陆,在图形界面下打开两个终端,一个su root登陆比较方便。
分别配置两台机器的hosts文件。之前虚拟机网络设置采用的是DHCP,用ifconfig命令能够查到的机器IP地址但不是固定的。通过修改ifcfg-ens33文件可以“固定”IP。(之前我一直弄不好虚拟机固定IP,导致虚拟机连不上网,索性就忽略了,直接改系统的配置文件,没想到这样既能保持联网,还能保证后面的安装进行)
在重启网络后查看IP地址有时可能会发现inet与文件中添加的IPADDR不同,但是没有影响我后面的安装,可以先不管。
分别在master和host1中编辑hosts文件。
此时两台机器应该能ping通(master ping host1)
(1)在每个节点安装ssh服务
(2)各节点(主节点和子节点)生成私钥和公钥
(3)把各子节点的id_rsa.pub传到主节点
(4)在主节点操作认证
(5)将主节点的认证文件传回子节点
注意,ssh免密登陆是用户对用户式的,所以在操作中要保证主节点终端和子节点的终端是对应的。
mount命令是暂时的,机器重启后失效,永久挂载可以用下面的方法:
这样设置的是在开机自动挂载,每次使用的时候需要先将服务端开启,否则客户端挂载不上共享目录,有1分35秒的尝试时间,可以在开机页面摁下Ctrl+Alt+2转到命令行下查看,能开机但是共享目录不可用。
这里我将安装包放在了~/download/下
在每个节点下都安装mpich,可以将tar压缩包放在之前设置好的共享目录下。
新建配置文件 在/home/mpi_share下新建一个文件:servers,它注明每台机器有几个核。
测试案例程序 在之前解压的mpich-3.3目录下的examples目录下有可执行文件cpi,我们运行它即可。
将可执行文件复制到共享目录/home/mpi_share/中,切换到共享目录下
成功结果如下: [cjx@master mpi_share]$ mpiexec -n 8 -f servers ./cpi Process 4 of 8 is on host1 Process 5 of 8 is on host1 Process 6 of 8 is on host1 Process 7 of 8 is on host1 Process 0 of 8 is on master Process 3 of 8 is on master Process 1 of 8 is on master Process 2 of 8 is on master pi is approximately 3.1415926544231247, Error is 0.0000000008333316 wall clock time = 0.001251
这里我将压缩文件pbspro_19.1.3.centos_7.zip放在~/download/下
解压后的目录下有四个rpm安装包,根据名字即可推断其用途,这里我们只需要两个包 pbspro-server-19.1.3-0.x86_64.rpm是服务器节点(主节点)所需要安装的包 pbspro-execution-19.1.3-0.x86_64.rpm是计算节点(子节点)所需要安装的包
安装前需要配置一些环境,下面是官方手册给出的环境变量图,不过我设置半天也没整明白,下面给出我试成功的办法。

在主节点上不需要设置这些环境变量
在子节点上需要在安装前先设置环境变量
- 主节点
进入解压后的目录
安装后生成一个配置文件/etc/pbs.conf 用vim打开后在里面找到PBS_START_MOM,它表示当前机器是否承担计算任务,1表示承担,0表示不承担。 下面开启pbs并查看状态
在server上使用root 用户还需要输入以下命令
至此,server的配置安装完成。
- 子节点
进入解压后的目录
- 添加节点 此时主节点server还不能调用子节点进行运算,需要在主节点中添加计算节点
- 测试 在一般用户下,在master上提交任务
实际使用中,经常以脚本方式提交命令, 在脚本中用mpiexec或者mpirun运行mpich.