图书介绍

MPI与OpenMP并行程序设计 C语言版PDF|Epub|txt|kindle电子书版本网盘下载

MPI与OpenMP并行程序设计 C语言版
  • (美)Michael J.Quinn著;陈文光,武永卫等译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302095558
  • 出版时间:2004
  • 标注页数:426页
  • 文件大小:31MB
  • 文件页数:441页
  • 主题词:并行程序-程序设计-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

MPI与OpenMP并行程序设计 C语言版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章动机和历史1

1.1概述1

目 录1

1.2现代科学方法2

1.3超级计算的进化3

1.4现代并行计算机4

1.4.1 Cosmic Cube并行计算机4

1.4.2商品化的并行计算机5

1.4.3 Beowulf系统6

1.4.4先进战略计算计划6

1.5寻找并行性7

1.5.1数据相关图7

1.5.2数据并行性8

1.5.4流水线9

1.5.3功能并行性9

1.5.5计算规模的考虑因素11

1.6数据聚类11

1.7为并行计算机编程13

1.7.1扩展编译器13

1.7.2扩展串行编程语言14

1.7.3增加并行编程层14

1.7.4创造一个并行语言15

1.7.5现状16

1.8本章小结16

1.9主要术语16

1.10参考文献17

1.11练习题18

16.9本章小结 318

2.2互连网络21

第2章并行体系结构21

2.1概述21

2.2.1共享介质与开关介质22

2.2.2开关网络的拓扑结构22

2.2.3二维网格形网络23

2.2.4二叉树形网络23

2.2.5超树形网络24

2.2.6蝶形网络25

2.2.7超立方体网络26

2.2.8混洗-交换网络27

2.2.9小结28

2.3阵列处理机29

2.3.1体系结构与数据并行29

2.3.2阵列处理机的性能30

2.3.3处理器互连网络31

2.3.4处理器的启动与阻塞32

2.3.6阵列处理机的缺点33

2.4多处理器33

2.3.5其他体系结构特点33

2.4.1集中式多处理器34

2.4.2分布式多处理器35

2.5多计算机38

2.5.1非对称多计算机39

2.5.2对称多计算机40

2.5.3怎样的模型对商用集群41

来说是最佳的41

2.5.4集群与工作站网络之间42

的差异42

2.6弗林分类法42

2.6.3 MISD43

2.6.1 SISD43

2.6.2 SIMD43

2.7本章小结45

2.6.4 MIMD45

2.8主要术语46

2.9参考文献47

2.10练习题47

第3章并行算法设计50

3.1概述50

3.2任务/通道模型50

3.3 Foster的设计方法论51

3.3.1划分52

3.3.2通信53

3.3.3聚集54

3.3.4 映射55

3.4.1简介58

3.4边界值问题58

3.4.2划分59

3.4.3通信59

3.4.4聚集与映射60

3.4.5分析60

3.5找出最大值60

3.5.1简介60

3.5.2划分61

3.5.3通信61

3.5.4聚集与映射64

3.6.1简介65

3.6.2划分65

3.5.5分析65

3.6 n-body问题65

3.6.3通信66

3.6.4聚集与映射67

3.6.5分析67

3.7增加数据输入68

3.7.1简介68

3.7.2通信69

3.7.3分析69

3.8本章小结70

3.9主要术语70

3.10参考文献71

3.11练习题71

4.2消息传递模型74

4.1概述74

第4章消息传递编程74

4.3 MPI接口76

4.4电路可满足性问题76

4.4.1 MPI Init函数80

4.4.2 MPI_Comm_rank和80

MPI Comm size函数80

4.4.3 MPI Finalize函数81

4.4.4编译MPI程序81

4.4.5运行MPI程序81

4.5聚合通信简介83

MPI Reduce函数84

4.6检测并行性能86

4.6.2 MPI Barrier函数87

函数87

4.6.1 MPI Wtime和MPIWtick87

4.7本章小结88

4.8主要术语89

4.10练习题89

4.9参考文献89

第5章Eratosthenes筛法93

5.1概述93

5.2串行算法93

5.3并行性的来源94

5.4数据分解方法95

5.4.1交叉数据分解95

5.4.2按块数据分解95

5.4.3用于按块分解的宏96

5.4.4局部下标还是全局下标97

5.4.5块分解的结果97

5.5开发并行算法97

函数MPI_Bcast98

5.7并行程序的说明99

5.6并行筛法算法的分析99

5.8测试104

5.9改进105

5.9.1删除偶数105

5.9.2消除广播106

5.9.3循环的重新组织106

5.9.4测试106

5.10本章小结108

5.11主要术语108

5.12参考文献108

5.13练习题108

