gpt4 book ai didi

openmp - OpenMP 或 MPI 哪个更容易学习和调试?

转载 作者:行者123 更新时间:2023-12-03 20:27:14 36 4
gpt4 key购买 nike

我有一个数字运算 C/C++ 应用程序。它基本上是不同数据集的主循环。我们可以使用 openmp 和 mpi 访问一个 100 节点的集群。我想加速应用程序,但我是 mpi 和 openmp 的绝对新手。我只是想知道什么是最容易学习和调试的,即使性能不是最好的。

我也想知道什么最适合我的主循环应用程序。

谢谢

最佳答案

如果您的程序只是一个大循环,使用 OpenMP 可以像编写一样简单:

#pragma omp parallel for

OpenMP 仅对共享内存编程有用,除非您的集群正在运行类似 kerrighed 的程序。意味着使用 OpenMP 的并行版本一次最多只能在一个节点上运行。

MPI 基于消息传递,入门稍微复杂一些。优点是您的程序可以一次在多个节点上运行,并在需要时在它们之间传递消息。

鉴于您说“针对不同的数据集”,听起来您的问题实际上可能属于“令人尴尬的并行”类别,如果您有 100 多个数据集,您只需设置调度程序即可为每个节点运行一个数据集直到它们全部完成,无需修改您的代码,并且比仅使用单个节点快了近 100 倍。

例如,如果您的集群使用 condor 作为调度程序,那么您可以将每个数据项的 1 个作业提交到“vanilla” Universe,仅改变作业描述的“Arguments =”行。 (对于 Condor 有其他方法可以做到这一点,这可能更明智,扭矩、sge 等也有类似的方法。)

关于openmp - OpenMP 或 MPI 哪个更容易学习和调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4057953/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com