Posted by on 2017年3月17日

[隐藏]

如果你手上有个比较大的任务需要计算,然后有正好有几台空闲的电脑,那么我想你可以尝试用一用MATLAB的Parallel Computing Toolbox(See here)。当然,前提是你的循环部分中的计算足够复杂,不然并行计算并不能够给你的任务省去多少时间。原因是因为communication cost本身就很大。

1.

1.1.准备工作:

2.1.1.查询电脑IP:

a.点击开始,搜索 cmd
b.在Terminal里输入:ipconfig
c.查询IP

3.1.2.查询电脑配置:

a.右击“我的电脑”,选择“属性”
b.查询
c.dxdiag:

4.1.3.System Requirements for DC Server

Mathwork document

我办公室正好有几台四核八线程的电脑空闲着,于是我就想尝试一下。电脑性能参数如下,是可以用MATLAB Job Schedule跑一跑的,没有问题。
Computer performance

a.EF12:
IPv4 Address: 144.214.42.34
Processor: Intel® Core™ i7-4790 CPU @ 3.60Hz 3.60GHz (8-core)
Installed memory(RAM): 8.00GB
Display 1:
Name: Intel® HD Graphics 4600
Manufacturer: Intel Corporation
Chip Type: Intel® HD Graphics Family
DAC Type: Internal
Approx. Total Memory: 1696MB
Display 2:
Name: ADM Radeon™ R7 250
Manufacturer: Advanced Micro Devices, Inc.
Chip Type: ADM Radeon Graphics Processor (0x6610)
DAC Type: Internal DAC(400MHz)
Approx. Total Memory: 4095MB
b.EF9:
IPv4 Address: 144.214.42.102
Processor: Intel® Core™ i7-4790 CPU @ 3.60Hz 3.60GHz (8-core)
Installed memory(RAM): 8.00GB
c.EF16:
IPv4 Address: 144.214.42.56
Processor: Intel® Core™ i7-4790 CPU @ 3.60Hz 3.60GHz (8-core)
Installed memory(RAM): 8.00GB

4.1.Matlab Distributed Computing Toolbox (DCT)的配置

首先你最好检查一下自己的MATLAB是否安装了DCT,你可以执行“ver”命令检查已经安装的工具箱list。如果你没有安装DCT的话,建议你想办法找到MATLAB的账号和license。下载toolbox的办法很简单,到MATLAB的“RESOURCES“--“Add-Ons”--”Get more APPS“就可以查找你想要的toolbox了。而使用DCT的流程如下。

5.1.1.搭建局域网

首先第一步要做的,就是令每台要参与计算的计算机组成局域网。
如我手上的几台电脑:EF12, EF9, EF16

6.1.2.启动MDCE服务

在三台计算机中安装Matlab Distributed Computing Engine(mdce)服务。
安装办法:
a.确认MATLAB安装地址
C:\Program Files\MATLAB\R2016a
b.到终端进入到C:\Program Files\MATLAB\R2016a\toolbox\distcomp\bin。同时你需要检查一下(dir),该文件夹中是否存在一个叫做"mdce.bat"的文件,不然后续工作都无法进行。
c.运行以下命令安装mdce服务:

d.去控制台->管理工具->服务,查看Matlab Distributed Computing Engine的属性
e.进入登录页面,选择“此帐户”,输入NT AUTHORITY\NetworkService,删除下面的密码,让该服务以NetworkService的形式登入,以便该服务存取共享的映射网络驱动器中的原程序文件。

7.1.3.启动job manager

任一台计算机都可以启动job manager,只要mdce服务启动了即可。
比如使用计算 EF12,在 C:\Program Files\MATLAB\R2006a\toolbox\distcomp\bin 目录下,运行以下命令

该命令启动jobmanager,其名字叫frenseljobm,启动地点为计算机EF12。

8.1.4.启动workers

任一台计算机都可以启动workers,只要mdce服务启动了即可。
a.比如使用计算机101,在C:\Program Files\MATLAB\R2006a\toolbox\distcomp\bin目录下,运行以下命令:

此命令指明在计算机144.214.42.34中,启动名为worker1的worker,而该worker受名为frenseljobm的jobmanager管理。
b.监工frenseljobm要在不同村EF9和EF12中雇用更多的工人worker2、worker3。运行如下命令:

即在EF9计算机中启动一个新的,名为worker2的worker。

即在EF16计算机中启动一个新的,名为worker3的worker。
c.使用命令

可以查看节点状态, 加上 –remotehost可以查看其它节点状态。

9.1.5.共享文件夹

a. 如令计算机EF12为client,即我们的程序在这里编写的。设程序文件位于D:\TestDCT中。
b.共享出文件夹D:\TestDCT,在文件夹中按工具->映射网络驱动器->令盘符为Z:->文件夹里填\\144.214.42.34\Matlab_code
于是Z:\ 便成为放置你程序的地方了。
c.以同样的方法,让计算机102和103都建立映射网络驱动器,令盘符为Z:,文件夹里填\\144.214.42.34\Matlab_code。这时三台机都可以通过Z:\testDCT访问原程序文件。

9.1.{未完}

遗憾的是今天我发现我在路径$matlabhome/toolbox/distcomp/bin下竟然没有"mdce.bat"的文件,于是也就没法install。捣鼓了半天我觉得应该是licese的问题,于是发了封邮件问问系里在Mathwork官网上的contact administrator。下周一希望能够解决。到时候具体的后续再分享给各位。
最后,在“Get Add-Ons”上逛了逛,发现了挺多好玩的Toolbox,例如Statistical and Machine Learning Toolbox(Mathwork Document),希望有机会做些little toy甚至big project玩玩。
--2017.3.17 22:26

Parallel Computing Toolbox的license问题已经解决。但是我意识到办公室的电脑都是台式机,没有无线网卡,无法搭建局域网络。看来要么去买个路由器,要么需要使用Amazon EC2了。不过目前来说, local pool 4 workers的效果就已经很好了。

--2017.3.22 21:20

【欢迎订阅并关注微信公众号“饱蠹阁BaoDuGe”】

Tags: ,
1 views
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Comments

Be the first to comment.

Leave a Reply

返回顶部