多核系统效率与任务属性关系的优化策略
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支持的并行系统效率提升与确定系统所面向的任务属性至关重要,它将有效地指导业界的应用系统优化设计。
- 提高存储器子系统效率的三种方法(04-07)
- Cache(高速缓存)技术详解(03-06)
- 单片机编程技巧-时钟中断(05-09)
- 基于单片机的AC LED智能照明系统设计(10-08)