By 白舸
MATLAB 并行运算和分布式运算的基本操作
操作举例用的是 MATLAB 7.11(R2010b)。
并行运算和分布式运算的三个典型适用情形:parallel for‐loop、batch job 和 large data
sets。
1、 并行运算(Parallel Computing)
1.1 编写包含并行命令的代码
以 parallel for‐loop 为例,如果程序中 for 循环(如 for i=1:100)的每次迭代式相互独立
的,即 i 每次取值进行运算的结果,不会影响的下一次取值的运算,就可以把“for”改成
“parfor”。
1.2 打开matlabpool,确定worker 数量
以启动本地 2 个 worker 为例,在 MATLAB 主界面的“Command Window”里输入命令:
matlabpool open local 2
By 白舸
启动的 worker 数量根据用户的需求以及计算机的 CPU(core)的数量来确定,根据本
人的试验,启动的 worker 数不能超过计算机的 CPU(core)数量。
1.3 运行程序
通过计时器可看出并行运算所需的时间比串行运算明显少很多。
1.4 关闭matlabpool
在 MATLAB 主界面的 Command Window 里键入命令:
matlabpool close
每次运行完之后要关闭 matlabpool,以防下次需要开启不同数量 worker 时产生冲突。
By 白舸
2、 分布式运算(Distributed Computing)
2.1 编写包含并行命令的代码
同 1.1。
2.2 开启mdce 服务
参与分布式运算集群里的所有计算机都必须开启 mdce 服务。
首先在 MATLAB 主界面的“Current Folder”里进入路径:
MATLAB 根目录\toolbox\distcomp\bin
然后在“Command Window”里输入命令:
装载完成后再输入命令:
!mdce install
!mdce start
By 白舸
注意前面的“!”。
2.3 创建、配置job manager
首先在计算机本地路径 MATLAB 根目录\toolbox\distcomp\bin 里打开“admincenter”文
件。
然后在“Hosts”栏点击“Add or Find”添加主机,既可通过主机名来添加,也可通过 IP
地址来添加。OK。
By 白舸
在“Job Manager”栏点击“Start”创建 job manager,需要为此 job manager 命名,并
确定此 job manager 的 Host(实验室通常以 T410 作为中心主机)。OK。
在“Workers”栏点击“Start”创建 worker,选择提供 worker 的计算机,确定 worker
所服务的 job manager,以及选定每台计算机提供的 worker 的数量。OK。
By 白舸
2.4 选择所需的job manager
首先在 MATLAB 主界面的任务栏选 Parallel\Manager Configurations。
在弹出的 Configuration Manager 对话框的任务栏选择 File\New\jobmanager。
By 白舸
在 Configuration name 栏为这个 configuration 设置一个名字,这个名字不一定与 job
manager 的名字相同,但要知道它们的对应关系。在 Scheduler 选项卡中填入 job manager
中心主机名和相应的 job manager 名。在 Jobs 选项卡中设置允许运行该任务的最大和最小
worker 数量。OK。
在 Configurations Manager 对 话 框 里 选 择 你 所 需 要 的 jobmanager , 可 以 点 “Start
Validation”按钮进行测试。
By 白舸
2.5 打开matlabpool
在 MATLAB 主界面的 Command Window 里键入命令:
matlabpool
即打开了上一步选择的相应 jobmanager。