【问题标题】:Efficiency of multithreading for fast calculation / huge memory on typical Intel/AMD multicores machines在典型的 Intel/AMD 多核机器上实现快速计算/巨大内存的多线程效率
【发布时间】:2021-06-28 08:59:29
【问题描述】:

对于使用多线程进行密集计算的开发人员来说,这是一个有点实际的问题。

在具有 Intel 或 AMD 多核处理器的典型架构的机器上,使用多线程在大面积内存上重复简单的演算是否有效?

例如,假设我想增加一个巨大的整数数组(或对它们进行一些非常简单的操作)并在具有每个子数组的不同线程之间共享工作负载。

根据处理器的核心数量以及是否超线程,机器可以同时拥有 N 个线程。我的微积分速度可以乘以接近 N 吗?或者 RAM 访问的瓶颈会更快出现吗?

我公司可以租用的典型机器有 N = 40。但如果出现 5 个线程的瓶颈,这些机器将无法实现我们的目标。

我知道理论上,RAM 访问可能是一个瓶颈,但对于在大内存上重复的相同类型的快速操作,我需要实际经验反馈。

【问题讨论】:

    标签: multithreading performance intel cpu-architecture amd-processor


    【解决方案1】:

    这取决于机器架构和配置的具体情况。但是,对于像增加一个巨大的整数数组这样的事情,您通常可以在内核耗尽之前使内存总线饱和,因此内存成为瓶颈。

    您可以从其详细规格中计算出机器的理论内存带宽,然后您可以期望通过多线程在现实生活中获得 80% 到 100% 的内存带宽。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    相关资源
    最近更新 更多