Skip to content

Commit 9076af9

Browse files
committed
管道
1 parent a1099a0 commit 9076af9

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

第二章/用管道分解任务.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
##用管道分解任务
2+
3+
管道技术被用来组织那些以合作的方式执行解决问题的任务。管道以并行的方式将大型的任务分割成独立的小任务。管道模型可以和汽车工厂的装配线相比较,在那里,底盘是原始材料,是输入。原料经过不同的生产阶段,几个worker一个接一个执行不同的操作直到结束,以便我们有一辆车准备好了。这个模型和顺序范式的开发类似,任务在数据上一个接一个的执行,正常情况下,一个任务有一个输入,这个输入时上一个任务的结果。那么这个模型和顺序技术的区别是什么呢?每个管道技术的阶段都拥有自己的workers,并且workers在问题上都是以并行的方式执行的。
4+
5+
计算上下文的一个栗子可能是一个系统过程是将图片批量和持续的数据提取到一个数据库中。我们将有以下实际的顺序:
6+
7+
* 输入被接受的图像并且并行的排列,这将在第二阶段进行处理
8+
* 解析图像,并且有用的信息将会被送到第三阶段
9+
* 在第三阶段,过滤器被并行的应用在图像上
10+
* 来自第三阶段的数据结果被保存在数据库中
11+
12+
> 每个阶段的管道技术都用自己workers独立的执行。然而,它建立了数据通信机制,以便有信息的交换。
13+
14+
下图展示了管道的概念:
15+
16+
![](https://github.com/Voidly/Img/blob/master/Parallel%20Programming%20with%20Python/Chapter%202/The%20pipeline%20technique.png?raw=true)

0 commit comments

Comments
 (0)