多核多线程技术

当前位置:首页 > 网络编程 > 编程语言与程序设计 > 多核多线程技术

出版社:英特尔亚太研发有限公司、 英特尔软件学院教材编写组 上海交通大学出版社 (2011-01出版)
出版日期:2011-1
ISBN:9787313068705
页数:265页

章节摘录

插图:7.2.2Windows操作系统中对线程概念的定义下面开始介绍线程的一些基本概念。与进程相似,线程也是由两个部分构成的:(1)线程的内核对象。操作系统用它来对线程实施管理。(2)线程堆栈。它用于维护线程在执行代码时需要的所有函数参数和局部变量。线程总是在某个进程环境中创建的,而且它的整个寿命期都在该进程中。这意味着线程在它的进程地址空间中执行代码,并且在进程的地址空间中对数据进行操作。因此,如果在单进程环境中,有两个或多个线程正在运行,那么这些线程将共享单个的地址空间。这些线程能够执行相同的代码,对相同的数据进行操作。这些线程还能共享内核对象句柄,因为句柄表依赖于每个进程而不是每个线程存在。可以预见,进程使用的系统资源会比线程多得多,因为进程需要更多的地址空间。为进程创建一个虚拟地址空间需要许多系统资源,系统中要保留大量的记录,这要占用大量的内存。另外,由于.exe和.dll文件要加载到一个地址空间,因此也需要文件资源。而线程使用的系统资源要少得多,实际上,线程只有一个内核对象和一个堆栈,保留的记录很少,因此只需要很少的内存。线程用于描述进程中的运行路径,每当进程被初始化时,系统就要创建一个主线程。对于许多应用程序来说,这个主线程是应用程序需要的唯一线程,不过,进程能够创建更多的线程来帮助执行他们的操作。设计一个拥有多线程的应用程序,就会更充分地利用系统资源,扩大该应用程序的功能,比如,当你的计算机拥有两个CPU时,你的应用程序中有两个线程,那么两个CPU都将处于繁忙状态,这就提高了程序运行的效率。

前言

在多核体系结构出现以前的近20年里,程序员们已经习惯了由硬件的发展来自然而然地获得程序性能的提高。即,每当出现一代新的体系结构平台,原有的程序无需修改,或者只需很少的修改,就可以轻而易举地获得由摩尔定律所带来的性能提升。但是,三个主要因素的日益凸显,使得这一免费午餐即将走到尽头:第一,系统建造者遇到了难以克服的物理阻碍——太多的发热量、太多的能量消耗以及过多的能量泄露,阻止了通过进一步提高时钟频率来提升性能的方法;第二,单个芯片上可以集成的引脚(pin)数目以及带宽限制,都意味着处理器与内存性能之间的差异只会越来越大;第三,为了解决以上两个问题,所在处理器体系结构上做的妥协将不足以使得单个处理器核心承担更高性能的计算需求。因此,要想在现在的多核体系结构上获得性能的提升,必须在原有的软件基础上作出大幅度的革新。这其中最主要的是利用多线程技术,充分利用好单个芯片上的多个计算核心,提高程序整体的计算吞吐量。虽然在多核处理器出现之前,它一直属于一种比较深奥的理论,但多线程技术的出现已经有了几十年的历史。迄今为止,很多程序员都曾经在一些常见的多线程程序设计问题上经历过挫折。如何解决好这些问题?将是我们在本书中要与读者们共同探讨的重要问题。

书籍目录

