主要内容

指定并行计算工具箱Java应用程序

方法的使用MATLAB®运行时用户数据接口,用于在Java中指定并行计算工具箱™集群的配置文件®应用程序。

详情请参见使用MATLAB运行时用户数据接口

第一步:写作并行计算工具箱代码

  1. 创建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);
  2. 运行带有输入的函数400

    A = sample_pct(400)

  3. 下面是输出的示例,假设默认概要文件设置为当地的

    使用“本地”配置文件启动并行池(parpool)…连接到并行池(工人数量:6)。正常循环时间:2.5651,并行循环时间:1.6371并行加速:1.5668倍于正常使用“本地”配置文件的并行池正在关闭。完成ans = 1.5668

步骤2:设置并行计算工具箱配置文件

访问MATLAB运行时用户数据接口使用Java包自带MATLAB编译SDK™,您必须设置mcruserdata直接从MATLAB中得到。没有Java API可以访问mcruserdata就像C和c++应用程序一样MATLAB编译器SDK

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

创建以下内容init_sample_pct功能:

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

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

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

提示

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

步骤3:将代码编译成Java

属性构建Java包库的编译器应用程序或compiler.build.javaPackage

在项目中使用以下信息:

包名 parallelComponent
类名 PctClass
要编译的文件 sample_pct.m而且init_pct_sample.m

例如,如果你正在使用compiler.build.javaPackage类型:

buildResults = compiler.build.javaPackage(...“sample_pct.m”“init_sample_pct.m”},...“PackageName”“parallelComponent”“名称”“PctClass”);

有关详细信息,请参见生成Java包和构建Java应用程序

请注意

如果使用“并行计算工具箱”的GPU特性,则需要手动添加PTX和CU文件。

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

  • 如果你正在使用compiler.build函数,使用AdditionalFiles选择。

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

第四步:写作Java应用程序

为访问MATLAB函数的Java应用程序编写源代码。将此代码另存为JavaParallelClass.java在包含生成的parallelComponent.jar包中。

下面提供了这个示例的示例应用程序。

进口com.mathworks.toolbox.javabuilder。*;进口parallelComponent。*;public class JavaParallelClass {public static void main(String[] args) {MWArray A = null;PctClass C = null;对象[]B = null;try {C = new PctClass();/*使用并行数据设置运行时*/ C.init_sample_pct();A = new MWNumericArray(400);B = C.sample_pct(1, A);system . out。println("The speed up was: " + B[0]); } catch (Exception e) { System.out.println("The error is " + e.toString()); } finally { MWArray.disposeArray(A); C.dispose(); } } }

编译并运行应用程序

使用IDE或在命令提示符下编译Java应用程序。

  • 在Windows上®,执行以下命令:

    Javac -类路径"matlabrootjar \ \工具箱\ javabuilder \ javabuilder.jar”;。\ parallelComponent.jar JavaParallelClass.java
  • 在UNIX®,执行以下命令:

    Javac -类路径"matlabroot/工具箱/ javabuilder / jar / javabuilder.jar”:。/ parallelComponent.jar JavaParallelClass.java

取代matlabroot用MATLAB的路径或者MATLAB运行时安装文件夹。例如,在Windows操作系统下,默认路径为C:\Program Files\MATLAB\R2022b

运行JavaParallelClass应用程序。

  • Windows操作系统执行如下命令:

    Java -classpath .;matlabrootjar \ \工具箱\ javabuilder \ javabuilder.jar”;。\ parallelComponent.jar JavaParallelClass
  • 在UNIX系统下,执行如下命令:

    Java -classpath .:"matlabroot/工具箱/ javabuilder / jar / javabuilder.jar”:。/ parallelComponent.jar JavaParallelClass

请注意

上运行应用程序Mac64位平台时,必须添加-d64标志。java命令。

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

启动并行池(parpool)使用'local_mcruserdata'配置文件…连接到并行池(工作人员数量:6)。正常循环时间:2.428,并行循环时间:1.6515并行加速:1.4701倍于使用'local_mcruserdata'配置文件的正常并行池正在关闭。速度提升为:1.4701

另请参阅

|

相关的话题