网格中比较CPU计算能力的一种方法
,为此,提出采用计算量动态选择的算法确定计算量。
计算量的大小控制可以通过改变WfpSensor中调用Whestone程序的次数(NUM_LOOPS)实现。假定使计算执行时间t(单位:s)在 0.5~1.5的计算量是合理值,计算量调节系数为xs。WfpSensor启动时,NUM_LOOPS赋初值。调用Whestone计算结束后,如果:
(1) 0.5≤t≤1.5,在合理区间内,NUM_LOOPS的值保持不变。
(2) t>1.5,计算量偏大,下次测试应减小Whestone的调用次数,则NUM_LOOPS=NUM_LOOPS/xs。xs为t四舍五入后的整数值。
(3) t0.5,计算量偏小,下次测试应增加Whestone的调用次数,则NUM_LOOPS=NUM_LOOPS3xs。xs为(1/t)四舍五入后的整数值。
具体算法如下:
start_usec=PAPI_get_real_usec();//通过PAPI函数获得计算开始时的时刻
do_wst(NUM_LOOPS);//Whestone写成函数,对它进行调用,NUM_LOOPS是调用次数
end_usec=PAPI_get_real_usec();//通过PAPI函数获得计算结束时的时刻
t=(end_usec-start_usec);//获得计算执行的时间
if(t>1.5)//根据本次计算执行时间决定下次测试的调用次数
{
if((t-floor(t))>0.5)//取最靠近t的整数
xs=floor(t)+1;
else
xs=floor(t)
NUM_LOOPS=NUM_LOOPS/xs;//修改调用次数
}
else
if(t0.5)
{
if((1/t-floor(1/t))>0.5)//取最靠近1/t的整数
xs=floor(1/t)+1;
else
xs=floor(1/t);
NUM_LOOPS =NUM_LOOPS3xs;//修改调用次数
}
性能评价
为证实本文方法检测CPU计算能力的效果,在使用Intel赛扬1.3 GHz CPU的主机上(操作系统为WindowsXP),运行WfpSensor,做以下实验。在实验中,使用计算π值的科学计算软件Superπ和另一基准测试软件Linpack作为主机的计算任务,WfpSensor设置为每10s采样一次。为使检测效果具有可比性,我们编写了检测CPU使用率的另一程序 CPUusage对CPU的使用率进行记录,CPUusage也是每10s采样一次。在同样的计算条件下,分别由WfpSensor和CPUusage对 CPU的计算能力进行测试。
稳定性
本实验检测WfpSensor和 CPUusage测试数据的稳定性,机器启动后,不运行任何程序,分别用WfpSensor和CPUusage进行5min测试,所得 WMFLOPS,NUM_LOOPS和CPU使用率如图1所示,NUM_LOOPS初始值为4000。
由图1可见,在未运行任何用户程序时,与CPUusage所测数据一样,WfpSensor所测数据是稳定的,都可以反映出CPU的计算能力。
图1
灵敏性
检测WfpSensor和CPUusage对CPU计算负载变化的灵敏性。在监控程序启动35s后,运行Superπ(计算1M位π值),再过45s运行 Linpack。5min15s结束测试,所得WMFLOPS,NUM_LOOPS和CPU使用率如图2所示。
电子工程世界首页 》单片机 》 其他技术 》
网格中比较CPU计算能力的一种方法 (3)
2012-04-06 18:58:21 作者:郭 东,鞠九滨,胡 亮 来源:吉林大学学报
关键字:网格 CPU 计算能力 发现服务
图2
由图2可见,WfpSensor能够根据CPU当前状态自动选择计算量,WMFLOPS的值能够反映出CPU计算能力的动态变化情况,而CPU使用率的值则不能动态反映CPU的计算能力。
测试开销
用测试计算的运行时间说明这个问题。在图2(A)的实验中,记录了测试计算的执行时间如图3所示。在设计算法时,已假定测试计算执行时间在0.5~1.5 s范围内是合理值,即为可以接受的测试开销。如图3所示,除4个拐点的测试计算执行时间值外,其他测试计算执行时间值稳定于1s左右,符合要求。当然,如果认为1 s的测试执行时间开销较大,还可以根据实际情况修改算法,设置合理的测试计算执行时间的区间。
图3
实验结论
以上实验数据证明,WfpSensor将PAPI和Whestone结合使用测试CPU计算能力的方法是可行的,而且准确、有效。动态计算量的选择保证了 WfpSensor的测试计算开销保持在合理的范围内,PAPI提供的独立于硬件和操作系统的编程接口保证了返回指标计数的精确性。
WfpSensor的网格应用
WfpSenor跨平台使用的可行性
WfpSensor 的返回指标WMFLOPS可以反映出一台主机CPU不同时刻的计算能力,可以用于相同平台或不同平台主机CPU计算能力的比较。首先,WMFLOPS是 Whestone程序结束后返回的MFLOPS值,浮点计算是基于操作而非指令的,所以它可以用来比较不同CPU的计算能力。其次,WMFLOPS是使用 PAPI编程接口通过CPU硬件计数器对PAPI_FP_INS事件进行计数的值除以测试进程的执行时间t得到的,PAPI具有跨平台性,这为 WfpSensor应用于具有较大物理异构性的网格环境提供了极大的支持;同时,PAPI_FP_INS是PAPI定义的标准化预定义事件,对于不同 CPU的比较更具参考性。
WfpSensor数据
- 串行RapidIO连接功能增强DSP协处理能力(04-30)
- Verilog主要能力(06-06)
- 码长可变、纠错能力可调的RS码编码器设计(06-05)
- 电动汽车困局,能给咱省钱吗(12-16)
- 总线的驱动能力/负载能力(12-14)
- 51单片机驱动能力上拉电阻分析(11-24)