您的位置:首页 > 编程语言 > MATLAB

大数据基础(六) Matlab R2015b MDCE分布式计算环境搭建

2016-07-25 21:50 405 查看
环境:

ubuntu desktop 14.04.04 x64

jdk 1.7

安装步骤如下:

参考:http://www.jianshu.com/p/f0cefc737dda1.

sudo mkdir -p /mnt/tmp

sudo mount -t iso9660 -o loop /server/matlab/R2015b_glnxa64.iso /mnt/tmp

2.

cd /mnt/tmp

sudo  ./install

3.

弹出图形界面,选择输入license number不联网,输入standalone的序列号

安装全部

finish

rm -rf /mnt/tmp

sudo umount umount /mnt/tmp

4.

copy所有xx文件覆盖到安装目录
http://www.linuxidc.com/Linux/2015-11/125153.htm
R2015b/bin拷贝到相应的目录下

copy license_standalone.lic到安装根目录

5.

vi ~/.bashrc

export PATH=/server/matlab/bin:$PATH

source ~/.bashrc

6.

$bash activate_matlab.sh

在图形界面下选择lic文件,激活matlab

7.

copy xx\MATLAB_Production_Server\R2015b\bin\libmwservices.so /server/matlab/bin/glnxa64

完成。

#matlab打开图形界面

root@matlab-server:/projects/eastmoney/logs# matlab -nodesktop

8.mdce
http://blog.sina.com.cn/s/blog_740773f40100yqg3.html
root@matlab-13:/server/matlab/toolbox/distcomp/bin# ./mdce start

WARNING: The mdce script detected that the number of processes allowed

is limited by ulimit. Be sure that the limit of processes for the ROOT user

(or the user running the mdce service) is set to either "unlimited"

or at least 128 * W, where W is the maximum number of MATLAB Distributed

Computing Server workers that will run on this machine.

Creating LOGBASE directory (/var/log/mdce).

Creating CHECKPOINTBASE directory (/var/lib/mdce).

Creating SECURITY_DIR directory (/var/lib/mdce/security).

Starting the MATLAB Distributed Computing Server in the background.

root@matlab-13:/server/matlab/toolbox/distcomp/bin# ./mdce start

root@matlab-13:/server/matlab/toolbox/distcomp/bin# ./admincenter 

add and find

添加192.168.10.13-192.168.10.14 2台

start mdce on hosts

next

输入host密码

一路next

start所有的host完成。

点击Test connectivity 并查看测试结果。

注意所有机的/etc/hosts要包含所有节点的ip和host

127.0.0.1 localhost

192.168.10.6 matlab-server

192.168.10.11 matlab-11

192.168.10.12 matlab-12

192.168.10.13 matlab-13

192.168.10.14 matlab-14

参考下边注释

【http://blog.csdn.net/huntstart/article/details/51124889

如果用matlab做分布式计算,在其admin……工具中,寻找主机这一步必不可少。

一开始只接用hostname可能找不到,我用ip地址可以找到,但是测试连接性的时候有太多错误。

仔细看了错误,多数是hostname找不到导致的,有的则是hostname映射为本地地址,就是那个127.0.0.1。

一开始觉得可能要配置dns,其实不用。

ubuntu系统中,/etc/hosts中记录的就是hostname和ip地址的映射表。

sudo vi /etc/hosts进去后,参照localhost的写法,添加本地网络中所有主机名和ip地址。

记得将其中本机的主机名和127.0.0.1这条中的IP地址改成真实的地址,不然连接性测试还要出错。

每台机子都要改,其实可以写好一个文本,完了拷贝到各台机子就好。

这样做好后,虽然连接性测试还是有错,但是client测试是通过的,实测分布式计算可以正常工作。



sudo /etc/init.d/networking restart
http://www.cnblogs.com/niocai/archive/2011/07/16/2107981.html
passed表示通过

