我尝试编译
#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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。