多核技术分析.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多核技术分析

多核技术分析 汇报人:成都研究所 日期:2007-11-13 目录 多核相关概念 SMP关键技术 多核应用模式 多核软件设计要素 多核相关概念 多核相关概念 多核相关概念 SMP 关键技术之一 SMP调度 SMP 关键技术之二 共享资源互斥保护 SMP 关键技术之三 中断管理 多核应用模式 AMP:每个核运行独立的OS,或者同种OS的独立实例; SMP:一个OS的单一实例同时管理所有CPU,所有应用可以浮动到其中任一个去运行; BMP:一个OS的单一实例同时管理所有CPU,但可以将某些应用或者线程锁定在指定的CPU上运行,实际上是SMP的一种特例; 多核应用模式 多核软件开发总体要求 架构方面: 提升软件并行性 算法级(使用并行算法、使用OpenMP编程) 任务级(流水线、多实例) 合理规划资源分配(中断资源分配、处理器分配) 编程方面: 选用适当的同步手段 控制锁粒度 充分认识多核带来的程序并发性提高(同时多任务运行、关中断将不确保安全的同步) 下层支撑平台提供支持: 多种类型同步手段(spinLock,读写锁、全局中断锁…) 快速核间通讯手段(IPI机制) 并发任务管理,二级调度任务间的同步性 多核软件设计要素之一 业务流程并行化 分解子系统 --- 将系统业务分解为相对独立的几个子系统,尽量减少它们的藕合性; 流水线 --- 将耗用CPU大的业务流程分解为更细粒度的流水线,一个线程处理一步。在流水线的不同阶段存在着不同的数据集。尽量减少上下流程的共享资源竞争冲突; 多实例化 --- 将耗用CPU大的业务流程设计为可并行的、多实例化的多线程或者多进程,并尽量减少多实例间的共享资源竞争冲突;其中又包含两种模式: 工作线程 ---- 一个主线程创建几个线程并行执行工作流。工作线程数目应与CPU核数目相当,这样每个核都可以处理相同份额的工作。主线程则监控协调工作线程的工作。 对等体 ---- 一个线程创建其他线程,并做为对等体参与分担工作。 多核软件设计要素之一 业务流程并行化 优点:流程清楚,实现方式简单,可以最大程度地减少互斥操作; 缺点:如果各部分的处理负荷严重不对称,则无法利用多核的优势;由于分解的流水线数量与处理器数量有关系,不利于各种多核体系上的移植、扩展,比如2核扩展为4核; 多核软件设计要素之一 业务流程并行化 优点:流程清楚,实现方式简单,可以最大程度地减少互斥操作; 缺点:如果各部分的处理负荷严重不对称,则无法利用多核的优势;由于分解的流水线数量与处理器数量有关系,不利于各种多核体系上的移植、扩展,比如2核扩展为4核; 多核软件设计要素之一 业务流程并行化 优点:操作系统自动调度,最大程度上实现负荷均衡;与具体多核体系架构无关,移植扩展方便 ; 缺点:要求线程负荷尽量均匀、粒度更细,需要对现有系统进行分析改造;线程多实例对于编程设计要求较高; 多核软件设计要素之二 合理规划共享资源分配 同一外设独占式访问,减少外设访问冲突; 不同外设负荷均分到不同CPU,提高响应速度; APIC可实现中断轮转到各CPU,对于处理性能要求极高的外设,也可以由APIC将负荷分担到多个核上 多核软件设计要素之三 充分考虑单/多核共享资源互斥保护方式的差异 利用同等优先级FIFO调度机制来保证共享资源互斥将不再可靠; 低优先级任务也可能会与高优先级任务并行运行,抢夺共享资源; 锁中断在多核中将不能保证安全的同步 多核软件设计要素之四 进程/线程多实例并非越多越好 进程/线程增多,调度效率受到影响,进程/线程切换开销、Cache命中率都会影响到系统性能 多核软件设计要素之五 线程飘移 or 线程绑定 线程/进程飘移可充分利用SMP操作系统的调度能力,实现多核间完全的负荷均衡,可保证平滑地多核扩展能力; 线程/进程绑定可减少切换开销,提高Cache命中率,甚至保证既有单核软件系统以最小代价迁移到多核上; 多核软件设计要素之六 尽量减少共享数据的访问冲突 共享数据的访问冲突是制约多核性能提升的一个重要因素,信号量会引起线程阻塞以及切换开销,自旋锁会导致CPU短时间空转,原子操作会导致总线短暂锁止; 多核产品演进步骤 第一步:架构层面演进 多模块(多实例)方式 AMP方式 基本思路:任务与CPU进行静态绑定分配,屏蔽软件编程上对多核的感知 第二步:代码层面演进 多线程SMP负载平衡 AMP应用解决方案一 控制层:实现信令、协议交互、操作维护管理,业务较为丰富,一般采用

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档