主要内容

按比例增加parfor循环集群和云

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

  1. 创建函数。

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

    函数一个= MyCode抽搐parfor我= 1:200 (i) = max (abs (eig(兰德(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循环通过测量多少数据转移的工人通过使用并行池ticBytestocBytes。的更多信息和示例,请参阅剖析parfor-loops

相关的话题