matlab job schedular输入一个job,比如myjob

 创建worker,selectAll,为每台主机创建2个workers,总共6个workers,ok!

使用--命令行方法:

linux下无需 mdce install

shell

mdce start %启动引擎

执行上面两条命令后,分布式计算引擎服务程序就安装完毕了。MDCE就是一个服务进程,在使用MDCE 之前需要首先启动它。

root@matlab-13:~# /server/matlab/toolbox/distcomp/bin/nodestatus

Summary:

The mdce service on matlab-13 manages the following processes:

     Job manager lookup processes  0

     Job managers                  0

     Workers                       0

root@matlab-13:~# /server/matlab/toolbox/distcomp/bin/startjobmanager -name matlabsky-v

使用--窗口方法:

========================

以下是正常运行过的方法:
http://wenku.baidu.com/link?url=Ce8Ze_6txOdDmnLzhfCLTRDNQiNO0jdKGM4BJfSQHMAYdk-0Gltn5nvbn1tFvjGndKnetyvhJHollV7JzIc5oNZTfhHyFP6FyEKdnKoVUcm
配置节点admincenter

添加ip,job,work然后都start,方法如上。

matlab window

选job

matlab>>parallel>>discover cluster,选择已创建的job。

配置文件

matlab>>parallel>>cluster profile manager>>properties点edit,输入参数,比如在files and folders下的manually specify files...add需要并行的m文件,在其他框设定共享目录输出。参考:http://blog.csdn.net/marvin521/article/details/16918919

然后valide,pass则可以运行。

运行

matlab>>parallel>>job monitor

matlab弹出的下边的命令框运行:

>> parpool

Starting parallel pool (parpool) using the 'matlabskyv' profile ... connected to 10 workers.

结果在右侧的导航框里

关闭pool

delete(gcp('nocreate'))
http://blog.sina.com.cn/s/blog_9444ed240102vrma.html
=============================

以下是单机并行pool,不是集群

开关可以在左侧的按钮选择start parallel pool或者shutdown parallel pool

例子

tic

sums=0

for a=1:5000000

sums=sums+a

disp(sums)

end

toc

sums =

   1.2500e+13

   1.2500e+13

时间已过 381.425190 秒。

sums =

   1.2500e+11

   1.2500e+11

时间已过 29.581380 秒。

====================

旧版方法2012新版2015b不支持

例子

clear all;

% 寻找资源。

jm = findResource('scheduler', 'type', 'jobmanager', 'name', 'myJM', 'LookupURL', '192.168.0.100');

% 使用刚才找到的资源建立一个工作

job = createJob(jm);

% 设置该工作的文件关联,让所有workers都可以找到原程序文件,需要在Client上设置共享文件夹。

set(job, 'PathDependencies', {'\\192.168.0.101\matlab_code\', '/mnt/'})

% 另一种方法,把用到的原程序文件传给所有workers。

% set(job, 'FileDependencies', {'hm.m'});

N = 5;

M = 4;

% 建立4个任务,每任务都是算hp(M, N)。

createTask(job, @hp, 1, {{M, N}, {M, N}, {M, N}, {M, N}});

% 提交工作给jobmanager。

submit(job)

% 等待所有workers都把任务做完。

waitForState(job, 'finished')

% 取出计算结果。

results = getAllOutputArguments(job);

% 销毁Job,释放资源

destroy(job);

其他参考:
http://my.oschina.net/alphajay/blog/102208 http://blog.csdn.net/wenyusuran/article/details/38312677 http://blog.sina.com.cn/s/blog_740773f40100yqg3.html http://wenku.baidu.com/link?url=Ce8Ze_6txOdDmnLzhfCLTRDNQiNO0jdKGM4BJfSQHMAYdk-0Gltn5nvbn1tFvjGndKnetyvhJHollV7JzIc5oNZTfhHyFP6FyEKdnKoVUcm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  分布式计算 matlab