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
我以前从未使用过 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