24小时热门版块排行榜    

查看: 2198  |  回复: 18
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

田山东

捐助贵宾 (著名写手)

[求助] 请教matlab在linux下的并行问题已有2人参与

我想在linux下进行并行运算,原先串行的时候用for循环
for i=1:10
.....
.....
end
每个循环直接互相不影响,各干各的,得到的结果也是相互独立的,所以想到了并行运算。
把它改成parfor循环
parfor i=1:10
...
...
end
然后与串行相同的编译语句  nohup matlab d5.out &
进行编译,结果一下就结束了,没有进行计算,是怎么回事呢?
看书,说还要设置运行的核数,比如 matlabpool 设置需要几个核。
对spmd有点小疑问。同一段段代码运行在不同的 多个 lablablab上,是说一个任务运行在多个核上吧?而不是不同的任务运行在不同的核上。
回复此楼
everythinghasitsseason.enjoyyourlife.
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

后来想了下,我电脑 是双核的,应该这样:
clc;
clear;

matlabpool open local 2

parfor j=1:2
    a(j)=j;
end

matlabpool close
但是错误依然存在

Error using matlabpool (line 136)
Failed to open matlabpool. (For information in addition to the causing error, validate the configuration
'local' in the Configurations Manager.)

Error in ppfor (line 4)
matlabpool open local 2

Caused by:
    Error using distcomp.interactiveclient/start (line 11)
    Found an active interactive session.
    You cannot have multiple interactive sessions open simultaneously.
    To terminate the existing session, use   matlabpool close
everythinghasitsseason.enjoyyourlife.
11楼2012-11-30 21:45:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 19 个回答

田山东

捐助贵宾 (著名写手)

刚在网上搜了一下,matlabpool open local 8 设置节点数,但是必须在matlab下面才行,比如我打开linux,
>>matlab
进入matlab系统,然后matlabpool open local 8 可以,给出提示:
Starting matlabpool using the 'local' configuration ... connected to 8 labs.
看上去好像可以了,好吧,挂程序吧:
nohup matlab dd.out &
这个语句是网友给的,就是让matlab程序后台运行的一个方法。这时候提示出错了:
??? Undefined function or method 'nohup' for input arguments of type 'char'.

很奇怪 啊!!
如果进入linux界面,然后进入ABzazhi24pi.m这个文件所在的文件夹,输入
nohup matlab dd.out &
则没有这个奇怪的提示??? Undefined function or method 'nohup' for input arguments of type 'char'.
而且串行的时候还能得到正确的结果,并行的时候反而不能运行了。郁闷啊
everythinghasitsseason.enjoyyourlife.
2楼2012-11-30 10:50:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

是不是break的问题。但是break跳出的是内层的循环啊。
parfor j=1:10
...
...
for
for
for
if...
berek
end
...


end
是这个问题吗?不用break也不行啊。没法跳出那个循环啊
everythinghasitsseason.enjoyyourlife.
3楼2012-11-30 11:06:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tracel

木虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-11-30 13:15:56
nohup 是系统命令,而非matlab命令,matlab环境,启用并行后,直接运行.m文件即可。
4楼2012-11-30 12:26:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见