오늘 Matlab-Simulink를 사용한 병렬 컴퓨팅에 대해 질문했습니다. 저의 이전 질문은 좀 지저분한 것이고 코드에 실제로 문제에 속하는 많은 것들이 있습니다. 내 Simulink의 시뮬레이션은 시뮬레이션으로 작업 공간에서 필요한 데이터를 통합 할 수있는 "작업 영역에서"블록을 사용하는 반면parfor (병렬 컴퓨팅)를 사용한 Simulink- 시뮬레이션
내 문제는, 내가 parfor 루프에서 뭔가를 시뮬레이션 할
입니다. 어떤 이유로 그것은 작동하지 않습니다.
DemoData-파일 그냥 제로입니다 다음과 같이
load DemoData
path = pwd;
apool = gcp('nocreate');
if isempty(apool)
apool = parpool('local');
end
parfor k = 1 : 2
load_system(strcat(path,'\DemoMDL'))
set_param('DemoMDL/Mask', 'DataInput', 'DemoData')
SimOut(k) = sim('DemoMDL')
end
delete(apool);
내 시뮬레이션이 보인다 (100,20)을 다음과 같이
내 코드 보인다 -매트릭스. 이는 데이터의 예입니다. 내가 시뮬레이션 경우
이제 스크립트 다음과 같은 오류 메시지가 occures :
오류
오류 DemoScript를 사용하여 (9 호선)
오류 'DemoMDL/마스크의 평가 매개 변수'인터페이스 DataInput ' '
원인 :
Error using parallel_function>make_general_channel/channel_general (line 907) Error evaluating parameter 'DataInput' in 'DemoMDL/Mask' Error using parallel_function>make_general_channel/channel_general (line 907) Undefined function or variable 'DemoData'.
지금이 일이 왜 생각을해야합니까?
이상한 점은 parfor-Loop 내부의 'DemoData'에 액세스하려고하면 작동한다는 것입니다. 내 출력 그게 전부
load DemoData
path = pwd;
apool = gcp('nocreate');
if isempty(apool)
apool = parpool('local');
end
parfor k = 1 : 2
load_system(strcat(path,'\DemoMDL'))
set_param('DemoMDL/Mask', 'DataInput', 'DemoData')
fprintf(num2str(DemoData))
end
delete(apool);
덕분에 많은 시뮬레이션 및 데이터
'>>'DemoScript 00000000000000000을 ..... 표시하지 않고 : 그 코드 excample하십시오. 즉 더 많은 (불필요한) 자세한 원래 질문 : 근로자가 클라이언트의 작업 공간에서 DemoData에 액세스하지 않았기 때문에