新闻中心

EEPW首页>嵌入式系统>设计应用> 多核系统效率与任务属性关系的优化策略

多核系统效率与任务属性关系的优化策略

作者: 时间:2013-11-06 来源:网络 收藏


如上分析,指令级并行度与多核CPU支持的紧密关联。如何利用软硬件技术去最大限度地开发处理机中的指令级并行性,关键在于要知道何时及如何改变指令顺序。在实际运用中,这种改变过程必须由编译器或硬件正确实现。显而易见,多核系统如果不能保证多核多线程平行推进,则更多的核可能更影响多核系统的整体效率,这成为目前对多核CPU结构研究的重点。

3 不同属性的任务对多核CPU处理能力与效率的影响分析

应用系统对计算力或计算机的处理能力的需求是可以标定的。尤其是对于给定的科学计算问题,所需要的处理时间几乎能预估。而面向非科学计算问题的处理,处理系统要开销的时间往往不可预知。比如,在一个大型网络数据库系统内完成相应的知识发现,需要开销的时间可能各不相同,因待发现问题的算法(约束方程)而异。产生“不同”的原因其实与发现问题(处理任务)的属性相关,如果任务(Task)是可细粒度划分的,则由多核CPU支持的并行系统处理效率高。由于细粒度划分算法的工作开销(Workload),保证了多核CPU的多线程能平行推进,实现高的并行效率。

考虑一种理想状态,被处理任务可划分为均匀的四大模块,且并行系统由四核CPU支持,宏观上生成四条平行的流水线,由于每条流水线上的指令序列不存在任何相关性,则四核的指令级线程将平行推进,处理效率最高。如果Task客观上只能分成均匀的两大模块(分成均匀的四块将出现相关),且同样在四核CPU系统上运行,其将可以如下计算:

设四核处理均匀四模块的时间为T4,则两核处理均匀两模块的时间为2T4。
如果由四核处理均匀两模块任务序列,且指令级并行过程中存在的相关性产生的线程阻塞花费的吸收开销为TP,当且仅当TP≤2T4时,该并行系统才是功能上与四核处理四模块等价的,但性价比则大大降低。
因此,明晰应用系统的属性更能指导并行系统的选择或构建,科学地分析系统整体效率或系统结构选择,在并行系统不断发展进程中应该具有重要意义。

4实际仿真实例

本文采用VC6.0编程对多核并行处理进行仿真,仿真结果如图1和图2所示。

  比较图1、图2,可以得到以下结论:

动态效率(图中第二条曲线)始终低于静态效率(理想效率)。动态效率是多核改变原指令执行顺序,同时受核自身的空间、当前任务量影响。

静态效率(图中第一条曲线)是任务在随机生成时,静态顺序执行,运用Amdahl定律计算出来的。第二曲线低于第一曲线原因分析如下:

(1)动态执行中多核之间协同发生同步等待延时,系统效率下降;
(2)某时刻处理单元空闲,产生等待延时,系统效率下降;
(3)改变指令原有的执行顺序,引起效率变化。

第二曲线比第一曲线长是因为产生延时等待。当系统中核的负载均衡,即线程可平行推进时,动态效率更接近静态的理想效率,这与实际非常吻合,说明了基于Amdahl定律计算系统效率是可行的。当系统中有一个或多个核长时间空闲时,则整个系统效率明显下降。当任务分配不均匀,指令相关产生的等待或吸收,则动态效率非常不稳定。

以上结论基于最初的指令级抽象、分配、执行策略,但由于是静态调度,Krste Asanovic的工作[5]指出了其4个主要的缺点:

(1)不可预料的转移;
(2)可变的内存延迟(无法预料的cache不命中);
(3)代码大小的爆炸;
(4)编译器的复杂性。

所以,仿真证明了与多核CPU支持的并行系统效率之间存在的紧密关系,是指导提高应用系统性价比的重要因素。

多核处理器是处理器发展的必然趋势。无论是移动或嵌入式应用、桌面应用还是服务器应用,都将采用多核的架构[6]。

多核处理器要想发挥出威力,关键在于并行化软件支持,多核设计带动并行化计算的推进,而给软件带来的影响更是革命性的[7]。面对多核系统,需要有并行编程的思想才有可能充分利用资源,而人类的思维模型习惯于线性思维,对“面”或者更为复杂的立体编程模式,效率会下降很多。

仿真结果证明了多核CPU支持的并行系统效率提升与确定系统所面向的至关重要,它将有效地指导业界的应用系统优化设计。


上一页 1 2 下一页

评论


技术专区

关闭