Matlab 2011b で数日かかるシミュレーションを実行しています。その結果、シミュレーション データを反復ごとにデータ構造に記録し、次にファイル ( *.mat 形式) に記録しています。シミュレーション/データ ロギングで奇妙な動作が見られます。ログに記録されたマット ファイルが 256 MB 程度を超えると、128 バイトのファイルに置き換えられることがわかりました。サイズは正確にはわかりませんが、128 バイトのファイルに置き換えられる前のファイル サイズは 256 MB 近くかそれ以下であることがわかりました。誰かが同様の問題を抱えているかどうか疑問に思っています。回避策は何ですか? 最大 256MB 程度の Matlab ワークスペース メモリ制限はありますか? その制限を変更する方法はありますか?
私は Matlab 2011b リリースを使用しており、並列計算ツールボックスを使用して、異なる Matlab ワーカーでスクリプトの複数のインスタンス (サーバーで最大 12 コア) を実行しています。各ワーカーのシミュレーションは独立しています。Matlab 2011b は Linux/CentOS/Mac で実行されており、観察はすべてのワーカーで行われ、Windows 7 でも行われます。したがって、微調整できるのは Matlab の設定または構成であると思います。提案や回避策は大歓迎です。
更新: コードの実行内容のサンプル スクリプトを更新しています。反復インデックスは、シミュレーション時間に従って増加する場合があります。
%Matlab workspace memory test
% filename: sim_workspace_mem_test.m
clear; clc;
TotalData=[];
for i=1:1000
for j=1:1000
for k=1:100
data.x=rand(100,100);
data.y=randi(100,100);
TotalData{i,j,k}=data;
end
filename='SimData';
save(filename, 'TotalData');
end
end