gpt4 book ai didi

c++ - 英特尔线程构建模块性能不佳

转载 作者:太空宇宙 更新时间:2023-11-04 13:39:06 25 4
gpt4 key购买 nike

我对 tbb 与 OpenMp 与单线程进行了非常简单的并行 for 循环评估。虽然 omp 几乎呈线性扩展,但 tbb 在 100% 负载的 4 核系统上运行速度大约快 1.7 倍。我在 VS2010 i5-2500 上使用 W7 ia32。代码:

const int size = 100000;
tbb::concurrent_vector<double> x(size);
long long t1 = GetTimeMs();
#if 1
tbb::parallel_for(0, size, 1, [&](int i) {
double& xx = x[i];
xx += i;
for (int j = 0; j < size; j++) {
xx += 3.0 * j * j + 2.0 * j + 1.0;
}
});
#elif 0
#pragma omp parallel for
for (int i = 0; i < size; i++) {
double& xx = x[i];
xx += i;
for (int j = 0; j < size; j++) {
xx += 3.0 * j * j + 2.0 * j + 1.0;
}
}
#else
for (int i = 0; i < size; i++) {
double& xx = x[i];
xx += i;
for (int j = 0; j < size; j++) {
xx += 3.0 * j * j + 2.0 * j + 1.0;
}
}
#endif
long long t2 = GetTimeMs() - t1;
printf("%lld ms\n", t2);

单个、omp 和 tbb 的执行时间为 14.4、3.7、8.1。

最佳答案

谢谢大家的回答。我自己检查了 Linux,它在那里运行良好。似乎是 wintel 平台的错误,我会向他们报告。

关于c++ - 英特尔线程构建模块性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28454803/

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