2012-09-27 5 views
1

J'ai besoin d'écrire un programme C (pour une attribution d'école pour déterminer la taille du cache). J'ai utilisé clock() comme un moyen d'obtenir des informations de synchronisation. Mais was told qui pourrait conduire à des résultats inexacts. Je pensais donc à utiliser d'autres bibliothèques, introduites dans les laboratoires récents, perf ou papi, pour enregistrer les performances. Mais la façon dont nous les avons utilisés était via la ligne de commande:Obtenir le temps d'exécution (ou d'autres statistiques) pour le programme C en utilisant perf ou

perf stat ./test 

Je pense qu'il est possible d'utiliser perf dans l'application? Je suis nouveau en C, plus habitué aux langages de plus haut niveau comme Python/JS/Java etc. Donc je pense que j'ai besoin de créer un fichier make, d'inclure la librairie, etc. Aussi quelles fonctions ai-je?

je vis http://www.rzg.mpg.de/computing/hardware/BGP/perf.html

libperf.a 
    perf library for MPI programs. 
libperfhpm.a 
    Use perf instrumentation to call hpmtoolkit. 
libperfdummy.a 
    Provides dummies for the perf instrumentation. You can link against this library to avoid the perf overhead in production runs. 

qui dois-je utiliser? Ce n'est pas un programme MPI. Alors comment l'utiliser réellement? J'utilise C et gcc. Cela ressemble à la compilation, mais ... ce qui est mpixlf90

mpixlf90_r -o tperf tperf.f -L/usr/local/lib -lperf 
+0

mpixlf90 ressemble à un compilateur –

Répondre

1

Il y a beaucoup d'outils d'analyse des performances (qui fournissent des informations sur le temps en cours d'exécution, la consommation de mémoire) pour C et C++ programmes, dont certains sont,

  1. Valgrind

  2. Google Perf Tools

J'espère que c'est ce que vous cherchez!

Questions connexes