0
我在调试OpenMP程序。它的行为很奇怪。 1)如果一个简单的程序P(while(1)loop)占用一个核心100%,则OpenMP程序即使占用所有剩余核心也会暂停。一旦我终止程序P,OpenMP程序将继续执行。OpenMP程序的奇怪行为
2)如果我将OMP_NUMBER_THREADS设置为32/16/8,则OpenMP程序可以在情况1中成功执行。
我在8核x64机器和32核Itanium机器上进行了测试。前者使用GCC和libomp。后者使用私有的aCC编译器和库。所以它不太可能与编译器/库相关。
你能帮忙指出可能导致现场的任何可能的原因吗?为什么它会受到另一个程序的影响?
谢谢。