您现在的位置:融合网首页 > 芯片 > 技术 >

并行编程提升单芯片多处理性能

来源:维库 作者:网络 责任编辑:admin 发表时间:2018-11-01 10:25 
核心提示:虽然并行编程会使软件工程师感到恐惧,因为并不是全部现有代码都是针对并行处理平台编写的,但针对并行软件已经有多种范例,其中一些对于软件设计师是来说已经是很熟悉的了。

在指定的实现技术下,要将单个处理器性能发挥到极致并不容易。更快的时钟,更深的管线和更大的缓存都会导致占用更大的硅片面积和功耗开销,并有可能使得最后10%的性能增益化为乌有。有些时候没有其它选择,只能靠提高时钟速率,升级电源和冷却子系统。但是将处理任务分配到多个处理器的做法可以最大程度提升整体性能极限,处理器设计也会更简单、更高效。

当今的许多嵌入式系统级芯片(SoC)设计已经在使用多个处理器,不过,它们都是以一种特定应用或松散结合的方式实现。直到最近,针对软件友好的多处理SoC设计功能还是受限。如今市场已经有诸如MIPS32 1004K一致处理系统(CPS)这种新的SoC设计组件推出,意味着在单操作系统环境中片上对称多处理(SMP)技术已经成为现实。

虽然并行编程会使软件工程师感到恐惧,因为并不是全部现有代码都是针对并行处理平台编写的,但针对并行软件已经有多种范例,其中一些对于软件设计师是来说已经是很熟悉的了。

数据并行算法

数据并行算法通过划分数据集来使用一个以上的处理器,甚至数量众多的CPU。在教科书中,大的数据集通常是一种很大的输入文件或数组,但在嵌入式系统中,它可能意味着高的I/O和事件服务带宽。在一些SoC架构中,多个输入数据源(如网络接口端口)可以被静态地分配到运行相同驱动程序/路由程序代码的多个处理器上,从而实现自然的数据并行处理。

当对单个数组或输入流应用多处理器技术时,“分而治之”的数据并行算法很常见。这样的算法对于单处理器来说通常不是最优的,但是因为具有更多的计算带宽,因此可以弥补效率的不足。这些算法对并行计算来说是可扩展的,但是将一个正常工作的顺序执行程序转换成一个并行数据算法可能面临价值不高、困难或不可能的局面,具体情况取决于程序依赖特性等因素。为了提高性能,如果绝大部分的应用计算都是用很少量的常规运算循环来实现的话,系统设计师很可能毫不犹豫地采用数据并行算法。

用于PC、工作站、服务器的多内核X86芯片的出现催生了新的库和工具套件,它们可以帮助设计师在数量适中的处理器上更容易地建立和开发并行算法。对于像MIPS这样的嵌入式架构来说许多算法都是开源和可移植的。针对数据并行C/C++以及Fortran的GCC扩展已经成为标准GNU编译器集的一个组成部分。

图1左:复杂模块化多任务处理嵌入式软件系统通常表现出“偶发”的并行特性。在使用时间共享的OS时,每个任务必须运行在独立的处理器上。而在一个时间共享的单处理器上,每个任务将在不同时间片中轮流执行。在一个采用了SMP OS的多处理器上,任务将在多个处理器上并行运行。

图1右:在SMP OS中,所有处理器都能看到相同的存储器、I/O器件和全局OS状态。在使用时间片的单CPU上执行多任务的一组程序可以在SMP系统的多个CPU上并行运行。

并行控制编程

并行控制编程将根据任务而不是输入进行工作划分。如果将100通道的并行数据算法比作汽车工厂内100个工人各自在组装一辆汽车,那么并行控制程序就可以比作有100个工作岗位的组装线,每个岗位完成百分之一的工作。组装线通常效率更高,但是组装一辆汽车的工作可能只能进行这样的分工。对于可以扩展到多达数千个处理器的科学计算程序而言,这个限制影响很大,但是对于一般的并行SoC架构来说不是问题。

软件工程师经常将程序划分成若干个阶段以便于编码、调试和维护,并减轻指令存储器和缓存的压力。通常,并行控制分解在OS可视任务层面就已经完成。在类似Unix这样的系统中,单指令“cc”顺序地调用C语言预处理器、编译器、汇编器和目标代码连接器。其中几个可以同时运行,每个后续程序使用前一个阶段的输出作为其输入,并使用类似Unix这样的OS内的文件或软件管线。(责任编辑:admin)

  • “扫一扫”关注融合网微信号

免责声明:我方仅为合法的第三方企业注册用户所发布的内容提供存储空间,融合网不对其发布的内容提供任何形式的保证:不保证内容满足您的要求,不保证融合网的服务不会中断。因网络状况、通讯线路、第三方网站或管理部门的要求等任何原因而导致您不能正常使用融合网,融合网不承担任何法律责任。

第三方企业注册用户在融合网发布的内容(包含但不限于融合网目前各产品功能里的内容)仅表明其第三方企业注册用户的立场和观点,并不代表融合网的立场或观点。相关各方及作者发布此信息的目的在于传播、分享更多信息,并不代表本网站的观点和立场,更与本站立场无关。相关各方及作者在我方平台上发表、发布的所有资料、言论等仅代表其作者个人观点,与本网站立场无关,不对您构成任何投资、交易等方面的建议。用户应基于自己的独立判断,自行决定并承担相应风险。

根据相关协议内容,第三方企业注册用户已知悉自身作为内容的发布者,需自行对所发表内容(如,字体、图片、文章内容等)负责,因所发表内容(如,字体、图片、文章内容等)等所引发的一切纠纷均由该内容的发布者(即,第三方企业注册用户)承担全部法律及连带责任。融合网不承担任何法律及连带责任。

第三方企业注册用户在融合网相关栏目上所发布的涉嫌侵犯他人知识产权或其他合法权益的内容(如,字体、图片、文章内容等),经相关版权方、权利方等提供初步证据,融合网有权先行予以删除,并保留移交司法机关查处的权利。参照相应司法机关的查处结果,融合网对于第三方企业用户所发布内容的处置具有最终决定权。

个人或单位如认为第三方企业注册用户在融合网上发布的内容(如,字体、图片、文章内容等)存在侵犯自身合法权益的,应准备好具有法律效应的证明材料,及时与融合网取得联系,以便融合网及时协调第三方企业注册用户并迅速做出相应处理工作。

融合网联系方式:(一)、电话:(010)57722280;(二)、电子邮箱:2029555353@qq.com dwrh@dwrh.net

对免责声明的解释、修改及更新权均属于融合网所有。

热门关键字

关于我们 - 融合文化 - 媒体报道 - 在线咨询 - 网站地图 - TAG标签 - 联系我们
Copyright © 2010-2020 融合网|DWRH.net 版权所有 联系邮箱:dwrh@dwrh.net 京公网安备 11011202002094号 京ICP备11014553号