Parallel processing 使用mpi4py如何让多个节点在HPC集群中运行python脚本?

Parallel processing 使用mpi4py如何让多个节点在HPC集群中运行python脚本?,parallel-processing,mpi,hpc,mpi4py,Parallel Processing,Mpi,Hpc,Mpi4py,实际上,我正在尝试在HPC集群中运行python脚本。以前,运行花费了大量时间,然后为了最小化运行时间,我首先使用了多处理工具进行了并行编程。一切都很好,但问题是我只能使用一个节点,并且可以从HPC请求最高的16个内核来运行我的作业。我仔细阅读了多处理的函数,发现运行一个作业不可能需要一个以上的节点,为了解决这个问题,我使用了mpi4py再次进行了并行编程。现在一切都好了,我也可以在这种情况下使用多核。但是我又发现了同样的问题,那就是,如何让HPC集群中的多个节点运行作业,我知道我可以通过使用M

实际上,我正在尝试在HPC集群中运行python脚本。以前,运行花费了大量时间,然后为了最小化运行时间,我首先使用了
多处理工具进行了并行编程。一切都很好,但问题是我只能使用一个节点,并且可以从HPC请求最高的16个内核来运行我的作业。我仔细阅读了多处理的函数,发现运行一个作业不可能需要一个以上的节点,为了解决这个问题,我使用了mpi4py再次进行了并行编程。现在一切都好了,我也可以在这种情况下使用多核。但是我又发现了同样的问题,那就是,如何让HPC集群中的多个节点运行作业,我知道我可以通过使用MPI来实现这一点。这里我给出了一个可以运行两个内核和一个节点的代码

import numpy as np
from mpi4py import MPI
import sys

comm = MPI.COMM_WORLD 
size = 2 * comm.Get_size()  #size of processors
rank = comm.Get_rank()  
N_conditions = 4             # no. of conditions

range_cond = range(rank / size * N_conditions, ((rank + 1) * 2/ size) * N_conditions)   # formula to generate range for all conditions

solution = [None] * len(range_cond) 

for i_conditions in range_cond:
    solution[i_conditions] = solve(i_conditions)  #solve is another function that could return all components of 'solution' for 'N_conditions'

total_solution = np.asarray(solution)

除非您正在使用资源管理器(如SLURM)运行,否则您需要提供一个包含多个主机的machinefile以
mpirun
,非常感谢您的建议。我已经完成了那项工作,问题出在我的PBS脚本中。我也面临着同样的问题。如果您可以共享您的PBS脚本,这将非常有用。