Skip to content

Commit 576c7fa

Browse files
committed
处理和映射
1 parent 9076af9 commit 576c7fa

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

第二章/处理和映射.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
##处理和映射
2+
3+
workers的数量并不足以在一个单一的步骤里解决一个特定的问题。因此前面的章节给出的分解技术是很必要的。然而分解技术不应该被任意的应用,有一些因素会影响解决方案的性能。在数据或者任务分解之后,我们应该问这么一个问题:“我们应该在workers中如何划分进程的负载来获得比较好的性能?”这不是一个很好回答的问题,因为这取决于正在研究的问题。
4+
5+
基本上,我们在定义过程映射时可以提到两个重要的步骤:
6+
7+
* 识别独立的任务
8+
* 识别需要数据交换的任务
9+
10+
###识别独立的任务
11+
12+
在系统中识别独立的任务将允许我们在不同的workers之间分配任务,因为这些任务不需要不断的通信。因为不需要一个数据单元,所以任务可以在不同的workers间执行而不会影响其它任务的执行。
13+
14+
###识别需要数据交换的任务
15+
16+
将一个单独的worker建立持续的通信的任务分组可以提高性能。当有大的通信负载的时候的时候这个真的可以提高性能,因为它能减少任务间信息交换的总开销。
17+
18+
###负载均衡
19+
20+
在并行解决方案中一个相关的特性是在不同的计算资源间工作单元的分配方式。我们给不同的workers分配越多的任务,我们将增加越多的通信粒度。另一方面,我们以一个worker分组的任务越多,与通信相关的总开销越小。不过,我们可以增加空转,也就是说,闲置计算的能力。在并行编程中,闲置并不好。此外,位置的增加将会减少通过简单的添加更多的设备而增加计算能力的可扩展的灵活性。在一个基于通信的架构(低数据位置),对于集群或者网格来说是简单的增加机器来提升处理性能甚至不需要中断正在运行的系统。

0 commit comments

Comments
 (0)