У меня есть код, который я хочу оптимизировать, который должен работать с различными потоками.После выполнения некоторых тестов с использованием различных техник планирования в цикле for, который у меня есть, я пришел к выводу, что лучше всего выполнять динамическое планирование, когда у меня только один поток, и руководствуюсь иначе.Возможно ли это даже в openMP?
Точнее, я хочу иметь возможность сделать что-то вроде следующего:
if(omp_get_max_threads()>1)
#pragma omp parallel for .... scheduling(guided)
else
#pragma omp parallel for .... scheduling(dynamic)
for(.....){
...
}
Если кто-нибудь может мне помочь, я был бы признателен.Другим решением было бы написать в два раза цикл for и использовать условие if.Но я хочу избежать этого, если это возможно.