Я отлаживаю программу OpenMP. Его поведение странно.странное поведение программы OpenMP
1) Если простая программа P (while (1) loop) занимает одно ядро на 100%, программа OpenMP приостанавливает работу, даже если она занимает все оставшиеся ядра. Как только я завершаю программу P, программа OpenMP продолжает выполняться.
2) Программа OpenMP может успешно выполнить в ситуации 1, если я установил OMP_NUMBER_THREADS в 32/16/8.
Я тестировал как 8-ядерные машины x64, так и 32-ядерные машины Itanium. Первый использует GCC и libomp. Позднее использует частный компилятор aCC и библиотеки. Поэтому вряд ли это связано с компилятором/библиотекой.
Не могли бы вы указать любые возможные причины, которые могут вызвать сцену? Почему это может повлиять на другую программу?
Спасибо.