Приложение, которое использует Parallel Computing Toolbox™, может использовать профили кластеров, которые находятся в вашем MATLAB® папка preferences. Чтобы найти эту папку, используйте 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; } |