Parallel processing 每个任务有多个节点

Parallel processing 每个任务有多个节点,parallel-processing,slurm,Parallel Processing,Slurm,我想运行一个作业,它需要比一个节点中可用的CPU更多的CPU。最大为96个CPU,那么当我编写srun-c200 python my_script.py时,我得到:srun:error:无法分配资源:请求的节点配置不可用有没有办法告诉SLURM我想为同一任务使用不同的节点?或者我不能这样做,我应该分割任务?使用-c200您要求每个任务使用200个CPU。但是一个任务只能在一个节点中运行,并且最多有96个CPU,因此您应该在多个节点中使用多个任务才能使用96个CPU。这意味着您的代码必须能够使用多

我想运行一个作业,它需要比一个节点中可用的CPU更多的CPU。最大为96个CPU,那么当我编写
srun-c200 python my_script.py
时,我得到:
srun:error:无法分配资源:请求的节点配置不可用
有没有办法告诉SLURM我想为同一任务使用不同的节点?或者我不能这样做,我应该分割任务?

使用
-c200
您要求每个任务使用200个CPU。但是一个任务只能在一个节点中运行,并且最多有96个CPU,因此您应该在多个节点中使用多个任务才能使用96个CPU。这意味着您的代码必须能够使用多个节点并行运行(通常使用MPI作为其消息传递接口)。另一种选择是将工作负载分成多个独立的任务,并分别使用较少的CPU运行它们。这回答了我的问题。我无法为任务分配比节点中的CPU更多的CPU。实际上,我使用mpi4py将工作拆分为几个子任务,但我只知道如何使用分散和聚集在CPU中拆分工作。而不是如何在节点之间共享它们。我想我赞成你的第二个建议。无论如何,如果你想写下你的评论作为回答,我会接受的。谢谢。分散-聚集方法是进行MPI并行时常用的方法之一。只是不需要设置数组并将其分配给子任务,而需要将该数组发送给子任务(通过消息、共享资源、套接字…)。这种方法不需要,只需要你如何实现它。无论是哪种情况,你的问题都不是一个编程问题,所以它不应该出现在这里,也不应该得到答案。无论如何,很乐意帮忙!:-)使用
-c200
时,每个任务需要200个CPU。但是一个任务只能在一个节点中运行,并且最多有96个CPU,因此您应该在多个节点中使用多个任务才能使用96个CPU。这意味着您的代码必须能够使用多个节点并行运行(通常使用MPI作为其消息传递接口)。另一种选择是将工作负载分成多个独立的任务,并分别使用较少的CPU运行它们。这回答了我的问题。我无法为任务分配比节点中的CPU更多的CPU。实际上,我使用mpi4py将工作拆分为几个子任务,但我只知道如何使用分散和聚集在CPU中拆分工作。而不是如何在节点之间共享它们。我想我赞成你的第二个建议。无论如何,如果你想写下你的评论作为回答,我会接受的。谢谢。分散-聚集方法是进行MPI并行时常用的方法之一。只是不需要设置数组并将其分配给子任务,而需要将该数组发送给子任务(通过消息、共享资源、套接字…)。这种方法不需要,只需要你如何实现它。无论是哪种情况,你的问题都不是一个编程问题,所以它不应该出现在这里,也不应该得到答案。无论如何,很乐意帮忙!:-)