首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >开始使用OpenACC +程序

开始使用OpenACC +程序
EN

Stack Overflow用户
提问于 2021-12-02 02:07:20
回答 1查看 315关注 0票数 0

我有一个工作串行代码和一个工作并行单GPU代码并行通过OpenACC。现在,我试图通过使用mpi+openacc范式在多个GPU上运行来增加并行性。我用Fortran-90编写了我的代码,并使用Nvidia的HPC的nvfortran编译器编译它。

我有几个初级水平的问题:

  1. 如何设置编译器环境以开始编写mpi+openacc代码。除了Nvidia的HPC-SDK?
  2. Assuming之外,还有其他的要求吗?我有一个在mpi+openacc设置下编写的代码,我如何准确地编译它?我要编译两遍吗?一个用于cpus (mpif90),一个用于gpus (openacc)。当需要GPU设备1和GPU设备2之间的通信时,是否有一种方法可以直接在它们之间进行通信,或者我应该通过GPU设备-1->CPU-主机-1-> CPU-host-2 -> GPU-device-2
  3. Are - implementation?

进行通信。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-02 14:44:25

正如@Vladimir F指出的那样,你的问题非常宽泛,所以如果你有关于具体问题的进一步问题,你应该考虑把每一点单独张贴出来。话虽如此,我会尽力回答每一个问题。

  1. ,如果您安装NVIDIA,您应该拥有所需的一切。它将包括安装OpenMPI加上NVIDIA公司的OpenACC高性能编译器。如果你也需要的话,你也会有各种各样的数学库。
  2. 使用mpif90编译所有的东西。例如,mpif90 -acc=gpu将使用OpenACC构建包含GPU支持的文件,而不包括OpenACC的文件将正常编译。在编译过程中应自动找到MPI模块,MPI库将链接到.
  3. 中,您可以使用acc host_data use_device指令将数据的GPU版本传递给MPI。我没有MPI的Fortran示例,但它看起来类似于这个文件中的调用。https://github.com/jefflarkin/openacc-interoperability/blob/master/openacc_cublas.f90#L19
  4. This代码同时使用OpenACC和MPI,但不使用我在3中引用的host_data指令。这是一种常见的模式,但我目前还没有打开的代码。https://github.com/UK-MAC/CloverLeaf_OpenACC
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70193396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档