小编use*_*269的帖子

OpenMP 出现分段错误(核心已转储)

我在使用 OpenMP 并行化代码时遇到问题。我附上了可以重现我的问题的最简单的代码。

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int n = 10;
    int size = 1;

    vector<double> vec(1, double(1.0));
    double sum = 0.0;

#pragma omp parallel for private(vec) reduction(+: sum)
    for (int i = 0; i != n; ++i)
    {
        /* in real case, complex operations applied on vec here */

        sum += vec[0];
    }

    cout << "sum: " << sum << endl;

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

我使用带标志 -fopenmp 的 g++ 进行编译,g++ 的错误消息提示“分段错误(核心已转储)”。我想知道代码有什么问题。

请注意,应将其设置为私有,因为在实际代码中,for 循环中vec …

g++ openmp

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

标签 统计

g++ ×1

openmp ×1