简介
本书的阅读对象包括大中专院校学生以及利用Matlab开发并行程序的科学家和工程师。书中对对Matlab并行计算涉及的基础知识进行了说明,读者可以循序渐进的完成本书的阅读和学习。如果读者熟悉Matlab语言和C/C++语言,将有助于理解和掌握本书的内容。本书所有的源代码均可在附带的光盘中找到,书中各章源代码除特别说明之外,开发和编译环境均为Matlab 2010与Visual C++ 2010。
目录
第1章 Matlab开发环境和程序设计基础1
1.1本章导读1
1.2 Matlab环境1
1.2.1命令行窗口2
1.2.2代码编辑器3
1.2.3工作空间窗口5
1.2.4历史命令窗口5
1.2.5利用Matlab环境的界面操作7
1.2.6 Matlab帮助8
1.2.7代码输入提示9
1.3 Matlab语言基础10
1.3.1 Matlab脚本文件10
1.3.2 Matlab运算符与表达式11
1.3.3 Matlab函数14
1.3.4 Matlab的向量运算16
1.3.5 Matlab的程序控制19
1.3.6面向对象程序设计23
1.4 Matlab常用的数据类型27
1.4.1数值阵列28
1.4.2字符阵列30
1.4.3逻辑阵列31
1.4.4元组阵列32
1.4.5结构体阵列34
1.4.6函数句柄阵列36
1.5 Matlab常用数据显示函数38
1.5.1 figure窗口38
1.5.2绘制曲线39
1.5.3显示图像数据40
1.5.4显示三维曲面数据40
第2章 利用parfor对for循环进行并行43
2.1本章导读43
2.2循环和并行43
2.3 for循环的并行性43
2.4 parfor关键字44
2.5 Matlab client和worker44
2.6利用parfor并行for循环的基本原理44
2.7利用parfor并行for循环的基本步骤45
2.8配置Matlab并行计算池45
2.8.1 matlabpool命令45
2.8.2 matlabpool配置47
2.9第一个parfor程序及其与for循环的对比48
2.10 parfor循环比for循环快多少?50
2.10.1不启动matlabpool,直接执行parfor程序51
2.10.2打开matlabpool51
2.11 parfor和for的不同52
2.12数据通信的影响53
2.12.1数据通信较大的情况53
2.12.2 parfor和for的执行时间曲线55
2.12.3数据通信影响较小的情况57
2.13函数句柄在parfor并行程序分析中的应用60
2.14简约操作61
2.14.1简约操作的基本概念及并行原理61
2.14.2简约操作并行效率分析62
2.14.3简约操作的执行顺序66
2.14.4简约操作与简约变量的特征66
2.15 parfor循环中的主要变量类型71
2.15.1 parfor循环变量概述71
2.15.2循环变量73
2.15.3分段变量73
2.15.4广播变量78
2.15.5临时变量78
2.16 parfor程序设计需要考虑的其他问题81
2.16.1变量名称(函数优先)81
2.16.2显式使用变量82
2.16.3 parfor中使用函数句柄82
2.16.4在parfor中调用递归函数83
2.16.5 parfor性能考虑84
2.16.6 Matlab并行计算池中worker的位置85
第3章SPMD并行结构87
3.1本章导读87
3.2 SPMD87
3.3 SPMD的使用方法88
3.4 Matlab client与Matlab lab数据交互90
3.5 distributed或codistributed数值阵列93
3.5.1采用distributed对象创建分布式阵列94
3.5.2采用codistributed对象创建分布式阵列97
3.6在SPMD中获取job、task、lab、scheduler信息98
3.7利用SPMD并行结构解决计算密集型问题99
3.8利用SPMD并行结构解决数据密集型问题102
第4章 其他Matlab并行结构105
4.1本章导读105
4.2 for瞕range105
4.2.1 for瞕range应用于分布式阵列105
4.2.2 for瞕range应用于非分布式阵列107
4.3利用pmode并行执行Matlab程序108
4.3.1启动pmode窗口108
4.3.2 pmode窗口界面109
4.3.3显示pmode数据110
4.3.4在集群中启动pmode窗口110
4.3.5通过pmode命令在各个lab和Matlab client之间传输数据111
4.4并行执行Matlab函数113
4.4.1同步模式113
4.4.2异步模式117
第5章Matlab并行计算数据类型118
5.1本章导读118
5.2 Matlab并行计算数据类型118
5.2.1同体变量119
5.2.2异体变量119
5.2.3独有变量120
5.2.4分布式变量121
5.3并行计算数据类型的转换方法122
5.3.1将同体变量转换为其他变量123
5.3.2将异体变量转换为其他变量124
5.3.3将独有变量转换为其他变量124
5.3.4将分布式变量转换为其他变量126
5.4 Matlab并行计算数据类型的应用127
5.4.1 parallel job中应用并行计算数据类型127
5.4.2 SPMD并行结构中应用并行计算数据类型130
5.5 Matlab分布式阵列131
5.5.1分布式阵列的特点131
5.5.2 Matlab如何分割分布式阵列?132
5.5.3 Matlab如何显示分布式阵列? 133
5.5.4在Matlab客户端创建分布式阵列137
5.5.5在parallel job或SPMD并行结构中创建分布式阵列139
5.5.6 codistributed对象操作分布式阵列144
5.5.7创建二维分割的Matlab分布式阵列148
5.5.8利用codistributor函数构造codistributor对象152
5.5.9支持分布式阵列的Matlab函数153
第6章Matlab通用并行程序设计154
6.1本章导读154
6.2概述154
6.3通用Matlab并行计算的基本概念155
6.4 Matlab并行计算架构156
6.5 job的状态及运行周期157
6.6开发调试并行程序基本流程158
6.7 distributed job的操作方法159
6.7.1 distributed job159
6.7.2创建distributed job的方法159
6.8 parallel job的操作方法162
6.8.1 parallel job162
6.8.2 distributed job和parallel job 的区别162
6.8.3创建parallel job的方法163
6.8.4避免死锁问题164
6.9 matlabpool job的操作方法166
6.10 batch job的操作方法168
6.11 job manager、worker、job和task对象的属性170
6.11.1 job manager对象170
6.11.2 job对象171
6.11.3 worker对象172
6.11.4 task对象173
6.12 worker对象的操作方法174
6.12.1启动worker174
6.12.2 findResource方法174
6.12.3操作worker对象的函数174
6.13 task对象的操作方法175
6.14 job对象的操作方法176
6.14.1利用createTask函数创建task176
6.14.2等待任务状态改变177
6.15 scheduler对象的操作方法178
6.15.1 findResource函数178
6.15.2利用scheduler对象创建和管理job的方法181
6.16 parallel job和SPMD结构中lab间数据通信问题185
6.17关于路径问题192
6.18利用Callback函数193
6.19并行程序调试和分析195
第7章MDCS配置202
7.1本章导读202
7.2 Matlab并行构架202
7.2.1 Matlab并行计算平台及拓扑结构202
7.2.2单集群节点202
7.2.3多集群节点203
7.3 MDCS的配置项203
7.4 MDCS操作指令及操作方法203
7.4.1 MDCS的命令及选项203
7.4.2 mdce命令操作实例204
7.4.3 nodestatus命令及选项205
7.4.4 nodestatus命令操作实例205
7.4.5 remotecopy命令及选项206
7.4.6采用remotemdce远程执行mdce指令207
7.4.7 startjobmanager208
7.4.8停止jobmanager运行208
7.4.9 startworker209
7.4.10 stopworker209
7.5管理job manager、集群节点和worker的方法210
7.5.1利用命令行管理210
7.5.2利用管理中心管理210
第8章 创建多线程MEX文件213
8.1本章导读213
8.2利用MEX文件在Matlab中创建并行应用213
8.3多线程MEX文件创建及调试过程213
第9章在Matlab中应用OpenMP进行并行计算220
9.1本章导读220
9.2O penMP及其工作原理220
9.3O penMP与Matlab221
9.4第一个OpenMP实例221
9.5利用OpenMP并行执行for循环223
9.6 OpenMP并行编译指令227
9.6.1引导parallel并行结构的指令和选项227
9.6.2引导work瞫haring并行结构的指令和选项233
第10章 利用GPU并行执行Matlab程序257
10.1本章导读257
10.2操作GPU设备257
10.3创建GPU数值阵列258
10.4操作GPU数据的函数260
10.5自定义支持GPU的函数262
10.6扩展Matlab对GPU支持的方法263
10.6.1直接编写GPU程序,通过Matlab调用264
10.6.2 GPU与C语言混合并编译为MEX268
附录A MEX文件基础知识272
A.1设置Matlab C/C++编译器用于编译MEX文件272
A.2 MEX文件的功能273
A.3 MEX文件与M文件的关系273
A.4 MEX文件实例273
A.5 MEX文件结构说明274
A.6编译MEX文件275
A.7采用C++创建MEX文件276
附录B Matlab并行计算配置项278
B.1 配置项的管理和创建工具278
B.2选择默认的配置项278
B.3打开配置项管理工具278
B.4创建新的配置项278
B.5配置项编辑工具279
B.6将配置项保存为文件279
B.7验证配置选项282
B.8操作配置项的命令283
附录C Matlab并行计算常用概念说明284
1.1本章导读1
1.2 Matlab环境1
1.2.1命令行窗口2
1.2.2代码编辑器3
1.2.3工作空间窗口5
1.2.4历史命令窗口5
1.2.5利用Matlab环境的界面操作7
1.2.6 Matlab帮助8
1.2.7代码输入提示9
1.3 Matlab语言基础10
1.3.1 Matlab脚本文件10
1.3.2 Matlab运算符与表达式11
1.3.3 Matlab函数14
1.3.4 Matlab的向量运算16
1.3.5 Matlab的程序控制19
1.3.6面向对象程序设计23
1.4 Matlab常用的数据类型27
1.4.1数值阵列28
1.4.2字符阵列30
1.4.3逻辑阵列31
1.4.4元组阵列32
1.4.5结构体阵列34
1.4.6函数句柄阵列36
1.5 Matlab常用数据显示函数38
1.5.1 figure窗口38
1.5.2绘制曲线39
1.5.3显示图像数据40
1.5.4显示三维曲面数据40
第2章 利用parfor对for循环进行并行43
2.1本章导读43
2.2循环和并行43
2.3 for循环的并行性43
2.4 parfor关键字44
2.5 Matlab client和worker44
2.6利用parfor并行for循环的基本原理44
2.7利用parfor并行for循环的基本步骤45
2.8配置Matlab并行计算池45
2.8.1 matlabpool命令45
2.8.2 matlabpool配置47
2.9第一个parfor程序及其与for循环的对比48
2.10 parfor循环比for循环快多少?50
2.10.1不启动matlabpool,直接执行parfor程序51
2.10.2打开matlabpool51
2.11 parfor和for的不同52
2.12数据通信的影响53
2.12.1数据通信较大的情况53
2.12.2 parfor和for的执行时间曲线55
2.12.3数据通信影响较小的情况57
2.13函数句柄在parfor并行程序分析中的应用60
2.14简约操作61
2.14.1简约操作的基本概念及并行原理61
2.14.2简约操作并行效率分析62
2.14.3简约操作的执行顺序66
2.14.4简约操作与简约变量的特征66
2.15 parfor循环中的主要变量类型71
2.15.1 parfor循环变量概述71
2.15.2循环变量73
2.15.3分段变量73
2.15.4广播变量78
2.15.5临时变量78
2.16 parfor程序设计需要考虑的其他问题81
2.16.1变量名称(函数优先)81
2.16.2显式使用变量82
2.16.3 parfor中使用函数句柄82
2.16.4在parfor中调用递归函数83
2.16.5 parfor性能考虑84
2.16.6 Matlab并行计算池中worker的位置85
第3章SPMD并行结构87
3.1本章导读87
3.2 SPMD87
3.3 SPMD的使用方法88
3.4 Matlab client与Matlab lab数据交互90
3.5 distributed或codistributed数值阵列93
3.5.1采用distributed对象创建分布式阵列94
3.5.2采用codistributed对象创建分布式阵列97
3.6在SPMD中获取job、task、lab、scheduler信息98
3.7利用SPMD并行结构解决计算密集型问题99
3.8利用SPMD并行结构解决数据密集型问题102
第4章 其他Matlab并行结构105
4.1本章导读105
4.2 for瞕range105
4.2.1 for瞕range应用于分布式阵列105
4.2.2 for瞕range应用于非分布式阵列107
4.3利用pmode并行执行Matlab程序108
4.3.1启动pmode窗口108
4.3.2 pmode窗口界面109
4.3.3显示pmode数据110
4.3.4在集群中启动pmode窗口110
4.3.5通过pmode命令在各个lab和Matlab client之间传输数据111
4.4并行执行Matlab函数113
4.4.1同步模式113
4.4.2异步模式117
第5章Matlab并行计算数据类型118
5.1本章导读118
5.2 Matlab并行计算数据类型118
5.2.1同体变量119
5.2.2异体变量119
5.2.3独有变量120
5.2.4分布式变量121
5.3并行计算数据类型的转换方法122
5.3.1将同体变量转换为其他变量123
5.3.2将异体变量转换为其他变量124
5.3.3将独有变量转换为其他变量124
5.3.4将分布式变量转换为其他变量126
5.4 Matlab并行计算数据类型的应用127
5.4.1 parallel job中应用并行计算数据类型127
5.4.2 SPMD并行结构中应用并行计算数据类型130
5.5 Matlab分布式阵列131
5.5.1分布式阵列的特点131
5.5.2 Matlab如何分割分布式阵列?132
5.5.3 Matlab如何显示分布式阵列? 133
5.5.4在Matlab客户端创建分布式阵列137
5.5.5在parallel job或SPMD并行结构中创建分布式阵列139
5.5.6 codistributed对象操作分布式阵列144
5.5.7创建二维分割的Matlab分布式阵列148
5.5.8利用codistributor函数构造codistributor对象152
5.5.9支持分布式阵列的Matlab函数153
第6章Matlab通用并行程序设计154
6.1本章导读154
6.2概述154
6.3通用Matlab并行计算的基本概念155
6.4 Matlab并行计算架构156
6.5 job的状态及运行周期157
6.6开发调试并行程序基本流程158
6.7 distributed job的操作方法159
6.7.1 distributed job159
6.7.2创建distributed job的方法159
6.8 parallel job的操作方法162
6.8.1 parallel job162
6.8.2 distributed job和parallel job 的区别162
6.8.3创建parallel job的方法163
6.8.4避免死锁问题164
6.9 matlabpool job的操作方法166
6.10 batch job的操作方法168
6.11 job manager、worker、job和task对象的属性170
6.11.1 job manager对象170
6.11.2 job对象171
6.11.3 worker对象172
6.11.4 task对象173
6.12 worker对象的操作方法174
6.12.1启动worker174
6.12.2 findResource方法174
6.12.3操作worker对象的函数174
6.13 task对象的操作方法175
6.14 job对象的操作方法176
6.14.1利用createTask函数创建task176
6.14.2等待任务状态改变177
6.15 scheduler对象的操作方法178
6.15.1 findResource函数178
6.15.2利用scheduler对象创建和管理job的方法181
6.16 parallel job和SPMD结构中lab间数据通信问题185
6.17关于路径问题192
6.18利用Callback函数193
6.19并行程序调试和分析195
第7章MDCS配置202
7.1本章导读202
7.2 Matlab并行构架202
7.2.1 Matlab并行计算平台及拓扑结构202
7.2.2单集群节点202
7.2.3多集群节点203
7.3 MDCS的配置项203
7.4 MDCS操作指令及操作方法203
7.4.1 MDCS的命令及选项203
7.4.2 mdce命令操作实例204
7.4.3 nodestatus命令及选项205
7.4.4 nodestatus命令操作实例205
7.4.5 remotecopy命令及选项206
7.4.6采用remotemdce远程执行mdce指令207
7.4.7 startjobmanager208
7.4.8停止jobmanager运行208
7.4.9 startworker209
7.4.10 stopworker209
7.5管理job manager、集群节点和worker的方法210
7.5.1利用命令行管理210
7.5.2利用管理中心管理210
第8章 创建多线程MEX文件213
8.1本章导读213
8.2利用MEX文件在Matlab中创建并行应用213
8.3多线程MEX文件创建及调试过程213
第9章在Matlab中应用OpenMP进行并行计算220
9.1本章导读220
9.2O penMP及其工作原理220
9.3O penMP与Matlab221
9.4第一个OpenMP实例221
9.5利用OpenMP并行执行for循环223
9.6 OpenMP并行编译指令227
9.6.1引导parallel并行结构的指令和选项227
9.6.2引导work瞫haring并行结构的指令和选项233
第10章 利用GPU并行执行Matlab程序257
10.1本章导读257
10.2操作GPU设备257
10.3创建GPU数值阵列258
10.4操作GPU数据的函数260
10.5自定义支持GPU的函数262
10.6扩展Matlab对GPU支持的方法263
10.6.1直接编写GPU程序,通过Matlab调用264
10.6.2 GPU与C语言混合并编译为MEX268
附录A MEX文件基础知识272
A.1设置Matlab C/C++编译器用于编译MEX文件272
A.2 MEX文件的功能273
A.3 MEX文件与M文件的关系273
A.4 MEX文件实例273
A.5 MEX文件结构说明274
A.6编译MEX文件275
A.7采用C++创建MEX文件276
附录B Matlab并行计算配置项278
B.1 配置项的管理和创建工具278
B.2选择默认的配置项278
B.3打开配置项管理工具278
B.4创建新的配置项278
B.5配置项编辑工具279
B.6将配置项保存为文件279
B.7验证配置选项282
B.8操作配置项的命令283
附录C Matlab并行计算常用概念说明284
实战Matlab之并行程序设计
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×