英特尔® 多线程应用开发指南

分类:
目录:

应用线程化
本章节将涵盖并行性能领域的常见主题,同时也会偶尔涉及针对 API 的问题。

同步处理
本章节将主要谈论采用哪些技术来降低同步处理对性能的负面影响。

内存管理
线程为内存管理开辟了另外一个不容忽视的新空间。本章节将涵盖对于多线程应用至关重要的内存问题。

编程工具
本章节将说明如何利用英特尔软件产品开发、调试和优化多线程应用。


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 并行编程人员有关本指南的意见

Dmitriy Vyukov 在《避免并识别线程间伪共享》中提出了有关伪共享的想法

Asaf Shelly 在《避免线程间出现堆争用情况》中探讨了如何通过为每条线程分配属于自己的堆来正确实施内存分配

Clay Breshears 撰写了一篇与《粒度与并行性能》有关的文章《吹雪的艺术》。
如需更全面地了解编译器优化,请参阅优化注意事项.

评论

ericxieforever的头像

很不错,请问是否有纸质书籍出版?

Jeff Zhang (Intel)的头像

很抱歉,目前只有电子版本的提供。

BRUCE C. (Intel)的头像

不错不错,好东西

的头像

非常不错。好资料。

mfj007的头像

好资料。能有全部下载。

yinxueju的头像

下载链接呢?

的头像

哈! 好东西大家抢啊

的头像

看下

yydy1983的头像

能打包下载?

snowolf_007的头像

好东西,可怎么没有打包下载呢,或者搞个pdf文档、chm文档之类的,方便经常看看啊