Mathworks の ParallelToolbox を使用して、テスト環境を高速化しようとしています。ただし、複数の Matlab インスタンスを並行して開始することはできません (これまで、テストを順番に実行し、それぞれが ActX サーバーを介して新しい Matlab インスタンスを開始しています)。したがって、以下のコードを実行すると
ML=ver('Matlab');
ML_Path=matlabroot;
ML_Ver=ML.Version;
parfor i = 1:3
NewMatlab = actxserver(['matlab.application.single.',ML_Ver])
Answer = NewMatlab.Feval('test',1);
NewMatlab.Quit;
NewMatlab.release;
end
Matlab インスタンスは順番に呼び出されます (テストは、いくつかの数値を合計する非常に単純なスクリプトです)。
ただし、コマンドラインから新しい Matlab を起動すると
ML=ver('Matlab');
ML_Path=matlabroot;
ML_Ver=ML.Version;
parfor i = 1:3
dos('matlab -nodesktop -minimize -wait -batch "test"');
end
できます。これら 2 つの方法は、Matlab の起動の処理がまったく異なることがわかりますが、最初のアプローチは次のようになります。