并行编程全解:概念、架构与实践指南
1. 并行与并发的基础概念
在探讨并行编程之前,我们先通过一个国际象棋比赛的例子来理解并行和并发的概念。假设一个象棋俱乐部为比赛增添竞争元素,聘请了两位象棋大师。原本每位大师要进行10场比赛,若采用串行方法,每场比赛耗时10分钟,每步棋耗时50秒,移动到下一张桌子需6秒,总共101分钟。现在有两位大师,若依旧采用串行方法,每位大师只需进行5场比赛,比赛总时长变为50.5分钟。
但如果采用并发和并行的方法,两位大师同时进行5场比赛。每位大师每6秒走一步棋,然后花6秒移动到下一张桌子。虽然每场比赛仍需10分钟,每步棋还是50秒,但由于同时进行的比赛减少到5场,移动时间仅需30秒。这样,整个比赛仅需15.77分钟(946秒),这是四种比赛方式中用时最短的。由此可见,创建并发程序并在并行机器上运行,能显著提高效率。
需要注意的是,并发是算法的属性,而并行是机器的属性。
2. 并行计算机架构
计算机科学家在过去50年里认识到,并行性可用于提高性能和处理大规模问题。接下来,我们将介绍几种不同类型的并行计算机架构。
| 架构类型 | 特点 | 应用场景 |
|---|---|---|
| SISD(单指令流,单数据流) | 经典的冯·诺依曼计算机架构,单程序处理单数据流 | 单处理器计算机 |
| MISD(多指令流,单数据流) |
超级会员免费看
订阅专栏 解锁全文
1551

被折叠的 条评论
为什么被折叠?



