全部博文(436)
分类: C/C++
2012-12-10 17:48:52
读书报告
执行时间不再是仅由计算系统裁决,事实上明确牺牲原始性能以换取能源储蓄正在成为一个常见的趋势,在环境从大型服务器农场试图冷却成本最小化到移动设备从而试图延长电池寿命。如今随着计算机的广泛应用和电力价格的上涨能源效率已经作为一个重要的度量计算机性能的因素,而能耗和计算机的执行能力是息息相关的,降低能耗就可能使计算机的运行速度减慢,所以如何使执行速度牺牲最小化而使能量保留最大化成为了主要的研究课题。这里主要提到DVFS和DPM,它们允许动态节流速度和较大的能量效率但是会带来执行速度的减慢,所以又要有一个试图能权衡这两者之间的非对称性系统。
如今,CMOS电路作为最通用的计算机系统电路,所以能量消耗的基础就是电路能量的消耗,有动态的能量消耗、静态的能耗和短路电流的能耗。动态很好可以用一个公式表示:Pd = Cl · Nsw · V 2dd · f,其中Cl是负载电容,Nsw是一个时钟周期的晶体管开关数目,V2dd是电源电压的二次方,f是时钟频率。由此可以看出在降低时钟频率和电源电压的情况下动态耗能就可以减少很大一部分,可是会造成线性增长的程序执行时间。静态能耗主要是计算机电源和地面之间的电能泄露,大概占真个能耗的20~40%,而对于小故障的短路电流造成的能耗人们是很少关注的。运行时间的能量管理主要有三部分,第一部分就是DVFS和DPM,来动态的变化处理器电压和频率,会造成有些程序变慢对于其他程序来说。第二部分是Thermal Management,热量管理算法在时间和空间上定位线程来降低热量紧急情况来和降低热量梯度。第三部分就是Asymmetry-Aware Scheduling。Some researchers proposed to build systems that include both complex, fast and power-hungry cores as well as simple, lean and power-efficient cores. These systems are called asymmetric. symmetric-ISA保证每个内核都能运行二进制代码但具有不同的性能。系统的责任就是决定哪个类型的内核可以运行一个特别的线程,从而调度程序。
DPM利用一些电子设备可能保持者空闲状态却消耗着能量所以可以把它们关闭来减少能耗。DVFS通过降低电源电压和时钟频率来降低能耗,但这样做会延长程序执行时间。研究人员在算法设计方面估算程序运行的时间,从而避免没有用的计算时间造成的能量消耗,节约大约50%的能量。通过研究发现只在DVFS可用的情况下要比DVFS和DMP都可用的情况节约的能量少,而在DVFS情况下能量的节约较少,是因为增加了静态的能耗,降低了动态的范围。在将来的研究中要是关闭不用的程序将大大的节约能量在用DVFS情况下。映射到物理资源执行方面,好多人致力于探索算法来优化性能从而解决目前的核分派不均的情况,从而把在能耗大的内核上运行的程序转到能耗小的内核上。对于把一个迭代循环放在多重内核上,并行运算,当A完成操作,而B没有完成操作,可以利用这些空闲时间监测能耗利用DFVS来调节电压和频率使能耗最小。多芯处理器的资源共享冲突会带来能耗,而基于硬件高速缓存分块或者动态随机存储器的调度可以减缓能耗。通过DFVS来调节资源共享的公平性。
OS scheduler 已经传统的工作在分时核心和平衡负载跨计算单元。它将来必定扮演一个重要的角色在程序调度的三个新的领域,而获得确切的程序信息却是一个很难得过程,一个非对称性处理器不会告诉你正在运行的程序需要改进,所以捕获这方面的信息是比较困难的也是将来的发展方向。硬件、执行时间管理层和程序的协同设计将会比单个处理得到更有效的操作。