PAPI(性能应用程序编程)不能正常工作?

时间:2012-07-27 20:46:43

标签: c performance performancecounter papi

我从网站上下载了4.4版本,在我自己的目录中构建它,并尝试编写一个小的main,它一直给我num_counters为零。然后我查看了ctests并选择了hwinfo.c,并从中删除了一些代码(和testlib)并将其扔进一个看起来像这样的小主体:

#include <stdio.h>
#include <papi.h>

int main(int argc, char** argv)
{

    int retval, i, j;
    const PAPI_hw_info_t *hwinfo = NULL;
    const PAPI_mh_info_t *mh;


    retval = PAPI_library_init( PAPI_VER_CURRENT );
    if ( retval != PAPI_VER_CURRENT )
        cerr << "Failed at line " << __LINE__ << endl;

    retval =
        papi_print_header
        ( "Test case hwinfo.c: Check output of PAPI_get_hardware_info.\n",
          &hwinfo );
    if ( retval != PAPI_OK )
        cerr << "Failed at line " << __LINE__ << endl;
}

我使用以下内容构建了它:

g++ main.cpp -I/home/pchan/rabbit/papi/include /home/pchan/rabbit/papi/lib/libpapi.a

并用:

运行
./a.out

只能看到这个输出:

测试用例hwinfo.c:检查PAPI_get_hardware_info的输出。

--------------------------------------------------------------------------------
PAPI Version             : 4.4.0.0
Vendor string and code   :  (0)
Model string and code    :  (0)
CPU Revision             : 0.000000
CPU Megahertz            : 0.000000
CPU Clock Megahertz      : 0
CPUs per Node            : 0
Total CPUs               : 0
Number Hardware Counters : 0
Max Multiplex Counters   : 0
--------------------------------------------------------------------------------

我对发生的事情有点迷失,为什么这不起作用......这是什么症状,我可以尝试解决它?我的处理器是Intel Xeon X5760,我的uname -a说:

Linux chanbox 2.6.18-308.4.1.el5 #1 SMP Wed Mar 28 01:54:56 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

1 个答案:

答案 0 :(得分:-1)

尝试“papi_avail -a”以了解您的PC上支持的内容。