exponenta event banner

Использование панели инструментов параллельных вычислений в развернутых приложениях

Приложение, использующее Toolbox™ параллельных вычислений, может использовать профили кластера, находящиеся в папке настроек MATLAB ®. Чтобы найти эту папку, используйтеprefdir.

Например, при создании автономного приложения все профили, доступные в диспетчере профилей кластера, по умолчанию будут доступны в приложении.

Приложение также может использовать профиль кластера, указанный во внешнем файле. Чтобы разрешить приложению использовать этот файл, можно выполнить одно из следующих действий:

  1. Ссылка на файл в коде.

  2. Передайте расположение файла во время выполнения.

Экспорт профиля кластера

Чтобы экспортировать профиль кластера во внешний файл:

  1. На вкладке Главная в разделе Среда выберите Параллельный > Управление профилями кластера.

  2. В диалоговом окне «Диспетчер профилей кластера» выберите профиль и в разделе «Управление» нажмите кнопку «Экспорт».

Ссылка на профиль панели инструментов параллельных вычислений в коде

Чтобы приложение могло использовать профиль кластера, заданный во внешнем файле, можно создать ссылку на файл из кода. В этом примере для связи с профилями кластера используются абсолютные пути, относительные пути и путь поиска MATLAB. Обратите внимание, что поскольку каждая ссылка указана перед компиляцией, необходимо убедиться, что каждая ссылка не изменяется.

Чтобы задать профиль кластера для приложения, можно использовать setmcruserdata функция.

Поскольку папка настроек MATLAB объединена с приложением, любые относительные ссылки на файлы в папке всегда будут работать. В коде приложения можно использовать myClusterProfile.mlsettings файл находится в папке настроек MATLAB следующим образом:

mpSettingsPath = fullfile(prefdir, 'myClusterProfile.mlsettings'); 
setmcruserdata('ParallelProfile', mpSettingsPath);
Функция fullfile задает абсолютный путь для внешнего файла. Аргумент, заданный mpSettingsPath должен быть абсолютным путем. Если пользователь вашего приложения имеет профиль кластера, расположенный в его файловой системе по абсолютному пути, который не изменится, выполните ссылку на него следующим образом:
mpSettingsPath = '/path/to/myClusterProfile.mlsettings'; 
setmcruserdata('ParallelProfile', mpSettingsPath);
Обратите внимание, что это рекомендуется, если профиль кластера управляется централизованно для вашего приложения. Если пользователь вашего приложения имеет профиль кластера, который хранится локально, можно расширить относительный путь к нему из текущего рабочего каталога следующим образом:
mpSettingsPath = fullfile(pwd, '../rel/path/to/myClusterProfile.mlsettings'); 
setmcruserdata('ParallelProfile', mpSettingsPath);
Обратите внимание, что это рекомендуется, если пользователь автономного приложения должен предоставить свой собственный профиль кластера. Любой файл, добавляемый с помощью -a флаг при компиляции с mcc добавляется к пути поиска MATLAB. Таким образом, можно также связать профиль кластера с приложением, которое хранится снаружи. Во-первых, использовать which для получения абсолютного пути к профилю кластера. Затем, ссылка на него.
mpSettingsPath = which('myClusterProfile.mlsettings'); 
setmcruserdata('ParallelProfile', mpSettingsPath);
Наконец, выполните компиляцию в командной строке и добавьте профиль кластера.
mcc -a /path/to/myClusterProfile.mlSettings -m myApp.m;
Обратите внимание, что для запуска приложения перед компиляцией необходимо вручную добавить /path/to/ к пути поиска MATLAB.

Передача профиля панели инструментов параллельных вычислений во время выполнения

Если пользователь приложения myApp имеет профиль кластера, выбранный во время выполнения, его можно указать в командной строке.

myApp -mcruserdata ParallelProfile:/path/to/myClusterProfile.mlsettings

Обратите внимание, что при использовании setmcruserdata функция в коде переопределяет использование -mcruserdata флаг.

Переключение между профилями кластера в развернутых приложениях

При использовании setmcruserdata функция удаляет возможность использования любого из профилей, доступных в диспетчере профилей кластера. Чтобы повторно включить использование профилей в диспетчере профилей кластера, используйте parallel.mlSettings файл.

mpSettingsPath = '/path/to/myClusterProfile.mlsettings'; 
setmcruserdata('ParallelProfile', mpSettingsPath);

% SOME APPLICATION CODE

origSettingsPath = fullfile(prefdir, 'parallel.mlsettings'); 
setmcruserdata('ParallelProfile', origSettingsPath);

% MORE APPLICATION CODE

Пример кода C для загрузки профиля кластера

mxArray *key = mxCreateString("ParallelProfile"); 
mxArray *value = mxCreateString("/path/to/myClusterProfile.mlsettings");
if (!setmcruserdata(key, value))
{
    fprintf(stderr, 
            "Could not set MCR user data: \n %s ",
            mclGetLastErrorMessage());
    return -1;
}