MATLAB Parallel Serverとparforとload
조회 수: 14 (최근 30일)
이전 댓글 표시
以下のスクリプト(parfor_test.m)は「並列」→「既定のクラスターの選択」で「local」を選択した場合は動作しますが
MATLAB Parallel Serverで作成したクラスターを選択した場合はエラーになって動作しません。
このスクリプトをMATLAB Parallel Serverのクラスターで動かすには、どのように修正すれば良いのでしょうか?
■環境
クライアント:MATLAB R2021b(Windows10 64bit)
MATLAB Parallel Server:R2021b
■MATLAB Parallel Serverのクラスターを選択した場合のエラー
エラー: main_load_func_parfor
Unable to find file or directory 'D:\matlab\data/h01.mat'.
エラー: parfor_test
parfor i = 1 : length(dirInfo)
■スクリプト(main_load_func_parfor.m)
function record = main_load_func_parfor(file)
load( file );
end
■スクリプト(parfor_test.m)
% 変数の初期化
clear all;
% 作業ディレクトリに移動
cd('D:\matlab');
% MATファイルのリスト取得
dirInfo = dir(fullfile(fullfile(pwd, 'data'), '/*.mat'));
parpool(4)
parfor i = 1 : length(dirInfo)
file_name = fullfile(dirInfo(i).folder, dirInfo(i).name)
%
% main_load_func_parfor.m
% function record = main_load_func_parfor(file)
% load(file);
% end
%
tmp_record = main_load_func_parfor(file_name);
end;
delete(gcp('nocreate'))
댓글 수: 0
채택된 답변
Kojiro Saito
2023년 1월 12일
こちらの情報が役立つと思います。
MATLAB Parallel ServerのワーカーからDドライブにアクセスできていないようなので、dataフォルダーを並列プールに添付してみてはいかがでしょうか。
parpool(4, 'AttachedFiles', "data"); % dataフォルダーを並列プールに添付して転送させる
parfor i = 1 : length(dirInfo)
file_name = dirInfo(i).name;
tmp_record = main_load_func_parfor(file_name);
end
댓글 수: 2
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 並列計算の基礎에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!