混合MPI/GPU代码



我已经做了一个MPI和GPU版本的扩散方程。

在MPI版本中,我通过对网格进行分解来计算下一个值,每个进程代表一个子网格。

在GPU/OpenCL版本中,我通过将2D网格转换为1D并循环该1D网格的全局索引来计算next值,从而实现所有网格的更新。

现在,我想知道是否有可能混合这两个版本,即为每个MPI进程分配一个子网格并进入子网格,使用GPU/OpenCL计算值。

我认为如果GPU能够在不同的MPI进程之间共享其资源(我只有一个GPU设备),这是可行的

谁能告诉我这是可能的吗?

谢谢

当然,GPU可以在多个进程之间共享。它仍然只是一个资源,所以如果你之前用一个进程很好地利用了它,那么不要期望有太多的扩展,因为现在你的进程正在争夺一个资源。最坏的情况是,如果你过度订阅GPU,性能实际上会变得更差。另一个需要注意的问题是GPU内存使用。

最新更新