exponenta event banner

Simulink.data.dictionary.cleanupWorkerCache

Восстановление значений по умолчанию после параллельного моделирования со словарем данных

Описание

Simulink.data.dictionary.cleanupWorkerCache восстанавливает настройки по умолчанию после завершения параллельного моделирования модели, связанной со словарем данных. Используйте эту функцию в spmd (Панель параллельных вычислений), после завершения параллельного моделирования с помощью parfor(Панель инструментов параллельных вычислений), чтобы восстановить настройки по умолчанию, которые были изменены Simulink.data.dictionary.setupWorkerCache функция.

Во время параллельного моделирования модели, связанной со словарем данных, можно разрешить каждому работнику получать доступ к данным в словаре и изменять их независимо от других работников. Функция Simulink.data.dictionary.setupWorkerCache предоставляет каждому работнику уникальный кэш словаря для обеспечения независимого доступа к данным и функции Simulink.data.dictionary.cleanupWorkerCache восстанавливает значения по умолчанию для параметров кэша.

Необходимо иметь лицензию Parallel Computing Toolbox™ для выполнения параллельного моделирования с использованием parfor (Панель параллельных вычислений) блок.

Примеры

Управление вариантами сдвига с помощью параллельного моделирования

Использование параллельного моделирования для сдвига элемента управления исполнения (a Simulink.Parameter объект, значение которого влияет на условие исполнения Simulink.Variant объект), хранящийся в словаре данных, используйте этот код в качестве шаблона. Измените имена и значения модели, словаря данных и элемента управления исполнениями в соответствии с приложением.

Для сдвига значений параметров блока или переменных рабочей области, используемых для задания параметров блока, используйте Simulink.SimulationInput вместо программного интерфейса к словарю данных. См. раздел Оптимизация, оценка и значения параметров блока сдвига.

Для выполнения параллельного моделирования необходимо иметь лицензию Parallel Computing Toolbox.

% For convenience, define names of model and data dictionary
model = 'mySweepMdl';
dd = 'mySweepDD.sldd';

% Define the sweeping values for the variant control
CtrlValues = [1 2 3 4];

% Grant each worker in the parallel pool an independent data dictionary 
% so they can use the data without interference
spmd 
    Simulink.data.dictionary.setupWorkerCache
end

% Determine the number of times to simulate
numberOfSims = length(CtrlValues);

% Prepare a nondistributed array to contain simulation output
simOut = cell(1,numberOfSims);

parfor index = 1:numberOfSims
    % Create objects to interact with dictionary data
    % You must create these objects for every iteration of the parfor-loop
    dictObj = Simulink.data.dictionary.open(dd);
    sectObj = getSection(dictObj,'Design Data');
    entryObj = getEntry(sectObj,'MODE'); 
    % Suppose MODE is a Simulink.Parameter object stored in the data dictionary
    
    % Modify the value of MODE
    temp = getValue(entryObj);
    temp.Value = CtrlValues(index);
    setValue(entryObj,temp);

    % Simulate and store simulation output in the nondistributed array
    simOut{index} = sim(model);
    
    % Each worker must discard all changes to the data dictionary and
    % close the dictionary when finished with an iteration of the parfor-loop
    discardChanges(dictObj);
    close(dictObj);
end

% Restore default settings that were changed by the function
% Simulink.data.dictionary.setupWorkerCache
% Prior to calling cleanupWorkerCache, close the model

spmd
    bdclose(model)
    Simulink.data.dictionary.cleanupWorkerCache
end

Примечание

Если словари данных открыты, использовать команду нельзя Simulink.data.dictionary.cleanupWorkerCache. Для идентификации открытых словарей данных используйте Simulink.data.dictionary.getOpenDictionaryPaths.

См. также

| | | (Панель параллельных вычислений) | (Панель инструментов параллельных вычислений)

Представлен в R2015a