Scalasca
Scalasca est un outil open-source permettant d'analyser le comportement d'applications parallèles et d'identifier les zones à optimiser.
"Scalasca (SCalable performance Analysis of LArge SCale parallel Applications) is an open-source project developed in the Jülich Supercomputing Centre (JSC) which focuses on analyzing OpenMP, MPI and hybrid OpenMP/MPI parallel applications, yet presenting an advanced and user-friendly graphical interface. Scalasca can be used to help identify bottlenecks and optimization opportunities in application codes by providing a number of important features: profiling and tracing of highly parallel programs; automated trace analysis that localizes and quantifies communication and synchronization inefficiencies; flexibility (to focus only on what really matters), user friendliness; and integration with PAPI hardware counters for performance analysis."
Version installée
Scalasca | 2.2.2 | icc and gcc version |
---|
module avail perf/scalasca
pour afficher les versions installées.
tracing
export SCOREP_ENABLE_TRACING=1
Utilisation
Charger le module scalasca (dépend de qt et de ompi) :
$ module load perf/scalasca/icc
L'utilisation de scalasca se décompose en trois phases :
1. Instrumentation de l'application (skin)
Préparation de l'application et édition du lien avec les outils de mesure scalasca.
Remplacer :
$ mpicc -o foo [some options] foo.c
par :
$ scalasca -instrument mpicc -o foo [some options] foo.c
ou en utilisant l'alias skin
$ skin mpicc -o foo [some options] foo.c
pour produire un code binaire instrumenté prêt à être exécuté.
2. Exécution de l'application instrumentée (scan)
Lancement de l'analyseur de mesure avec :
$ scalasca -analyze mpirun [some options] foo.exe [some parameters]
ou
$ scan mpirun [some options] foo.exe [some parameters]
cela produit des données de mesure dans un nouveau dossier, appelé par défaut, epik_ProgramName_nCPUS_sum.
3. Analyse/visualisation des résultats (square)
Lancement de l'interface graphique scalasca :
$ scalasca -examine epik_ProgramName_nCPUS_sum
ou
square epik_ProgramName_nCPUS_sum
Pour explorer et analyser le rapport.
Exemple :