第6章Floyd算法111

6.1概述111

6.2全点对最短路径问题111

6.3运行时创建数组112

6.4.1划分113

6.4设计并行算法113

6.4.2通信114

6.4.3聚合和映射115

6.4.4矩阵的输入/输出116

6.5点对点通信117

6.5.1函数MPI Send118

6.5.2函数MPI Recv119

6.5.3死锁120

6.6并行程序的说明121

6.7分析和测试123

6.8本章小结124

6.10参考文献125

6.11练习题125

6.9主要术语125

第7章性能分析128

7.1概述128

7.2加速比和效率128

7.3 Amdahl定律130

7.3.1 Amdahl定律的局限131

7.3.2 Amdahl效应132

7.4 Gustafson-Barsis定律132

7.5 Karp-Flatt量度134

7.6等效指标136

7.7本章小结139

7.8主要术语140

7.9参考文献141

7.10练习题141

8.1概述143

8.2串行算法143

第8章矩阵向量乘法143

8.3数据分解方式144

8.4矩阵按行分解145

8.4.1设计与分析145

8.4.2复制分块的向量146

8.4.3函数MPI_Allgatherv147

8.4.4被复制向量的输入/输出149

8.4.5编写并行程序149

8.4.6测试150

8.5矩阵按列分解151

8.5.1设计与分析151

8.5.2读取按列分解的矩阵152

8.5.3函数MPI_Scatterv153

8.5.4打印输出按列分块矩阵154

8.5.5函数MPI_Gatherv154

8.5.6分发中间结果155

8.5.7函数MPI_Alltoallv156

8.5.8编写并行程序156

8.5.9测试158

8.6棋盘式分解159

8.6.1设计与分析159

8.6.2创建通信域162

8.6.3函数MPI_Dims_create162

8.6.4函数MPI_Cart_create163

8.6.5读取棋盘式矩阵163

8.6.6函数MPI_Cart_rank164

8.6.7函数MPI_Cart_coords165

8.6.8函数MPI_Comm_split165

8.6.9测试166

8.7本章小结167

8.8主要术语168

8.9参考文献168

8.10练习题169

第9章文档分类173

9.1概述173

9.2并行算法设计173

9.2.3管理者/工人模式174

9.2.2聚集和映射174

9.2.1划分与通信174

9.2.4管理进程175

9.2.5 MPI Abort函数176

9.2.6工人进程177

9.2.7建立一个只有工人的178

通信域178

9.3非阻塞通信179

9.3.1管理进程的通信180

9.3.2 MPI_Irecv函数180

9.3.3 MPI_Wait函数180

9.3.4工人的通信180

9.4文档分类的并行程序181

9.3.6 MPI_Probe函数181

9.3.7 MPI_Get_count函数181

9.3.5 MPI_Isend函数181

9.5.1按组分配文档187

9.5算法改进187

9.5.2流水线处理187

9.5.3 MPI_Testsome函数189

9.6本章小结189

9.8参考文献190

9.9练习题190

9.7主要术语190

第10章蒙特卡洛法193

10.1概述193

10.1.1为什么蒙特卡洛法195

能奏效195

10.1.2蒙特卡洛法与并行计算196

10.2串行随机数生成器196

10.2.1线性同余法197

10.2.2滞后形斐波那契生成器197

10.3.1管理者-工人方法198

10.3.2蛙跳方法198

10.3并行随机数产生器198

10.3.3序列分割199

10.3.4参数化199

10.4其他的随机数分布200

10.4.1逆分布累积分布200

函数变换200

10.4.2 Box-Muller变换201

10.4.3拒绝法202

10.5.1中子输运204

10.5应用示例204

10.5.2 二维板上一个点的206

温度206

10.5.3二维易辛模型207

10.5.4房间分配问题209

10.5.5车库停车问题212

10.5.6交通环路213

10.6本章小结216

10.7主要术语216

10.8参考文献217

10.9练习题218

11.2矩阵相乘的串行算法220

11.2.1基于行的迭代算法220

11.1概述220

第11章矩阵乘法220

11.2.2基于块的递归算法222

11.3行块分解并行算法224

11.3.1确定原始任务224

11.3.2聚合224

11.3.3通信和进一步的聚合225

11.3.4分析226

11.4 Cannon算法227

11.4.1组合227

11.4.2通信228

11.4.3分析229

11.5本章小结230

11.7参考文献231

11.8练习题231

11.6主要术语231

12.2基本术语233

第12章线性方程组求解233

12.1概述233

12.3回代法234

12.3.1 串行算法234

12.3.2面向行的并行算法236

12.3.3面向列的并行算法236

12.3.4对比237

12.4高斯消去法237

