文档

分布式的基准

本例运行针对Parallel Computing Toolbox™修改的MATLAB®基准测试。我们在工作人员上执行基准测试,以确定分布式计算网络上机器的相对速度。在一台机器上重复运行的测量时间中,5%或10%的波动并不罕见。

这个基准测试旨在比较一个特定版本的MATLAB在不同机器上的性能。它不提供不同版本的MATLAB之间的直接比较。任务和问题大小因版本而异。

有关基准测试的详细信息,请查看pctdemo_task_bench的代码

先决条件:

相关例子:

加载示例设置和数据

该示例在确定要使用的集群时使用默认配置文件。的资料文档说明如何创建新配置文件以及如何更改默认配置文件。看到自定义设置的例子在并行计算工具箱™有关如何更改示例难度级别或创建的任务数量的说明。

因为这个示例使用回调,所以我们还要验证我们有一个MJS集群对象要使用,而不是其他集群类型之一。

[难度,myCluster, numTasks] = pctdemo_helper_getDefaults();如果~ isequal (myCluster。类型,“乔丹”)错误(“pctexample: benchdist: NotMJS”这个例子使用了回调函数,它只能用一个MJS集群。]);结束流(['此示例将提交带有%d任务的作业'\n'), numTasks);
此示例将向集群提交一个包含4个任务的作业。

我们将重复这一基准次数,和跑一次共numTasks网络上的基准测试。因为我们无法控制哪些工人执行任务,其中一些人可能会被多次基准测试。另外,请注意,示例难度级别对我们在本例中执行的计算没有影响。你可以查看pctdemo_setup_bench的代码详细信息。

[fig, count] = pctdemo_setup_bench(难度);

创建并提交作业

我们创造了一个工作,包括numTasks任务。每个任务由执行组成pctdemo_task_bench(计数)和调用pctdemo_taskfin_bench当它完成时。任务完成回调收集任务结果并存储它们。它还使用到目前为止获得的所有结果更新绘图。的代码pctdemo_task_benchpctdemo_taskfin_bench有关详细信息。

job = createJob(myCluster);i = 1:numTasks task = createTask(job, @pctdemo_task_bench, 1, {count});集(任务,“FinishedFcn”@pctdemo_taskfin_bench,“用户数据”图);结束

我们现在可以提交作业并等待它完成。

提交(工作);等待(工作);

检索结果

当任务完成时,任务完成回调函数收集任务结果并更新输出图。因此,我们不需要在这里执行任何绘图,我们只需验证我们是否获得了期望的所有结果。fetchOutputs如果任务没有成功完成,将抛出错误,在这种情况下,我们需要在抛出错误之前删除作业。

试一试[~] = fetchOutputs(job);犯错删除(工作);重新抛出(错);结束

我们现在已经完成了所有的验证,所以我们可以删除这个作业。

删除(工作);
这个话题有帮助吗?