目录:
应用线程化
本章节将涵盖并行性能领域的常见主题,同时也会偶尔涉及针对 API 的问题。
1-1 - 预测与测量并行性能
1-2 - 循环修改增强数据并行性能
1-3 - 粒度与并行性能
1-4 - 负载平衡与并行性能
1-5 - 避免或消除人为相依性有利于揭示并行性
1-6 - 任务取代线程工具
1-7 - 发掘有序数据流的数据并行性
同步处理
本章节将主要谈论采用哪些技术来降低同步处理对性能的负面影响。
2-2 - 采用线程化 API 提供的同步例程替代手工编码
2-3 - 选择合适的同步原语最大限度减少开销
2-4 - 尽量使用非阻塞锁
内存管理
线程为内存管理开辟了另外一个不容忽视的新空间。本章节将涵盖对于多线程应用至关重要的内存问题。
3-1 - 避免线程之间发生堆冲突
3-2 - 采用线程本地存储减少同步开销
3-3 - 检测线程化应用的内存带宽饱和度
3-4 - 避免并识别线程间伪共享
编程工具
本章节将说明如何利用英特尔软件产品开发、调试和优化多线程应用。
4-1 - 借助英特尔® 编译器实现自动并行
4-2 - 英特尔® 数学核心函数库并行性
4-3 - 线程化与英特尔® IPP 高效多媒体函数库
2010 年 3 月 9 日,位于英特尔® 软件网络上的并行编程社区发布了一系列技术文章,旨在为软件开发人员提供应用线程化、同步处理、内存管理和编程工具领域的最新技术信息。我们期待看到您提出自己的想法和建议,希望您能参与英特尔® 并行架构线程化论坛的讨论,提出您的疑问。
1.1 动因
《英特尔® 多线程应用开发指南》的目标是为开发人员在基于英特尔® 架构的对称多处理器(SMP)和/或支持英特尔® 超线程(HT)技术的系统上,开发高效多线程应用提供一些有用的指导。应用开发人员可以在本文建议下提高当前及未来支持英特尔® 处理器的 SMP 架构上的多线程处理性能,最大限度减少意外出现的性能故障。
本指南针对如何改进多线程性能提供了各种建议。文中有意保留了通过优化硬件提高线程性能的方法。但在本指南的更新版中将涵盖此硬件优化法,为那些愿意牺牲可移植性换取更高性能的开发人员提供一个参考。
1.2 前提条件
读者应具备使用高级编程语言(最好是 C、C++ 和/或 Fortran)编程的经验,尽管本文所提供的许多建议同样适用于 Java、C# 和 Perl 等编程语言。同时,读者还必须了解基本并行编程知识,熟悉一种以上线程化方法,最好是 OpenMP*、POSIX 线程(又名 Pthreads)或 Win32* 线程化 API。
1.3 适用范围
本指南的主要目的是为开发人员在英特尔® 平台上开发多线程应用提供快速设计和优化参考指导。本文不应用作多线程教材,也不是向英特尔平台实施迁移的指南。
1.4 结构
《英特尔® 多线程应用开发指南》涵盖从适用于所有多线程方法的一般性建议到英特尔® 软件产品在应对 API 有关问题时的使用指南在内的各类主题。涉及每个主题的文章之间互相独立,可用作单独的参考文章。所有主题可分为四类:应用线程化、同步处理、内存管理与编程工具。尽管每个主题是对各个关键线程问题的独立探讨,这些主题之间却会形成内容互补。读者可以在阅读这一系列文章时交叉参考相关主题。
1.5 作者与编者
参与《英特尔® 多线程应用开发指南》的撰稿、审核以及编辑工作的英特尔工程师和技术专家如下:Henry Gabb、Martyn Corden、Todd Rosenquist、Paul Fischer、Julia Fedorova、Clay Breshears、Thomas Zipplies、Vladimir Tsymbal、Levent Akyil、Anton Pegushin、Alexey Kukanov、Paul Petersen、Mike Voss、Aaron Tersteeg 和 Jay Hoeflinger。
1.6 并行编程人员有关本指南的意见
Tom Spyrou's在以编程工具为主题的文章《采用英特尔® Parallel Amplifier 解决线程不平衡问题》中提出了 有关如何优化线程间工作任务分配的建议,并在《检测线程化应用的内存带宽饱和度》中分享了他在发现主内存带宽导致程序瓶颈时的检测经历。
Dmitriy Vyukov 在《避免并识别线程间伪共享》中提出了有关伪共享的想法。
Asaf Shelly 在《避免线程间出现堆争用情况》中探讨了如何通过为每条线程分配属于自己的堆来正确实施内存分配。

评论
很不错,请问是否有纸质书籍出版?
很抱歉,目前只有电子版本的提供。
不错不错,好东西
非常不错。好资料。
好资料。能有全部下载。
下载链接呢?
哈! 好东西大家抢啊
看下
能打包下载?
好东西,可怎么没有打包下载呢,或者搞个pdf文档、chm文档之类的,方便经常看看啊