打开omp比没有它慢

时间:2013-06-04 11:52:37

标签: performance openmp

我是“并行化”的新手。我正在尝试并行化一个简单的代码以获得更好的性能,但我的运行时非常糟糕。 这是代码:

#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;
}

我做错了什么?谢谢!!

1 个答案:

答案 0 :(得分:1)

控制台是独占资源,当10个线程想要“同时”使用它时,需要锁定!

添加。锁定增加了开销,这解释了你看到的时间


对于磁盘访问或者更确切地说是任何独占/有限资源

,同样如此