Unified Trace Environment
Outils de conversion de format pour fichiers de profilage
uteconvert
utestats
utemerge
slogmerge
Créer, convertir et visualiser des fichiers d'informations au format d'intervalles UTE
Lorsque l'on collecte des traces d'évènements d'applications MPI ou séquentielles à l'aide de pct (voir Utilisation du Performance Collection Tool), les informations collectées sont sauvegardées sur chaque machine qui instrumente des processus en tant que fichier de traces standard AIX. Pour travailler avec ces informations, il faut en premier lieu convertir ces fichiers en fichiers au format UTE (Unified Trace Environment). Alors que les fichiers de traces AIX ne contiennent que le moment précis où l'évènement se produit, les fichiers au format UTE prennent cette information pour déterminer la durée de l'évènement. Avec cette information supplémentaire sur la durée, les fichiers au format UTE sont plus facile à visualiser que les fichiers traditionnels de trace AIX. Cet ensemble comprend :- l'utilitaire uteconvert qui convertit les fichiers de traces d'évènements AIX en fichiers de trace au format UTE ;
- l'utilitaire utemerge qui fusionne plusieurs fichiers au format UTE en un seul fichier au format UTE ;
- l'utilitaire utestats qui génère des tables de statistiques à partir de fichiers au format UTE ;
- l'utilitaire slogmerge qui convertit et fusionne plusieurs fichiers au format UTE en un seul fichier SLOG pour visualisation et analyse avec le logiciel graphique jumpshot du Argonne National Laboratory.
La figure suivante illustre le processus d'analyse des données à l'aide des utilitaires UTE.
Quel que soit le type d'analyse que l'on souhaite faire, il faut, en premier lieu, convertir les fichiers de traces AIX au format UTE à l'aide de l'utilitaire uteconvert (a), voir la rubrique Convertir des fichiers de traces AIX en fichiers de traces UTE.
De là, si on veut voir des tables de statistiques (b), on peut employer l'utilitaire utestats. On peut, si nécessaire, fusionner plusieurs fichiers d'intervalles UTE en un seul à l'aide de l'utilitaire utemerge avant d'utiliser utestats ; voir la rubrique Générer des tables de statistiques à partir de fichiers de traces UTE.
Si on préfère visualiser graphiquement les informations contenues dans les fichiers UTE (c), on peut les convertir en fichiers SLOG avec l'utilitaire slogmerge. Les fichiers SLOG sont lisibles avec l'outil jumpshot de l'Argonne National Laboratory ; voir la rubrique Convertir des fichiers de traces UTE en fichiers SLOG.
Remarque : Les utilitaires UTE sont destinés uniquement à manipuler les fichiers de traces d'évènements AIX générés lorsque l'on collecte des traces d'évènements d'applications MPI ou séquentielles avec pct. Si l'on préfère collecter des données sur les performances du matériel, les fichiers sont générés directement au format netCDF (network Common Data Format) qui est reconnu par pvt, voir la rubrique Utilisation du Profile Visualization Tool.
Convertir des fichiers de traces AIX en fichiers d'intervalles UTE
Quel que soit le type d'analyse que l'on souhaite faire, il faut, en premier lieu, convertir les fichiers de traces standard AIX au format d'intervalles UTE à l'aide de l'utilitaire uteconvert. Les fichiers contenant les informations collectées d'évènements d'applications MPI ou séquentielles sont stockés au format fichiers de trace AIX sur chaque noeud qui exécute au moins un processus instrumenté. Leur nom consiste en un préfixe commun que l'on a spécifié avec pct et d'un suffixe dépendant de l'outil et du noeud d'exécution. Avec l'utilitaire uteconvert, on peut convertir un seul fichier de traces AIX ou bien un ensemble de fichiers possédant le même préfixe en un ensemble de fichiers UTE.
Pour convertir un seul fichier de trace AIX, il suffit de transmettre le nom du fichier et le chemin d'accès à l'utilitaire uteconvert. Par exemple, pour convertir le fichiers de traces AIX mytrace :
uteconvert mytrace
Avec l'option -o, on on peut spécifier le nom du fichier de sortie au format UTE. Par exemple, pour obtenir un fichier de nom outute :
uteconvert -o uteout mytrace
Pour convertir un ensemble de fichiers de traces AIX en un ensemble de fichiers au format UTE, il suffit de spécifier le nombre de fichiers à convertir avec l'option -n et de donner le préfixe commun à ces fichiers. Par exemple, pour convertir cinq fichiers de traces possédant le préfixe commun mytraces en fichiers au format UTE de préfixe commun outute, on place l'ensemble des fichiers AIX dans un même répertoire et on tape la commande :
uteconvert -n 5 -o outute mytraces
Lorsque l'on utilise l'option -n, il faut s'assurer que l'on n'a pas de vieux fichiers de traces AIX provenant d'exécutions précédentes car l'utilitaire uteconvert va traiter les n premiers fichiers rencontrés dont le préfixe correspond à celui transmis en argument.
L'option -r permet de faire disparaitre les fichiers de traces AIX une fois qu'ils ont été traités.
L'option -? affiche la séquence d'appel standard de l'utilitaire uteconvert qui est :
uteconvert [-?] [-n number_of_files] [-o {output_file_name | output_file_name_prefix}] [-r] {input_file_name | input_file_name_prefix}
Générer des tables de statistiques à partir de fichiers d'intervalles UTE
Une fois les fichiers au format d'intervalles UTE crées (voir la rubrique Convertir des fichiers de traces AIX en fichiers d'intervalles UTE), on peut générer des tables de statistiques avec l'utilitaire utestats. En plus de donner une alternative à la représentation graphique, il permet d'identifier les traces à visualiser avec un outil graphique comme le logiciel jumpshot développé par l'Argonne National Laboratory. Cela peut être utile car il est parfois difficile de visualiser l'ensemble des threads dans un outil graphique. Par exemple, jumpshot ne supporte que 64 threads. Avec l'outil utestats, on peut déterminer quelles sont les threads intéressantes. De plus, si on ne souhaite pas faire de visualisation graphique, on peut analyser plus profondément les traces avec l'utilitaire utestats seul.Par défaut, six tables à deux dimensions sont générées qui sont :
- Time Bin vs. Node ;
- Thread vs. Event Type ;
- Event Type vs. Thread ;
- Node vs. Event Type ;
- Event Type vs. Node ;
- Node vs. Processor.
node/cpu 0 1
0 2.823739 2.258315
1 0.873746 4.241253
2 0.956515 4.322891
3 0.853188 4.334650
On peut générer ces tables de statistiques pour un seul fichier UTE ou pour plusieurs fichiers. Un fichier UTE fusionné consiste en plusieurs fichiers UTE qui ont été fusionnés avec l'utilitaire utemerge.
Par exemple, pour générer les tables de statistiques à partir du fichier UTE mytrace.ute (se trouvant dans le répertoire courant), on utilise la commande :
utestats mytrace.ute
Par défaut, ces tables sont envoyées vers la sortie standard. On peut, cependant, les rediriger vers un fichier avec l'option -o de l'utilitaire utestats. Par exemple, une redirection vers le fichier stattables s'écrit :
utestats -o stattables mytrace.ute
Comme dit précédemment, on peut spécifier plusieurs fichiers UTE pour générer les statistiques :
utestats mytrace.ute mytrace2.ute mytrace3.ute
Plutôt que de spécifier de multiples noms de fichiers UTE, on peut employer l'utilitaire utemerge pour d'abord fusionner ces fichiers en un seul fichier UTE. Pour le faire on fournit le nombre de fichiers à fusionner avec l'option -n de l'utilitaire utemerge et aussi le préfixe commun à ces fichiers. Par exemple :
utemerge -n 3 mytrace
Par défaut, le fichier d'intervalles UTE généré par l'utilitaire utemerge est nommé trcfile.ute. Pour indiquer son propre nom de fichier, on utilise l'option -o :
utemerge -n 3 -o mergedtrc.ute mytrace
Lorsque l'on utilise l'option -n, il faut s'assurer que l'on n'a pas de vieux fichiers d'intervalles UTE provenant d'exécutions précédentes car l'utilitaire utemerge va traiter les n premiers fichiers rencontrés dont le préfixe correspond à celui transmis en argument.
On peut alors générer les statistiques pour les fichiers au format UTE à l'aide de l'utilitaire utestats :
utestats mergedtrc.ute
Remarque :
Le logiciel graphique jumpshot de l'Argonne National Laboratory inclut la possibilité de représenter graphiquement les mêmes informations que l'utilitaire utestats.
L'option -B de l'utilitaire utestats permet de spécifier le nombre de bins dans la table Time vs. Node dont le nombre par défaut est 50.
L'option -? affiche la séquence d'appel standard de l'utilitaire utestats qui est :
utestats [-?] [-o output_file_name] [-B number_of_bins] input_file [input_file] ...
Fusionner des fichiers au format d'intervalles UTE
L'utilitaire utemerge permet de fusionner plusieurs fichiers au format d'intervalles UTE en un seul fichier au format UTE. Un nombre (indiqué avec l'option -n) de fichiers UTE commençant avec le même préfixe input_file_name_prefix sont fusionnés en un seul fichier. Le nom de ce fichier est celui spécifié par l'option -o (sinon trc.file est le nom par défaut). Le nom input_file_name_prefix doit être le dernier argument.Les options de utemerge sont :
- -? : affiche la séquence d'appel standard de l'utilitaire utemerge qui est :
utemerge [-?] [-n number_of_files] [-o output_file_name] [-s range] [-g] input_file_name_prefix
- -n number_of_files : indique le nombre de fichiers en entrée à fusionner. La valeur par défaut est 1.
- -o output_file_name : spécifie le nom du fichier de sortie (le fichier contenant la fusion). Par défaut, son nom est trcfile.ute.
- -s range : spécifie une liste de tâches MPI à fusionner. Dans cette liste, les rangs des processus MPI sont sérés par une virgule (,) ou un tiret (-). Si le tiret est utilisé, alors il représente l'ensemble des rangs compris entre les valeurs qui l'entourent. Ainsi, -s 0, 2, 4, 5-7 indique que l'utilisateur veut fusionner les fichiers des processus de rang 0, 2, 4, 5, 6, et 7. Par défaut, tous les processus MPI sont pris en compte.
- -g : fusionne les fichiers sans utiliser un temps global. Cela ne s'applique que sur les machines n'ayant pas de switch SP (ce qui n'est pas le cas du cluster IBM du CRIHAN).
Convertir des fichiers d'intervalles UTE en fichiers SLOG pour jumpshot
Si on souhaite visualiser les traces collectées par pct, on peut utiliser le logiciel jumpshot d'Argonne National Laboratory. Ce logiciel domaine public ne fait pas partie de l'ensemble PE Benchmarker. Il utilise le format de fichier SLOG et l'utilitaire slogmerge permet de convertir les fichiers UTE au format SLOG pour jumpshot.Dans le cas de codes massivement parallèles, on ne peut pas visualiser plus de 64 processus avec jumpshot. Plutôt que fusionner l'ensemble de ces fichiers, on peut choisir de n'en fusionner que certains. Pour déterminer les fichiers intéressants, on peut employer l'utilitaire utestats, voir la rubrique Générer des tables de statistiques à partir de fichiers d'intervalles UTE.
Pour convertir un unique fichier UTE en fichier SLOG, on donne simplement le nom du fichier (se trouvant dans le répertoire courant) à l'utilitaire slogmerge :
slogmerge mytrace.ute
Par défaut, le fichier généré par slogmerge s'appelle trcfile.slog. Avec l'option -o on peut spécifier le nom du fichier de sortie :
slogmerge -o mergedtrc.slog mytrace
Pour fusionner plusieurs fichiers UTE en un seul fichier SLOG, on utilise l'option -n pour indiquer le nombre de fichiers à fusionner et on transmet le prefixe des fichiers à traiter. Ici, pour traiter trois fichiers de préfixe mytrace :
slogmerge -n 3 mytrace
Lorsque l'on utilise l'option -n, il faut s'assurer que l'on n'a pas de vieux fichiers d'intervalles UTE provenant d'exécutions précédentes car l'utilitaire slogmerge va traiter les n premiers fichiers rencontrés dont le préfixe correspond à celui transmis en argument.
Les options de slogmerge sont :
- -? : affiche la séquence d'appel standard de l'utilitaire slogmerge qui est :
slogmerge [-?] [-n number_of_files] [-c number_of_bytes_per_frame] [-o output_file_name] [-s range] [-n number_of_available_markers] [-r factor] [-g] input_file_name_prefix
- -n number_of_files : indique le nombre de fichiers en entrée à fusionner. La valeur par défaut est 1.
- -c number_of_bytes_per_frame : indique le nombre d'octets par frame ; le défaut est 128ko.
- -o output_file_name : spécifie le nom du fichier de sortie (le fichier au format SLOG). Par défaut, son nom est trcfile.slog.
- -s range : spécifie une liste de tâches MPI à fusionner. Dans cette liste, les rangs des processus MPI sont séparés par une virgule (,) ou un tiret (-). Si le tiret est utilisé, alors il représente l'ensemble des rangs compris entre les valeurs qui l'entourent. Ainsi, -s 0, 2, 4, 5-7 indique que l'utilisateur veut fusionner les fichiers des processus de rang 0, 2, 4, 5, 6, et 7. Par défaut, tous les processus MPI sont pris en compte.
- -m number_of available_markers : spécifie le nombre d'espaces à réserver pour les marqueurs dans la table SLOG. Ce nombre ne doit pas être inférieur au nombre de marqueurs nommés de manière unique dans le fichier d'intervalles UTE sous peine de sortie brutale de slogmerge.
- -r factor : spécifie le facteur par lequel des pseudo records sont réservés. Ce nombre correspond au nombre de threads dans le fichier de traces multiplé par factor. La valeur par défaut est 2.
Les pseudo records sont des copies d'enregistrements spécifiques nécessaires à la visualisation. Le nombre de ces enregistrements peut être relativement grand et dépend du nombre d'états imbriqués, de leur étendue dans le temps, et du nombre d'enregistrements qui sont à cheval sur plusieurs frames. Dans le cas où le nombre de pseudo records créés est supérieur au nombre de places réservées, slogmerge va quitter brutalement. Il faut alors augmenter l'argument de cette option. - -g : fusionne les fichiers sans utiliser un temps global. Cela ne s'applique que sur les machines n'ayant pas de switch SP (ce qui n'est pas le cas du cluster IBM du CRIHAN).