我有一个像这样工作的python程序:
我想在群集环境(slurm)中并行化第2步,使用多节点环境。
我试图找到最简单的方法,因为我不认为如果在批处理文件中分配给python程序,子进程将自动使用多个节点。
我尝试使用dask-jobqueue,但是这依赖于为每个worker创建一个批处理文件,这意味着我必须进行10次批处理文件调用并等待它们全部赶上代码以便全部利用它们。
我想知道是否有人有任何建议,因为这似乎应该是一件容易的事情。
编辑:我认为这比仅使用多处理更复杂。 This question得到了我想要实现的目标,我想知道这类问题的理想包装是什么
似乎解决此问题的最佳方法很大程度上取决于您正在使用的群集大小,环境等的容量。对我来说最好的情况是使用MPI4py,它将隔离我的子进程调用并在我的X节点数量中使用它们(步骤2),让我的头节点运行剩下的代码(步骤1和3)。这允许我的slurm预留保持不变,而不是必须在每个循环请求节点,或在程序运行期间请求节点(如dask-jobqueue)。