我不确定。我可以在四个内核上写一个大的内存集(例如10 MB)来提高速度吗?

这种ram-chip并行化是否完全可能,并且触发其他线程的时间成本又有多大-大于一毫秒或更短?

最佳答案

您在指出一个正确的问题,同时很难给出一个简单的答案。涉及几个方面。

  • 启动新线程(或从某些缓存中选择它们)的开销;
  • 内存总线上的扩展。
  • 以上各方面有所不同,不同平台的成本也有很大差异。

  • 较大的PC具有多个内存总线。较小的只有一个。在一个内存总线系统上,这没有任何意义。如果您的系统有多个内存总线( channel ),则数据数组可能在内存组之间任意分割。如果整个阵列都位于同一存储库中,则并行化将毫无用处。弄清楚数组的布局又是一项开销。换句话说,在内核之间划分操作之前,有必要弄清楚这是否值得。

    简单的答案是,这些难以预测的间接费用很可能会消耗 yield ,并使整体结果更糟。

    同时,对于某些体系结构上非常大的内存区域来说,这是有道理的。

    10-08 05:42