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