小编win*_*ted的帖子

OpenMP vs gcc编译器优化

我正在学习openmp,使用通过quadature计算pi值的例子.在串行中,我运行以下C代码:

double serial() {
    double step;
    double x,pi,sum = 0.0;

    step = 1.0 / (double) num_steps;

    for (int i = 0; i < num_steps; i++) {
        x = (i + 0.5) * step; // forward quadature
        sum += 4.0 / (1.0 + x*x);
    }
    pi = step * sum;

    return pi;
}
Run Code Online (Sandbox Code Playgroud)

我将这与使用并行减少的omp实现进行比较:

double SPMD_for_reduction() {
    double step;
    double pi,sum = 0.0;

    step = 1.0 / (double) num_steps;

    #pragma omp parallel for reduction (+:sum)
    for (int i = 0; i …
Run Code Online (Sandbox Code Playgroud)

c gcc openmp

5
推荐指数
1
解决办法
287
查看次数

标签 统计

c ×1

gcc ×1

openmp ×1