memset可以在4核上并行化吗?

我不确定。 我可以在四个内核上编写一个大的memset(例如10 MB)来获得加速吗?

这样的ram芯片并行化是可能的,而且其他线程的时间成本有多大 – 是超过一毫秒或更less?

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

  1. 开始新线程的开销(或从某个缓存中选取);
  2. 内存总线上的提示。
  3. 上述方面不同,并且对于不同的平台具有非常不同的成本。

更大的PC有几条内存总线。 小的只有一个。 在一个内存总线系统上,这没有任何意义。 如果你的系统有几条内存总线(通道),你的数据阵列可能会在内存条之间任意分割。 如果将发生整个阵列位于同一个存储库中,parralelisation将是无用的。 弄清楚你的数组布局又是一个开销。 换句话说,在拆分内核之间的操作之前,有必要弄清楚这是否值得做。

简单的答案是,这些难以预测的开销将最有可能消耗的好处,并使整体效果变差。

同时在某些体系结构上有非常大的内存空间是有意义的。