Я пытаюсь ускорить нашу тестовую среду с помощью ParralelToolbox от Mathworks. Однако я не могу запустить несколько экземпляров Matlab параллельно (до сих пор мы запускаем наши тесты последовательно, и каждый запускает новый экземпляр Matlab через сервер ActX). Поэтому, когда я запускаю следующий код ниже
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 вызываются последовательно (test - это очень простой скрипт, который суммирует несколько чисел).
Однако, если я запускаю новый Matlab через командную строку
ML=ver('Matlab');
ML_Path=matlabroot;
ML_Ver=ML.Version;
parfor i = 1:3
dos('matlab -nodesktop -minimize -wait -batch "test"');
end
это работает. Я вижу, что эти два метода совершенно различны в обработке запуска Matlab, но первый подход будет