0

这是我第一次尝试 OpenMP,但无法获得加速。机器是Linux amd_64。我编写了以下代码:

printf ("nt = %d\n", nt);
omp_set_num_threads(nt);

int i, j, s;
#pragma omp parallel for private(j,s)
for (i=0; i<10000; i++)
{
   for (j=0; j<100000; j++)
   {
      s++;
   }
}


And the compile with
g++ tempomp.cpp -o tomp -lgomp

And run it with different nthreads, no speedup:

nt = 1
elapsed time =2.670000

nt = 2
elapsed time =2.670000

nt = 12
elapsed time =2.670000

有任何想法吗?

4

1 回答 1

4

我认为您需要将标志添加-fopenmp到编译器中:

 g++ tempomp.cpp -o tomp -lgomp -fopenmp

使用-fopenmp时,编译器将根据遇到的 OpenMP 指令生成并行代码。 -lgomp加载 Gnu OpenMP 项目的库。

你的机器有几个核心?

于 2011-11-01T00:17:29.363 回答