2010-11-26 2 views
6

Как среда OpenMP определяет максимальное количество потоков при использовании omp_set_dynamic?omp_set_dynamic - как среда выполнения определяет количество потоков?

например. Используются ли какие-то механизмы синхронизации или компилятор дает подсказки для времени выполнения, насколько большой размер задачи?

+0

Это полностью конкретная реализация. скорее всего, вы будете использовать все доступные ядра, если вы не используете вложенные параллельные блоки – Anycorn 2010-11-27 03:08:00

ответ

2

Я не думаю, что OpenMP определяет «лучшее» количество потоков для приложения в любом вероятном смысле слова «лучший». Как прокомментировал @aaa, поведение среды выполнения, когда omp_set_dynamic истинно, специфично для реализации.

Я не думаю, что существующие компиляторы Fortran/C/C++ могут предоставлять информацию, такую ​​как тайминги или размеры задач, во время выполнения.

Я считаю, что эта функция доступна, так что планировщики (и аналогичные) могут управлять программами на машинах, для пропускной способности или аналогичных.