Как профилировать количество вызовов функций и время настенных часов с помощью HPCToolkit?

Я намерен профилировать модель системы сообщества Земли (CESM) на кластере из 8 узлов. Я могу успешно профилировать приложение с помощью HPCToolkit

Я могу получить только две метрики: CPU Time(I) и CPU Time(E). Я заинтересован в получении метрик, таких как количество вызовов функций и время настенных часов. Как извлечь такие метрики с помощью HPCToolkit?

Это другая необходимая информация:

1) Системная информация

ОС / архитектура [nitin@master ~]$ uname -a Linux master.ipoc.org 2.6.32-358.el6.x86_64 #1 SMP пт 22 февраля 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Компилятор: я использую семейство компиляторов Intel [nitin@master ~]$ icc -V Intel(R) C Компилятор Intel(R) 64 XE для приложений, работающих на Intel(R) 64, версия 15.0.2.164, сборка 20150121 Copyright (В) 1985-2015 Intel Corporation. Все права защищены.

PAPI: Я не установил PAPI. В первую очередь из-за ошибки, связанной с установкой в ​​процессе сборки. Я предполагаю, что это из-за проблемы, связанной с libpfm, как сказано в http://icl.cs.utk.edu/papi/faq/

Java [nitin@master ~]$ java -version Java-версия "1.7.0_09-icedtea" Среда выполнения OpenJDK (rhel-2.3.4.1.el6_3-x86_64) Виртуальная 64-разрядная серверная виртуальная машина OpenJDK (сборка 23.2-b09, смешанный режим)

2) HPCToolkit (похоже, я использую HPCToolkit версии 5.3.2 [2012.09.21]. Я видел это как последнюю версию в README.Releasenotes)

3) Профилированное приложение. Приложение представляет собой сложное приложение, которое называется Модель системы сообщества Земли (CESM). Он имеет несколько компонентов, распределенных по многим файлам фортана Код в основном на Фортране. Я не использую hpclink, и я использую hpcrun непосредственно в команде mpirun. Я запускаю код на кластере из 8 узлов (каждый с 16 ядрами). Следовательно, похоже, что я динамически связал приложение.

1 ответ

HPC Toolkit не даст вам количество вызовов функций. Это профилировщик на основе выборки, а не профилировщик "log all".

Если вам нужно знать точное количество вызовов функций, вам нужно будет применить код или использовать что-то еще, созданное для ответа на ваш вопрос, например, gprof или callgrind (хотя это не так просто или быстро сделать для приложений HPC). Для кода, подобного CESM, вы, вероятно, ничего не получите от его использования.

Я полагаю, что для настенных часов это обеспечит это, поэтому предложите вам подождать, пока форум HPC Toolkit ответит вам.

Другие вопросы по тегам