【问题标题】:Python job on slurm cluster, nodes vs coresslurm 集群上的 Python 作业,节点与核心
【发布时间】:2020-09-01 20:54:03
【问题描述】:

我有一个非常基本的问题,但不知何故我一直没有找到答案。假设我可以访问运行 slurm 的集群,并且我需要在集群上运行 Python 作业。让我们假设我的代码没有被编写来支持多处理。我有什么理由需要多个核心吗?还是我应该坚持 1 个节点和 1 个核心?

相反,如果我想运行 5 次相同的脚本(例如使用不同的输入变量),需要 1 个节点和为每个作业分配 1 个核心,或者需要 5 个节点和每个 1 个核心之间有什么区别吗?

【问题讨论】:

    标签: python slurm


    【解决方案1】:

    如果您的 python 脚本不使用多线程,那么是的,您应该坚持在一个节点 (-N1) 上使用一个 CPU (-c1) 完成一项任务 (-n1)。您不需要指定它,因为它是默认值。如果您请求更多资源,它们只会被浪费,因为您没有使用它们。

    但是:一些 python 库可以进行多线程计算而不需要显式指定它们,所以如果你进行一些 numpy 计算,you may benefit from multiple cores

    相反,如果我想运行 5 次相同的脚本(例如使用不同的输入变量),需要 1 个节点和为每个作业分配 1 个核心,或者需要 5 个节点和每个 1 个核心之间有什么区别吗?

    是的,有:如果您向 Slurm 要求 5 个节点,每个节点有 1 个任务,那么它必须等到 5 个节点有空间来执行任务。例如,即使具有 20 个 CPU 的节点完全为空,您的作业也不会运行,因为您明确要求 5 个节点。所以我建议用-n1开始5个工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      相关资源
      最近更新 更多