Julia 中的 MPI 和消息传递

MPI and message passing in Julia

我以前从未使用过 MPI,现在我在 Julia 的项目中使用了 MPI,我需要学习如何在 MPI 中编写我的代码,并并行使用多个具有不同参数的代码 运行 并且不时发送一些数据从每个计算到其他计算。

我完全不知道如何在 Julia 中做到这一点,而且我以前从未用任何语言做过。我安装了 MPI 库,但没有找到好的教程或文档或可用的示例。

使用 Julia 进行并行编程的方法有多种。

如果您的问题非常简单,那么使用并行 for 循环和共享数组可能就足够了:

https://docs.julialang.org/en/v1/manual/parallel-computing/

但是请注意,在这种情况下,您不能使用多个计算节点(例如集群)。

对我来说,Julia 中的其他原生结构很难用于更复杂的程序,就我而言,我需要(显着)重构我的串行代码才能使用它们。

MPI 的优点是您会找到很多关于 MPI-style(single-program、multiple-data)一般编程的文档(但不一定是特定于 julia 的文档) .您可能会发现 MPI 风格也更明显。 在大型集群上,您也可能会找到优化的 MPI 库。

一个很好的起点是 MPI.jl:

分发的示例

https://github.com/JuliaParallel/MPI.jl/tree/master/examples