MATLAB Parallel Serverとparforとload

조회 수: 14 (최근 30일)
NT
NT 2023년 1월 12일
편집: NT 2023년 1월 12일
以下のスクリプト(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'))

채택된 답변

Kojiro Saito
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
NT
NT 2023년 1월 12일
편집: NT 2023년 1월 12일
ご教授いただき、ありがとうございます。
教えていただいた情報から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 2023년 1월 12일
解決して良かったです。回答の採用もありがとうございました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 並列計算の基礎에 대해 자세히 알아보기

태그

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!