c-openmp g错误:折叠的循环未完全嵌套
作者:互联网
我尝试编译
#include <omp.h>
using namespace std;
vector< vector<int> > multiplyMatrixes(const vector< vector<int> > &a, const vector< vector<int> > &b, int aHeight, int aWidth, int bHeight, int bWidth) {
vector < vector<int> > c(aHeight, vector<int>(bWidth, 0));
#pragma omp parallel for collapse(2)
for(int row = 0; row < aHeight; row++) {
for(int col = 0; col < bWidth; col++) {
int value = 0;
for(int i = 0; i < aWidth; i++) {
value += a[row][i] * b[i][col];
}
c[row][col] = value;
cout<<"Tread #"<<omp_get_thread_num()<<"\n";
}
std::cout<<'\n';
}
return c;
}
int main() {}
使用’g -fopenmp hello.cpp -o hello’命令,gcc版本是4.7,但是我得到了关注
‘hello.cpp:19:17:错误:折叠的循环未完全嵌套”
这是什么意思?
解决方法:
搜寻错误,发现“循环必须完美嵌套;也就是说,在折叠的循环之间没有中间代码,也没有任何OpenMP编译指示”
我认为这意味着不允许在for(i)循环之前和之后的代码.
标签:c,gcc,openmp 来源: https://codeday.me/bug/20191013/1908735.html