并行编程提升单芯片多处理性能(2)
当分解成独立运行的任务还没有完成的时候,需要某些软件工程使应用阶段对OS和底层硬件可见,并且在任务之间明确地传递数据。但是不需要对部分阶段算法进行重写。粗粒度的任务分解可以通过文件、套接字或管线实现进程通信来完成。对于细粒度控制,许多OS支持Posix线程API、pthreads,包括Linux、微软的Windows和多种实时操作系统。
复杂的模块化多任务嵌入式软件系统通常表现出偶然的并行特性。整个系统任务可能涉及到对应不同输入而具有不同功能的多个任务。当没有时间共享的OS时,每个任务必须运行在一个独立的处理器上。而在一个时间共享的单处理器上,每个任务将在不断轮换的时间片中运行。在一个采用SMP操作系统的多处理器上,每个任务可以在多个可用的处理器上并行运行。
分布式处理
分布式计算,特别是网络客户服务器模式很常见,以至于有时不被认为是“并行”的。客户服务器编程基本上是一种控制流程分解的形式。程序任务并不是独自执行所有的计算,而是将工作请求发送到针对特定目标分配的专用系统任务。客户服务器编程大多数在LAN和WAN中完成,但是SMP SoC遵循相同的范例。未作修改的客户服务器二进制代码可以通过片上或空环回网络接口实现TCP/IP通信,或者利用本地通信协议在存储器中传递数据缓冲器实现更有效的通信。
可以通过单独使用或者组合使用这些技术来充分发挥SMP的处理器能力。有人甚至可能构建一组采用并行数据计算的分布式SMP服务器,每个服务器实现一条控制流管线。
在有可能通过将任务静态地物理分解到处理器上实现并行机制的SoC系统中,将并行任务分配到各个处理器可以由硬件实现。这样做能减少软件开销和物理尺寸,但是缺乏灵活性。
如果一个嵌入式应用可以静态地分解到通过片上互联通信的客户机和服务器,那么整合整个系统所需要的唯一系统软件就是实现一个公共协议的消息传递代码。消息传递协议提供了一个抽象等级,它能帮助采用更多或更少处理器的配置运行最基本的应用代码,但是对于任何一个配置来说,在处理器之间的负载均衡与硬件分割一样是静态的。更灵活的并行系统编程可以由具有共享资源的多处理器系统之上的软件任务分配实现。
在SMP操作系统中,所有的处理器面对的是相同的存储器、I/O器件和全局OS状态,从而使得处理器之间的程序移植简单而高效,负载均衡也非常容易。不需要额外的编程或系统管理,在使用时间片的单个CPU上执行多任务的一组程序可以并行地运行在SMP系统的多个CPU上。像Linux中一样,SMP调度器对程序的处理器资源占用进行切换。
作为多进程运行的Linux应用程序不需要修改就可以利用SMP并行特性,而且通常不需要进行重新编译。SMP Linux环境提供了很多工具,用于调整任务如何共享可用的处理器资源—提高/降低任务的优先级,或者限制任务运行在任意的处理器子集上。适当的内核支持可以实现不同的实时调度机制。
类似于Unix的OS总是能为应用程序提供针对相对任务调度优先级的某种控制,即使在单处理器时间共享系统中。传统的外部命令和系统调用在Linux系统中通过更加精心设计的机制得到了增强,可以控制任务优先级、任务组或特定的系统用户。而且,在多处理器配置中,每一个Linux任务都具有一个参数,这个参数规定了那一组处理器可以调度该任务。默认参数是整个系统处理器组,但是这种CPU关系是可以控制的。
SMP范例要求所有处理器能访问相同地址下的所有存储器。对于低性能的处理器来说,这是通过将所有处理器的取指和加载/保存流放到公共的存储和I/O总线上实现的。然而这种模式随着处理器的增多将很快失去效用,因为总线成为了瓶颈。即使在单处理器系统中,高性能嵌入式内核的指令和数据带宽要求规定缓存必须在主存储器和处理器之间使用。(责任编辑:admin)
- “扫一扫”关注融合网微信号
免责声明:我方仅为合法的第三方企业注册用户所发布的内容提供存储空间,融合网不对其发布的内容提供任何形式的保证:不保证内容满足您的要求,不保证融合网的服务不会中断。因网络状况、通讯线路、第三方网站或管理部门的要求等任何原因而导致您不能正常使用融合网,融合网不承担任何法律责任。
第三方企业注册用户在融合网发布的内容(包含但不限于融合网目前各产品功能里的内容)仅表明其第三方企业注册用户的立场和观点,并不代表融合网的立场或观点。相关各方及作者发布此信息的目的在于传播、分享更多信息,并不代表本网站的观点和立场,更与本站立场无关。相关各方及作者在我方平台上发表、发布的所有资料、言论等仅代表其作者个人观点,与本网站立场无关,不对您构成任何投资、交易等方面的建议。用户应基于自己的独立判断,自行决定并承担相应风险。
根据相关协议内容,第三方企业注册用户已知悉自身作为内容的发布者,需自行对所发表内容(如,字体、图片、文章内容等)负责,因所发表内容(如,字体、图片、文章内容等)等所引发的一切纠纷均由该内容的发布者(即,第三方企业注册用户)承担全部法律及连带责任。融合网不承担任何法律及连带责任。
第三方企业注册用户在融合网相关栏目上所发布的涉嫌侵犯他人知识产权或其他合法权益的内容(如,字体、图片、文章内容等),经相关版权方、权利方等提供初步证据,融合网有权先行予以删除,并保留移交司法机关查处的权利。参照相应司法机关的查处结果,融合网对于第三方企业用户所发布内容的处置具有最终决定权。
个人或单位如认为第三方企业注册用户在融合网上发布的内容(如,字体、图片、文章内容等)存在侵犯自身合法权益的,应准备好具有法律效应的证明材料,及时与融合网取得联系,以便融合网及时协调第三方企业注册用户并迅速做出相应处理工作。
融合网联系方式:(一)、电话:(010)57722280;(二)、电子邮箱:2029555353@qq.com dwrh@dwrh.net
对免责声明的解释、修改及更新权均属于融合网所有。