多核技术综述_第1页
多核技术综述_第2页
多核技术综述_第3页
多核技术综述_第4页
多核技术综述_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多核技术综述多核技术综述 姓名 朱齐敏 学号 08002516 摘要 本文首先阐述了多核技术的定义和相关概念 然后介绍了多核技术的好 处及其发展状况 接着描述了多核技术带来的挑战以及面对挑战我们因 怎样开发并行软件和如何让旧程序应对多核环境 本文提纲 1 什么是多核技术 2 多核技术相关概念 3 多核技术的好处 4 多核技术的发展 5 多核技术带来的挑战 6 多核平台下的并行开发 7 旧程序如何应对多核环境 1 什么是多核技术 简单的讲 多内核是指在一枚处理器中集成两个或多个完整的计算引擎 内 核 多核处理器是多枚芯片 也称为 硅核 能够直接插入单一的处理器插槽中 但操作系统会利用所有相关的资源 将它的每个执行内核作为独立的逻辑处理 器 通过在多个执行内核之间划分任务 多核处理器可在特定的时钟周期内执 行更多任务 单核与多核的区别单核与多核的区别 单核处理器 通过提高主频来提升效率 随之提高的还有处理器的功耗和成本 多核处理器 通过多核结构的并行计算提高效率 功耗小 但是单个任务的处理速度 不会提升 多核与多处理器 多多核与多处理器 多 CPU 的区别 的区别 多核是指一个处理器芯片有多个处理器核心 他们之间通过 CPU 内部 总线进行通讯 多处理器是指简单的多个处理器芯片工作在同一个系统上 多个处理器 之间的通讯是通过主板上的总线进行的 2 多核技术相关概念 SMPSMP 指在两个相似 或相同 的处理器通过一条高速通道连接 并且共 享外 CPU 线程多实例无需了解 由操作系统自动协调运行 并管理共享 资源 AMP 在一个由两颗或者多颗相同或者不同的处理器通过各种通信通 道连接 比如可以将一个 MCU Main Control Unit 和一个 DSP 集成在一起 在逻辑上共享或者独占外设 存储器的体系架构上 运行不同的操作系统实 例 相互之间通过 TIPC Transparent Inter Process Communication 等机制通讯 往往是用于主控处理单元与各种专业协处理器协同工作的情形 多核多核 是一种处理器的结构 在一个芯片上集成了多个处理器核心 一 般各个核有独立的 L1cache 但共享 L2 Cache 同时 也共享存储器 外设 SMT HT 同时多线程技术 在 intel 称为超线程技术 是在 CPU 中提 供多个半独立的处理器单元 其中寄存器独立 但共享 L1 cache 和 ALU 单 元 其目的是提高 ALU 的利用率 提升 CPU 效率 从物理上来看 是一个 类多 CPU 体系 当然各芯片厂家实现方案可能不同 多处理器多处理器 由多颗相同或者不同的独立完整的 CPU 通过通信通道连接 可共享也可独立拥有存储器 外设 并行并行 活动线程在不同的硬件资源或者处理单元上同时执行 多个线程 在任何时间点都同时执行 并发并发 线程在同一个硬件资源上交替执行的过程 所有活动线程在某段 时间内同时执行的状态 但是在某个给定的时刻都只有一个线程在执行 3 多核技术的好处 由于是多个执行内核可以同时进行运算 因此可以显著提升计算能力 而每个内核的主频可以比以前低 因而总体功耗增加不太大 与多 CPU 相比 多核处理器采用与单 CPU 相同的硬件机构 用户在提 升计算能力的同时无需进行任何硬件上的改变 这对用户来说非常方便 相对于传统的单核 CPU 多核 CPU 具有性能高 功耗低 设计和验证 周期短 通信延迟低等诸多优点 同时它还带来了 CPU 设计方式的变革 提供了一种新的发展模式 相比单核处理器 它有更强的性能优势 并且在推动 PC 安全性和虚拟 技术方面起到关键作用 虚拟技术的发展能够提供更好的保护 更高的资源 使用率和更可观的商业计算市场价值 普通消费者也将比以往拥有更多的途 径获得更高性能 正是由于多核的这些优点 所以 多核很快被用户接受 并得以普及 4 多核技术的发展 无论是 AMD 还是 Intel 目前已经发布的新型处理器多是双核 计算 机的发展总是追求系统物理规模的不断减小 以及性能和集成度的不断提高 随着应用的需要 芯片上的处理器数目将不断增多 双核也将走向多核 由 于应用的需要 多核技术将与其它先进技术交织 成为处理器的发展方向 由于 32 位越来越难以满足应用需要 64 位 多核 将是处理器发展的趋势 双核 PC 时代在 2005 年 4 月正式开始 当时英特尔发布了至尊版奔腾 840 处理器 是一款主频 3 2GHz 的 90 纳米芯片 紧随其后的就是走向主流 的奔腾 D 800 系列 CPU 而英特尔的第二代双核处理器奔腾 D 900 系列在 2006 年年初发布 并且开始将英特尔的制程工艺全面转向 65 纳米 在这段 时期 由于集成了优秀的内存管理器 并且可以运行在与 CPU 相同的频率 所以 AMD 的 90 纳米双核 Athlon 64 2 产品线开始获得广泛的追捧 而此 时英特尔处理器仍然需要通过低速的前端总线交换数据 让系统内存与 CPU 进行沟通 当前具有代表性的多核当前具有代表性的多核 CPU 产品产品 1 第一个商用的多核 CPU 是 2001 年 IBM 推出的双核 RISC 处理器 Power 4 2 2004 年 IBM 又推出后继产品 Power5 并在双核的基础上引入多线 程技术 同时 HP 也推出多核 CPU 产品 PA RISC8800 SUN 也发布双核 产品 UltraSPARC IV 3 2005 年 多核 CPU 得到全面发展 AMD 迅速推出面向服务器 支持 x86 指令集的双核心 Opteron 处理器 而 Intel 则推出面向桌面系统 的双核 CPU Pentium D 及 Pentium Extreme Edition 另外 IBM 在超级计 算机系统 BlueGene L 中使用的 CPU 也是一种双核 CPU 与索尼和东芝联 合推 出的 Cell 处理器具备多达 9 个核心 4 2006 年 1 月 Intel 发布了首款双核移动处理器 Core Duo 这一全新 的处理器为笔记本性能带来了很大进步 继这次成功之后 Intel 在 2006 年夏季 同时发布了 Core 2 Duo 桌面 Conroe 和移动 Merom 处理器 5 2008 年 11 月 17 日 推出 64 位四核心 CPU Core i7 沿用 x86 64 指 令集 并以 Intel Nehalem 微架构为基础 取代 Intel Core 2 系列处理器 6 20010 年 3 月 17 日 英特尔正式发布了采用 32nm 工艺的新一代 Nehalem 微构架双路服务器处 理器至强六核服务器 CPU 5600 家族 代号 Westmere EP 5 多核技术带来的挑战 毫无疑问 多核给我们提供了更经济的计算能力 但是 这种能力能否 善加利用还要取决于软件 如果不针对多核进行软件开发 不仅多核提供 的强大计算能力得不到利用 相反还有可能不如单核 CPU 好用 从某种 程度上说 对于软件开发者而言 CPU 主频提升就像是免费的午餐 此前 所有的程序很自然地会从主频的提升中受益 而如今多核出现了 这种免费 的午餐没有了 我们必须针对多核重新进行软件设计 多核程序带来的挑战多核程序带来的挑战 1 程序是否具备扩展性 2 程序能否更精确 3 产品是否易于编程和维护 4 并行开发模式 a 打破串行的编程过程 一步一步 的模式 b 首先要进行分析和拆解 c 然后才能进行程序的编写 5 程序设计并行规划 为双核 四核 八核 十六核等更多核芯规模开发 6 针对多核的开发过程与传统的开发模式的不同 需要性能优化工具 多核带来的软件困惑多核带来的软件困惑 1 软件怎么利用多核尚未解决 a 为了竞争 硬件推进太急躁 b 软件还未准备好 2 操作系统 a 目前尚无一个操作系统支持多核 b 目前多核操作系统实际上是多处理器操作系统 把多核当作 多处理器看待 不是为多核定制的 c 虚拟化技术也是一种解决方案 把多核虚拟为单核 但是有 性能牺牲 3 应用软件 a 计算型软件 容易并行 可以支持多核 b 信息处理软件 一般都是串行的 很难利用多核 6 多核平台下的并行开发 多核软件开发总体要求多核软件开发总体要求 1 架构方面 提升软件并行性 算法级 使用并行算法 使用 OpenMP 编程 任务级 流水线 多实例 合理规划资源分配 中断资源分配 处理器分配 2 编程方面 选用适当的同步手段 控制锁粒度 充分认识多核带来的程序并发性提高 同时多任务运行 关中断将不 确保安全的同步 3 下层支撑平台提供支持 多种类型同步手段 spinLock 读写锁 全局中断锁 快速核间通讯手段 IPI 机制 并发任务管理 二级调度任务间的同步性 并行设计的方法并行设计的方法 1 数据并行性 有不相关的任务对数据集的不同元素 进行相同的操作 我们称这种数据相关表现了 2 功能并行性 有不相关的任务对数据集的不同元素 进行不同的操作 3 流水线 在处理单个问题上不存在并行性 但如果 需要处理多个问题 且每个问题可以分为几个阶段 那么就能支持与阶段数相同的并行性 并行程序设计思想并行程序设计思想 目前比较流行的三种 1 扩张编译器 开发并行化编译器 使其能够发现和表达现有串行语言程序中的并行性 例如 Intel C Compiler 就有自动并行循环和向量化数据操作的功能 这种 把并行化的工作留给编译器的方法虽然降低了编写并行程序的成本 但因为 循环和分枝等控制语句的复杂组合 编译器不能识别相当多的可并行代码而 错误地编译成了串行版本 2 扩展串行编程语言 这是当前最为流行的方式 通过增加函数调用或者编译指令来表示低层 语言以获取并行程序 用户能够创建和结束并行进程或线程 并提供同步与 通信的功能函数等 这方面较为杰出的库有 MPI 和 OpenMP 等 在解释型 脚本阵营 ParallelPython 也吸引了不少粉丝 3 创造一个并行语言 虽然这是一个疯狂的想法 但事实上近几十年来一直有人在做这样的事 情 如 HPF High Performance Fortran 是 Fortran90 的扩展 用多种方式支 持数据并行程序 7 旧程序如何应对多核环境 1 精确地评估旧程序是否需要作出修改 如 Foxmail Windows 优化大师之类的桌面软件原本就只占用极少的 CPU 资源 那么就不需要针对多核改写 而作为网站服务器端运行的 CGI 程序基本上都是以多进程或多线程的方式来响应请求的 将可以平滑地充分 利用多核系统的性能优势 一般而言也不需要针对多核改写 2 就重避轻 一个应用程序 性能瓶颈通常都只有几个或者一两个甚至这些瓶颈 相关的功能还是用户很少使用的 那么为了这些少量需求而对已有程序进行 伤筯动骨的改造是不合适的 更不宜以多线程的架构重写整个应用 如果应 用程序是使用 C C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论