1 多核技术导论1.1 微处理器发展史1.1.1 计算机与微处理器1.1.2 4位、8位与16位微处理器1.1.3 32位微处理器1.2 并行计算机1.2.1 并行处理思想与弗林(Flynn)分类1.2.2 超级计算机1.3 片上多核处理器架构1.3.1 多核芯片1.3.2 片上多核处理器体系结构1.3.3 典型多核芯片架构1.4 操作系统对多核处理器的支持方法1.4.1 调度与中断1.4.2 输入输出系统1.4.3 存储管理与文件系统1.4.4 典型支持多核的操作系统2 多线程并行程序性能分析方法综述2.1 性能调优周期2.1.1 搜集性能数据2.1.2 分析数据并定位性能瓶颈2.1.3 加速比性能定律2.1.4 解决性能瓶颈2.1.5 实现优化措施2.1.6 测试2.2 使用Intel Tune进行性能分析2.2.1 性能分析器功能与使用方法2.2.2 性能分析器实验2.3 MKL数学核心函数库2.3.1 MKI。数学核心函数库功能与特性2.3.2 MKL数学核心函数库性能2.3.3 MKL数学核心函数库实验2.4 Thread Checker线程检查器2.4.1 线程检查器功能与使用2.4.2 线程检查器实验2.5 Thread Profiler线程档案器2.5.1 线程档案器功能与使用2.5.2 线程档案器实验3 Intel多核处理器上的性能调优方法3.1 体系结构无关的性能调优方法3.1.1 消除循环不变量3.1.2 减少过程调用3.1.3 消除不必要的内存存取3.2 阻碍优化的因素3.2.1 编译优化选项3.2.2 变量别名3.2.3 函数调用的边际效应3.3 体系结构无关优化的小结3.4 深入理解Intel多核处理器体系结构3.4.1 Intel多核处理器微体系结构的显著特性3.5 Intel多核处理器体系结构相关的优化3.5.1 Intel多核处理器微体系结构中对代码优化的支持4 多线程编程方法综述4.1 线程的基本概念4.1.1 线程与进程的区别4.1.2 用户级线程、核心级线程和硬件线程4.1.3 线程的生命周期4.2 线程的同步4.2.1 竞争条件4.2.2 临界区4.2.3 信号量4.2.4 锁4.2.5 条件变量4.2.6 线程的本地存储4.2.7 介绍TLS的特性和使用方法4.3 多线程编程模型4.3.1 流水线4.3.2 工作组4.3.3 客户/服务器方式4.4 多线程编程的原则及要点4.4.1 静态负载平衡4.4.2 动态负载平衡4.4.3 负载平衡的难题4.4.4 串行化方面的难题5 多线程程序设计中的常见问题及解决途径5.1 线程过多5.2 数据竞争、死锁和活锁5.2.1 数据竞争5.2.2 死锁和活锁5.3 竞争激烈的锁5.3.1 优先级倒置5.3.2 锁竞争激烈的解决方法5.4 非阻塞算法5.4.1 比较并交换5.4.2 原子变量类5.4.3 非阻塞算法的介绍5.4.4 ABA问题5.4.5 cache线乒乓现象5.4.6 存储空间回收问题5.4.7 一些建议5.5 线程安全函数和库5.5.1 理解可重入与线程安全5.5.2 函数可重入化5.5.3 函数线程安全化5.6 存储问题5.6.1 带宽5.6.2 cache的利用5.6.3 存储竞争5.7 Cache相关问题5.7.1 伪共享5.7.2 存储一致性5.7.3 当前IA-32体系结构5.7.4 Itanium体系结构5.7.5 高级语言5.8 避免IA-32上的流水线停顿5.9 面向高性能的数据组织6 Unix/Linux多线程编程6.1 POSIX的一些基本知识6.2 POSIX线程库6.2.1 创建线程6.2.2 分离和接合线程6.2.3 退出和取消线程6.2.4 用户级线程和内核级线程6.2.5 线程的属性6.2.6 线程安全函数6.2.7 线程特定数据……

编辑推荐

《多核多线程技术》:英特尔软件学院系列课程培训教材

作者简介

《多核多线程技术》就多核体系结构、芯片发展与系统软件,多性能并行程序,多线程程序的性能调优方法,多线程编程方法以及编程中的常见问题等作了综合讲述,处处体现了多线程编程理念与综合应用能力的培养。全书深入浅出,适合广大程序员和IT从事人员使用。

图书封面


 多核多线程技术下载 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     第一,排版相当不专业对于编程书籍,代码的排版应采用等宽字体。这本书全部用的Times New Roman字体,把代码摧残得简直不能看。有等宽字体代码强迫症的人千万别读了,除了想把书撕烂,你不会想看下去。代码排版不好只有一个原因:出版方不负责。哪怕是委托第三方排版,出版社最后在审校定稿时也应指出代码用等宽字体。另外,最小的标题加粗,次标题不加粗(例如,2.3 的标题不加粗,2.3.1的标题加粗),这顺序是不是弄反了?排版出来难道不预览一下效果的吗?看起来挺专业的一本书,怎么在非技术层面如此不用心?!你们软件学院看的英文原版书也是这样不用心排版的吗?我为什么那么纠结排版?首先,看代码的人都知道,非等宽字体的代码非常难看,可读性很差。其次,这本书才265页,竟然售价49.5元。标价如此高,非技术性的排版都做不好,这不是忽悠读者是什么?花了那么多钱,看着代码、变量名、函数名都很不舒服,感觉非常郁闷。第二,内容先是上海交通大学出版社,然后是英特尔软件学院系列课程,还是英特尔亚太研发有限公司组编、英特尔软件学院教材编写组 编。看着这些你是否觉得这是一本讲解多线程技术的权威书籍? 呵呵!我原以为英特尔软件学院的书在遣词造句方面会比较斟酌,起码符合中文习惯。事实并非如此……我一边看,一边改。我原以为英特尔软件学院的老师们会把复杂的内容讲得浅显易懂,事实并非如此……看着中文我差不多知道英文的用词和句式。原来这种教材也只是照字面翻译。另外,如果是拼凑的书,在文章结构上就不要再抱有什么幻想了。对本书比较失望。

精彩短评 (总计8条)

  •     内容比较少,但是很新。买了之后,现在看,居然涨价了:)
  •     试验很多,所以要准备好相应的平台和软件。对多处理器和多线程的理论分析多在Linux角度,而试验多在Win平台上面。教材整体还是不错,不过在有的概念上面还是比较含糊。
  •     书介绍的还是挺基础的,作为教材正好。
  •     宣传得太好了,实际内容很一般,不值得购买。有上当受骗的感觉
  •     语焉不详,结构错乱。
  •     说是Intel教育学院教材,实际上内容非常粗糙简单,在Intel工具库没有免费开放的现实,网上又找不到合适的资料时,把全部希望寄托在这本不靠谱的书上,简直就是天大的玩笑!想知道并行开发的还不如买NVD的《大规模并行处理器编程实战》或者《并行计算理论》这些书……简直坑大发了!
  •     只挑了需要的几章看,真是实在看不下去了。
  •     质量还说的过去,不过书不算厚,价钱感觉有点偏贵,可能跟内容有关吧,都是一些比较新而且不错的内容
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024