我有一个工作串行代码和一个工作并行单GPU代码并行通过OpenACC。现在,我试图通过使用mpi+openacc范式在多个GPU上运行来增加并行性。我用Fortran-90编写了我的代码,并使用Nvidia的HPC的nvfortran编译器编译它。
我有几个初级水平的问题:
进行通信。
发布于 2021-12-02 14:44:25
正如@Vladimir F指出的那样,你的问题非常宽泛,所以如果你有关于具体问题的进一步问题,你应该考虑把每一点单独张贴出来。话虽如此,我会尽力回答每一个问题。
mpif90编译所有的东西。例如,mpif90 -acc=gpu将使用OpenACC构建包含GPU支持的文件,而不包括OpenACC的文件将正常编译。在编译过程中应自动找到MPI模块,MPI库将链接到.acc host_data use_device指令将数据的GPU版本传递给MPI。我没有MPI的Fortran示例,但它看起来类似于这个文件中的调用。https://github.com/jefflarkin/openacc-interoperability/blob/master/openacc_cublas.f90#L19host_data指令。这是一种常见的模式,但我目前还没有打开的代码。https://github.com/UK-MAC/CloverLeaf_OpenACChttps://stackoverflow.com/questions/70193396
复制相似问题