5

我有一个使用该Parallel::ForkManager模块分叉的 Perl 脚本。

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

我实验室里有人说,如果我在多个节点上运行一个作业,而其他节点都没有使用,那我就是在浪费时间和金钱。这是准确的吗?

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

4

1 回答 1

8

据我所知Parallel::ForkManager,没有使用 MPI,所以如果你正在使用,mpirun我看不出它如何跨节点通信。一个简单的测试是让每个子输出主机名。

与启动的非 MPI 软件一起经常发生的一件事mpirun是,您在所有节点上重复所有工作,因此它们都在做完全相同的事情,而不是共享工作。如果您使用Parallel::MPI它应该可以正常工作。

于 2015-07-08T17:20:54.117 回答