startup.m が parpool コマンドの実行に影響するのはなぜですか?
1 回表示 (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2020 年 9 月 29 日
回答済み: MathWorks Support Team
2020 年 9 月 29 日
MATLAB 起動時に自動実行される startup.m に、作業ディレクトリを指定するためのポップアップウィンドウを表示するよう記述しています。
しかし、この startup.m を使用している環境では、parpool コマンドを実行しても、並列プールがいくら待っても起動されません。
採用された回答
MathWorks Support Team
2020 年 9 月 29 日
parpool 開始時には、各 MATLAB ワーカーに対して、同じ MATLAB パス内にある startup.m が呼び出されます。ただし、ここでの MATLAB セッションは、通常の MATLAB デスクトップ環境とは異なり、Figure などのグラフィックスは表示することができません。
そのため、表示されない Figure の画面が終了されるまで待機の状態が続くため、parpool が開始できません。
これは、matlabrc.m にコマンドを追記してる場合も同様の問題が発生する可能性があります。特に、サードパーティ製品の初期化コマンドなどが含まれている場合、ご注意ください。
回避方法:
startup.m (または matlabrc.m) にて、下記のいずれかの構文を追加します。
構文内には、通常の MATLAB 起動時のみ実行したい内容を記述します。
if (~java.awt.GraphicsEnvironment.isHeadless())
<code that we only want to happen on client>
end
Or:
if (usejava('desktop'))
<code that we only want to happen on client>
end
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で 並列計算の基礎 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!