将四步PCAM(福斯特方法论)应用于并行算法设计的示例?

福斯特的方法论设计并行算法有4个步骤

  • 分区

  • 通信

  • 集聚

  • 映射

我遇到的许多示例都采用非常数学的方法。虽然我能理解数学是必不可少的,但我想知道是否有一种更简单的方法可以向不以计算机科学为导向的人解释PCAM方法?

lxwtsqr 回答:将四步PCAM(福斯特方法论)应用于并行算法设计的示例?

假设您要去超市买些杂货,并且与您有一个伙伴,在这种情况下,您的计算机有两个处理器或两个线程(您和您的伙伴)。

首先,我们将问题划分为任务:

  • 创建购物清单
  • 开车去超市
  • 获取列表中的所有项目
  • 支付商品
  • 开车回家
  • 存储所有物品
  • 停放汽车(假设车库离房子很远)

然后您定义通讯方式

  • 要创建购物清单,每个处理者都会检查房屋是否缺失,并会不时聚在一起以巩固清单
  • 在超市中,每个加工者将获得一些货物,并将聚集在购物车上以从列表中选择另一种物品,这样就不会有加工者同时寻找相同的物品
  • 虽然一个处理器正在存储物品,而另一个则将车停在车上,但是当处理器返回时,它可能有助于存储仍然剩余的物品

任务的聚集(不幸的是,我已经描述了它们的聚集)

映射

  • 您检查一些物品,其他人检查您的伴侣
  • 任何处理器都驱车前往超市(但其他处理器一起使用)
  • 您去拿一些东西,而您的伴侣得到另一个东西,直到列表完成
  • 任何加工商都为商品付款(希望是您的合作伙伴)
  • 任何处理器都会驶回,将处理器留在家中存储
  • 驾驶员处理器将车停下来
  • 非驾驶员处理器开始存储货物
  • 驾驶员处理器返回并检查还剩下哪些货物,并帮助存储货物

这完全是非数学的,是我能提出的最好的例子,任何愿意了解该方法的非计算机科学人员都可以理解这个主意。

干杯!

本文链接:https://www.f2er.com/3108771.html

大家都在问