я его отключил (выставил в неопределенное состояние) т.к. непонятно как там прогресс обновлять
результат каждого таска пишется в QTextBrowser, но у него я отключаю обновления до завершения обработки
Ну профайлить надо. По поводу прогресса: omp задействует и ту нитку из которой был parallel. Можно создать еще нитку и в ней уже parallel (чтобы оставить главную свободной). Но я всегда использую второй способ
C++ (Qt)
int prev = 0;
QAtomicInt numDone = 0;
#pragma omp parallel for
for (int i = 0; i < task.size(); ++i) {
DoTask(task[i]);
++numDone;
#pragma omp master
{
if (numDone > prev + 100) {
UpdateUI(numDone);
prev = numDone;
}
}
}
Обычно главной нитке и делать-то нечего кроме обновления прогресса, ну и пусть тоже считает, по ходу дела обновляя