主要内容

按比例增加帕弗循环到集群和云

在本例中,您从本地多核桌面开始,测量运行计算所需的时间,作为工作人员数量增加的函数。这个测试叫做强大的扩展测验它使您能够在添加更多工作人员时测量计算所需时间的减少。这种依赖性被称为加速,并允许您估计并行可扩展性你的代码。然后,您可以决定增加并行池中的工作人员数量是否有用,并扩展到集群和云计算。

  1. 创建函数。

    编辑MyCode
  2. 在MATLAB中®编辑器,输入新的帕弗循环和添加抽搐toc测量经过的时间。

    函数a=MyCode(a)tic帕弗i=1:200 a(i)=最大值(绝对绝对绝对值(环境影响指数(兰德(a)));终止toc终止
  3. 保存文件,然后关闭编辑器。

  4. 平行>平行的偏好菜单,检查一下你的默认集群地方的(您的桌面计算机)。

  5. 在MATLAB命令窗口中,定义一个大小为1的并行池,并在一个辅助进程上运行函数以计算运行时间。记下单个辅助进程的运行时间并关闭并行池。

    帕尔普(1);a=MyCode(1000);
    运行时间为172.529228秒。
    删除(gcp);
  6. 打开一个由两个worker组成的新的并行池,并再次运行该函数。

    帕尔普(2);a=MyCode(1000);

    记下经过的时间;您应该看到,与单工案例相比,这一比例现在有所下降。

  7. 试试4个、8个、12个和16个工人。通过在日志刻度上绘制每个工作进程的运行时间来测量并行可伸缩性。

    该图显示了典型多核台式PC(蓝色圆圈数据点)的可扩展性。强大的可伸缩性测试显示,对于多达8名工作人员,几乎是线性加速和显著的并行可伸缩性。从图中可以看出,在这种情况下,我们没有为超过8名工人实现进一步的加速。这一结果意味着,在本地桌面计算机上,所有内核都被8个工作人员充分使用。根据硬件的不同,您可以在本地桌面上获得不同的结果。为了进一步加速并行应用程序,考虑扩展到云计算或集群计算。

  8. 如果您已经耗尽了本地员工的精力,如前一个示例中所示,您可以将计算扩展到云计算。检查您从平行>发现集群菜单

    在云中打开一个并行池,在不更改代码的情况下运行应用程序。

    帕尔普(16);a=MyCode(1000);

    请注意集群工作线程数量增加所花费的时间。通过在日志刻度上绘制运行时间作为工作人员数量的函数来测量并行可伸缩性。

    图中显示了云中的工作人员的典型性能(红色加上数据点)。这个强大的扩展测试显示了线性加速和100%的并行可伸缩性,最多可在云中使用16个工人。考虑通过增加云或计算集群中的worker数量来进一步扩展计算。请注意,对于大量的工作人员和其他应用程序,并行可伸缩性可能不同,这取决于您的硬件。

  9. 如果您可以直接访问集群,则可以使用集群上的worker来扩展计算。检查你对集群的访问平行>发现集群菜单如果您有帐户,请选择,打开并行池并运行应用程序,而无需更改代码。

    帕尔普(64);a=MyCode(1000);

    该图显示了集群上工作人员的典型强扩展性能(黑色x数据点)。请注意,您可以实现100%的并行可伸缩性,在集群上至少保留80个工作线程。请注意,此应用程序可线性扩展-加速比等于使用的工作人员数。

    这个例子显示了一个等于工人数量的加速。并不是每一个任务都能达到类似的加速效果使用parfor以交互方式并行运行循环.

    对于特定的任务,您可能需要不同的方法。要了解有关替代方法的更多信息,请参阅选择一个并行计算解决方案.

提示

您可以进一步分析帕弗-循环,通过使用ticBytes总字节. 有关更多信息和示例,请参见循环分析.

相关的话题