Простой вопрос по OpenMP

Скажем, у нас есть последовательное приложение, которое обычно останавливается на некоторое время, пока не будет вычислена полностью независимая функция. Как можно использовать OpenMP для порождения этой функции только в потоке и только для печати ее результата, когда он заканчивается? [без остановки основного приложения]

РЕДАКТИРОВАТЬ: можно ли это сделать, если независимая функция запускается внутри основного приложения?


person j riv    schedule 27.11.2010    source источник
comment
Отвечает ли это на ваш вопрос? Выполнение функций параллельно с помощью openmp   -  person user202729    schedule 22.01.2021


Ответы (1)


Вы можете использовать параллельные разделы.

#pragma omp parallel sections
{
   #pragma omp section
   YourMainApp ();

   #pragma omp section
   YourIndepFunction ();
}
person Pablo Santa Cruz    schedule 27.11.2010
comment
ТЫ. Можно ли сделать это, имея независимую функцию внутри основного приложения? - person j riv; 27.11.2010
comment
Они оба должны работать в независимых потоках. Но я думаю, что в конечном итоге все зависит от реализации OpenMP... - person Pablo Santa Cruz; 27.11.2010
comment
[Я отредактировал первоначальный комментарий-вопрос] Можно ли сделать вышеизложенное, имея независимую функцию внутри основного приложения? - person j riv; 27.11.2010
comment
Неважно, я открыл новый вопрос stackoverflow.com/questions/4292191/, и это ответило на мое замешательство. - person j riv; 28.11.2010