Use Parallel Computing Resources in Deployable Archives
To take advantage of resources from Parallel Computing Toolbox™, you can pass a cluster profile to a MATLAB® application that you deploy to MATLAB Production Server™.
Cluster profiles let you define parallel computing properties for your cluster, such as information about the cluster for your MATLAB code to use and the number of workers in a parallel pool. You apply these properties when you create a cluster, job, and task objects in your MATLAB application. For more information on specifying cluster profile preferences, see Specify Your Parallel Preferences (Parallel Computing Toolbox). To manage cluster profiles, see Discover Clusters and Use Cluster Profiles (Parallel Computing Toolbox).
You can also package MATLAB functions that use parallel language commands into a deployable archive and deploy the archive to MATLAB Production Server. For information on creating and sharing deployable archives, see Create Deployable Archive for MATLAB Production Server and Deploy Archive to MATLAB Production Server.
Deployed MATLAB functions are able to find the parallel cluster profile through the Cluster Profile Manager or an exported profile.
Use Profile Available in Cluster Profile Manager
When you package a MATLAB function into a deployable archive, all profiles available in the Cluster Profile Manager are available in the archive by default. This option is useful when you do not expect the profile to change after deployment.
Link to Exported Profile
If you expect the cluster profile to change, you can export the cluster profile first, then load the profile either programmatically in your MATLAB code or use the --user-data
MATLAB
Production Server configuration property. For exporting the cluster profile, see Import and Export Cluster Profiles (Parallel Computing Toolbox).
Load Profile Using MATLAB Code
To load the exported profile in your MATLAB function, use parallel.importProfile
(Parallel Computing Toolbox). For example, the following sample code imports a profile and creates a cluster object using an exported profile.
clustername = parallel.importProfile('ServerIntegrationTest.settings');
cluster = parcluster(clustername);
Load Profile Using Server Configuration Property
To load the exported profile using the MATLAB
Production Server configuration property, set the --user-data
property to pass key-value parameters that represent the exported profile. Set the key to ParallelProfile
and the value to the path to the exported cluster profile followed by the profile file name. For example, to load a profile called ServerIntegrationTest.settings
, set the property as follows:
--user-data ParallelProfile /sandbox/server_integration/ServerIntegrationTest.settings
If you use the command line to manage the dashboard, edit the main_config
server configuration file to specify the --user-data
property. If you use the dashboard to manage MATLAB
Production Server, use the Additional Data field in the Settings tab to specify the --user-data
property.
The cluster profile that you provide to the --user-data
property is automatically set as the default. Therefore, your MATLAB code does not have to explicitly load it and you can use the default cluster as follows:
cluster = parcluster();
Reuse Existing Parallel Pool in Deployable Archive
The following example uses gcp
(Parallel Computing Toolbox) to check if a parallel pool of
workers exists. If a pool does not exist, it creates a pool of 4 workers using parpool
(Parallel Computing Toolbox).
pool = gcp('nocreate'); if isempty(pool) disp("Creating a myCluster") parpool('myCluster', 4); else disp('myCluster pool already exists') end
Limitations
Deployable archives that use parallel computing cannot share parallel pools with other deployable archives.
See Also
parallel.importProfile
(Parallel Computing Toolbox) | parallel.exportProfile
(Parallel Computing Toolbox) | gcp
(Parallel Computing Toolbox) | parpool
(Parallel Computing Toolbox)