网格中比较CPU计算能力的一种方法
引 言
在网格计算中,常常需要使用多台计算机协同工作完成一台超级计算机才能完成的计算任务,为实现上述目标,首先应通过网格信息服务获得网格中各台主机CPU计算能力的指标,然后进行判断选择,决定由哪些主机参与计算。
当前,已有的网格信息服务模块、网格监控模块,如MDS2将系统平均负载作为反映CPU状态的动态指标提供给用户;另外,通过系统命令或系统调用也可以获得 CPU使用率这个动态指标。系统平均负载是在特定时间间隔内运行队列中的平均进程数,CPU使用率表示CPU使用程度的指标,能够反映出CPU的工作状态,但由于网格中CPU型号性能的差异,因此,无法用它们直接比较网格中CPU的计算能力。
为直接比较网格中主机 CPU的计算能力,获得具有可比性的反映CPU计算能力的指标,我们采用计算量动态选择算法,在各台主机上周期性地瞬间执行计算量适中的Whestone 基准计算,通过PAPI接口编程对CPU所完成的浮点数计算进行精确计数,用得到的每秒百万浮点数MFLOPS作为比较主机CPU计算能力的指标,定义为 WMFLOPS。得到WMFLOPS后,通过Globus提供的监控和发现服务(Monitoring and Discovery Service,MDS),将该指标作为资源信息进行发布,作为比较网格节点CPU计算能力的依据,为用户选择计算节点提供参考。我们编写了程序 WfpSensor用于上述方法的实现。WfpSensor作为传感器工作于网格中的各个节点,周期性地对CPU进行计算测试,获得WMFLOPS的返回值,同时,WfpSensor也是MDS服务中的本地信息提供者,定时将最新的WMFLOPS值传递给MDS系统,供用户查阅。
计算测试子程序
CPU 的计算能力主要体现在浮点数计算能力、定点数计算能力和矩阵计算能力等方面,其中某一类程序在CPU上运行的效果并不能全面地反映CPU的计算能力,所以许多国际基准组织开发了测试CPU计算能力的基准测试程序,在这类程序中进行的操作和运算可以相对全面客观地考察CPU的计算能力。本文方法采用综合型基准测试程序Whestone作为WfpSensor的计算测试子程序,Whestone程序中主要包括浮点运算、整数运算、涉及到数组下标索引、子程序调用、参数传递、条件转移和三角/超越函数等,可以综合考察CPU提供的计算能力。
返回指标WM FLOPS
WfpSensor 进程对CPU进行计算测试后,取出CPU在测试过程中的指标来反映CPU的计算能力。绝大多数网格计算都是科学计算,而浮点计算是科学计算程序中最主要的计算,所以选用每秒百万浮点数MFLOPS作为反映CPU计算能力的指标。MFLOPS反映了CPU的浮点计算能力,并且MFLOPS是基于操作而非指令的,可以用它来比较两种不同CPU的计算能力。由于是调用Whestone程序进行测试所得的结果,因此定义该指标为WMFLOPS。
指标精确计数
指标确定后,如何在WfpSensor中精确得到Whestone计算结束后的WMFLOPS值成为问题的关键。由美国田纳西大学计算机学院创新计算实验室开发的标准应用编程接口PAPI( portable application programming interface)能够满足上述要求。该软件通过CPU上的硬件计数器,对CPU运行时产生的某些事件进行计数,并建立了一个标准应用编程接口方便用户读出计数器的值,通过这些值就可以了解当前CPU的工作状态。由于CPU生产厂商及型号的不同,CPU硬件计数器所计数的硬件事件会有所不同,为标准化指标的名称,使同一工具可以计数相似的可比较事件,促进跨平台调试程序的能力,PAPI开发者选择了一套和调试应用程序相关的硬件事件称为预定义事件,作为反映CPU当前工作状态的指标。这些指标是跨平台的通用事件,包括了大部分主流RISC类事件,并且尽可能把这些预定义事件映射到给定CPU的硬件计数器事件中。在本文方法中,使用了PAPI_FP_INS这个PAPI预定义事件,它表示进程执行过程中完成的浮点数计算。PAPI提供了精确的计时器,精确到微秒,能够准确地对进程的执行时间进行计时,如果经计数,PAPI_FP_INS事件总数为n,计算执行时间为t(单位:μs) ,那么WMFLOPS=n/t。
计算量动态选择
采用计算测试CPU的计算能力,必须保证以下两点:
(1) 测试进程应尽可能不影响CPU的正常工作,当然由于测试进程的引入必将影响到CPU正常运行,应设法让这种影响降到一个可以接受的程度,并且使计算给系统带来的开销尽可能小。
(2) 测试进程要有一定的计算量,如果计算量过小,会使初始化、函数调用等操作消耗的时间在进程的执行时间t中占有较大的比重,从而使WMFLOPS的值比真实值小,影响测试结果的精确性。
为同时保证(1)需要较小的计算量和(2)需要较大的计算量,选择合适的测试计算量十分重要
- 串行RapidIO连接功能增强DSP协处理能力(04-30)
- Verilog主要能力(06-06)
- 码长可变、纠错能力可调的RS码编码器设计(06-05)
- 电动汽车困局,能给咱省钱吗(12-16)
- 总线的驱动能力/负载能力(12-14)
- 51单片机驱动能力上拉电阻分析(11-24)