小编Fré*_*din的帖子

群集上的Parfor:无法识别功能

我尝试在群集的不同机器上运行一个简单的任务.我的配置已经过验证(没关系).当我在"本地"配置上运行代码时,它可以工作.但是当我使用群集配置时,我收到以下错误:

使用parallel_function时出错(第598行)未定义函数'lafunc'用于'double'类型的输入参数.错误堆栈:(没有远程错误堆栈)petittest中的错误(第6行) - »(petittest是我程序的名称)parfor it = 1:200

我尝试修改代码使用"dfeval"而不是parfor循环,但我得到了相同类型的结果(无法识别函数lafunc).

如何让群集中的其他工作人员识别我手动定义的函数lafunc?

代码如下:

%%%%%%%%%%%%%
laconfig='/home/matlab/fred/LACED_DC1.mat';
setmcruserdata('ParallelConfigurationFile',laconfig);

matlabpool open

parfor it=1:200

yo=lafunc(it);
disp(yo)

end

matlabpool close

%%%%%%%%%%%
Run Code Online (Sandbox Code Playgroud)

lafunc函数的位置

%%%%%%%%%%%%%%

function [y]=lafunc(x)
y=x*x;
end

%%%%%%%%%%%%%%%%%%%%%%
Run Code Online (Sandbox Code Playgroud)

非常感谢,每一条信息都对我有用!

parallel-processing matlab cluster-computing

2
推荐指数
1
解决办法
3819
查看次数