Приложение, которое использует Parallel Computing Toolbox™, может использовать кластерные профили, которые находятся в вашей папке настроек MATLAB®. Чтобы найти эту папку, использовать prefdir
.
Например, когда вы создаете автономное приложение, по умолчанию все профили, доступные в вашем Cluster Profile Manager, будут доступны в приложении.
Ваше приложение может также использовать кластерный профиль, данный во внешнем файле. Чтобы позволить вашему приложению использовать этот файл, вы можете также:
Соединитесь с файлом в рамках своего кода.
Передайте местоположение файла во время выполнения.
Экспортировать кластерный профиль во внешний файл:
Во вкладке Home, в разделе Environment, выбирают Parallel> Manage Cluster Profiles.
В диалоговом окне Cluster Profile Manager выберите профиль, и в разделе Manage, нажмите Export.
Чтобы позволить вашему приложению использовать кластерный профиль, данный во внешнем файле, можно соединиться с файлом из кода. В этом примере вы будете использовать абсолютные пути, относительные пути и путь поиска файлов 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
функция, вы удаляете способность использовать любой из профилей, доступных в вашем Кластерном менеджере по Профилю. Чтобы повторно включить использование профилей в Cluster Profile Manager, используйте parallel.mlSettings
файл.
mpSettingsPath = '/path/to/myClusterProfile.mlsettings'; setmcruserdata('ParallelProfile', mpSettingsPath); % SOME APPLICATION CODE origSettingsPath = fullfile(prefdir, 'parallel.mlsettings'); setmcruserdata('ParallelProfile', origSettingsPath); % MORE APPLICATION CODE
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; } |