gpt4 book ai didi

c++ - iMac 上的 OpenMP 'slower'? (C++)

转载 作者:行者123 更新时间:2023-11-28 08:26:55 25 4
gpt4 key购买 nike

我有一个使用 OpenMP 的 C++ 小程序。它在 Windows7、Core i7 和 VisualStudio 2010 上运行良好。在配备 Core i7 和 g++ v4.2.1 的 iMac 上,使用 4 个线程的代码运行速度比只使用一个线程慢得多。在使用 g++ 的其他 2 台 Red Hat 机器上也出现了相同的“较慢”行为。这是代码:

   int iHundredMillion = 100000000;
int iNumWorkers = 4;
std::vector<Worker*> workers;

for(int i=0; i<iNumWorkers; ++i)
{
Worker * pWorker = new Worker();
workers.push_back(pWorker);
}

int iThr;

#pragma omp parallel for private (iThr) // Parallel run
for(int k=0; k<iNumWorkers; ++k)
{
iThr = omp_get_thread_num();
workers[k]->Run( (3)*iHundredMillion, iThr );
}

我正在像这样使用 g++ 进行编译:

g++ -fopenmp -O2 -o a.out *.cpp

谁能告诉我我在 *nix 平台上犯了什么愚蠢的错误?

最佳答案

我认为 g++ 编译器的优化不如 visual studio 编译器。您能否尝试其他优化级别(如 -O3)并查看它是否有所作为?

或者您可以尝试其他编译器。英特尔为非商业目的提供免费的 Linux 编译器。

http://software.intel.com/en-us/articles/non-commercial-software-development/

关于c++ - iMac 上的 OpenMP 'slower'? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3739117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com