全部博文(436)
分类: LINUX
2012-12-24 17:11:34
《Scheduling Heterogeneous Multi-Cores through Performance Impact Estimation(PIE)》
读书报告(一)
题目:通过性能影响估计(PIE)来规划异构多核
本文提出了利用性能影响估计(PIE)作为一种机制来预测核的工作量的映射是能提供最佳的性能。这周我们围绕PIE展开了合作学习,主要分为2个部分: 理解PIE的准备工作&详细认识PIE。我们摘录了部分原文的重难点,并通过[注]记下了自己的理解和疑问。最后提出了一些问题。
一、理解PIE的准备工作:
1. 异构多核的有效性取决于一个调度器是否可以很好的将工作量放置到合适的核心类型。
2. 在一般情况下,小的内核可以实现良好的性能,如果工作量本质上具有较高水平的ILP。另一方面,大内核也能实现良好的性能,如果工作量呈现高层次的MLP或需要ILP动态地被提取。
[注]:此处ILP的理解(不知是否正确):指令级并行(ILP)是提高微处理器性能的主要方法,ILP通过流水线中指令的并行执行或一个时钟周期发射多条指令来提高处理器性能。
3. PIE需要有限的硬件支持,可以提高平均5.5%的系统性能。
4. 一个根本的问题在设计空间中的单ISA异构多核处理器是如何最好地安排工作负载到最合适的核心类型。调度决策错误导致不理想的性能和多余的能量/功率消耗。
5. 单ISA异构多核的高效利用是依赖于底层的工作负载调度策略。计算密集型工作负载更多地受益于大核心的高计算能力,内存密集型工作负载在小核心上更节能。
二、详细认识PIE:
1. 一个在异构多核的处理器上确定最佳的调度策略的直接的方法是应用基于采样的调度。基于采样的调度在运行时动态地采样了各种“工作负载—核”的映射,然后,选择其中最好的进行映射。虽然这种方法可以使性能很好,但由于它需要在不同类型的核之间周期性地迁移工作负载,就引起了大量的开销。此外,这些开销会随着内核数量(和内核类型)的增加而增加。为了解决这些问题,我们提出性能影响估计PIE。
[注]:这里解释了为什么要提出PIE,与节省能耗提高内核运行使用的效率有关。
2. PIE的关键思想是估算(而非采样)在不同的内核类型下的工作负载的性能。 PIE完成这个估算是通过使用CPI堆栈。我们主要关注两类CPI栈中的组件:基本组件和存储组件,前者包括所有非存储相关的组件:CPI = CPIbase + CPImem.
[注]:这里给出了PIE模型建立所用的工具。但为什么只关注这两类组件?
3. MLP和ILP比率给出了的大核和小核之间的性能差异指标。因此,我们使用MLP,ILP,和CPI的堆栈信息来形成我们的PIE模式。具体说就是,我们用下面的公式估计在一个大核上执行时,小核上的性能:
CPIsmall = CPIbase_small + CPImem_small
= CPIbase_small + CPImem_big × MLPratio.
4. 同样,我们用下面的公式估计在一个小核上执行时,大核上的性能:
CPIbig = CPIbase_big + CPImem_big
= CPIbase_big + CPImem_small/MLPratio.
[注]:估计在一个大核上执行时,小核上的性能(estimate the performance on a small core while executing on a big core)这句话不知道有没有翻译对,也不知道怎么理解。
5. 在上述式子中,CPIbase_big是指在小核上执行时,大核上CPI的基本组件。CPIbase_small的定义类似。大(小)核上的CPI的存储组件计算是通过除以(乘以)用MLP比率在小(大)核测量CPI的存储组件的所得值。
总结:合作学习中,我们分工阅读原文再将重点整理集合,节省了很多时间。比如一个同学从原文第3章开始阅读,遇到ILP和MLP作为PIE建模的工具时一知半解,而另一个同学正好补充了这部分知识,因为她负责阅读的部分中有对ILP和MLP的介绍。接下去我们将继续学习如何预测CPI的基本组件和MLP比率,PIE模型如何收集数据,以及如何对PIE模型进行评价等内容。
其他问题:1.MLP指代什么?
2.安排工作负载到合适的核心类型具体指什么?什么是不合适的核心类型?