小编CIV*_*I89的帖子

将OpenMP应用于C++中的特定嵌套循环

我在使用openmp并行化一段代码时遇到了问题,我认为某些操作存在概念性问题,必须按顺序进行.

else if (PERF_ROWS <= MAX_ROWS && function_switch == true)
{
    int array_dist_perf[PERF_ROWS];
    int array_dist[MAX_ROWS];

    #pragma omp parallel for collapse(2)
    for (int i = 0; i < MAX_COLUMNS;
                    i = i + 1 + (i % PERF_CLMN == 0 ? 1:0))
    {
        for (int j = 0; j < PERF_ROWS; j++) //truncation perforation
        {
            array_dist_perf[j] = abs(input[j] - input_matrix[j][i]);
        }

        float av = mean(PERF_ROWS, array_dist_perf);

        float score = score_func(av);

        if (score > THRESHOLD_SCORE)
        {
            for (int k = 0; k …
Run Code Online (Sandbox Code Playgroud)

c++ parallel-processing multithreading nested openmp

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