Как не ждать других потоков в OpenMP? - PullRequest
3 голосов
/ 03 августа 2010

Я рассматриваю возможность использования OpenMP для многопоточности в C ++. Но мне интересно, есть ли способ сообщить потоку не ждать другого параллельного потока и продолжить работу с моей программой? (Может быть, я могу отменить / убить другие темы?)

Мне известно о существовании предложения "nowait", но я хочу, чтобы решение "ждать" или "не ждать" принималось динамически (программа будет решать в зависимости от результатов процесса, который я выполняю).

Я надеюсь, что смогу получить некоторые советы по этому вопросу.

Заранее спасибо.

1 Ответ

1 голос
/ 03 августа 2010

Я бы сделал это что-то вроде

if(conditon)
{
     taskA_with_Barriers();
}  
else
{
     taskA_without_Barrier();
}

. condtion должна быть одинаковой константой во всех потоках.

Если вам нужно отменитьТемы, вы можете использовать неправильную технологию.Может также хотеть взглянуть на pthreads или MPI .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...