SLURM上的多线程

海豚基因组金字塔:

我有一个使用该Parallel::ForkManager模块派生的Perl脚本

据我所知,如果我派生32个子进程并要求SLURM调度程序在4个节点上运行该作业,每个节点8个处理器,则代码将在每个内核上执行每个子进程。

实验室中的某人说,如果我在多个节点上运行作业,则其他节点未使用,这是在浪费时间和金钱。这个准确吗?

如果我使用一个分叉的脚本,那么我是否仅限于使用SLURM的一个节点?

标记:

据我所知,Parallel::ForkManager它没有使用MPI,因此,如果您使用的是MPI,mpirun我将看不到它如何在节点之间进行通信。一个简单的测试是让每个子输出主机名。

随同发布的非MPI软件一起发生的一件事mpirun是,您在所有节点上重复所有工作,从而使它们都在做完全相同的事情,而不是共享工作。如果您使用Parallel::MPI它应该很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章