按比例增加parfor
循环集群和云
在这个例子中,你开始在本地多核桌面和测量运行计算所需的时间,越来越多的工人的函数。测试被称为强大的扩展测试。它使您能够测量所需的时间减少计算如果您添加更多的工人。这被称为的依赖加速,并允许你估计并行可扩展性你的代码。然后你可以决定是否有助于增加员工的数量在你的平行池,和规模集群和云计算。
创建函数。
编辑MyCode
在MATLAB®编辑器,输入新的
parfor
循环和添加抽搐
和toc
测量时间。函数一个= MyCode抽搐parfor我= 1:200 (i) = max (abs (eig(兰德(a))));结束toc结束
保存文件,并关闭编辑器。
在平行>平行的偏好菜单,检查你的默认集群是当地的(你的桌面机)。
在MATLAB命令窗口中,定义一个平行的池的大小1,一名工人上运行你的函数来计算时间。注意,运行时间为一个工人和关闭你的平行的池中。
parpool (1);一个= MyCode (1000);
运行时间是172.529228秒。
删除(gcp);
打开一个新的平行的两个工人,并再次运行功能。
parpool (2);一个= MyCode (1000);
请注意时间;你现在应该看到这下降相比,单个工人的情况。
尝试4、8、12和16个工人。测量平行可伸缩性通过绘制时间为每个工人数量规模对数。
图显示了一个典型的多核的可伸缩性桌面PC(蓝色圈数据点)。强大的扩展测试显示几乎线性加速和重要的并行可扩展性八个工人。图的观察,在这种情况下,我们不实现进一步加速超过八个工人。这个结果意味着,在本地桌面机器上,核心都是充分利用8工人。你可以得到不同的结果在本地桌面,这取决于您的硬件。为了进一步加快并行应用程序,认为扩大云或集群计算。
如果你已经用尽了当地工人,在前面的例子中,你可以扩大你的计算到云计算。检查你的访问云计算的平行>发现集群菜单。
打开一个并行池在云端和运行您的应用程序在不改变代码。
parpool (16);一个= MyCode (1000);
注意集群花费的时间越来越多的工人。测量平行可伸缩性通过绘制时间的函数对数尺度上的工人数量。
图显示了典型的表现为工人在云中(红色+数据点)。这个强大的扩展测试显示并行可扩展性线性加速和100% 16工人在云中。考虑进一步扩大你的云计算通过增加工人的数量或计算集群。注意,并行可扩展性可以是不同的,根据你的硬件,为更多的工人和其他应用程序。
如果你直接访问一个集群,你可以扩大你的计算集群上使用的工人。检查你的访问的集群平行>发现集群菜单。如果你有一个帐户,选择集群,打开一个并行池和运行您的应用程序在不改变代码。
parpool (64);一个= MyCode (1000);
图显示典型的扩展表现强劲的工人在一个集群(黑色x数据点)。观察到你实现100%的并行可扩展性,持续到至少80名工人在集群上。请注意,这个应用程序——线性扩展加速等于使用的工人数量。
这个例子显示了一个加速等于工人的数量。不是每个任务可以实现类似的加速,例如交互地使用parfor并行运行一个循环。
您可能需要不同的方法为您的特定任务。了解更多关于替代方法,明白了选择一个并行计算解决方案。
提示
你可以进一步的资料parfor
循环通过测量多少数据转移的工人通过使用并行池ticBytes
和tocBytes
。的更多信息和示例,请参阅剖析parfor-loops。