0

我有一个用 C++ 编写的实用程序并使用 MPICH2,它进行了一些繁重的计算,我对它的性能不满意,并且有很多改进的范围。

首先,MPICH2 仅使用 exes,因此我必须将数据写入文件并将该文件作为参数传递给该实用程序,该实用程序再次读取所有数据并将输出写回文件。如果我可以在 dll 中使用它,我可以节省大量传递数据的时间。此外,如果我能以某种方式在 GPU 上运行它,这将带来提升(不太确定)。

我想知道将实用程序代码转换为 OpenCL 需要多少努力,或者是否有任何工具可以完成 60-70% 的转换任务。

4

1 回答 1

2

我最好的猜测是,将代码转换为 OpenCL 所需的工作量与将类似的串行代码转换为并行代码所需的工作量一样多。我知道没有工具可以自动将 MPI 代码转换为 OpenCL 代码的过程。我非常有兴趣向其他人学习任何此类工具。

关于在 GPU 上运行 MPI 已经完成了一些研究并发布了结果。我的印象是,任何这项工作仍然是研究级的,可能既不可靠也不便携。

最后,虽然它不会帮助您使用 GPU,但为什么不使用您的 MPI 代码纠正错误呢?我有点不清楚,但似乎其中一个问题是您的 MPI 代码写入和读取文件作为传递数据的一种方式。这不是 MPI 程序的必要功能,可以修改

于 2012-03-01T13:28:55.483 回答