【问题标题】:How to mix Coarray and MPI code in Fortran如何在 Fortran 中混合 Coarray 和 MPI 代码
【发布时间】:2020-07-16 20:11:36
【问题描述】:

我想在我的代码中将 Fortran coarray 与 MPI 结合起来。我计划将使用 MPI 的第三方软波(HYPRE)用于线性系统求解器。在我剩下的工作中,我想使用 Fortran coarray (OpenCoarrays)。我已经在 Internet 上搜索了解决方案。但是没有任何关于如何使它工作的线索。我想知道是否可以混合 Fortran coarray 和 MPI。如果是,我应该使用 OpenCoarrays 还是 MPI 包装编译器

【问题讨论】:

  • 没有标准的方法可以做到这一点。建立在 MPI 之上的 OpenCoarrays 可能有一些非标准的可能性。

标签: fortran mpi gfortran fortran-coarrays


【解决方案1】:

OpenCoarrays 位于 MPI-3 RMA 之上(至少默认情况下;我不记得 GASNet 端口的最新状态)所以这应该可以工作,即使这两个标准都没有保证这一点。您将使用流程并行执行,它们应该可以很好地互操作。

英特尔 Fortran 还将 MPI 用于协数组。 Cray Fortran 协阵列使用与 MPI 兼容的 DMAPP。因此,您想要的互操作性应该涵盖所有广泛可用的实现。

在所有情况下,都可能存在一些实现怪癖,尤其是在初始化和终止方面。例如,您可能会发现直到所有 coarray 都被释放后才能最终确定 MPI。

如果您遇到问题,我相信 OpenCoarrays 的开发人员会很高兴收到有关此主题的大型报告。

【讨论】:

    猜你喜欢
    • 2014-08-16
    • 1970-01-01
    • 2016-01-20
    • 2011-01-16
    • 2012-01-24
    • 2013-02-12
    • 1970-01-01
    • 2018-05-05
    • 2016-05-15
    相关资源
    最近更新 更多