如何优化双,四和更高的多处理器?

Way*_*yne 11 .net c# parallel-processing cpu

伙计们,我已经编写了20多年的高速软件,并且几乎了解了本书中的每一个技巧,从微型工作台制作合作,分析,用户模式多任务处理,尾递归,你在Linux,Windows上为它提供了非常高性能的东西. , 和更多.

问题是,当CPU密集型工作的多个线程暴露给多核处理器时,我发现自己会感到困惑.

在线程之间(在不同内核上)共享日期的各种方式的微观基准中的性能结果似乎不符合逻辑.

很明显,核心之间存在一些"隐藏的交互",这与我自己的编程代码并不明显.我听说过L1缓存和其他问题,但这些对我来说是不透明的.

问题是:我在哪里可以学到这些东西?我正在寻找一本关于多核处理器如何工作,如何编程以利用其内存缓存或其他硬件架构的深度书,而不是受到它们的惩罚.

任何建议或伟大的网站或书籍?经过大量的谷歌搜索,我空了.

真诚的,韦恩

Fra*_* IV 4

这本书教会了我很多关于此类问题的知识,解释了为什么原始 CPU 功率并不是唯一需要注意的事情。几年前我在研究生院使用过它,但我认为所有原则仍然适用:

http://www.amazon.com/Computer-Architecture-Quantitative-Approach-4th/dp/0123704901

本质上,多进程配置中的一个主要问题是同步对主内存的访问,如果你不正确地做到这一点,它可能会成为性能的真正瓶颈。必须保持同步的缓存非常复杂。