关于使用OpenMP需要做多少工作才有意义

On what amount of work does using OpenMP start making sense?

本文关键字:多少 工作 有意义 于使用 OpenMP      更新时间:2023-10-16

我最近开始研究使用OpenMP的并行化,并发现了大量描述如何使用它的优秀资源。但是,我无法找到关于并行化何时开始有意义的文档,或者换句话说:并行化开始补偿OpenMP线程创建开销的转折点在哪里,以及在什么情况下不使用它会更好?功有多复杂才有意义把它并行化?

有相关的文档或指南吗?

根据我自己的经验,如果您的计算非常适合并行化,那么如果串行计算(例如您想并行化的循环)花费几毫秒,则可以期望获得可观的收益。在1毫秒以下,由于涉及到开销,它将无助于使用多个线程。

图像处理就是一个很好的例子。我在两个连续的图像上运行筛选和冲浪时使用它。我发现如果你需要做大量的数学计算,特别是在矩阵上,它很有用。