Объяснение: Основные потоки OpenMP выполняются с приоритетом основного потока. Другие потоки OpenMP остаются в обычном приоритете. При ручной установке приоритета потоков OpenMP потоки остаются с этим приоритетом.

ибудь подумать об этом. Особенности OpenMP для настройки мышц процессора для работы с гантелями. В моем исследовании openmp мы не можем установить приоритет потока для выполнения блочного кода с мощной мускулатурой. Только один способ (функция _beginthreadex или CreateThread с 5. параметрами) для создания потоков с наивысшим приоритетом.

Вот некоторый код для этой проблемы:

Это ручная настройка.

int numberOfCore = ( execute __cpuid to obtain number of cores on your cpu ).

HANDLES* hThreads = new HANDLES[ numberOfCore ];
hThreads[0] = _beginthreadex( NULL, 0, someThreadFunc, NULL, 0, NULL );

SetThreadPriority( hThreads[0], HIGH_PRIORITY_CLASS );

WaitForMultipleObjects(...); 

Вот я хочу увидеть эту часть:

#pragma omp parallel
{
#pragma omp for ( threadpriority:HIGH_PRIORITY_CLASS )
 for( ;; ) { ... }
}

Или же

#pragma omp parallel
{
// Generally this function greatly appreciativable.
_omp_set_priority( HIGH_PRIORITY_CLASS );
#pragma omp for
 for( ;; ) { ... }
}

Я не знаю, был ли способ установить приоритет с помощью openmp, пожалуйста, сообщите нам.

Ответы на вопрос(2)

Ваш ответ на вопрос