主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

在部署的应用程序中使用 Parallel Computing Toolbox

使用 Parallel Computing Toolbox™ 的应用程序可以使用 MATLAB® 预设项文件夹中的集群配置文件。要找到该文件夹,请使用 prefdir

例如,当您创建一个独立的应用程序时,集群配置文件管理器中可用的所有配置文件都将在该应用程序中可用。

您的应用程序还可以使用外部文件中给出的集群配置文件。为了使您的应用程序能够使用此文件,您可以:

  1. 在代码内链接到文件。

  2. 在运行时传递文件的位置。

导出集群配置文件

要将集群配置文件导出到外部文件:

  1. 在主页选项卡的环境部分中,选择并行 > 创建和管理集群

  2. 集群配置文件管理器对话框中,选择一个配置文件,然后在管理部分中点击导出

在您的代码中链接到 Parallel Computing Toolbox 配置文件

为了使您的应用程序能够使用外部文件中给出的集群配置文件,您可以从代码链接到该文件。在此示例中,您将使用绝对路径、相对路径和 MATLAB 搜索路径链接到集群配置文件。请注意,由于每个链接都是在编译之前指定的,因此必须确保每个链接都不会改变。

要为您的应用程序设置集群配置文件,您可以使用 setmcruserdata 函数。

由于您的 MATLAB 预设项文件夹与您的应用程序捆绑在一起,因此文件夹内文件的任何相对链接将始终有效。在您的应用程序代码中,您可以使用 MATLAB 预设项文件夹中的 myClusterProfile.mlsettings 文件。

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);
如果您的独立应用程序的用户应该提供他们自己的集群配置文件,这是一个很好的做法。您在编译时添加到应用程序的任何文件都会添加到 MATLAB 搜索路径中。因此,您还可以将外部保存的集群配置文件与您的应用程序捆绑包。首先,使用 which 来获取集群配置文件的绝对路径。然后,链接到它。
mpSettingsPath = which('myClusterProfile.mlsettings'); 
setmcruserdata('ParallelProfile', mpSettingsPath);
最后,在命令行进行编译并添加集群配置文件。
mcc -a /path/to/myClusterProfile.mlsettings -m myApp.m;
请注意,要在编译之前运行应用程序,您必须手动将 /path/to/ 添加到您的 MATLAB 搜索路径。

在运行时传递 Parallel Computing Toolbox 配置文件

如果您的应用程序 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 代码示例

您可以在使用 MATLAB Compiler SDK™ 构建的 C 和 C++ 应用程序中本地调用 mcruserdata 函数。

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;
}

另请参阅

|

主题