Alterna · учебный материал

平行计算

第7.1章 - 平行计算:安达尔法、弗林斯分类、康维尔、多精度、同步。

Что в этом материале

Содержание и основные понятия

返回目录
第7章 第7页 第7.1页
平行计算
一个处理器是好的。 两个更好。 一千个? 我们要找出如何通过在核心之间分配工作来加快计算速度, 以及为什么我们不能继续加速。
平行计算
- 这是当任务分解, 和每个部分是同时 运行在它自己的处理器。
现代处理器有4至16个核心,视频卡有数千个,但平行并不是万灵药:代码的一部分总是一致的,这限制了加速。
· 基本全球环境基金
EGE 第22号
01
为什么平行?
摩尔定律减慢 频率不增长 核心增长
频率限制
直至2005年,通过增加加速处理器
战术频率
但是在~4千兆赫以上 芯片过热了
内核数量增加
.
两种平行主义
📊
数据平行
data parallelism
一个操作同时适用于许多数据。例如:对所有图像像素应用过滤器。
🔀
任务平行
task parallelism
不同的内核同时执行不同的任务。 例如: 一个核心集合视频, 另一个压缩文件 。
与第二章的关系
在第二章(PC)中, 我们用母亲的收费 看到了多核处理器, 现在我们要弄清楚他们是如何合作的。
02
《阿姆达尔法》
为什么无限的内核数量不能提供无限加速
公式公式公式
Gene Amdal(1967)删除了最大散射加速度公式:
S = 1 / ((1 − p) + p / N)
p 是平行代码( 0-1) 的分数, N 是内核的数量
示例示例示例
方案:80%可按严格顺序拆分(p=0.8)20%。
S = 1 / (0.2 + 0.8/4) = 1 / (0.2 + 0.2) = 1 / 0.4 =
2.5
加速加速
2.5倍
4. 因此,20%是瓶子喉咙。
ANDL 限制
在N:
S_max = 1 / (1 − p)
p=0.9:p=0.99最大10x.;最高100x。
EEEG 陷阱
加速加速
从来没有。
不超过
1/(1-p)
如果p=0.5,则最大值为2xx,即使有百万个内核。
03
Flyn 分类分类
按指挥和数据流数目分列的四类结构
迈克尔·弗林(1966年)
命令
(指示)和
数据数据数据 数据
(Data):
职等 职等
命令
数据数据数据 数据
示例示例示例
SISD
1
1
普通单核处理器
SIMD
1
多个
GPU,矢量指示(SE/AVX)
MISD
多个
1
理论(几乎未使用)
MIMD
多个
多个
多核CPU、集群、超级计算机
记住
SISD
- 你的旧电脑
SIMD
- 视频卡片
MIMD
- 现代多核处理器或超级计算机。
04
电话处理
拆散一个团队在舞台上 就像工厂的组装。
传送者的想法
每个处理小组经过几个阶段。 处理器不是等待完成一个指挥部,而是在仍然在传送器上时开始下列工作:
蒂例 1
化联(com.1)
线性 2
IDI(Com.1)
化联(com2)
塔特 3
执行(com.1)
ID(Com2)
IF3 (com.3)
形体 4
世行(com.1)
执行委员会(执行委员会2)
ID(Com.3)
IF(com.4)
IF - 上传
- ID - 解码
EX - 执行
WW - 录音
图1
4级传送器:装载后,每个命令以1中风结束
话话话公式
用于
k
阶段和
n
命令 :
T = k + (n − 1)
线条
没有传送者:
T = k × n
二. 获胜者:围绕
k
我不知道它是不是个大N
示例示例示例
4级,100命令: 传送器=4+99=
103
无传送器=4x100=
400
加速度 ~ 3.9x
05
多种准确性和同步
流动、哑巴、僵局——如何不打破平行方案
Vs Vs 流程流程流程
进程进程进程
流程( 线索)
内存
自己也否认它。
与其他流程流共享
创建
慢( 叉)
快点
交换数据交换数据
通过IPC(立方管、滑雪管)
直接通过共同内存
安全安全安全安保安全安全
高(隔离)
低
平行问题
🏁
Race Condition
种族状况
两个流同时读写一个变量。 结果无法预测 。
🔒
Deadlock
互闭
A流程等待资源B,B流等待资源A。 两者都等待永远。
⏳
Livelock
生活障碍
水流没有被阻塞, 但是它们无止境地互相屈服, 毫无进展。
同步机制
机制机制机制
任用任用
Mutex 静电
窃听锁定: 只有一条流能拥有资源
塞马磷
静音结合: 允许 N 流动同时进行
障碍障碍
所有溪流都等到最后一条到屏障为止。
原子业务
整个或完全不执行的作业
4个僵局条件
1. 干涉(资源被一国占用):2. 留置和等待(等候一,等待一)。 3. 没有强制性豁免。 4. 环等候(A)
与专家组第23、26号
了解甘特的平行过程和图表有助于EGE第23号(轨迹计算-分支=平行轨道)和第26号(带有优先事项和时间的数据处理-规划作为操作系统)的任务。
📐
ANDal 法律计算器
移动滑动滑动器 □ 见加速度
插数
更改平行代码(p)的分数和内核数量(N)——计算器将显示加速度、效率和理论限制。
平行代码(p)
80%
内核数量(N)
4
2.50
加速(S)
62.5%
效率(S/N)
5.00
限制( N:)
🏷️
Flyn 分类分类
点击卡片 详细信息
插数
按下该类查看描述、示例和 SVG 图 。
SISD
Single Instruction, Single Data
一队一队 一队数据
经典的单核处理机冯尼曼 命令严格一致
例如:Intel 8086,早期个人电脑,现在在微控制器中找到。
SIMD
Single Instruction, Multiple Data
一个团队,很多数据。
一项指令同时适用于许多元素。
例如:GPU(千个内核处理像素)、CPU的SSE/AVX(矢量操作),适合图形、神经网、信号处理。
MISD
Multiple Instruction, Single Data
很多团队,只是数据。
不同的处理器对同一数据应用不同的操作。
它几乎没有被使用。有时它就是用来描述传送器的方式(不同的阶段是一个团队的不同操作)。
MIMD
Multiple Instruction, Multiple Data
很多团队,很多数据
每个处理器都利用自己的数据执行自己的程序。
例如:英特尔核心i7、AMD Ryzen、集群、超级计算机、最常用的现代系统。
🏭
conveyer: 可视化
设置舞台和命令设置 / 与非大厅比较 。
插数
改变传送器和团队的阶段数 -- 你看到了表演战术和胜利。
(k) 座椅阶段
4
命令(n)
6
9
联系(交谈)
24
没有一个传送者,
2.67×
加速加速
📊
你是OS计划员
Ganta 图表 · 将进程移动到时间缩放
插数
给出了三个过程, 执行时间不同。 将其放在一个 CPU 内核的时间尺度上 。 先按顺序尝试, 然后用 I/ O 等待( 过程将进行等待, 释放 CPu ) 。
P1:计算
3 个目录
I/O:0中风
P2: 读取文件
2个CPU 节拍
I/O:三次中风(在CPU之后)
P3:网络
1中1中CPU
I/O:两次中风(在CPU之后)
CPU
P2 I/O
P3 I/O
总时间 :
—
正在装入 CPU :
—
平均等候时间:
—
🔒
闭锁模拟器
· 寻找办法避免僵局
插数
进程 A 已抓获扫描器, 正在等待打印机 。 进程 B 已抓取打印机, 并等待扫描仪 。 两个程序都被屏蔽 ! 更改资源请求的顺序以避免相互阻塞 。
🖨️
扫描仪
空闲。
🖨️
打印机打印机
空闲。
进程A
1. 捕获扫描仪
2. 截取打印机
3. 工作
4. 释放两个
进程B
1. 截取打印机
2. 捕获扫描仪
3. 工作
4. 释放两个
按下开始模拟
顺序A:
命令B:

教科书结构图