1 划分
1.1 计算划分
数据划分
1.2 划分质量的评估:
a 原始任务数至少比目标并行计算机上的处理器数高一个数量级(如果该条件不能满足的话,则后面的设计将受到很大限制)
b 冗余计算和冗余数据结构存储最小化(如果该条件不能满足的话,则该设计 在问题规模增加的时候可能效果不佳)
c 原始任务的大小大概相同(如果该条件不能满足的话,则难以平衡处理器之间的工作)
d 任务数是问题规模的一个增量函数(如果该条件不能满足的话,则也许不能使用更多的处理器去求解更大规模的问题)
2 通信
2.1 局部通信
全局通信
22 a 平衡任务间的通信操作
b 每个任务仅仅与少量的邻居进行通信
c 任务能够并发地执行它们的通信
d 任务能够并发地执行它们的计算
3 聚集
3.1 如果任务数超过了处理器数目几个数量级,那么仅仅创建这些任务就成为很大的开销,因此,要考虑怎样将原始任务合并成在的任务并映射到物理处理器上以减少开销的量。
3.2 目的
a 降低通信开销
给每个处理器分配一个任务,将相互通信的原始任务聚集起来,则可以取消它们之间的通信。
发送少量长消息比发送总长度相同的大量短消息花时间少。
b 维持并行设计的可扩展性。
c 减少软件工程上的开销
3.3 评估
a 聚集增加了并行算法的局部性
b 复制的计算比它们所替代的通信花费的时间要少。
c 复制的数据问量足够小,使得算法具有可扩展性。
d 聚集后的任务有相似的计算和通信开销。
e 任务数是问题规模的一个增函数。
f 任务数要尽可能的少,但至少要与目标计算机中的处理器数目一样多。
g 合理权衡聚集所带来的好处与修改现有串行代码的开销。
4 映射
4.1 将任务分配给处理器的过程。
4.2 目标 最大化处理器的利用率和最小化处理器之间的通信
4.3 评估
a 已经考虑基于一个处理器对应一个任务和一个处理器对应多个任务的设计。
b 已经评估了静态和动态地将任务分配给处理器。
c 如果已经选择了将任务动态地分配给处理器,则管理者不是性能的瓶颈。
d 如果已经选择了将任务静态地分配给处理器,则任务数与处理器个数的比例不低于10:1
转载自原文链接, 如需删除请联系管理员。
原文链接:并行算法设计--Foster的设计方法论,转载请注明来源!