次のコードは、openMP を使用しないと高速に実行されます。なぜそうなのですか?デュアルコアマシンで実行しています。open mp を使用した場合の実行時間は約 0.05 秒ですが、openMP なしで実行した場合は 0.03 秒しかかかりません。
#include<omp.h>
#include<iostream>
#include<time.h>
using namespace std;
int main()
{
clock_t start=clock();
int i,j,t1,t2, n=1;
float a[1000][1000];
float b[1000][1000];
#pragma omp parallel
{
#pragma omp for private(i)
for(j=0; j<1000; j++)
{
for(i=0; i<1000; i++)
{
a[i][j]=(i*j*i*j)/(i+j+1)/(i*j*i+8*i+1);
b[i][j]=(i*j*i*j)/(i+j+1)/(i*j*i+8*i+1);
}
}
}
clock_t end=clock();
cout<<"Time to run is "<<(double)(end - start)/CLOCKS_PER_SEC<<endl;
}