首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何优化双处理器、四处理器和更高的多处理器?

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

Stack Overflow用户
提问于 2011-12-26 12:42:20
回答 6查看 2.6K关注 0票数 11

朋友们,我从事高速软件编程已经有20多年了,我几乎知道书中的每一个技巧,从微型工作台制作协作,剖析,用户模式多任务,尾部递归,你在Linux,Windows上的非常高性能的东西,等等。

问题是,当CPU密集型工作的多个线程暴露在多核处理器上时,会发生什么,这让我感到困惑。

不同线程(在不同内核上)共享数据的各种方式在微基准测试中的性能结果似乎不符合逻辑。

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

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

有什么建议或者很棒的网站或书籍吗?在谷歌了很多次之后,我一无所获。

诚心诚意,韦恩

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-26 12:48:12

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

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

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

票数 4
EN

Stack Overflow用户

发布于 2011-12-26 17:18:32

我在stackoverflow的姊妹网站https://softwareengineering.stackexchange.com/questions/126986/where-can-i-find-an-overview-of-known-multithreading-design-patterns/126993#126993上提出了自己的问题,并给出了答案

我将复制答案以避免点击:

引用Boris的话:

使用微软.NET进行

并行编程:多核体系结构https://rads.stackoverflow.com/amzn/click/0735651590上的分解和协调设计模式

这是一本我全心全意推荐的书。

它是:

新的-去年出版的。这意味着你没有读到一些过时的实践。

Short -关于200+页面,信息密集。现在有太多的书要读,而用来阅读1000+ pages书籍的时间却太少了。

易于阅读-它不仅写得很好,而且以非常简单的方式引入了难以掌握的概念。

旨在教授-每章都给出了要做的练习。我知道这样做总是有益的,但很少这样做。这本书给出了非常令人信服和有趣的任务。令人惊讶的是,我做了大部分,而且很享受。

另外,如果你想了解更多的低级细节,这是我找到的最好的资源:"The Art of Multiprocessor Programming“它是用java编写的,它在我的C#背景下运行得很好。

PS:我有大约5年的“硬核”并行编程经验,所以当我说"The Art of Multiprocessor Programming“很棒的时候,希望你能相信我

票数 4
EN

Stack Overflow用户

发布于 2011-12-26 12:54:41

"Are you concerned about multicores"

  • Herb

  • ‘s Parallel Programming

上的

  • My answer
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8632949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档