gpt4 book ai didi

performance - Ubuntu 中的 OpenMP : parallel program works on double core processor in two times slower than single-threaded. 为什么?

转载 作者:行者123 更新时间:2023-12-04 19:23:05 25 4
gpt4 key购买 nike

我从 wikipedia 获得代码:

#include <stdio.h>
#include <omp.h>

#define N 100

int main(int argc, char *argv[])
{
float a[N], b[N], c[N];
int i;
omp_set_dynamic(0);
omp_set_num_threads(10);


for (i = 0; i < N; i++)
{
a[i] = i * 1.0;
b[i] = i * 2.0;
}

#pragma omp parallel shared(a, b, c) private(i)
{
#pragma omp for
for (i = 0; i < N; i++)
c[i] = a[i] + b[i];
}
printf ("%f\n", c[10]);
return 0;
}

我尝试使用 gcc4.5(我的配置:Intel C2D T7500M 2.2GHz,2048Mb RAM)在我的 Ubuntu 11.04 中编译和运行它,该程序的运行速度比单线程慢两倍。为什么?

最佳答案

非常简单的答案:增加 N。并将线程数设置为等于您拥有的处理器数。

对于您的机器来说,100 是一个非常小的数字。尝试更高几个数量级。

另一个问题是:您如何测量计算时间?通常需要程序时间来获得可比较的结果。

关于performance - Ubuntu 中的 OpenMP : parallel program works on double core processor in two times slower than single-threaded. 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6981643/

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