gpt4 book ai didi

pbs - 请求节点的所有处理器

转载 作者:行者123 更新时间:2023-12-05 04:17:30 26 4
gpt4 key购买 nike

我需要在 PBS 集群上运行 Java 应用程序,但我不太清楚它应该如何运行。

应用程序启动了几个线程,线程的数量取决于运行它的节点上的内核数量。然后它为每个核心启动 2 个线程。

对我来说最好的事情是请求对 PBS 集群中的一个节点的完全访问权限,以便让这个东西运行。即保留一个节点上的所有核心。我还没有看到如何做到这一点。我所看到的只是 ppn 参数,它请求每个节点的特定内核数,但节点是异构的,所以我不想指定单个 ppn 编号,这取决于我获得的节点类型。

如果这不可能,我需要了解指定 ppn 时作业的行为方式。我可以指示 Java 应用程序只创建 X 个线程,但我认为我无法控制这些线程在哪些内核上运行。每个核心创建 2 个线程是我们的经验法则,可能会发生所有线程都想一直运行的情况,在这种情况下,我将使用比我请求的多 100% 的 CPU 资源。我的理解是否正确,PBS 不会对我的进程施加任何限制,但实际上可能会监视它,如果它超过指定的资源使用量,甚至会终止我的进程?

长话短说;

总结一下:

  1. 我可以请求对一个节点的完全访问权限(保留我获得的节点上的所有核心用于工作)吗?
  2. 如果我只请求节点上的一部分核心,如果超过该限制,PBS 会终止我的工作吗?

最佳答案

Can I request full access to a node (reserve all the cores on the node I get for a job)?

结合 Moab,您可以使用您在评论中声明的参数:

#PBS -W x=NACCESSPOLICY:SINGLEJOB

这保证了 Moab 不会向同一节点发送更多作业。这不会使每个节点的所有处理器都显示在 $PBS_NODEFILE 中,但它允许您使用整个节点而无需踩到任何其他东西。

If I request only some fraction of the cores on a node, will PBS kill my job if I exceed that limit?

不,不会。默认情况下,TORQUE 不会强制您只使用您请求的内核。这里需要注意的是,如果您将 TORQUE 配置为使用 cpuset,则 cpuset 会将您的进程限制为仅分配给您的处理器。如果您使用的是 3.0.0 或更高版本的 TORQUE,您可以添加

#PBS -E

到你的作业脚本来解决这个问题。这告诉妈妈您对节点具有独占访问权,并指示妈妈将机器中的所有 cpus 放入您的 cpuset 中。

关于pbs - 请求节点的所有处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22789056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com