如何使用 mpi4py 在 python 中并行化需要输出数字数组的 for 循环?

How to parallelize a for loop in python with mpi4py which needs to output an array of numbers?

提问人:Иван Петраш 提问时间:11/14/2023 更新时间:11/14/2023 访问量:28

问:

我有一个for循环,它在每次迭代中计算一个数字,并将其设置为零数组中的新元素。如何使用mpi4py并行化此循环?非常感谢帮助!代码如下。


    b = 1000
    R = numpy.linspace(2, 2.5, b)
    z = numpy.zeros_like(R)
    for i in range(len(z)):
        z[i] = calculate(R[i]) #pseudocode


在这个网站上有一些并行化 for 循环的例子,它增加了数字 ([https://computationalmechanics.in/parallelizing-for-loop-in-python-with-mpi/]),但我什至不知道如何开始!(在我理解的开头部分旁边,设置等级、大小等)。

python for-loop 并行 多处理 mpi4py

评论

1赞 AKX 11/14/2023
为什么特别?我会先看看你是否可以使用这个功能,如果它不够快,那就试试例如普通的。mpi4pynumba.jitcalculatemultiprocessing
0赞 AKX 11/14/2023
顺便说一句:会更简洁......z = [calculate(x) for x in numpy.linspace(2, 2.5, b)]
0赞 Иван Петраш 11/14/2023
我想这也行得通,尽管即使是多处理也是抽象的,我无法理解。此外,没有单一的计算函数,它实际上表示 5 个独立的函数和 100 行代码,但同意,这更简洁。

答: 暂无答案