希望这不是一个重复的问题,但我在平衡本地群集上的工作负载时遇到了问题。这是我目前的MPI主机文件:
#The Hostfile for Open MPI
#Master Node, 'slots=2' is used because we are running an 2-core machine
localhost slots=2
#Slave nodes, 8-core machines as well
slave1-ip slots=2
slave2-ip slots=2
slave3-ip slots=2
当我运行mpirun -np 4 --hostfile my_hostfile program
时,它会优先在本地主机上进行所有计算。
例如,在我的nqueens代码中,最后的计算分布是:
Node 1 computed load of 1963
Node 2 computed load of 0
Node 3 computed load of 0
Node 4 computed load of 1
但是,当我修改我的主机文件以使行localhost slots=2
到localhost slots=1
时,所有计算都在从属节点上运行,我得到了更均匀的分布:
Node 1 computed load of 497
Node 2 computed load of 486
Node 3 computed load of 493
Node 4 computed load of 488
有没有办法在主线程上进行负载平衡,以便在我localhost slots=2
时它可以在主节点和从节点上传播工作?是否有某种配置文件将指定此?我已经尝试了--loadbalance
标志,但没有做任何事情。
P.S。我在设置群集时遵循了本教程: http://techtinkering.com/2009/12/02/setting-up-a-beowulf-cluster-using-open-mpi-on-linux/