分类: LINUX
2017-07-15 21:47:32
Linux社区顶尖黑客编著
众多大咖力荐(含多位Linux社区“常委”级大牛)
20年传奇工匠程序员翻译
,京东预售链接 ,当当预售链接
内容简介:
《深入理解并行编程》首先以霍金提出的两个理论物理限制为引子,解释了多核并行计算兴起的原因,并从硬件的角度阐述并行编程的难题。接着,《深入理解并行编程》以常见的计数器为例,探讨其不同的实现方法及适用场景。在这些实现方法中,除了介绍常见的锁以外,《深入理解并行编程》还重点介绍了RCU的使用及其原理,以及实现RCU的基础:内存屏障。最后,《深入理解并行编程》还介绍了并行软件的验证,以及并行实时计算等内容。
《深入理解并行编程》适合于对并行编程有兴趣的大学生、研究生,以及需要对项目进行深度性能优化的软硬件工程师,特别值得一提的是,《深入理解并行编程》对操作系统内核工程师也很有价值。
书评:
在我所看过的各种关于操作系统概念和并行编程的书籍中,我对Paul的书评价至高,它不是对学术方法的简单罗列,而是对现代硬件上运行并行系统的各种现实世界问题和面临挑战的细致分析,这一切都源于Paul在这一领域的丰富经验和巨大的贡献。
——OpersysCEO,《EmbeddedAndroid》作者KarimYaghmour
并行编程很难,但阅读Paul的书是掌握并行编程至简单的(当然也是至有趣的)办法之一!
——Linux内核x86、sched和rt-patches分支的维护者IngoMolnar
编程的至高无上境界是毫不费力地驯服CPU。你正在阅读的是关于各任务在CPU进行战争的伟大著作,一旦你开始翻阅,再多的编程挑战也不用怕!
——Linux内核防火墙ipchains和iptables的作者,网络货币prettycoin的作者RustyRussell
对程序员而言,想要了解并行编程中涉及的问题,以及如何正确解决这些问题,本书是不可或缺的。
——《Linux内核驱动》作者,Linux内核stable分支和其他大量分支的维护者GregKroah-Hartman
Paul用他独特的对话式描述手法揭开了并行编程的神秘面纱,本书中既有真实案例,又有对硬件体系架构的说明,同时还用包含大量信息的历史视角加以阐述。本书的组织结构非常灵活,从浅尝则止到字斟句酌,读者总能发现适合自己的内容。
——Darren Hart(VMware开源技术中心总监)如果你想找到一本有深度,理论联系实际,并且详细讲解了构成Linux的重要并行代码实现的书,你手上这本书就是了。
——Borislav Petkov (资深SUSE工程师,Linux多个硬件相关内核代码的维护者)
本书中的许多实践经验和小测试,是任何想深入了解并行编程的开发者的无价宝藏。
——Tobias Klauser (Linux网络工具netsniff作者)
这是一本每个并行编程专业人员案头必备的参考书,浓缩了作者在该领域数十年的丰富实践经验。它也是一本学习并行编程的优秀教材,在涵盖主题的广度和深度方面表现优异。极具吸引力的写作风格使得本书的阅读成为非常愉快的体验。
——Facebook资深工程师,危险指针和无锁内存分配器的发明者MagedM.Micheal
Linux内核社区里高手云集,并且里面的人经常个性鲜明,以至于有很多人认为内核社区很不友好。但Paul是一个特别亲切、友善和耐心的人,不管是在内核邮件列表里还是面对面交流时。而这本书也体现了Paul的这些品质,他以至详尽易懂的方式解释并行编程方方面面的知识。这不表示这本书看起来很轻松,因为并行编程本身就很难。但真正有用的知识大概都没能够轻松获得。
——Linux内核cgroups和cpuset分支的维护者,华为Linux内核高级工程师李泽帆
刚看到书名时我在想,并行编程这样一个在计算机领域“古老”且成熟的话题还有什么值得多写的。翻看几页目录后便改变了想法。
该书从并行编程问题的历史背景讲起,一步步引入问题的挑战并带读者游历硬件与软件交互的发展,至后阐述当下并行编程的复杂性。
本书囊括所有系统编程的要素,不仅仅是概念层面的解释,更重要的是深入分析了每个要素存在的必要性及底层原理。对于喜欢钻研的同学或是在业界工作的工程师甚至架构师都是非常好的学习资源。
尽管我在业界有多年的开发设计经验,依然从书中学到很多实用的知识。作者PaulE.McKenney用深入浅出地方式将自己在并行编程领域数十年的经验归纳在这五百多页中。译者谢宝友和鲁阳在系统编程上有着扎实的功底,用流畅的语言将本书翻译给广大国内读者。这是一本难得的技术好书!
——VoltDB研发部总监石宁
并行编程并没有那么难,如果你花点时间在这本书和它里面的小问题上的话。
——Linux内核RCU代码贡献者冯博群
Paul是Linux了不起的黑客,也是Linux社区RCU模块的领导者和维护者。他的著作《IsParallelProgrammingHard,And,IfSo,WhatCanYouDoAboutIt?》首版在9年前就发布了。本书主要陈述了在适应多核硬件下提升并行软件的扩展性,避免由于锁竞争所引起的产品性能急剧下降,以及开展多核系统的设计、优化工作。
Paul所维护的RCU模块在Linuxkernel各个子系统中被大量应用,是保障kernel扩展性的基础技术,没有RCU就没有Linux现在优秀的多核性能和扩展性;在并行计算方面,Paul对于锁、RCU、SMP、NUMA、内存屏障等并行技术有深刻的了解,兼具近20年解决问题的实践经验。中兴同仁翻译此书,对于提升我国开源系统软件的设计水平和开发高端产品,均有重大意义。
——中国开源软件推进联盟主席陆首群
宝友的“自学成才”路径一直很让我印象深刻,贡献及收获在中兴这样一个正规军遍布的大型通讯上市企业,并通过一年的努力帮助中兴在开源社区提升代码贡献率和质量,又再次让我竖起大拇指!不忘初心的工程师梦想、学术上的坚持,以及职业生涯中的成就,宝友身上的这些闪光的品质都是怀揣梦想的年轻一代工程师们学习的榜样。
——Linaro全球执行副总裁大中华区总经理郭晶
在多核处理器已经成为主流计算架构的今天,理解和掌握并行编程技术,对于相关软件开发人员来说至关重要。《深入理解并行编程》一书系统讲述了并行计算的要点和难点,堪称经典,是入门和学习并行编程的不二推荐。
——LinuxIMX平台维护者ShawnGuo
这本书举重若轻地将并行编程涉及的软、硬件各个方面的基本原理透彻地呈现在读者面前,相信读者研读和实践后可以对并行编程有疱丁解牛之感。
——Linaro资深内核工程师聂军
《深入理解并行编程》全方面讲述了高速缓存、内存屏障、锁、RCU、并发性、实时性等知识,如同少林寺的“洗髓经”,是迈向“武林高手”的必修内功,值得对并行编程感兴趣的计算机从业者、尤其是操作系统底层软件从业者细读。
——RedHat资深Linux内核工程师庞训磊
并行编程一直是程序设计的难题,这个难题来源于硬件系统,也来源于人类本身的思维模式。人类的思考模式是线性的,很难做到一心二用,很难在程序设计的过程中自如处理并行化的算法和结构。
此外,并行编程的作用越来越大,AI的涌现和大数据对计算量的要求导致GPU、FPGA及ASIC之类异构计算的兴起。这些异构计算都以并行计算为根基,并行计算很可能成为计算领域的下一个风口。
本书探讨了并行计算的根源。从硬件、锁机制、数据分割和RCU等多个方面,对并行计算的本质和如何应用做了很多分析工作,对读者理解并行计算和提高对并行计算的掌控力有很大的帮助。
——腾讯高级技术专家高剑林