假设您有一个典型的游戏循环,每秒运行大约 30 次。一个特定的函数需要大约 50% 的时间,并且看起来像是并行化的主要候选者 - 比如说它是一个大循环,或者有 4 个不同且独立的工作链正在进行。假设我们已经检查过函数本身可以很好地并行化到 2 -4 个内核。
在这种情况下,OpenMP 是否可能会加快速度?我希望每帧天真地创建 1-3 个线程来拆分工作不会很好,但我真的不知道线程创建/销毁会带来什么开销,如果它是 10 毫秒或 100 毫秒。而且我不知道如果 OMP 在这种事情上很有效,或者只适合运行时间更长的代码。
想法?