Dol*_*ids 5 linux parallel-processing perl fork slurm
我有一个使用该Parallel::ForkManager
模块分叉的Perl脚本.
据我所知,如果我分叉32个子进程并要求SLURM调度程序在4个节点上运行作业,每个节点有8个处理器,则代码将在每个核心上执行每个子进程.
我实验室的某个人说,如果我在多个节点上运行一个工作,那么其他节点就不会被使用,而且我在浪费时间和金钱.这准确吗?
如果我使用的是一个脚本,我只能使用SLURM限制一个节点?
据我所知Parallel::ForkManager
,没有使用MPI,所以如果你使用mpirun
我不知道它是如何跨节点进行通信的.一个简单的测试是让每个子输出主机名.
启动非MPI软件时经常发生的一件事mpirun
是,您在所有节点上复制了所有工作,因此他们都在做同样的事情,而不是共享工作.如果你使用Parallel::MPI
它应该工作得很好.