我是“并行化”的新手。我正在尝试并行化一个简单的代码以获得更好的性能,但我的运行时非常糟糕。 这是代码:
#include<iostream>
#include<omp.h>
#include<cstdio>
using namespace std;
double omp_get_wtime(void);
int main(){
const double starttime = omp_get_wtime();
#pragma omp parallel num_threads(10)
{
cout<<"sbam"<<endl;
}
const double endtime = omp_get_wtime();
cout << "work took time: " << endtime-starttime << " s"<<endl;
cout << "work took time: " << (endtime-starttime)*1000000.00 << " mus"<<endl;
return 0;
}
我做错了什么?谢谢!!
答案 0 :(得分:1)
控制台是独占资源,当10个线程想要“同时”使用它时,需要锁定!
添加。锁定增加了开销,这解释了你看到的时间