搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Intel Threading Building Blocks编程指南
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111242314
  • 作      者:
    仁达敬(James Reinders)著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2009
收藏
编辑推荐
  “串行计算的时代已经结束了……本书很好地介绍了线程构建模块库,无论是初学者还是专家,都能通过本书清晰地理解并发的复杂性。”
  ——Charles E.Leiserson,麻省理工大学计算机与人工智能实验室
  “我们通常习惯说,首先要使程序正确,然后再提高程序的速度。现在,我们无需这么做。TBB使我们在正确地设计程序的同时,还能提升Maya前台视图的速度。本书将向你展示如何通过在代码中使用TBB来获得最大的性能提升。”
  ——Martin Watt,Autodesk公司高级软件工程师
   本书介绍了如何通过Intel线程构建模块来最大限度地利用多核处理器的强大性能。TBB是一个可移植的C++库,能够运行在Windows、Linux、Macintosh以及uNIx等系统上。本书阐述了在多线程编程中的关键任务以及如何通过TBBE上可移植的和稳定的方式来实现它们。书中包含了大量的示例和丰富的资料,给出了常见的使用模式,揭示了TBB中的精彩之处,并且还提供了一些指导意见,用来在不同的并行编程方式上进行选择以获得最佳的性能。本书的内容包括:
   ?  充分利用多核系统中并行语义的简单且高效的方式。
  ?  编写并行程序的关键问题。
  ?  多线程中的常见模式。
  ?  用于高效处理的线程安全容器。
  ?  任务调度。
  ?  在线程环境中的内存管理。
  本书说明了TBB能够比原始线程更方便地在c++中指定并行语义,同时还可以提升程序的性能、可移植性以及可伸缩性。在开始学习TBB时,并不要求具备并行编程或者多核处理器的经验。任何希望在多核系统上编写软件的程序员,都能够从本书中获益。
展开
作者简介
  James Reinders(仁达敬),Intel软件开发产品部门的首席讲师。他是一位高级工程师,于1989年加入Intel公司。他在许多项目上做出了贡献,包括世界上第一台万亿次浮点运算超级计算机(ASCI Red)以及iWarp、Pentium Pro、Pentium Ⅱ、Itanium、Pentium 4等处理器上的编译器和架构工作。他在处理器架构、编译器优化、并行计算机架构以及为软件开发人员编写工具产品上有着多年的经验。

  Reinders还是WWW.goparallel.com网站上月刊“The Gauntlet”的专栏编辑,他还编写了《VTune Performance Analyzer Essentials》(Intel Press)一书,并参与编写了《Multi—Core Programming》(Intel Press)一书。
展开
内容介绍
  介绍了如何通过Intel线程构建模块来最大限度地利用多核处理器的强大性能。TBB是一个可移植的C++库,能够运行在Windows、Linux、Macintosh以及UNIX等系统上。《Intel Threading Building Blocks编程指南》阐述了在多线程编程中的关键任务以及如何通过TBB以可移植的和稳定的方式来实现它们。书中包含了大量的示例和丰富的资料,给出了常见的使用模式,揭示了TBB中的精彩之处,并且还提供了一些指导意见,来在不同的并行编程方式上进行选择以获得最佳的性能。《Intel Threading Building Blocks编程指南》的内容包括:
  · 充分利用多核系统中并行语义的简单且高效的方式。
  · 编写并行程序的关键问题。
  · 多线程中的常见模式。
  · 用于高效处理的线程安全容器。
  · 任务调度。
  · 在线程环境中的内存管理。
  《Intel Threading Building Blocks编程指南》说明了TBB能够比原始线程更方便地在C++中指定并行语义,同时还可以提升程序的性能、可移植性以及可伸缩性。在开始学习TBB时,并不要求具备并行编程或者多核处理器的经验。任何希望在多核系统上编写软件的程序员,都能够从《Intel Threading Building Blocks编程指南》中获益。
