主要内容

指定并行计算工具箱在. net应用程序

这个例子展示了如何使用MATLAB®运行时用户数据接口指定配置文件的并行计算工具箱™集群在. net应用程序。

更多细节,请参阅使用MATLAB运行时用户数据接口

步骤1:写并行计算工具箱代码

  1. 创建sample_pct.m在MATLAB。

    这个示例代码使用的默认概要文件中定义的集群并行计算工具。

    函数加速= sample_pct (n)警告所有;抽搐如果(ischar (n)) n = str2double (n);结束2 = 1:n (x (sin(魔法(n) +兰德(n, n))));结束time1 = toc;parpool;抽搐parfor2 = 1:n (x (sin(魔法(n) +兰德(n, n))));结束time2 = toc;disp ([“正常循环时间:num2str (time1),并行循环时间:num2str (time2)]);disp ([的并行加速:num2str (1 / (time2 / time1))“倍正常”]);删除(gcp);disp (“完成”);加速= (time1 / time2);
  2. 运行函数的输入400年

    = sample_pct (400)

  3. 下面是输出的一个例子,假设缺省概要文件集当地的:

    开始平行池(parpool)使用“本地”概要文件…连接到平行池(工人数量:6)。正常的循环时间:2.5651,并行循环时间:1.6371并行加速:1.5668倍正常平行池使用当地的概要文件被关闭。做答= 1.5668

第二步:设置并行计算工具箱

访问MATLAB运行时使用。net组件由用户数据接口MATLAB编译器SDK™,你必须设置mcruserdata直接从MATLAB。没有Java®API来访问mcruserdata像C和c++应用程序了MATLAB编译器SDK

设置mcruserdata从MATLAB,创建一个初始化函数。这个单独的MATLAB函数使用setmcruserdata设置并行计算工具箱概要文件一次。你然后调用其他函数,利用并行计算工具。

创建以下init_sample_pct功能:

函数init_sample_pct%设置并行计算工具箱简介:如果(isdeployed)%让用户选择集群配置文件。[概要,profpath] = uigetfile (‘* .mlsettings‘);setmcruserdata (“ParallelProfile”fullfile (profpath));结束

现有的配置文件导出为一种.mlsettings文件,使用parallel.exportProfile(并行计算工具箱)函数。例如,

parallel.exportProfile (“本地”,“mylocalsettings”);

提示

如果你需要改变你的配置文件在应用程序中,使用parallel.importProfile(并行计算工具箱)parallel.defaultClusterProfile(并行计算工具箱)。有关更多信息,请参见发现集群和集群配置文件使用(并行计算工具箱)

第三步:编译功能

构建的。net组件库的编译器应用程序或compiler.build.dotNETAssembly使用以下信息:

价值
库名称 netPctComp
类名 NetPctClass
文件编制 sample_pct.minit_sample_pct.m

例如,如果您正在使用compiler.build.dotNETAssembly类型:

buildResults = compiler.build.dotNETAssembly ({“sample_pct.m”,“init_sample_pct.m”},“AssemblyName”,“netPctComp”,“名称”,“NetPctClass”);

更多细节,请参阅说明书生成net程序集和构建. net应用程序

请注意

如果您正在使用GPU的并行计算工具箱,您必须手动添加PTX和铜文件。

  • 如果您使用的是库编译器应用程序,点击添加文件/目录构建选项卡。

  • 如果您使用的是compiler.build功能,使用AdditionalFiles选择。

  • 如果您正在使用世纪挑战集团命令,可以使用——一个选择。

第四步:构建并运行. net应用程序

开放微软®Visual Studio®并创建一个c#控制台应用程序被称为DotNETPCT

为. net应用程序编写源代码访问MATLAB函数。

提供了一个示例c#应用程序对于这个示例如下。

使用系统;使用MathWorks.MATLAB.NET.Utility;使用MathWorks.MATLAB.NET.Arrays;使用netPctComp;名称空间PctNet{类程序{静态void Main (string [] args){尝试{NetPctClass =新NetPctClass ();/ /初始化设置PCT A.init_sample_pct ();双var = 400;MWNumericArray着干活;MWNumericArray in1 = new MWNumericArray (var);着干活= (MWNumericArray) A.sample_pct (in); Console.WriteLine("The speedup is {0}", out1); Console.ReadLine(); // Wait for user to exit application } catch (Exception exception) { Console.WriteLine("Error: {0}", exception); } } } }

请注意

这个示例代码是用写的微软Visual Studio2019年。

在Visual Studio中,添加一个引用程序集文件netPctComp.dll位于文件夹生成或安装装配。

添加一个引用MWArrayAPI。

如果MATLAB是安装在您的系统上 matlabroot\ \ dotnetbuilder \ bin \ win64 \工具箱<版本>\ MWArray.dll
如果MATLAB运行时在您的系统上安装吗 < MATLAB_RUNTIME_INSTALL_DIR >\ \ dotnetbuilder \ bin \ win64 \工具箱<版本>\ MWArray.dll

建立和运行DotNETPCT在Visual Studio中的应用。

DotNETPCT应用程序提示您选择要使用的集群配置文件。在您选择的.mlsettings文件,应用程序显示输出类似如下:

加速是1.5217。

另请参阅

|

相关的话题