这个特性允许数据在MATLAB®运行时实例,MATLAB代码在其上运行MATLAB运行时实例,以及创建MATLAB运行时实例。通过电话联系MATLAB运行时用户数据接口API,您访问MATLAB运行时的每个实例关联数组mxArray
,包含从字符串键到mxArray
值。这样做的原因包括但不限于:
你需要提供MATLAB运行时将配置文件信息发送到运行由Parallel Computing Toolbox™软件创建的应用程序的客户端。概要文件可以在每次执行的基础上提供(和更改)。例如,同一个应用程序的两个实例可以同时使用不同的概要文件运行。
你想要初始化MATLAB运行时使用所有MATLAB应用程序都可以访问的常数值。
你想要建立一个全局的工作空间-一个全局变量或变量,MATLAB和你的客户端可以访问。
您希望存储任何变量或变量组的状态。
MATLAB编译器SDK™软件支持per-万博1manbetxMATLAB运行时通过面向对象的API访问实例状态。对每个实例状态的访问是可选的。您可以通过添加setmcruserdata.m
和getmcruserdata.m
,或者在命令行上指定它们。或者,您可以使用助手函数来调用这些方法,如为并行计算工具箱应用程序提供集群配置文件.
有关更多信息,请参见使用MATLAB运行时用户数据接口.
下面是一个完整的例子,告诉你如何使用MATLAB运行时用户数据接口作为一种机制,用于为并行计算工具箱应用程序指定集群配置文件。
编译sample_pct.m
在MATLAB。
此示例代码使用默认配置文件中定义的集群。
输出假设默认配置文件为当地的
.
函数加速= sample_pct (n)警告从所有;抽搐如果(ischar (n)) n = str2double (n);结束为Ii = 1:n (cov(sin(magic(n))+rand(n,n))));结束time1 = toc;parpool;抽搐parforIi = 1:n (cov(sin(magic(n))+rand(n,n))));结束time2 = toc;disp ([正常循环时间:num2str (time1)...',并行循环时间:'num2str (time2)]);disp ([的并行加速:num2str (1 / (time2 / time1))...“比平时快很多倍”]);删除(gcp);disp (“完成”);加速= (time1 / time2);
将默认配置文件更改为之后,运行如下代码当地的
,如果必要的。
= sample_pct (200)
验证您是否得到以下结果:
使用“local”配置文件启动并行池(parpool)…连接到4个工人。正常循环时间:0.7587,并行循环时间:2.9988,并行加速:0.253倍的速度比正常使用'local'配置文件正在关闭的并行池。完成a = 0.2530
为了将MATLAB代码编译成一个。net组件,并利用并行计算工具箱mcruserdata
必须直接从MATLAB设置。没有。net API可用来访问MCRUserdata
就像C和c++应用程序一样MATLAB编译器SDK.
设置mcruserdata
从MATLAB,创建一个初始化
函数。net类中的函数。这是一个单独的MATLAB函数使用setmcruserdata
设置并行计算工具箱配置文件一次。然后调用其他函数来利用并行计算工具箱函数。
创建以下初始化
功能:
function init_sample_pct %设置并行配置文件:if(isdeployed) [Profile] = uigetfile('*.settings');%让用户选择文件setmcruserdata('ParallelProfile', [profile]);结束
你可以在命令行输入以下命令来编译你的函数:
mcc -W 'dotnet:netPctComp,NetPctClass' init_sample_pct. exe '。m sample_pct。m - t链接:自由
另外,你可以使用Library Compiler应用程序如下:
按照下面的步骤操作生成。net程序集和构建。net应用程序编译您的应用程序。编译完成后,将创建一个新文件夹(与项目名称相同)。这个文件夹包含两个子文件夹:distrib
和src
.
库名称 | netPctComp |
类名 | NetPctClass |
文件编制 | sample_pct.m 和init_sample_pct.m |
请注意
如果使用“并行计算工具箱”的GPU特性,需要手动添加PTX和CU文件。
如果您正在使用Library Compiler应用程序,请单击添加文件/目录在构建选项卡。
如果你正在使用世纪挑战集团
命令,可以使用——一个
选择。
要部署已编译的应用程序,请复制for_redistribution_files_only
文件夹,其中包含以下内容,发送给最终用户。
netPctComp.dll
MWArray.dll
集群配置文件
请注意
最终用户的目标计算机必须具有对集群的访问权限。
将引用添加到组件和MWArray
在你的微软®Visual Studio®项目,编写如下的. net驱动程序应用程序来使用该组件,如下所示。看到将简单的MATLAB函数集成到。net应用程序中为更多的信息。
请注意
这个示例代码是使用微软Visual Studio2008.
使用系统;使用MathWorks.MATLAB.NET.Utility;使用MathWorks.MATLAB.NET.Arrays;使用netPctComp;命名空间PctNet{类程序{static void Main(string[] args) {try {NetPctClass A = new NetPctClass();//初始化PCT设置A.init_sample_pct();Double var = 300;MWNumericArray着干活;MWNumericArray in1 = new MWNumericArray(300);着干活= (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); } } } }
输出如下: