我必须使用片段,其中一个是标准的,另一个使用OpenMP。这是第一个:
#include <iostream>
int main(){
double a = 0;
for(int i =0; i<= 100000; i++){
a+=1;
}
std::cout << a << std::endl;
return 0;
}
这段代码给了我:100001,所以没关系;没问题。
问题是,对于第二个片段:
#include <iostream>
int main(){
double a = 0;
#pragma omp parallel for
for(int i = 0; i<=100000; i++){
a+=1;
}
std::cout << a << std::endl;
return 0;
}
此代码的结果是:55246,我不知道为什么我得到这个结果而不是100001.