搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
OpenACC并行编程实战/高性能计算技术丛书
0.00     定价 ¥ 69.00
浙江工贸职业技术学院
此书还可采购1本,持证读者免费借回家
  • ISBN:
    9787111549659
  • 作      者:
    作者:何沧平
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2017-01-01
收藏
畅销推荐
内容介绍
HPC领域资深专家推荐,中国最大OpenACC技术社区创建者撰写,不可多得的OpenACC技术专著。全面讲解OpenACC编程规范、语法的行为机理与设计动机,160个完整示例覆盖众多并行编程场景。 何沧平著的《OpenACC并行编程实战》共10章。 第1章介绍主流加速器产品的硬件架构、主流并行编程模型等,以期读者对并行编程生态有全面了解。 第2章介绍OperlACC语言的设计思路,并列出OpenACC的主要语法供快速查阅。 第3章是本书核心,将大量计算并行化,这是程序提速的根本手段。用大量示例讲述两个计算构件palallel和Kemels的行为特点,然后用它并行化Jacobi迭代。 第4章介绍多种数据管理工具,包含结构化子语copy/create/presenf、结构化导语data、非结构化导语enter data/exit data/LJpdate/declare等,将加速器带来的数据移动时间减到最少。 第5章介绍routine导语,嵌套调用并行化自定义函数,用来开发大型程序。 第6章讲解用异步队列隐藏数据传输时间、调度多个加速器同时工作等高级特性。 第7章介绍OperIACC与CU DA C/CUDA Fortran和各类库的混合编程。 第8章是所有的运行时函数,以供读者编程查阅。 第9章指导部署开发环境,以便快速上手。 第10章介绍神威·太湖之光的编程模型及其对OpenACC的功能扩展。
展开
目录

前言
第1章 并行编程概览1
1.1 加速器产品1
1.1.1 英伟达GPU3
1.1.2 英特尔至强融核处理器9
1.2 并行编程语言12
1.3 CUDA C14
1.3.1 线程组织方式16
1.3.2 运行过程18
1.3.3 内存层级20
1.3.4 性能优化技术21
第2章 OpenACC概览22
2.1 OpenACC规范的内容23
2.1.1 抽象加速器模型25
2.1.2 存储模型25
2.1.3 计算执行模型26
2.2 OpenACC 2.5规范29
第3章 OpenACC计算构件36
3.1 条件编译37
3.2 导语格式38
3.3 计算构件kernels40
3.3.1 构件内有1个循环41
3.3.2 构件内2个循环44
3.3.3 构件内二重嵌套循环45
3.3.4 kernels构件内三重嵌套循环48
3.4 loop构件52
3.4.1 independent子语53
3.4.2 reduction归约子语57
3.4.3 不常用的子语64
3.5 计算构件parallel66
3.5.1 gang单独模式68
3.5.2 gang分裂模式70
3.5.3 二重循环73
3.5.4 三重循环75
3.6 组合导语77
3.7 案例研究:Jacobi迭代78
3.7.1 CPU上并行化84
3.7.2 GPU上并行化88
3.8 原子操作:atomic导语91
第4章 数据管理97
4.1 数据属性、数据区域和数据生存期99
4.2 计算构件的伴随数据区域100
4.2.1 引用计数101
4.2.2 present子语102
4.2.3 copy子语104
4.2.4 copyin子语105
4.2.5 copyout子语107
4.2.6 create子语108
4.2.7 数据子语内的子数组111
4.2.8 private私有子语112
4.2.9 承上私有firstprivate子语115
4.2.10 带有预置数据属性的变量116
4.2.11 default默认子语117
4.2.12 案例研究:Jacobi迭代优化数据传输117
4.3 data构件119
4.3.1 数据管理功能119
4.3.2 deviceptr子语121
4.3.3 案例研究:data构件迭代优化Jacobi数据传输122
4.4 enter data导语和exit data导语128
4.4.1 C++类的数据生存期129
4.4.2 传递设备数据指针133
4.5 update导语135
4.6 declare导语138
4.6.1 device_resident子语139
4.6.2 create子语140
4.6.3 link子语140
4.6.4 用法举例141
4.7 特定设备的子语146
第5章 计算区域内的过程调用148
5.1 routine导语150
5.2 seq子语(C版)151
5.3 seq子语(Fortran版)152
5.4 routine(名字)154
5.5 bind子语155
5.6 用子语指定并行级别155
5.6.1 vector级别并行156
5.6.2 worker、worker级别并行159
5.7 计算圆周率π160
第6章 高级特性164
6.1 异步操作164
6.1.1 async子语165
6.1.2 wait子语165
6.1.3 wait导语166
6.2 设备计算与主机计算重叠166
6.3 设备上同时执行多个队列169
6.4 重叠计算与数据传输172
6.4.1 步骤0:串行代码174
6.4.2 步骤1:计算并行化177
6.4.3 步骤2:分块计算178
6.4.4 步骤3:数据分块传输179
6.4.5 步骤4:重叠计算与传输181
6.5 双向传输183
6.6 多个设备同时运算185
6.6.1 环境变量186
6.6.2 运行过程中选择设备186
6.6.3 OpenMP调动多个设备195
第7章 与GPU生态环境互操作202
7.1 OpenACC调用CUDA C203
7.2 OpenACC调用CUDA Fortran205
7.3 CUDA C调用OpenACC207
7.4 捆绑主机地址与设备地址208
7.5 CUDA Fortran调用OpenACC210
7.6 OpenACC(C)调用cuBLAS211
7.7 OpenACC(Fortran)调用cuBLAS212
第8章 运行时函数213
8.1 运行时库的定义213
8.2 运行时库例程215
8.2.1 acc_get_num_devices215
8.2.2 acc_set_device_type216
8.2.3 acc_get_device_type217
8.2.4 acc_set_device_num217
8.2.5 acc_get_device_num218
8.2.6 acc_init218
8.2.7 acc_shutdown219
8.2.8 acc_async_test219
8.2.9 acc_async_test_all220
8.2.10 acc_wait220
8.2.11 acc_wait_async221
8.2.12 acc_wait_all221
8.2.13 acc_wait_all _async222
8.2.14 acc_get_default_async222
8.2.15 acc_set_default_async223
8.2.16 acc_on_device223
8.2.17 acc_malloc224
8.2.18 acc_free224
8.2.19 acc_copyin225
8.2.20 acc_create226
8.2.21 acc_copyout227
8.2.22 acc_delete228
8.2.23 acc_update_device229
8.2.24 acc_update_self230
8.2.25 acc_map_data231
8.2.26 acc_unmap_data231
8.2.27 acc_deviceptr231
8.2
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用浙江工贸职业技术学院的读者帐号和密码进行登录

点击获取验证码
登录