多核程序设计技术--通过软件多线程提升性能

百科

《多核程序设计技术--通过软件多线程提升性能》是2007年电子工业出版社出版的一本图书,作者是Shame来自em Akhter 。

  • 中文名 多核程序设计技术--通过软件多线程提升性能
  • 出版社 电子工业出版社
  • 原版名称 Multi-core Programming:Increasing Performance through Software Multi- threading
  • ISBN 9787121038716

基本信息

  来自原书名:Mult六系而慢毫i-core Pro希孔早息下记止gramming:Increasing Performance throu补课雷皇娘苏方对财gh Software Multi- threading

  作者:(孟加拉)Shameem Akhter (美)Jason Roberts [作译者介绍]

  译者:李宝峰富弘毅李韬

  出版社:电子工业出版社

  ISBN:9787121038716

  上架时间:200360百科7-4-2

  出耐范真味批谁部神国有版日期:2007 年3月

  开本:16开

  页码:351

  版次:1-1

内容简介

  软件开发人员不能再单靠提高时钟频率的他护现西方式来加速单线程应用程序的性能了,现在他们必须学会如何在多线程环境下设计应用程序,只有这样他们才能更具竞争力。多核体系结构在单个处理器内封装了两个或更多的处理器"执行核"(或者说计算引擎),只要软件设计合题立活程可益跑倒请促标理,就能够支持多个软件线程的完全并行执行。超线程技术为在单个核上执行多个线程提供了途径。.

  本书旨在帮助软件开发人员编写面向intel多核体系结构的高性能多线程代码四放时止越行露则知突处,同时避免发生一些多线程应用程序中常见的并行程序设计问题。.

  ·并行程序设计和多线程基钢据担重杨车罗低

  ·利用线程api进行程序设计

  ·openmp:可移植的并行方案

  ·常见并行程序设计问题的解移建晚讨星触决方法

  ·多线程应用程序的调试和测试

  ·多线程软件开发工具...

