2

I'm a new OpenMP user and have parallelized code that runs 13.5 times faster (14 threads) on Visual Studio 2010 (Windows 7 Ultimate x64). The performance on CentOS 5.8 x64 (gcc 4.1.2) or SUSE x64 (gcc 4.5.1) is zip. I've verified that multiple threads are being used. Is there some system flag or option I need to turn on? Yes, OMP_NUM_THREADS is in the environment and set to 8. The CentOS machine is a dual xenon processor.

4

2 回答 2

1

使用 8 个内核,听起来几乎不可能有 13.5 倍的加速,无论您使用多少线程。

我怀疑你的测量是错误的。你如何衡量绩效?在 Unix 中,命令“time ./myprogram”将返回 3 个不同的时间。“真实”时间是您感兴趣的时间,而“用户”时间是 cpu 时间(每个核心花费的时间总和)。在windows中我不知道,但我猜你会发现一个“用户”时间比“cpu”时间大13.5倍,这并没有说明加速,而是你所有的14个线程都在使用中。

您应该比较单线程程序和 openmp 程序之间的“实时”时间。

于 2012-11-03T16:41:19.293 回答
0

您是否使用了正确的编译器/链接器开关,例如-fopenmp -lgomp?也许首先尝试 OpenMP 文档中的一个简单示例,以证明您的设置正确。

于 2012-11-02T23:46:21.693 回答