OpenMP:如何指定任务执行的频率

问题描述 投票:-1回答:1

我遇到了以下问题。我有一个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?

c parallel-processing openmp
1个回答
0
投票

首先,您的代码既没有并行部分也没有omp任务指令。这取决于您如何创建任务。使用“单个”omp指令可以执行一段代码。但是,在您的情况下,很难确定您想要做什么。没有循环,因此A和B将被执行一次。所以,请更新您的示例,然后我们将能够纠正它。

© www.soinside.com 2019 - 2024. All rights reserved.