J'ai une boucle parallèle par OpenMP, mais en raison de la nature de la tâche, il y a 4 Quel serait le meilleur moyen de profiler la vitesse et de déterminer lequel des clauses critiques (ou peut-être non critique (!)) prend le plus de temps à l'intérieur de la boucle? P>
J'utilise Ubuntu 10.04 avec g ++ 4.4.3 p> critiques code> clauses. P>
4 Réponses :
openmp comprend les fonctions omp_get_wtime () et omp_get_wtick () pour mesurer les performances de synchronisation ( DOCS ici ), je recommanderais d'utiliser celles-ci. P>
Sinon, essayez un profileur. Je préfère le profileur de CPU Google qui peut être trouvé ici . P>
Il y a aussi la manière manuelle décrite dans Ceci réponse. P>
est un outil agréable pour profiler des codes OpenMP (et MPI) et analyser les résultats. Tau est également très agréable mais beaucoup plus difficile à utiliser. Les outils Intel, comme le VTUNE , sont également bon mais très cher. p>
L'Intel Vtutune est un très bon produit. Par rapport à Scalasca ou à Tau, l'utilisation est très facile. C'est définitivement la peine d'être de l'argent.
Vtuune peut effectivement être utilisée gratuitement pour les logiciels non commerciaux. logiciel.intel.com/en-us/non-commercial-software- Développement
Intel semble avoir cessé d'offrir Vtutune gratuitement. Il n'y a maintenant qu'une offre d'utilisation académique.
Map de bras a Profilage OpenMP et Pthreads - et fonctionne sans avoir besoin d'instrumenter ou de modifier votre code source. Vous pouvez voir les problèmes de synchronisation et où les threads passent du temps au niveau de la ligne source. Profilage OpenMP Entrée de blog est vaut la peine de lire. p>
La carte est largement utilisée pour l'informatique haute performance, car il s'agit également des profils des applications multiprocesses telles que MPI. P>
Il y a aussi le OMPP outil que j'ai utilisé plusieurs fois dans les dix dernières années. J'ai trouvé qu'il était vraiment utile d'identifier et de quantifier les régions du déséquilibre de chargement et des régions parallèles / en série. La page Web semble être en panne maintenant, mais je l'ai également trouvé sur les archives Web plus tôt cette année. P>
Edit: Répertoire de maison mis à jour P>
Impossible de trouver cet outil et le lien est mort. En es-tu sûr?
Je ne pouvais aussi pas le trouver hier. Comme je l'ai dit, je l'ai trouvé sur le Archives Internet
Pourquoi suis-je descendu? C'est un outil que j'ai utilisé dans le passé et était extrêmement utile!
J'ai modifié le message original avec des informations supplémentaires
J'ai fait une telle tâche avec la modification des sources de la bibliothèque OMP et l'ajouter à une RDTSC