定期的に図を更新する matlab で長時間実行されているシミュレーションがあります。別の Linux デスクトップで引き続き作業できるようにしたいのですが、使用しているデスクトップにいないと、matlab の速度が遅くなることを発見しました。これは、目に見えない図などへのレンダリングに不満があることに関連していると思います。他の誰かがこれを見たことがありますか、それとも解決策を見つけましたか? 数字がなくても実行できることはわかっていますが、時々チェックインして数字を見てステータスを確認したいと思っています.
1 に答える
ディスプレイ付きのネットワーク サーバーで matlab を実行しています。これらは、グラフィックスの表示速度、matlab との対話などの点で違いがあることがわかったいくつかのことです。
デスクトップディスプレイでmatlabを実行していません。したがって、次のコマンドを使用して matlab を実行します。
/apps/matlab/R2008b/bin/matlab -nosplash -nodesktop
対話するための matlab 画面がないことには、慣れるのに少し時間がかかりました。しかし、慣れてきた今では、matlab をはるかに高速に使用できることがわかりました (つまり、コマンド ラインからのみコマンドを実行しています)。私はまだグラフィックスを表示することができ (-nodisplay
呼び出しはそれを停止します)、物事はかなり速く実行されているようです.
また、完成したらフィギュアをクリアするようにします。確かなことはわかりませんが、図を継続的にプロットすると、メモリリークが発生することが予想されます。あなたは長時間のシミュレーションがあると言いました。プロットされるたびに図を閉じると役立つと思われます。このような:
for ii = 1:10
figure(1337);
plot(x,y)
drawnow
close(1337)
end
もう 1 つのオプションは、表示なしで実行し ( -nodisplay
)、Figure が更新されるたびにファイルを印刷することです。
for ii = 1:10
figure(1337);
set(1337,'visible','off')
plot(x,y)
drawnow
print(1337,'-dpng',filename.png);
close(1337)
end
そして、画像編集プログラムを使用して、更新されるたびに出力画像を表示します。例えば、
eog filename.png
(おそらく、画像が更新されるたびに画像を自動的に開く、きちんとした小さなシェル スクリプトを作成することもできます。)