【发布时间】:2017-02-20 23:48:40
【问题描述】:
我已经在使用 OpenMP 进行一些并行处理,并且想添加一个带有阻塞接收的控制线程。大多数时候这个线程会被阻塞,因此我不希望它坐在那里占用一个核心。理想情况下,阻塞调用会触发一个额外的工作线程。 OpenMP 将如何处理阻塞调用?
类似这样的:
#include <omp.h>
int main()
{
int cores = omp_get_num_procs();
#pragma omp parallel num_threads(cores + 1)
if (omp_get_thread_num() == 0) {
send();
blockingReceive();
}
else
{
work();
}
}
【问题讨论】:
标签: c parallel-processing openmp blocking