如何解决Slurm集群上的Python作业,节点与核心
我有一个非常基本的问题,以某种方式我从未设法找到答案。假设我有权访问运行slurm的集群,并且需要在集群上运行Python作业。让我们假设我的代码尚未未编写以支持多处理。我有任何理由需要多个内核吗?还是应该坚持使用1个节点和1个内核?
相反,如果我想运行5次相同的脚本(例如,使用不同的输入变量),则要求1个节点和为每个作业分配1个内核,或者要求5个节点每个具有1个内核之间有区别吗? / p>
解决方法
如果您的python脚本不使用多个线程,则可以,您应该在一个节点(-n1
)上使用一个CPU(-c1
)来执行一项任务(-N1
)。您不必指定它,因为无论如何它都是默认值。如果您请求更多资源,它们将被浪费,因为您不使用它们。
但是:某些python库无需显式指定它们即可进行多线程计算,因此,如果进行一些numpy计算,则you may benefit from multiple cores。
相反,如果我想运行5次相同的脚本(例如,使用不同的输入变量),则要求1个节点和为每个作业分配1个内核,或者要求5个节点每个具有1个内核之间有区别吗? / p>
是的,有:如果您向Slurm请求5个节点(每个节点有1个任务),那么它将不得不等到5个节点有任务空间。例如,即使一个拥有20个CPU的节点完全空了,您的作业也不会运行,因为您明确要求5个节点。所以我建议从-n1
开始5个工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。