全部博文(436)
分类: LINUX
2012-12-17 20:10:58
《The Yin and Yang of Power and Performance for Asymmetric Hardware and Managed Software》
读书报告
这次报告由我们三人共同完成,继续上次我们分配的任务中未完成的部分。
1、 尽管JIT与应用程序是大致相同,因此可能无法提供一个机会来调整硬件,但是执行JIT小核心能提供了新的机遇来提高代码质量。JIT成本最小化意味着,在理论上讲,JIT可以优化更多的代码,更积极地,提高应用程序的代码质量。图9表明,JIT更积极的改善整体性能5%左右。这一结果表明,软/硬件协同设计有潜力进一步提高功率,性能,PPE。
2、 为了实现所有这些成果,需要更多的研究和基础设施。至少,我们需要:(1)大/小核心硬件与新硬件的功能,例如,电压缩放一个线程基础上,例如,加速解释器;(2)片上功率计,(3)操作系统的调度支持;(3)并发GC和JIT并行的硬件调整;(4)整个系统的算法来协调应用程序和虚拟机线程。
3、 在硬件上,我们的重点更广泛的自定义VM的服务,而不是提高能源GC或选择高效节能的GC算法。
4、 在硬件设计上的快速变化是无情的。但变化在进行中的研究与产业化是越来越难以预测,且变得更复杂的。另一方面,许多应用程序开发人员选择可控的语言,他们免受抽象的硬件变化。一个新兴硬件趋势是非对称的多核处理器。本文展示一个软件/硬件协同设计对大,小核和系统的软件,尤其是对VM服务,是一个有前景的方法。我们的数据表明,小核心适合一些服务,如垃圾收集,翻译,JIT,这将有助于AMP实现其能源效率的承诺。通过针对虚拟机服务,我们的方法具有广泛的影响力,既没有给程序员带来包袱,也不会让应用程序的可移植性向快速发展的硬件妥协。
5、 E.Virtual machine configuration(虚拟机配置)
Garbage Collection(垃圾回收器,简称:GC):GC:Java的垃圾回收器。Java是由C 发展来的。它摈弃了C 中一些繁琐容易出错的东西。其中有一条就是这个GC。写C/C 程序,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。内存再大也是有限的,所以当程序不再需要使用某个变量的时候,就需要释放这个内存空间资源,好让别的变量来用它。在C/C 中,释放无用变量内存空间的事情要由程序员自己来解决。就是说当程序员认为变量没用了,就应当写一条代码,释放它占用的内存。这样才能最大程度地避免内存泄露和资源浪费。但是这样显然是非常繁琐的。程序比较大,变量多的时候往往程序员就忘记释放内存或者在不该释放的时候释放内存了。而且释放内存这种事情,从开发角度说,不应当是程序员所应当关注的。程序员所要做的应该是实现所需要的程序功能,而不是耗费大量精力在内存的分配释放上。Java有了GC,就不需要程序员去人工释放内存空间。当Java虚拟机发觉内存资源紧张的时候,就会自动地去清理无用变量所占用的内存空间。当然,如果需要,程序员可以在Java程序中显式地使用System.gc()来强制进行一次立即的内存清理。 ——百度知道
6、 GC测量面临的两大挑战:
a)没有办法测量功率和能源的特定线程,因而不能直接测量功率或能量并发收集
b)并发收集器需要执行适度的不能被直接测量的内部工作
GC实现了软件的并行性,并且利用了所有可用的硬件环境。
7、 JIT Compiler(JIT编译器):
执行异步应用程序和GC,并且我们一起使用多个硬件环境评估JIT和GC。
8、 Interpreter(翻译):
翻译是精细优化的代码交织在一起执行的,所以评估解释很具有挑战性。
9、 IV.Experimental Analysis
概要:分为三个阶段: 1)对VM服务在正统硬件上功耗和能量的分析。
2)对一个小型的核心进行评估顺从的虚拟机服务。
3)模拟在一个简单的AMP系统上执行VM服务的整体影响。
10、 Motivation:Power and Energy Footprint of VM Services
a)VM服务为能源优化提供了重要线索。
b)尽管GC和JIT限制功耗,但它们的能源消耗跨基准。这种变化反映了即使每个服 务的行为时非常均匀的,但不同的区段,不同基准需要的JIT和GC服务不同。
11、 关于阴阳的比喻义:这篇文章主要讲述的是a synergy between AMP and VM services(AMP和VM服务之间的协同作用),而阴就是借指AMP硬件的复杂性,阳借指托管语言的抽象性。 那么AMP硬件和VM服务的结合就好比太极八卦中阴阳交融,相辅相成。他们可能现在正面临着性能和功耗方面的挑战,在日益复杂的硬件和软件前景下,提供了一个双赢的机会。
12、 VM服务的背景。文章从“解释”、“即时编译”、“其他VM服务”三个方面介绍了VM服务。高性能的虚拟机使用的JIT优化编译器产生动态优化的代码。因为已经执行的代码将在JIT优化编译,运行时也有机会来动态配置文件的代码和相应地做出量身定制的优化。一个典型的JIT将在几个不同级别的优化模型的基础上,选择其中之一。在更高层次的优化上,JIT编译代码时如果利用预测的编译,成本会降低,代码的执行时间会减少。JIT编译代码以异步方式应用,立刻在编译时有多个方法或跟踪(method or trace)。因此,JIT编译是一个利用小型核心的好的选择。所以利用VM的优势,可以很好地降低能耗。
问题:
1、Chenetal.study marksweep GC using an energy simulator and the Shade SPARC simulator.They improve leakage energy by using a GC-controlled optimization to shut off memory banks that do not hold live data.Diwan et al. measure the impact off our memory management strategies on Cprograms executing on the Itsy Pocket Computer.这句话不太明白是什么意思。
2、“STW”和“Oracle HotSpot JDK”不清楚,网上也没有找到合理解释。
3、GC和JIT是如何起到限制功耗的作用的?工作原理如何?
4、不太清楚managed application 和 managed languages是什么意思;
5、不太清楚具体如何给大核(big core)分配关键路径。