多核开发工具的市场情况.doc

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

多核开发工具的市场情况 简介 根据众所周知的摩尔定律,单片晶体管集成度每两年会翻倍,也就是说更高的集成度意味着更高的计算能力。结合不断提升的核心频率,形成了我们目前在使用的日益强大的处理器。 该预测目前来看仍是准确的,然而目前处理器的核心时钟频率提升看起来在过去几年里已经处于停滞状态。芯片厂商不愿意再冒风险或者在不满足功耗效率的情况下无限制提升核心频率。更高的处理器钟频需要更高的功耗,同时更快的处理器散热也更加客观,也需要更多的功耗用于冷却。这导致了计算能耗比并不是线性的。这就是专家所谓的单核处理器已经碰到了“功耗壁垒”,新增的计算处理要求与相应新增的功耗不能取得平衡。 然而在处理器开发领域,速度并不是唯一的提升渠道,新芯片制造技术正致力于持续不断的进行片上单元的小型化,以使在同一芯片(区域)能够放置更多的处理单元。这就是当前多核CPU产生的主要原因。 也就是说,合理的途径是采用更小的处理器集成而不是使单片速度变得更快;通过使用多核处理器并发处理提升处理能力而不是单一的提升处理器钟频。然而这对软件开发人员而言影响是巨大的,直到今天他们仍然想当然的认为处理器技术的提升将直接提升软件运行速度。进而,单个的处理器模型所提供的是一个确定性的计算模型,该模型在理解和错误调试上直观、简单明了。 而现在,开发人员将不得不根据硬件来调整软件,学习如何并行的将软件负荷分布到多个处理器上。开发人员必须这样做,软件性能指标是不能降低的,只能通过这种实现方式来达成。 这篇文章提供了多核CPU软件开发需求和相应工具的概览供参考。 应用领域 并行和分布式计算在科学计算领域是常见的工作方式,帮助完成医疗、物理、工程等多个领域的科学研究工作。为了应对日益提升的处理能力需求,研究者提出了计算机网格的概念,把网络上多个单台计算机连接起来将计算任务分配给他们进行并行处理。应用这种方法,可以同时仿真多个不同的任务场景,也可以并行的完成同一个仿真任务。今天的超级计算机一个显著特点就是大量的并行内核和海量存储,分布式工作方式是并行处理模式的核心所在。 对于今天的那些开发桌面多核CPU系统软件的编程人员来说,科学计算领域积累下来的并行分布式计算知识逐步形成了他们的编程的顶层概念。 当然,今天的日常化的硬件系统并不会像Top500的超级计算机那样拥有那么多的内核,四核和八核处理器是桌面计算机和笔记本越来越多应用的配置。另外,像Intel的超线程技术,每一个物理内核都能够提供额外的、硬件预置的线程,这会对并行机制提供更大的帮助。 在小型电子设备上采用多核的主要驱动因素是体积小型化和降低能耗,比如上网本或智能手机。这些设备被要求在传统的单电池供电情况下能够提供更多的功能。在这种需求下,更小的处理器意味着可以为更大的电池提供充足的空间,或者更低功耗的处理器意味着一次充电使用的时间更长。当然,这种双赢的局面完全依赖于开发人员开发的软件是否有效的使用了可用的内核。 软件 为什么采用多核处理器会对软件开发造成如此之大的影响?具体会改变什么呢? 有两件事会发生变化。首先,单个的处理器速度已经到瓶颈了;第二,多核处理器已经变得很常见,甚至在消费类电子产品上都会采用。然而没有变化的是对软件更强的功能和更优秀性能的不断要求。 在相当长一段时间里,软件开发人员得益于处理器技术的不断发展。由于时钟频率的提升和更高级的处理器技术特点(比如指令预取和分支预判能力)的出现,软件会自动变得更快。既然目前处理器速度已经到了一个瓶颈,那么开发人员就必须对软件进行调整以充分利用新的硬件架构。 为了保持和提升性能,开发人员不得不采用多核并行处理。这就意味着必须重构软件以实现并行执行。开发人员必须判别哪些操作可以并行,如何实现并行机制,以及如何处理由于管理并行机制和并发性而带来的新的挑战。 并发性和并行性(Concurrency and parallelism) 并发性和并行机制是紧密相关的。并发性(Concurrency)一词描述的是在一个系统中有两个以上进程同时在执行。并行性(Parallelism)则指的是多个计算单元同时进行计算。这二者有很细微的不同之处,并发性是一个系统的固有特征;而并行性是一种计算形式。从90年代中期以来的所有操作系统都可以支持并发处理,比如可以同时运行多个程序,也就是所谓的“多任务”。实际上,在仅有一个处理器时,多个程序同时执行是一种假象。在某个特定时间段让某一程序独占处理器资源,换个时间就该程序挂起而切换到另一个程序,这样就造成了这种假象。在切换前保存程序的当前运行状态,当需要该程序再次运行时状态信息被置回,该状态信息可以包含当前时间的寄存器值,运行时栈的状态和程序指令指针计数器。操作系统的调度程序则负责程序的执行和状态信息的管理。今天的操作系统仍

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档