目录

  第1章 多核体系结构概述. 1

  1.1 促成软件并发的因素 2

  来自1.2 并行计算平台 5

  1.2.1 微处理器中的并行计算 7

  1.2.2 超线程技术与多核体系结构的联系与区别 360百科9

  1.2.3 单核与多核平台上的多线程技术对比 11

  1.3 "性能"解析 14

  1.3.1 amdahl定律 14

  1.3.2 gustafson定律:增长式回报 18

  1.4 本章要点 19

  第2章 多线程技术概述 21

  2.1 线程的定义 22

  2.2 线程的层次 22

  2.2.1 操作系统之上的线程 23

  2.2.2 操作系统倍害衣适传范内部的线程 26

  2.2.3 硬件上的线程 30

  2.3 宁耐官述线程创建之后的相关行为 31

  2.4 断厂让写应用程序设计模型与多线程技术 32

  2.5 虚拟环境:虚拟机和虚拟平台 33

  2.5.1 运行时虚拟化 33

  .2.5.2 系统虚拟化 33

  2.6 本章要点 36

  第3章 并行程序设计的基本概念 37

  3.1 多线程设计 37

  3.1.1 任务分解 38

  3.1.2 数据分解 39

  3.1.3 数据流分解 40

 圆空 3.1.4 各种分解方式的比较 41

  3.2 并行程序设计人员面临的挑战 42

  3.3 并行程序设计模式 43

  3.4 误差扩散问题:一个具有启发意义的例子 45

  3.4.1 误差扩散算法分析 48

  3.4.2 一种并行误差扩散算法 48

  3.4.3 其他并行误差扩散算法 50

  3.5 本章要点 52

  第4章 多线程和并行程例固序设计结构 53

  4.1 同步 53

  4.2 临界段 55

  4.3 死锁 56

  4.4 同步原语 58

  4.4.1 信号量 58

  4.4.2 锁 61

  击够觉当包当就持4.4.3 条件变量 6空李胶足4

  4.5 消息 66

  4.6 流控制相关的概念 69

  4.6.1 栅栏 69

  4.6.2 栅障 69

  4.7 与实现相关的多线程特征 70

  端诗支重留4.8 本章要点 71

  第游走立值获5章 线程api 72

  5.1 微软windows的线程api 72

  5.1.1 win32/mfc线程api 72

  5.2 微软.net框架的线程api 107

  5.2.1 创建线程 107

  5.2.2 管理线程 111

  5.2.3 线程池 113

  5.2.4 线程同步 119

  5.3 posix线程 122

  5.3.1 创建线程 123

  5.3.2 管理线程 血跟么坏冷燃令125

  5.3.3 线程同步 126

  5.3.4 激发 128

  5.3.5 编译与链接 137

  5.4 本章要点 137

  第6章 op声改纪enmp:一种可移植的多线程解决方案 139

  6.1 将循环多线程化所面临的挑战 141

  进烧棉内到已能6.1.1 循环迭代女脸但础头那并急行转判相关 141

  6.1.2 数据竞渐星福得守也混争 144

  6.1.3 管理出回协共享数据和私有数据.. 145

  6.1.4 循环调度与分块 钢话构低需线147

  6.1.5 有效地使用归约 151

  6.2 降低线程开销 154

  6.2.1 任务分配区 156

  6.3 提高程序性能的设计方法 157

  6.3.1 使用barrier和nowait 157

  6.3.2 单线程和多线程交错执行 159

  6.3.3 数据的copy-in和copy-out 160

  6.3.4 保护共享变量的更新操作 162

  6.3.5 intel openmp任务队列扩展 165

  6.4 openmp库函数 167

  6.5 openmp环境变量 169

  6.6 编译 169

  6.7 调试 171

  6.8 性能 173

  6.9 本章要点 175

  第7章 常见并行程序设计问题的解决方法 176

  7.1 线程过多 176

  7.2 数据竞争、死锁和活锁 179

  7.2.1 死锁 182

  7.3 竞争激烈的锁 185

  7.3.1 优先级倒置 186

  7.3.2 锁竞争激烈的解决方法 187

  7.4 非阻塞算法 190

  7.4.1 aba问题 192

  7.4.2 cache块乒乓现象 194

  7.4.3 存储空间回收问题 194

  7.4.4 一些建议 195

  7.5 线程安全函数和库 196

  7.6 存储问题 197

  7.6.1 带宽 197

  7.6.2 cache的利用 198

  7.6.3 存储竞争 201

  7.7 cache相关的问题 204

  7.7.1 伪共享 204

  7.7.2 存储一致性 208

  7.7.3 当前的ia-32体系结构 209

  7.7.4 itanium体系结构 211

  7.7.5 高级语言 214

  7.8 避免ia-32上的流水线停顿 215

  7.9 面向高性能的数据组织 216

  7.10 本章要点 217

  第8章 多线程调试技术 219

  8.1 通用调试技术 219

  8.1.1 在设计时考虑调试 220

  8.1.2 使用trace缓冲扩展应用程序 222

  8.2 windows多线程程序的调试 228

  8.2.1 threads窗口 229

  8.2.2 跟踪点 229

  8.2.3 断点过滤 230

  8.2.4 线程命名 231

  8.2.5 综合讨论 232

  8.3 使用gdb进行多线程调试 236

  8.3.1 线程创建通告 237

  8.3.2 获取应用程序中所有线程的列表 237

  8.3.3 设置线程相关的断点 238

  8.3.4 线程间切换 239

  8.3.5 向一组线程发送命令 240

  8.4 本章要点 240

  第9章 单核处理器基础 242

  9.1 处理器体系结构基础知识 242

  9.2 超标量结构与epic结构的对比 249

  9.3 本章要点 250

  第10章 面向intel多核处理器的多线程技术 251

  10.1 基于硬件的多线程技术 251

  10.1.1 intel处理器内的多线程技术 255

  10.2 超线程技术 256

  10.2.1 多处理器技术与超线程技术之间的区别 258

  10.2.2 超线程体系结构 258

  10.3 多核处理器 261

  10.3.1 多核体系结构知识 261

  10.3.2 多处理器与多核处理器的对比 264

  10.3.3 itanium体系结构下的多核处理器 265

  10.4 多个处理器之间的交互 269

  10.4.1 处理器间通信与多线程程序设计 269

  10.5 功耗 271

  10.5.1 功耗公式 272

  10.5.2 降低功耗 273

  10.6 多核处理器体系结构未来发展趋势 274

  10.7 本章要点 276

  第11章 intel软件开发产品 278

  11.1 概述 278

  11.1.1 调研 279

  11.1.2 创建/表达 279

  11.1.3 调试 280

  11.1.4 优化 280

  11.2 intel线程检测器 280

  11.2.1 intel线程检测器的使用 282

  11.2.2 使用提示 283

  11.2.3 使用intel线程检测器检查openmp代码 285

  11.3 intel编译器 285

  11.3.1 openmp 285

  11.3.2 软件推测预计算 291

  11.3.3 编译器优化和cache优化 292

  11.4 intel调试器 293

  11.5 intel库 294

  11.5.1 intel数学核心函数库 294

  11.5.2 intel集成式高性能原函数 295

  11.5.3 使用并行库时的一些并行程序问题 296

  11.5.4 未来发展趋势 297

  11.5.5 intel线程构建模块 297

  11.6 intel vtunetm性能分析器 297

  11.6.1 寻找热点 298

  11.6.2 使用调用图来发现可采用多线程实现的地方 299

  11.6.3 检查负载平衡 300

  11.7 intel线程直方统计器 301

  11.8 mpi程序设计 302

  11.8.1 intel对mpi的支持 303

  11.9 本章要点... 306

标签:
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com