在上一篇中我们非常简单地介绍了在 C 语言中嵌入 mpi4py 程序的方法。
前面我们所给出的各个例程一般都是在单台计算机上直接使用 mpiexec 或 mpirun 执行的,但是在实际应用中,对规模比较大的高性能计算任务,一般会提交到集群或超级计算机平台上进行计算。集群系统具有低成本、高性能的特性,提供了强大的批处理和并行计算能力,代表了高性能计算机发展的新方向。在集群或者超级计算机平台上,一般不能随意地直接以 mpiexec 或 mpirun 运行我们的并行计算程序,而必须通过其上提供的作业管理系统来提交计算任务。作为集群系统软件的重要组成部分,集群作业管理系统可以根据用户的需求,统一管理和调度集群的软硬件资源,保证用户作业公平合理地共享集群资源,提高系统利用率和吞吐率。下面我们将简要地介绍几个常用的集群作业管理系统:PBS,LSF 和 SLURM。下面我们首先简要介绍 PBS 作业管理系统。
PBS 简介
PBS (Protable Batch System) 作业管理系统会根据一个集群上的可用计算节点的计算资源管理和调度所有计算作业(无论是批处理作业还是交互式作业)。
PBS 常用命令
作业控制
- qsub:提交作业
- qdel:取消作业
- qsig:给作业发送信号
- qhold:挂起作业
- qrls:释放挂起的作业
- qrerun:重新运行作业
- qmove:将作业移动到另一个队列
- qalter: 更改作业资源属性
作业监测
- qstat:显示作业状态
- showq: 查看所有作业
节点状态
- pbsnodes:列出集群中所有节点的状态和属性
PBS 作业属性
可以用两种方式设置 PBS 作业属性: