OpenMP - 嵌套循环"collapse"

collapse子句用于将多个嵌套的循环折叠成一个单独的循环。这个特性通常用于在嵌套循环上并行化以提高性能。参数n指定了折叠的层数。

#include <iostream>
#include <omp.h>
using namespace std;

int main(int argc, char* argv[]){
    int a[6][6];
    #pragma omp parallel for collapse(2)
    for (int i = 0; i < 6; ++i) {
        for (int j = 0; j < 6; ++j) {
            a[i][j] = omp_get_thread_num();
        }
    }
    for (int i = 0; i < 6; ++i) {
        for (int j = 0; j < 6; ++j) {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}
0 0 0 0 0 1 
1 1 1 1 2 2 
2 2 2 3 3 3 
3 3 4 4 4 4 
5 5 5 5 6 6 
6 6 7 7 7 7 

。。。

posted @ 2024-03-15 16:27  酥炸小黄瓜  阅读(268)  评论(0编辑  收藏  举报