currentProject() function in Parallel Computing Toolbox
조회 수: 13 (최근 30일)
이전 댓글 표시
I have a workflow that uses the MATLAB project functions to retrieve information from the MATLAB project. I use currentProject() to get the matlab.project.Project object.
I am trying to run this workflow using the Parallel Computing Toolbox, but seems that the MATLAB project is not available in the MATLAB workers.
Tested it using this code:
parpool(2);
spmd
currentProject();
end
Does the MATLAB project gets transferred into the MATLAB workers, or only the MATLAB path?
Any workaround about how can I pull the Project Reference information in a distributed environment?
Thanks in advance!
댓글 수: 0
채택된 답변
Sean de Wolski
2023년 2월 14일
You can open the project on all workers before the loop with parfevalOnAll.
gcp
rf = currentProject().RootFolder
parfevalOnAll(@()openProject(rf), 0)
parfor ii = 1:4
disp(currentProject().RootFolder)
end
댓글 수: 2
Simon
2024년 8월 7일 13:09
I was having a similar issue with a test suite (and runInParallel) That solution works thank you @Sean de Wolski
In the future will this be changed so that the open projects are instantiated on the workers without user input? Or is this the intended behavior?
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Programming Utilities에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!