MATLAB Parallel Serverとparforとload

3 views (last 30 days)
NT
NT on 12 Jan 2023
Edited: NT on 12 Jan 2023
以下のスクリプト(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'))

Accepted Answer

Kojiro Saito
Kojiro Saito on 12 Jan 2023
こちらの情報が役立つと思います。
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 Comments
NT
NT on 12 Jan 2023
Edited: NT on 12 Jan 2023
ご教授いただき、ありがとうございます。
教えていただいた情報からAttachedFilesの使用方法を理解することができました
解決済みとさせていただきます。
■動作したスクリプト(parfor_test.m
% 変数の初期化
clear all;
% 作業ディレクトリに移動
cd('D:\matlab');
% MATファイルのリスト取得
dirInfo = dir(fullfile(fullfile(pwd, 'data'), '/*.mat'));
% dataフォルダーを並列プールに添付して転送させる
parpool(4, 'AttachedFiles', "data");
parfor i = 1 : length(dirInfo)
file_name = dirInfo(i).name;
tmp_record = main_load_func_parfor(file_name);
end;
delete(gcp('nocreate'));
Kojiro Saito
Kojiro Saito on 12 Jan 2023
解決して良かったです。回答の採用もありがとうございました。

Sign in to comment.

More Answers (0)

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!