全部博文(436)
分类: LINUX
2012-12-24 15:37:48
这周我们把上周的内容又细致的阅读了一下,我对我所读部分的部分内容做了修改与细节添加。
3.5.6 编译器支持
问题:The compiler can trivially convert bottlenecks that start and end in the same scope to use BottleneckCall/BottleneckReturn.(编译器可以在同样的范围内用BottleneckCall/BottleneckReturn来转变瓶颈的首尾),它交换瓶颈首尾的作用是什么?
3.5.7 支持计划调优
BIS可以给程序员提供最临界点的反馈,加快程序员的编程速度。程序员会决定优化哪个瓶颈能得到最好的结果。我们尝试增加一个类似于计数器的装置来储存bid和累计的等待周期数。我们可以使用像Vtune and Intel Parallel Studio一样的工具来指导程序设计师。由于空间有限,我们不能描述结构和界面,但我们可以直接从电信部获取信息。
问题:bid是什么东西?
4 实验方法
Table 4 基本处理器配置
介绍了大内核,小内核,SCMP,ACMP,ACS,BIS等的基本配置。
32-entry代表有32行的程序列,S-entry代表相对于S的程序列。
Table 5 实验配置
机制 |
无流水线 |
有流水线 |
SCMP |
每个内核一个线程 |
最好的静态整体调度 |
ACMP |
几个部分在大内核中,其他的在小内核中 |
包括大内核的最好的静态整体调度 |
ACS |
几个部分和临界部分在大内核中,其他的在小内核中 |
不用 |
MC-ACS |
比较最好的可能基线,将ACS扩大为多个大内核 | |
FDP |
不用 |
动态调度所有内核 |
BIS |
作者研究的方法 |
Table 6 评估平台
Workload下面的内容是评估平台需要调度的小程序的名称,Input set 是输入位置,最后是对瓶颈的描述。
5 评估
5.1独立大内核
Table 7 BIS相对于SCMP,ACMP,ACS/FDP平均加速的百分数
Num. of threads |
Equal to number of cores |
Optimal | ||||||
Area Budget |
8 |
16 |
32 |
64 |
8 |
16 |
32 |
64 |
SCMP |
-20 |
10 |
45 |
75 |
-20 |
10 |
37 |
43 |
ACMP |
6.9 |
13 |
43 |
70 |
1.4 |
12 |
32 |
36 |
ACS/FDP |
2.4 |
6.2 |
17 |
34 |
2.4 |
6.2 |
15 |
19 |
问题:在预算面积为8核时,SCMP比BIS方法要好,后面总结时为什么说BIS相比于所有方法都是最好的呢?而且在Figure7 中的a我认为应该是SCMP是最高的?
表中所示,除area budget为8的SCMP外,BIS随着area budget的提高,平均增长速度比SCMP,ACMP,ACS/FDP也随之加快,平等的内核数更为明显。
5.1.1 线程数平等的内核数
Figure 6 仍需讨论。
5.1.2 最佳线程数
Therefore,SCMP performs the best because the loss of throughput on the configurations with a large core is greater than the benefit of acceleration.其中的with a large core是谁有个大核,SCMP在配置中写的只有小核呀?
只有Sqlite有唯一的明显的临界部分,ACS和BIS能提供同样的性能提高,平均ACS,BIS,ACMP性能相差在2%以内。
图中显示,在sqlite中,ACS/FDP和BIS对以ACMP为基准的最佳线程数进行加速,两者相等且达到最大值。其次在150以上的数据还有8核时的pagemine的SCMP,32核时mysql-3、rank的BIS,64核时mysql-1和rank的BIS。
如图显示,在预算范围较大时,BIS相比于其他方法的效果要好很多。
随着预算面积的增加,一个大内核对运行小线程的加速效果越来越不明显,随之对临界的瓶颈的加速显得尤为重要。