多核程序设计技术
2007-3
电子工业出版社
阿克特
351
李宝峰,富弘毅,李韬
无
本书从原理、技术、经验和工具等方面为读者提供关于多核程序设计技术的全方位解释。本书由三大部分组成:第一部分包括第1~4章,介绍软件多线程的内容;第二部分包括第5章和第6章,其中讨论用于编写并行程序的常用编程API:第三部分包括其余五章关于多核程序设计的内容,讲述常见并行程序设计问题及解决方法(第7章)、多线程应用程序的调试技术(第8章)、单核与多核处理器基本原理(第9、10章)和所需的Inter公司的软件开发辅助工具(第11章)。 本书作者都是长期供职于Inter公司的资深软件工程师和结构师,书中融入了他们自己丰富的软硬件开发经验,可以为面向多核体系结构进行并行程序设计的开发人员提供巨大的帮助。不论对从未接触过并行程序设计的开发人员,还是转型面向多核体系结构进行并行程序设计的开发人员来讲,本书都是一本难得的参考书。
第1章 多核体系结构概述1.1 促成软件并发的因素1.2 并行计算平台1.3 “性能”解析1.4 本章要点第2章 多线程技术概述2.1 线程的定义2.2 线程的层次2.3 线程创建之后的相关行为2.4 应用程序设计模型与多线程技术2.5 虚拟环境:虚拟机和虚拟平台2.6 本章要点第3章 并行程序设计的基本概念3.1 多线程设计3.2 并行程序设计人员面临的挑战3.3 并行程序设计模式3.4 误差扩散问题:一个具有启发意义的例子3.5 本章要点第4章 多线程和并行程序设计结构4.1 同步4.2 临界段4.3 死锁4.4 同步原语4.5 消息4.6 流控制相关的概念4.7 与实现相关的多线程特征4.8 本章要点第5章 线程API5.1 微软Windows的线程API5.2 微软.NET框架的线程API5.3 POSIX线程5.4 本章要点第6章 OpenMP?:一种可移植的多线程解决方案6.1 将循环多线程化所面临的挑战6.2 降低线程开销6.3 提高程序性能的设计方法6.4 OpenMP库函数6.5 OpenMP环境变量6.6 编译6.7 调试6.8 性能6.9 本章要点第7章 常见并行程序设计问题的解决方法7.1 线程过多7.2 数据竞争、死锁和活锁7.3 竞争激烈的锁7.4 非阻塞算法7.5 线程安全函数和库7.6 存储问题7.7 cache相关的问题7.8 避免IA-32上的流水线停顿7.9 面向高性能的数据组织7.10 本章要点第8章 多线程调试技术8.1 通用调试技术8.2 Windows多线程程序的调试8.3 使用GDB进行多线程调试8.4 本章要点第9章 单核处理器基础9.1 处理器体系结构基础知识9.2 超标量结构与EPIC结构的对比9.3 本章要点第10章 面向Intel?多核处理器的多线程技术10.1 基于硬件的多线程技术10.2 超线程技术10.3 多核处理器10.4 多个处理器之间的交互10.5 功耗10.6 多核处理器体系结构未来发展趋势10.7 本章要点第11章 Intel?软件开发产品11.1 概述11.2 Intel?线程检测器11.3 Intel编译器11.4 Intel?调试器11.5 Intel库11.6 Intel? VTuneTM性能分析器11.7 Intel?线程直方统计器11.8 MPI程序设计11.9 本章要点术语表参考文献索引
《多核程序设计技术:通过软件多线程提升性能》作者都是长期供职于Intel公司的资深软件工程师和结构师,书中融入了他们自己丰富的软硬件开发经验,可以为面向多核体系结构进行并行程序设计的开发人员提供巨大的帮助。不论对从未接触过并行程序设计的开发人员,还是转型面向多核体系结构进行并行程序设计的开发人员来讲,《多核程序设计技术:通过软件多线程提升性能》都是一本难得的参考书。
无