gpt4 book ai didi

matlab - 集群上的 Parfor : failure to recognize a function

转载 作者:行者123 更新时间:2023-12-02 03:21:31 25 4
gpt4 key购买 nike

我尝试在集群的不同机器上运行一个简单的任务。我的配置已经过验证(没问题)。当我运行代码时在“本地”配置上,它可以工作。但是当我使用集群时配置时,出现以下错误:

使用parallel_function时出错(第598行)“double”类型的输入参数未定义函数“lafunc”。错误堆栈:(无远程错误堆栈)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

%%%%%%%%%%%

lafunc 函数在哪里

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

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

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

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

最佳答案

确保所有工作节点上的 MATLAB 脚本在同一工作目录中运行,并且路径中包含具有所需函数的其他目录。因此,您可以在脚本中专门设置工作目录和路径:

matlabpool open
cd workdir
addpath funcdir
...

运行 matlabpool open 后,它将在所有工作线程上运行所有与路径相关的命令。请参阅here .

您还可以使用 'FileDependencies' 参数打开 matlabpool,以便所有工作人员都知道在哪里查找所需文件。请参阅 MATLABPOOL 的文档.

关于matlab - 集群上的 Parfor : failure to recognize a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9281141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com