多核编程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Integer
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
Dual core , With HT( Eg. Dual Core Pentium Processor Extreme Edition )Supports HT
Multiple Integer and Floating Point Threads
主要并行计算 多进程,内存 多进程,基于 多线程 方式 共享 消息传递
2010-112010-11-1
2-way SMP system 4 Cores >4 Threads
2010-112010-11-1
8
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
多核技术的发展
Pentium 4 with HT Dual Xeon Processors Dual Core
Two independent execution cores in the same processor
Core0
Core1
Front Side Bus
2010-112010-11-1
5
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
8.1.4 为什么要采用多核技术? 为什么要采用多核技术?
2010-112010-11-1
6
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
AMD Opteron双核架构示意图 Opteron双核架构示意图
2010-112010-11-1
Intel 奔腾至尊版双核架构示意图
17
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
DualCore、SMP、 DualCore、SMP、Cluster
体系结构特性 SMP(对称多 SMP(对称多 处理机) 处理器 单一主机,多 个处理器 操作系统 单一 Cluster(集 Cluster(集 群) 多台主机,有 各自的处理器 (一或多) 多个 DualCore 单一主机,单 一处理器,多 个核心 单一
Dual core , Without HT( Eg. Pentium D Processor )
Two Floating Point Threads
L2 L2 Cache andControl Cache and Control
BTB
3
3
uCode ROM
L2 L2 Cache andControl Cache and Control
2010-112010-11-1
2
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
8.1.1 并发与并行的区别是什么? 并发与并行的区别是什么?
并发与并行是两个既相似而又不相同的概念:并发性 ,又称共行性,是指能处理多个同时性活动的能力;并 行是指同时发生的两个并发事件,具有并发的含义,而 并发则不一定并行,也亦是说并发事件之间不一定要同 一时刻发生。 本课程中并发和并行概念基本相同,都包含同时性, 本课程中并发和并行概念基本相同,都包含同时性,同 时并发的概念含义更广泛一些。
L2 L2 Cache andControl Cache and Control
BTB
Integer
3
3
uCode ROM
2010-112010-11-1
Floating Point
15
L1 D-Cache and D-TLB
With dual core & HT together, maximum # of threads that can be executed at a time is 4 per processor
State State Execution Cache Bus
2 Threads 1 Package
State Execution Cache Bus
State Execution Cache Bus
2 Threads 2 Packages
2010-112010-11-1
State Execution Cache Bus
4 threads/socket
Core0
Core1
Core0
Core1
Front Side Bus
Front Side Bus
产量 …
2010-112010-11-1
多功能 … 功 效
16
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
AMD与Intel双核架构的对比 AMD与Intel双核架构的对比 双核架构
BTB
Integer
Floating Point
3
3
uCode ROM
2010-112010-11-1
Floating Point
14
L1 D-Cache and D-TLB
Rename/Alloc
Trace Cache
BTB & I-TLB
uop Queues
Schedulers
Decoder
L1 D-Cache and D-TLB
12
Floating Point
L1 D-Cache and D-TLB Cache D
Rename/Alloc
Trace Cache
BTB & I-TLB
uop Queues
Schedulers
Decoder
8.1 什么是多核并发(并行)程序设计 什么是多核并发(并行)程序设计
Single core , With HT( Eg. Pentium 4 Processor with HT )
2010-112010-11-1
10
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
双核技术 VS. 超线程技术
• 双核是真正意义上的双处理器 –不会发生资源冲突 –每个线程拥有自己的缓存、寄存器和运算器 • 一个3.2GHz Smithfield在性能上并非等同于3.2GHz P4 一个3.2GHz Smithfield在性能上并非等同于3.2GHz with HT 的2倍 –HT 使处理器的性能至少提升了1/3 –双核的性能相当于2块 non-HT 处理器
Rename/Leabharlann Baidulloc
Trace Cache
BTB & I-TLB
uop Queues
Schedulers
Decoder
Floating Point
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
多核技术与超线程技术的结合
Dual Core
2 threads/socket
Dual Core with Hyper-Threading
Two Floating Point Threads
L2L2 Cache andControl Cache and Control
BTB
Integer
3
3
uCode ROM
2 threads CANNOT be executed at the same time (per processor) if they’re competing for the same execution resource (eg. 2 floating point threads in a P4P architecture)
多核并发(并行) 第8章 多核并发(并行)程序设计
主讲:黎忠文 主讲 黎忠文
2010-112010-11-1
1
目
录
8.1 什么是多核并发(并行)程序设计 什么是多核并发(并行) 8.2 为什么要学习多核程序设计 8.3 多核并发程序设计环境及开发方法 IXP2400平台上多核程序并发 并行) 平台上多核程序并发( 8.4 IXP2400平台上多核程序并发(并行) 设计
Rename/Alloc
Trace Cache
BTB & I-TLB
uop Queues
Schedulers
Decoder
Even 2 floating point threads can be executed at the same time now (per processor) as there are multiple floating point execution units
2010-112010-11-1
4
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
8.1.3 什么是多核处理器? 什么是多核处理器?
–两个或多个独立运行的内核集成于 同一个处理器上面 –双核处理器 =一个处理器上包含2 个内核 –多核处理器 = 一个处理器上包含2 个或多个内核
L2 L2 Cache andControl Cache and Control
BTB
Integer
3
3
L1 D-Cache and D-TLB Cache D
Rename/Alloc
Trace Cache
BTB & I-TLB I
uop Queues
Schedulers
Decoder
uCode ROM
2010-112010-11-1
11
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
Single core , With HT ( Eg. Pentium 4 Processor With HT )
Integer and Floating Point Threads
L2L2 Cache andControl Cache and Control
2 Threads 1 Package
9
State Execution Cache Bus
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
几种不同的技术
• HT – Hyper Threading: 2 threads running on the same processor core –处理器上的某些资源会被共享 –使用相同的缓存和运算器 • DC – Dual Core: 2 execution cores in the same processor package –共享系统总线 –与双处理器的性能相同 • DP/MP – Dual/Multi-Processing: 2 or more Dual/Multiprocessors in the same system –只共享系统总线,独立缓存 –高性能,资源冲突少
2010-112010-11-1
13
Floating Point
L1 D-Cache and D-TLB Cache D
Rename/Alloc
Trace Cache
BTB & I-TLB
uop Queues
Schedulers
Decoder
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
通过并行方式改进处理器的性能
1995 MultiMulti-processing 2001 HyperHyper-Threading 2005+ DualDual- and Multi-core Multi-
2-way SMP system 2 Cores 2 Threads
2-way SMP system 2 Cores 4 Threads
BTB
Integer
3
3
uCode ROM
2 threads can be executed at the same time (per processor) if they’re not competing for the same execution resource
2010-112010-11-1
最终目标: 最终目标: 提升用户的体验
• 摩尔定律 —— 不断发展和改进处理器的性能 • 最大限度地利用越来越多的晶体管 – 实现最优的价值 – 缩减处理时间,提高计算能力 缩减处理时间, – 开发平台的新特性和新功能
2010-112010-11-1
7
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
2010-112010-11-1
3
什么是多核并发(并行)程序设计 8.1 什么是多核并发(并行)程序设计
8.1.2 什么是并行计算? 什么是并行计算?
– 并行计算是相对于串行计算来说的,所谓并行计算分 为时间上的并行和空间上的并行。 时间上的并行就是 指流水线技术,而空间上的并行则是指用多个处理器 并发的执行计算。 – 并行计算科学中主要研究的是空间上的并行问题。 空 间上的并行导致了两类并行机的产生,按照Flynn的说 法分为:单指令流多数据流(SIMD)和多指令流多数 据流(MIMD)。我们常用的串行机也叫做单指令流 单数据流(SISD)。