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

时间:2019-08-05 07:55:56

标签: parallel-processing mpi hpc mpi4py

我实际上正在尝试在HPC集群中运行python脚本。以前,运行它需要花费大量时间,然后通过首先使用 multiprocessing 工具来最大程度地减少了并行编程的运行时间。一切都很好,但是问题是我只能使用一个节点,并且可以要求HPC的最高16个内核来运行我的工作。我已经仔细阅读了 multiprocessing 的功能,发现运行一个作业并恢复该问题最多可以花费一个节点,我已经使用再次进行了并行编程> 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)

0 个答案:

没有答案