VampirTrace Plugin Counters
Plugin Counter sind ein neues Feature von VampirTrace, welches es erlaubt externe Counter einzubinden. Die zur Verfügung gestellte Schnittstelle wurde mit Version 5.9 eingeführt und erlaubt es Entwicklern und Performance Analysten die Funktionalität von VampirTrace zu erweitern ohne dessen Code zu ändern. Die Implementierung als Plugin-Schnittstelle macht es ebenfalls überflüssig VampirTrace oder den zu analysierenden Code neu zu compilieren um andere Plugin Counter zu lesen. Performance Analysten sind dabei in der Lage mehrere Plugin Counter gleichzeitig zu nutzen. Dabei sollte darauf geachtet werden, welche zusätzlichen Informationen interessant sind, da jeder zusätzliche Counter einen zeitlichen Overhead beisteuert und sich somit auf die Ausführungszeit des untersuchten Programmes auswirkt. Seit VampirTrace 5.11 sind auch asynchrone Counter verfügbar. Diese erlauben es Counter-Werte unabhängig von Ereignissen im Trace zu schreiben
Kurzanleitung
Nachdem ein Plugin heruntergeladen (bzw. selbst geschrieben) und kompiliert wurde, sollte die resultierende shared-object Bibliothek in einen Ordner kopiert werden, der Teil des LD_LIBRARY_PATH ist. Jedes Plugin definiert andere Metriken die daraufhin VampirTrace zusätzlich zur Verfügung stehen. Informationen über die Metriken können in den jeweiligen README Dateien eingesehen werden. Um eine bestimmte Metrik während eines Laufs von VampirTrace zu aktivieren, muss die Umgebungsvariable VT_PLUGIN_CNTR_METRICS auf folgende Weise gesetzt werden:
export VT_PLUGIN_CNTR_METRICS=_[:_[:...]]
Beispielsweise kann die Metrik page_faults aus der Plugin Bibliothek libKswEvents.so auf folgende Weise aktiviert werden:
export VT_PLUGIN_CNTR_METRICS=KswEvents_page_faults
Mehrere Metriken können ausgewählt werden, indem man sie mit Doppelpunkten trennt.
Verfügbare Plugins
Kernel Tracing Software Events
Dieses Plugin erlaubt es Software Events auf Systemen mit neuerem (>=2.6.32) Linux Kernel zu messen. Dabei werden Metriken zur Verfügung gestellt :
- Anzahl an CPU Migrationen
- Zeiteinheiten, die eine Task ausgeführt wurde (task clock)
- Speicherfehler (page faults)
- Kontextwechsel
Download
LibSensors Monitoring
Dieses Plugin erlaubt es VampirTrace Werte auszulesen, die für die Bibliothek lm-sensors verfügbar sind. Dazu gehören beispielsweise Prozessor und Chassis Temperaturen, sowie Lüfterdrehzahlen. Die Unterstützung für die sensors Bibliothek ist dabei stark systemabhängig.
Download
External Counter Events
Dieses Plugin erlaubt es VampirTrace externe Counter aus der dataheap Infrastruktur auszulesen. Schreiben Sie an Michael Kluge, um mehr über dieses dezentrale und flexible Infrastruktur für verteilte Datenquellen zu erfahren.
Download
Weitere Events
Einige der Score-P Plugins, die auf github verfügbar sind können auch unter VampirTrace genutzt werden.
Kontakt
Development Guide
Das Plugin Counter Manual erklärt die Plugin Counter Schnittstelle und erlaubt es Ihnen somit selbst eigene Plugin Counter Bibliotheken zu erstellen.
Veröffentlichungen
- Thomas Ilsche , Joseph Schuchart, Robert Schöne and Daniel Hackenberg, Combining Instrumentation and Sampling for Trace-Based Application Performance Analysis (2014) in: Tools for High Performance Computing 2014 (pp 123-136)
- Marc Hartung and Michael Kluge, Mapping of RAID controller performance data to the job history on large computing systems (2014), in: DISCS '14 Proceedings of the 2014 International Workshop on Data Intensive Scalable Computing Systems (pp 73-80)
- Michael Knobloch, Maciej Foszczynski, Willi Homberg, Dirk Pleiter and Hans Böttiger, Mapping fine-grained power measurements to HPC application runtime characteristics on IBM POWER7 (2013), in: Computer Science - Research and Development(1-9)
- Robert Schöne and Daniel Molka, Integrating performance analysis and energy efficiency optimizations in a unified environment (2013), in: Computer Science - Research and Development(1-9)
- Daniel Hackenberg, Thomas Ilsche, Robert Schöne, Daniel Molka, Maik Schmidt and Wolfgang E. Nagel, Power measurement techniques on standard compute nodes: A quantitative comparison (2013), in: 2013 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)(194-204)
- Daniel Molka, Daniel Hackenberg, Robert Schöne, Timo Minartz and Wolfgang E. Nagel, Flexible workload generation for HPC cluster efficiency benchmarking (2012), in: Computer Science - Research and Development, 27:4(235-243)
- Michael Kluge, Daniel Hackenberg and Wolfgang E. Nagel, Collecting Distributed Performance Data with Dataheap: Generating and Exploiting a Holistic System View (2012), in: Procedia Computer Science, 9(1969 - 1978)
- >Julian Kunkel and Thomas Ludwig, Visualization of MPI(-IO) Datatypes, in: Applications, Tools and Techniques on the Road to Exascale Computing, University of Ghent, ELIS Department, Ghent, Belgium, pages 473--480, IOS Press, 2012
- Timo Minartz, Daniel Molka, Michael Knobloch, Stephan Krempel, Thomas Ludwig, Wolfgang E. Nagel, Bernd Mohr and Hugo Falter, eeClust - Energy-Efficient Cluster Computing, in: Competence in High Performance Computing 2010, Springer, 2011
- Robert Schöne and Daniel Hackenberg, On-line analysis of hardware performance events for workload characterization and processor frequency scaling decisions, in: Proceeding of the second joint WOSP/SIPEW international conference on Performance engineering, Karlsruhe, Germany, pages 481--486, ACM, 2011
- Robert Schöne, Ronny Tschüter, Daniel Hackenberg and Thomas Ilsche, The VampirTrace Plugin Counter Interface: Introduction and Examples, in: Euro-Par 2010 Parallel Processing Workshops, Berlin Heidelberg, pages 501--511, Springer-Verlag, 2011