我不确定。我可以在四个内核上写一个大的内存集(例如10 MB)来提高速度吗?
这种ram-chip并行化是否完全可能,并且触发其他线程的时间成本又有多大-大于一毫秒或更短?
最佳答案
您在指出一个正确的问题,同时很难给出一个简单的答案。涉及几个方面。
较大的PC具有多个内存总线。较小的只有一个。在一个内存总线系统上,这没有任何意义。如果您的系统有多个内存总线( channel ),则数据数组可能在内存组之间任意分割。如果整个阵列都位于同一存储库中,则并行化将毫无用处。弄清楚数组的布局又是一项开销。换句话说,在内核之间划分操作之前,有必要弄清楚这是否值得。
简单的答案是,这些难以预测的间接费用很可能会消耗 yield ,并使整体结果更糟。
同时,对于某些体系结构上非常大的内存区域来说,这是有道理的。