并发的艺术
并发的艺术
Clay Breshears
聂雪军 等译
出版时间:2010年09月
页数:267
“这是一本非常棒的书,从它的名字就可以看出来。虽然你教的可能并不是艺术,但你可以让学生了解一下专家的思维和方法。我在超级计算公司工作过30余年的时间,目前在学术界从事研究也有将近10年的时间了,因此我可以肯定地告诉各位读者,这本书的内容绝对值得一读。”
—— Tom Murphy,Contra Costa大学,计算机科学委员会主席
“终于出现了一本专门介绍并发性的书。本书介绍了大量实用的重要算法,并且采用多种方式对算法进行分析,重点讲解了如何通过各种并行编程技术来提升程序的性能。”
——Mike Pearce,Intel Software Network,并行计算负责人

如果你希望通过并发编程来充分发挥多核处理器的强大功能,那么本书将为你提供所需的理论知识和实际经验。本书是为数不多的几本介绍如何在多核处理器的共享内存模型中实现算法的书籍之一,它并非仅仅介绍一些理论模型或者分布式内存架构。本书详细分析了各种示例程序,这些内容非常有助于你将串行代码转换为并行代码,此外还介绍了如何避免一些常见的错误。

本书的作者是Intel公司的一位资深工程师,他从事并发编程已经有20多年的时间,本书将帮助你:
· 分析在共享内存模型与分布式内存模型之间的编程差异。
· 学习如何设计多线程程序,包括对程序的测试和调优。
· 了解如何最有效地使用各种不同的线程化机制,包括Windows线程、POSIX线程、OpenMP以及Intel Threading Building Blocks。
· 掌握如何实现各种并发算法,包括排序、搜索、图以及其他一些实用的计算。

本书还介绍了如何在算法中实现高可伸缩性,使得算法能够充分发挥将来包含更多核处理器的强大功能。对于开发并行代码算法的程序员来说,本书是必不可少的。
Clay Breshears博士,目前是一位课程设计师,主要从事多核与多线程方面的编程和培训。
  1. 前言
  2. 第1章 并行让程序运行得更快
  3. 你可能会想到的一些问题
  4. 采用线程化方法的4个步骤
  5. 并行算法的背景知识
  6. 共享内存编程与分布式内存编程的比较
  7. 本书采用的并发编程方法
  8. 第2章 是否采用并发
  9. 并发算法的设计模型
  10. 哪些算法不能并行
  11. 第3章 算法正确性证明与性能衡量
  12. 并行算法的验证
  13. 示例:临界区问题
  14. 性能测试(程序的执行情况如何)
  15. 硬件并行性的发展历史
  16. 第4章 多线程程序设计中的8条简单规则
  17. 规则1:找出真正独立的运算
  18. 规则2:在尽可能高的层次上实现并发
  19. 规则3:尽早考虑通过增加处理器核的数量来获得可伸缩性
  20. 规则4:尽可能使用线程安全的库
  21. 规则5:使用正确的多线程模型
  22. 规则6:永远不要假设程序会按照某种特定的顺序执行
  23. 规则7:尽可能使用线程局部存储或者与特定数据相关的锁
  24. 规则8:要敢于对代码进行修改以获得更好的并发性
  25. 小结
  26. 第5章 线程化库
  27. 隐式线程化
  28. 显式线程化
  29. 其他主题
  30. 特定领域的库
  31. 第6章 并行求和与前缀求和
  32. 并行求和
  33. 前缀求和
  34. 选择
  35. 最后的思考
  36. 第7章 映射归约
  37. 并发映射运算
  38. 并发归约运算
  39. 映射归约的应用
  40. 映射归约作为一般性并发
  41. 第8章 排序
  42. 冒泡排序
  43. 奇偶换位排序
  44. 希尔排序
  45. 快速排序
  46. 基数排序
  47. 第9章 搜索
  48. 未排序的数据序列
  49. 二分搜索
  50. 第10章 图算法
  51. 深度优先搜索
  52. 最短路径问题
  53. 最小生成树
  54. 第11章 线程化工具
  55. 调试器
  56. 性能工具
  57. 其他主题
  58. 再接再厉
  59. 术语表
  60. 照片说明
书名:并发的艺术
作者:Clay Breshears
译者:聂雪军 等译
国内出版社:机械工业出版社
出版时间:2010年09月
页数:267
书号:978-7-111-30938-3
原版书出版商:O'Reilly Media
Clay Breshears
 
Dr. Clay Breshears has been with Intel Corporation since September 2000. He started as a senior
parallel application engineer at the Intel Parallel Applications Center in Champaign, Illinois,
implementing multithreaded and distributed solutions in customer applications. Clay is
currently a courseware architect, specializing in multicore and multithreaded programming
and training. Before joining Intel, Clay was a research scientist at Rice University helping
Department of Defense researchers make the best use of the latest High Performance
Computing (HPC) platforms and resources. Clay received his Ph.D. in computer science from
the University of Tennessee, Knoxville, in 1996, but he has been involved with parallel
computation and programming for over 20 years; six of those years were spent in academia at
Eastern Washington University and the University of Southern Mississippi.
 
 
封面的图片是一张小麦收割场景的鸟瞰图,来自Getty Images公司。