PBS:在不同节点上使用不同的计算资源

计算科学 并行计算 高性能计算 PBS
2021-12-23 19:29:55

我正在使用 HPC 集群来启动并行模拟。目前,4 个节点上有 48 个空闲核心,但并非每个节点的空闲核心数量都不同。分布是这样的:

node1:8核免费

node2:8核免费

node3:8核免费

node4:24核免费

我想利用所有这些资源来启动模拟。我使用 PBS 作为作业调度程序,通常我使用分配资源 qsub -l nodes=x:ppn=xxxx

在这种情况下如何分配资源?

1个回答

当您编写/启动 PBS 脚本时,您不应该知道哪些资源可用,您应该描述您需要哪些资源尽管高效利用 HPC 资源很重要,但您不应承担作业调度程序的工作。

ppn但是,我猜您对为不同节点请求不同的能力感兴趣。这可以使用以下类型的请求(带有+)来完成:

#PBS -l nodes=1:ppn=3+1:ppn=8+24
#PBS -l naccesspolicy=SINGLEJOB -n

这应该请求 3 个具有 8 ppn 的节点和 1 个具有 24 ppn 的节点。问题是您的调度程序是否配置为处理此类请求是打开的。更多关于这里或官方 PBS 手册的信息。

现在,由于资源可用性随时间而变化和动态,您的 PBS 脚本必须使用某种 shell 脚本生成,该脚本将检查可用资源并生成相应的 PBS 文件。

总结一下:我个人不建议走这条路,如果这样的动态资源请求甚至符合“好公民”政策,我肯定会与 HPC 集群管理员核实。即使是这样,我仍然认为您将大量调度程序工作不必要地交给了您。