Я пытаюсь выполнить простую задачу на разных машинах кластера.
Моя конфигурация была проверена (это нормально). Когда я запускаю код
на «локальной» конфигурации это работает. Но когда я использую кластер
В конфигурации я получаю следующую ошибку:
Ошибка использования параллельной функции (строка 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
%%%%%%%%%%%
где функция lafunc
%%%%%%%%%%%%%%
function [y]=lafunc(x)
y=x*x;
end
%%%%%%%%%%%%%%%%%%%%%%
Большое спасибо, каждая информация полезна для меня !!