放大PARFOR-Loops到集群和云

在这个例子中,你开始你的本地多核桌面上,并测量运行一个计算所需的时间,提高工作人员的数量的功能。该测试被称为强大的缩放测试。它可以让你,如果你添加更多的工人来衡量计算所需时间的减少。这种相关性称为加速,并允许您估计并行可扩展性你的代码。然后,您可以决定是否有用增加您的并行池工人的数量,并扩展到集群和云计算。

  1. 创建功能。

    编辑mycode的
  2. 在MATLAB®编辑器中,输入新PARFOR-loop并添加抽搐TOC测量经过的时间。

    功能一个= mycode的(A)抽动PARFORI = 1:200 A(I)= MAX(ABS(EIG(RAND(A))));结束TOC
  3. 保存文件,并关闭编辑器。

  4. 平行>并行偏好菜单,检查您的默认集群本地(台式机)。

  5. 在MATLAB命令窗口,定义尺寸1的并行库,以及一个工人运行函数来计算经过的时间。注意一个工人经过的时间和关闭并行池。

    parpool(1);一个= mycode的(1000);
    经过时间是172.529228秒。
    删除(GCP);
  6. 打开两个工人的一个新的并行池,并再次运行该功能。

    parpool(2);一个= mycode的(1000);

    注意所经过的时间;你应该看到,这个现在已经下降相比,单个工作情况。

  7. 尝试4,8,12和16个工人。通过绘制经过的时间在数尺度工人的每个数字测量并行可扩展性。

    该图显示了可扩展性,一个典型的多核台式PC(蓝色圆圈数据点)。强劲的缩放测试表明几乎线性加速以及多达八个工人显著并行可扩展性。由图可知,在这种情况下,我们没有实现进一步加速了八个多工人观察。这一结果意味着,在本地台式机上,所有的核心都全部用于8名工人。您可以在本地桌面上得到了不同的结果,取决于你的硬件。为了进一步加快您的并行应用程序,可以考虑扩展到云或群集计算。

  8. 如果你已用尽你的本地工人,因为在前面的例子中,你可以扩展你的计算向云计算。检查云您的访问从计算平行>发现群集菜单。

    打开云中的并行池和运行没有改变你的代码应用程序。

    parpool(16);一个= mycode的(1000);

    注意增加集群工人的数量所经过的时间。通过绘制经过时间作为工人的数量对数尺度的函数测量并行可扩展性。

    工人由图可见典型的表现在云中(红色加数据点)。这种强烈的缩放测试表明线性加速和100%平行可扩展到16名工人在云中。通过增加云或计算群集上的工人人数进一步考虑缩放你的计算。请注意,并行可扩展性可以是不同的,这取决于你的硬件,工人和其他应用程序的数量较多。

  9. 如果你有一个集群的直接访问,则可以使用群集上的工人扩展您计算。检查从集群的访问平行>发现群集菜单。如果你有一个帐户,请选择打开一个并行池和运行没有改变你的代码应用程序。

    parpool(64);一个= mycode的(1000);

    由图可见典型的强缩放性能的群集上的工人(黑色X数据点)。观察你实现100%的并行可扩展性,持续了至少80名工人在集群上。请注意,这个应用线性比例关系 - 加速比等于用工人的数量。

    这个例子显示了一个加速等于工人的数量。并不是每一个任务都可以实现类似的加速,例如见在并行使用PARFOR交互式运行循环

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

小费

您可以进一步配置文件指定PARFOR通过测量通过使用多少数据传输到和从工人在并行池-loopticBytestocBytes。欲了解更多信息和示例,请参阅剖析PARFOR-循环

相关话题