Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何正确使用papi_native_avail在BG/Q系统上获取网络性能监视事件?_C_Performance_Papi - Fatal编程技术网

C 如何正确使用papi_native_avail在BG/Q系统上获取网络性能监视事件?

C 如何正确使用papi_native_avail在BG/Q系统上获取网络性能监视事件?,c,performance,papi,C,Performance,Papi,我正在尝试收集BG/Q系统上带有BG圆环互连的网络性能计数器数据。我使用PAPI,因为这似乎是最推荐的方法,另一个选项是bgpm库,我认为它没有安装在这个系统上。(locate bgpm没有给我任何信息。) 我正在尝试获取系统上所有可用计数器的名称。因此,我运行papi\u native\u avail,它返回一系列事件。例如,以下是网络类别的摘录: ... ---------------------------------------------------------------------

我正在尝试收集BG/Q系统上带有BG圆环互连的网络性能计数器数据。我使用PAPI,因为这似乎是最推荐的方法,另一个选项是bgpm库,我认为它没有安装在这个系统上。(
locate bgpm
没有给我任何信息。)

我正在尝试获取系统上所有可用计数器的名称。因此,我运行
papi\u native\u avail
,它返回一系列事件。例如,以下是网络类别的摘录:

...
--------------------------------------------------------------------------------
| net:::ib0:rx:bytes                                                           |
|            ib0 receive bytes                                                 |
--------------------------------------------------------------------------------
| net:::ib0:rx:packets                                                         |
|            ib0 receive packets                                               |
--------------------------------------------------------------------------------
| net:::ib0:rx:errors                                                          |
|            ib0 receive errors                                                |
--------------------------------------------------------------------------------
...
papi_native_avail
segfults,但我认为这与此无关

因此,我在这一点上的理解是,我应该能够使用事件名称,并使用
PAPI\u event\u name\u to\u code()
从中获取事件代码,但这似乎不起作用。我猜这些不是该函数所期望的事件名称。那么有人能解释一下:

  • 在哪里可以找到BG/Q的所有网络事件

  • 如何获取这些事件的代码

  • 为了完整起见,以下是我的代码和输出:

    #include <stdio.h>
    #include <papi.h>
    
    int main(){
      int code = 0;
      int ret = 0;
      PAPI_library_init(PAPI_VER_CURRENT);
      ret = PAPI_event_name_to_code("net:::ib0:tx:fifo", &code);
    
      if(ret != PAPI_OK){
        printf("Error in getting code\n");
      }
      printf("code: %d\n", code);
    }
    

    PAPI文档是否支持BGQ网络计数器?无论如何,我总是更喜欢Bob Walkup的工具。似乎是说爸爸应该没问题。你说的是哪种工具?
    Error in getting code
    code: 0