Этот пример показывает, как использовать Simulink.sdi.sendWorkerRunToClient
, чтобы отправить выполнения, созданные с помощью параллельных рабочих вручную для Инспектора Данных моделирования.
Настройка
Этот пример запускает несколько симуляций модели vdp
, отличаясь значение усиления, Mu
. Чтобы настроить для параллельной симуляции, задайте вектор значений Mu
и сконфигурируйте Инспектора Данных моделирования для ручной поддержки Parallel Computing Toolbox.
Инициализируйте параллельных рабочих
Используйте parpool
, чтобы запустить пул четырех параллельных рабочих. Этот пример вызывает parpool
в операторе if, таким образом, вы только создаете параллельный пул, если у вас уже нет того. Можно использовать spmd
, чтобы запустить код инициализации, характерный для всех рабочих. Например, загрузите модель vdp
и выберите сигналы регистрировать к выполнениям, что мы можем отправить Инспектору Данных моделирования на клиенте MATLAB. Чтобы избежать проблем параллелизма данных при симуляции с sim
в parfor
, создайте временную директорию на каждом рабочем. После завершенных симуляций другой блок spmd удаляет временные директории.
Starting parallel pool (parpool) using the 'local' profile ...
connected to 4 workers.
Идите параллельно симуляции с parfor
К потоковым данным от параллельных рабочих Инспектору Данных моделирования необходимо идти параллельно симуляции с помощью parfor
. Каждый рабочий запускает симуляцию vdp
с различным значением Mu
. Simulink не может получить доступ к содержимому цикла parfor
, таким образом, переменная MuVal
задана в рабочей области рабочего, где модель vdp
видит его, с помощью assignin
.
Доступ к данным и отправляет запущенный клиенту MATLAB
Можно использовать Инспектора Данных моделирования программируемый интерфейс на рабочем тем же путем, вы были бы в клиенте MATLAB. Этот пример создает объект Simulink.sdi.Run
и присоединяет значение Mu
, используемого в симуляции со свойством Tag
.
Закройте временные директории и просмотрите выполнения в инспекторе данных моделирования
Используйте другой раздел spmd
, чтобы удалить временные директории, созданные на рабочих, если симуляции завершаются. В каждой симуляции Simulink.sdi.sendWorkerRunToClient
импортировал выполнения от всех рабочих в Инспектора Данных моделирования. Можно просмотреть данные и проверять свойства выполнения видеть значение Mu
, используемого во время симуляции.