12.4.1串行算法237

12.4.2并行算法239

12.4.3面向行的算法240

12.4.4面向列的算法242

12.4.5对比242

12.4.6面向行的流水线算法243

12.5迭代法244

12.6.1串行算法247

12.6共轭梯度法247

12.6.2并行算法249

12.7本章小结250

12.8主要术语251

12.9参考文献251

12.10练习题252

第13章有限差分方法254

13.1概述254

13.2偏微分等式255

13.2.1偏微分方程的分类255

13.2.2差分商256

13.3.1导出方程257

13.3弦振荡问题257

13.3.2串行程序259

13.3.3并行程序设计260

13.3.4等效分析261

13.3.5冗余计算262

13.4稳定状态热量分布问题263

13.4.1方程的导出263

13.4.2串行程序导出264

13.4.3并行程序设计265

13.4.4等效分析266

13.4.5实现细节267

13.5本章小结267

13.6主要术语268

13.7参考文献268

13.8练习题269

第14章排序271

14.1概述271

14.2快速排序271

14.3并行快速排序算法272

14.3.1排序完毕的定义273

14.3.2算法开发273

14.3.3分析273

14.4超级快速排序274

14.4.1算法描述274

14.4.2等效分析275

14.5.2等效分析277

14.5规则取样并行排序277

14.5.1算法描述277

14.6本章小结279

14.8参考文献280

14.9练习题280

14.7主要术语280

第15章快速傅立叶变换283

15.1概述283

15.2傅立叶分析283

15.3离散傅立叶变换285

15.3.1离散傅立叶逆变换286

15.3.2应用示例:多项式乘法286

15.4快速傅立叶变换288

15.5.1分割与通信291

15.5并行程序设计291

15.5.3等效分析292

15.5.2聚合与映射292

15.6本章小结294

15.7主要术语294

15.8参考文献294

15.9练习题294

第16章组合搜索296

16.1概述296

16.2回溯搜索297

16.2.1示例297

16.2.2 时间和空间复杂性298

16.3并行回溯算法298

16.4分布式终止检测302

16.5分支定界法304

16.5.1示例304

16.5.2串行算法306

16.5.3分析308

16.6并行分支定界法308

16.6.1存储和共享待解的308

子问题308

16.6.2效率309

16.6.3停机条件309

16.7搜索博弈树312

16.7.1最大最小算法312

16.7.2 Alpha-Beta剪枝313

16.7.3 Alpha-Beta剪枝法315

的改进315

16.8.2并行子树估值316

16.8.1并行渴望搜索316

16.8并行Alpha-Beta搜索316

16.8.3分布式树搜索317

16.10主要术语319

16.11参考文献320

16.12练习题320

第17章共事存储编程323

17.1概述323

17.2共享存储模型324

17.3对for循环的并行化325

17.3.1 paralldfor编译325

指导语句325

函数327

17.3.3 omp_set_hum_threads327

函数327

17.3.2 omp_get_num_procs327

17.4声明私有变量328

17.4.1 private子句328

17.4.2 firstprivate子句329

17.4.3 lastprivate子句330

17.5 临界区330

critical编译指导语句331

17.6归约操作332

17.7性能改善333

17.7.1循环转化333

17.7.2条件执行循环334

17.7.3循环调度335

17.8更普遍的数据并行336

17.8.1 parallel编译指导语句338

17.8.2 omp_get_thread_num339

函数339

17.8.3 omp_get_num_threads340

函数340

17.8.4编译指导语句for340

17.8.5 single编译指导语句342

17.8.6 nowait子句342

17.9功能并行343

17.9.1 parallel sections编译指导语句343

17.9.2 section编译指导语句344

17.9.3 sections编译指导语句344

17.10本章小结345

17.13练习题347

17.12参考文献347

17.11主要术语347

第18章融合OpenMP和MPI350

18.1概述350

18.2共轭梯度算法351

18.2.1 MPI程序351

18.2.2函数级程序轮廓刻画354

18.2.3对函数matrix_vector_355

product进行并行化355

18.2.4测试程序355

18.3 Jacobi方法356

18.3.1 MPI程序轮廓刻画356

18.3.2对函数find_steady_state并行化357

18.3.3测试程序359

18.5练习题360

18.4本章小结360

附录A MPI函数362

附录B工具函数393

B.1 MyMPI.h头文件393

B.2 MyMPI.c源文件394

附录C调试MPI程序412

C.1概述412

C.2 MPI程序常见错误412

C.2.1死锁错误412

C.2.2导致不准确结果的错误413

C.2.3组通信的优点413

C.3实用调试策略413

附录D复数回顾415

附录E OpenMP函数418

参考文献420

热门推荐