OpenMP:如何指定任务执行的频率
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenMP:如何指定任务执行的频率相关的知识,希望对你有一定的参考价值。
我遇到了以下问题。我有一个4核CPU和2个不同的任务A和B.A的工作量明显高于B,但是,必须只执行一次。 B的工作量非常小,但必须多次执行。
void A(int data) {
// do a lot
}
void B(int data) {
// do not so much
}
int main() {
int n = 100;
int data_a;
int data_b[n];
#pragma omp ?ONCE? // run task A once
A(data_a);
#pragma omp ?N_TIMES? // run task B n times
B(data_b[i]);
return 0;
}
如何告诉OpenMP并行运行4-Cores上的A和B?
答案
首先,您的代码既没有并行部分也没有omp任务指令。这取决于您如何创建任务。使用“单个”omp指令可以执行一段代码。但是,在您的情况下,很难确定您想要做什么。没有循环,因此A和B将被执行一次。所以,请更新您的示例,然后我们将能够纠正它。
以上是关于OpenMP:如何指定任务执行的频率的主要内容,如果未能解决你的问题,请参考以下文章