我在 i7 CPU 中遇到 openMP 问题。
我使用 openMP 只是为了并行一个“for”循环。算法在几台不同的 PC 上使用,并且没有任何问题。最近,我们尝试在 i7 系统上运行它,但遇到了问题。软件通常运行一段时间,几个周期后它报告“内存不足”,我们试图找到内存泄漏,但我们发现软件使用的堆栈大小太大 - 有很多 1Mb 线程没有关闭。不知何故,由 openMP 创建的线程都卡在堆栈中,并且内存被它们填满。
有没有人经历过这样的行为?代码非常简单,只是一个带有一些循环的“pragma omp parallel for”,在其他 PC 上也可以正常工作。
我正在使用带有内置 openMP 库的 Microsoft Visual C++ 9.0 编译器。
谢谢谢尔盖