OpenMPI 与 OpenMP 执行效率
OpenMPI vs OpenMP execution efficiency
我一直在研究使用 OpenMPI
和 OpenMP
并行化 Dijkstra 算法的效率。事实上,当我使用 OpenMP 时,执行时间似乎比使用 OpenMPI 时 长 这对我来说有点奇怪,因为据我所知线程应该比进程快。 OpenMPI 为每个执行创建一个进程,而 OpenMP 在每个进程执行下创建线程。我的问题是:我的发现是否依赖于实施?换句话说,我们是否总是可以说使用 OpenMP 进行并行化并不总是比 OpenMPI 更快,因为它取决于实现?
谢谢。
一如既往,这完全取决于您当前的情况。 OpenMP 仅适用于本地 CPU,而 OpenMPI 通过网络连接到多个节点。只要您只能将工作分配给与本地 CPU 内核一样多的线程,OpenMP 应该 更快,因为消息传递开销更少。在更大的扩展设备中,OpenMPI 更胜一筹,因为它可以分布在多个系统中,这也可能具有更好的单个计算速度。
我一直在研究使用 OpenMPI
和 OpenMP
并行化 Dijkstra 算法的效率。事实上,当我使用 OpenMP 时,执行时间似乎比使用 OpenMPI 时 长 这对我来说有点奇怪,因为据我所知线程应该比进程快。 OpenMPI 为每个执行创建一个进程,而 OpenMP 在每个进程执行下创建线程。我的问题是:我的发现是否依赖于实施?换句话说,我们是否总是可以说使用 OpenMP 进行并行化并不总是比 OpenMPI 更快,因为它取决于实现?
谢谢。
一如既往,这完全取决于您当前的情况。 OpenMP 仅适用于本地 CPU,而 OpenMPI 通过网络连接到多个节点。只要您只能将工作分配给与本地 CPU 内核一样多的线程,OpenMP 应该 更快,因为消息传递开销更少。在更大的扩展设备中,OpenMPI 更胜一筹,因为它可以分布在多个系统中,这也可能具有更好的单个计算速度。