展开
精彩书评
  “串行计算的时代已经结束了……《Intel Threading Building Blocks编程指南》很好地介绍了线程构建模块库,无论是初学者还是专家,都能通过〈Intel Threading Building Blocks编程指南》清晰地理解并发的复杂性。”
  ——Charles E.Leiserson,麻省理工大学计算机与人工智能实验室
  “我们通常习惯说,首先要使程序正确,然后再提高程序的速度。现在,我们无需这么做。TBB使我们在正确地设计程序的同时,还能提升Maya前台视图的速度。〈Intel Threading Building Blocks编程指南》将向你展示如何通过在代码中使用TBB来获得最大的性能提升。”
  ——Martin Watt,Autodesk公司高级软件工程师
展开
精彩书摘
  第1章 为什么需要线程构建模块
  简介
  多核处理器正在变得日益普及,而利用现有的线程软件包来编写一个简单的paralle_for循环却是一项乏味的工作。要编写一个高效的可扩展(scalable)程序则更为困难。可扩展性体现的是这样的概念:随着处理器中核数量的增加,程序的性能能够得到相应的提升。
  随着在新推出的处理器中有着越来越多的核,使用线程构建模块来编写程序将帮助你从中获得许多好处。
  线程构建模块是一个用来支撑可扩展并行编程的库,它是用标准的C++代码实现的。它不需要专门的语言或者编译器。线程构建模块可以几乎应用于所有处理器或者操作系统上的任何一种c++编译器中,这种强大的功能对于程序员来说是非常有吸引力的。
  线程构建模块通过模板来提供常见的并行迭代模式,这使得程序员即使在不具备同步、负载均衡以及快存优化等专门知识的情况下,也能够从多核处理器中获得性能提升。使用线程构建模块编写的程序既能够运行在单核处理器的系统上,也能够运行在多核处理器的系统上。线程构建模块促进了可扩展数据并行编程技术的发展。此外,它还支持嵌套并行,因此你可以很容易地从小型的并行组件中构建出大型的并行组件。在使用这个库时,你需要指定的是任务,而不是线程,然后再通过这个库以高效的方式将任务自动映射到线程。因此,与裸线程(Raw Thread)相比,线程构建模块能够更方便地实现并行,并获得更优的结果。
展开
目录
致中文版读者
InteI线程构建模块首席开发师的笔记
前言
第1章为什么需要线程构建模块
简介
优势

第2章 并行思维
并行思维的要素
分解
扩展性与加速性
什么是线程
互斥和锁
正确性
抽象
模式
直觉思维

第3章 基本算法
库的初始化和结束
循环的并行化
递归区间的定义
对循环的小结

第4章 高级算法
用于流的并行算法

第5章 容器
concurrent_queue
concurrent_vector
concurrent_hash_map

第6章 可扩展的内存分配
限制
内存分配中的若干问题
内存分配器
替换malloc、new和delete

第7章 互斥
何时使用互斥
Mutexes
互斥量
原子操作
第8章 计时

第9章 任务调度器
基于任务的编程在什么情况下是不合适的
远远好于本地裸线程
初始化库是必需的
斐波纳契(Fibonacci)数列示例
任务调度简介
任务调度的工作原理
任务重现模式
高效利用调度器
任务调度器的接口
任务调度器小结

第10章 成功的关键因素
通向成功的关键步骤
松弛串行执行
方法和库的安全并发性
调试版本与发布版本
为了提高效率
支持调试功能
与其他线程软件包混合使用
命名约定

第11章 编程示例
Aha!
其他一些关键点
paralleI_for示例
生命游戏
paralleI_reduce示例
统计字符串:使用concurrent_hash_map
Quicksort:可视的任务密取
一种更优的矩阵乘法(Strassen算法)
高级任务编程
网络数据包处理流水线
内存分配
游戏线程示例
物理相互作用的代码和更新的代码
OpenDynamicsEngine

第12章 发展历程及相关项目

语言
编译器指令
泛型编程
快存
时间分片的开销
Lambda函数简介
阅读参考
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证