-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy path3、多处理器.md
129 lines (70 loc) · 4.81 KB
/
3、多处理器.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
### 多处理器
#### 存储系统
存储系统结构
* 共享存储器
<img src="https://img-blog.csdnimg.cn/20201225163753984.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" width="40%" />
* 分布到各结点
<img src="https://img-blog.csdnimg.cn/2020122516360130.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" width="40%" />
* 两个优点
* 如果大多数的访问是针对本结点的局部存储器,则可降低对存储器和互连网络的带宽要求;
* 对本地存储器的访问延迟时间小。
* 最主要的缺点
* 处理器之间的通信较为复杂,且各处理器之间访问延迟较大。
地址编排
* 共享全局地址空间
* 物理共享的存储器具有统一逻辑地址
* 物理上分离的所有存储器作为一个统一的共享逻辑空间进行编址。 分布式共享存储器系统( DSM : Distributed Shared- - Memory)
* 分布式的独立地址空间
* 整个系统的地址空间由多个独立逻辑地址空间构成
* 不同结点中的地址空间之间是相互独立的
* 每个结点中的存储器只能由本地的处理器进行访问,远程的处理器不能直接对其进行访问。
#### 通信机制
根据存储系统有两种
* 共享存储器通信机制
* 共享地址空间的计算机系统采用
* 处理器之间是通过用load 和store 指令对相同存储器地址进行读/ 写操作来实现的。
* 消息传递通信机制
* 多个独立地址空间的计算机采用
* 通过处理器间显式地传递消息来完成
* 消息传递多处理机中,处理器之间是通过发送消息来进行通信的,这些消息请求进行某些操作或者传送数据
* 方式
* 同步消息传递:请求处理器发送一个消息后一直要等到应答结果才继续运行。
* 异步消息传递:当请求处理器发送一个消息后可以处理其他事情,数据发送方在得到所需数据后,通知请求处理器。
不同通信机制的优点
* 共享存储器通信的主要优点
* 与常用的对称式多处理机使用的通信机制兼容。
* 易于编程,同时在简化编译器设计方面也占有优势。
* 采用大家所熟悉的共享存储器模型开发应用程序,而把重点放到解决对性能影响较大的数据访问上。
* 当通信数据量较小时,通信开销较低,带宽利用较好。
* 可以通过采用Cache 技术来减少远程通信的频度 ,减少了通信延迟以及对共享数据的访问冲突。
* 消息传递通信机制的主要优点
* 硬件较简单。
* 通信是显式的,因此更容易搞清楚何时发生通信以及通信开销是多少。
* 显式通信可以让编程者重点注意并行计算的主要通信开销,使之有可能开发出结构更好、性能更高的并行程序。
* 同步很自然地与发送消息相关联,能减少不当的同步带来错误的可能性。
可在支持上面任何一种通信机制的硬件模型上建立所需的通信模式平台。
* 在共享存储器上支持消息传递相对简单。
* 在消息传递的硬件上支持共享存储器就困难得多。
* 所有对共享存储器的访问均要求操作系统提供地址转换和存储保护功能,即将存储器访问转换为消息的发送和接收。
#### 并行处理的问题
并行处理面临着两个重要的挑战
* 程序中的并行性有限
* 相对较大的通信开销
<img src="https://img-blog.csdnimg.cn/2020122516363836.png" width="55%" />
第一个挑战
* 有限的并行性使计算机要达到很高的加速比十分困难。
* 例如: 假设想用 100 个处理器达到 80 的加速比,求原计算程序中串行部分最多可占多大的比例?
<img src="https://img-blog.csdnimg.cn/20201225163701745.png" width="35%" />
第二个挑战
* 多处理机中远程访问的延迟较大(增加了 CPI)
* 在现有的机器中,处理器之间的数据通信大约需要50~1000个时钟周期。
* 主要取决于:通信机制、互连网络的种类和机器的规模
* 问题的解决
* 并行性不足: 采用并行性更好的算法
* 远程访问延迟的降低:靠系统结构支持和编程技术
在并行处理中,影响性能(负载平衡、同步和存储器=访问延迟等)的关键因素常依赖于
* 应用程序的高层特性
* 如数据的分配,并行算法的结构以及在空间和时间上对数据的访问模式等。
* 依据应用特点可把多机工作负载大致分成两类:
* 单个程序在多处理机上的并行工作负载
* 多个程序在多处理机上的并行工作负载