扩大规模帕弗-到群集和云的循环

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

  1. 创建函数。

    编辑霉菌
  2. 在MATLAB中®编辑器,输入新的帕弗-循环并添加抽搐总有机碳来测量经过的时间。

    功能a=支原体帕弗i=1:200a(i)=最大值(abs(eig(rand(a))));结束总有机碳
  3. 保存文件,然后关闭编辑器。

  4. 平行的>并行首选项菜单,检查默认群集地方的(你的台式机)。

  5. 在MATLAB命令窗口中,定义一个大小为1的并行池,并在一个工作线程上运行函数以计算运行时间。请注意单个工作进程的运行时间并关闭并行池。

    parpool(1);a=MyCode(1000);
    运行时间为172.529228秒。
    删除(gcp);
  6. 打开一个由两个工作线程组成的新并行池,然后再次运行该函数。

    parpool(2);a=MyCode(1000);

    请注意经过的时间;您应该看到,与单个worker案例相比,现在这个时间已经减少了。

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

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

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

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

    parpool(16);a=MyCode(1000);

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

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

  9. 如果可以直接访问群集,则可以使用群集上的工作线程来放大计算。从中检查对群集的访问平行的>发现群集菜单。如果您有帐户,请选择集群,打开并行池并在不更改代码的情况下运行应用程序。

    parpool(64);a=MyCode(1000);

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

    这个例子显示了一个等于工人数量的加速。并非每个任务都能实现类似的加速,请参见使用parfor以交互方式并行运行循环.

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

小费

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

相关主题