MATLAB Parallel Serverとparforとload
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
以下のスクリプト(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 Commenti
Risposta accettata
Kojiro Saito
il 12 Gen 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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su 並列計算の基礎 in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!