Hochleistungsrechnen mit Windows Verifikations- und Analyseprogramme hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 Hochleistungsrechnen mit Windows enter omputing and ommunication
Agenda Intel Threading Tools: Threadhecker AMD odeanalyst: Permanceanalyse Intel VTune: Permanceanalyse 2 Hochleistungsrechnen mit Windows enter omputing and ommunication
Agenda Intel Threading Tools: Threadhecker AMD odeanalyst: Permanceanalyse Intel VTune: Permanceanalyse 3 Hochleistungsrechnen mit Windows enter omputing and ommunication
Intel Threading Tools Data Race Ein Data Race ist ein typischer Fehler bei der Shared-Memory Programmierung, z.b. mit OpenMP. Tritt auf, wenn ein Thread einen Speicherbereich modifiziert die ein anderer Thread liest oder schreibt, in einer parallelen Region zwischen zwei Synchronisationspunkten. Unangenehm: das Auftreten ist nicht deterministisch, da z.b. die Reihenfolge der Ausführung von Iterationen in einer parallelen Schleife nicht festgelegt ist. Ursache sind in vielen Fällen fehlende private Klauseln, fehlende Barrieren oder fehlende kritische Regionen. Einfacher Test, der aber keine Korrektheit garantiert: der serielle ode muss das selbe Ergebnis liefern wie wenn der parallele ode rückwärts ausgeführt wird. Tool zur automatischen Verifikation: Intel Threadhecker für Windows (GUI) und Linux (Kommandozeile), früher Assure. 4 Hochleistungsrechnen mit Windows enter omputing and ommunication
Intel Threading Tools Threadhecker Arbeitsweise: in einem instrumentierten Programm werden die Speicherzugriffe protokolliert und es werden mögliche Data Races angezeigt Untersuchung auf serielle Äquivalenz. Threadhecker unterstützt: WIN32-Threads, Posix-Threads, OpenMP 2.5 Analyse unter Linux, Betrachtung der Ergebnisse unter Windows Analyse und Betrachtung der Ergebnisse unter Windows Achtung: die Analyse von Programmen, deren Ergebnisse von der Anzahl der Threads abhängt, ist nicht sinnvoll. 5 Hochleistungsrechnen mit Windows enter omputing and ommunication
Intel Threading Tools Threadhecker 16 h = 1.0 / (double) n; 17 sum = 0.0; 18 19 (i = 1; i <= n; i++) 20 { 21 x = h * ((double)i - 0.5); 22 sum += (4.0 / (1.0 + x*x)); 23 } 24 pi = h * sum; 1 4 Π = (1 + 6 Hochleistungsrechnen mit Windows enter 0 x 2 ) omputing and ommunication
Intel Threading Tools Threadhecker 16 h = 1.0 / (double) n; 17 sum = 0.0; 18 #pragma omp private(i,sum) shared(h) 19 (i = 1; i <= n; i++) 20 { 21 x = h * ((double)i - 0.5); 22 sum += (4.0 / (1.0 + x*x)); 23 } 24 pi = h * sum; Es gibt zwei Fehler in diesem Programm: Variable x muss privat sein. Variable sum muss reduziert werden. 7 Hochleistungsrechnen mit Windows enter omputing and ommunication
Intel Threading Tools Threadhecker Intel Threadhecker ist nur auf der Maschine WIN1 installiert, da er erweiterte Benutzerrechte benötigt. Version 3.0 beta ist installiert, das Release wird für Juni erwartet. Instrumentierung: Kompilation mit /Qopenmp und /Qtcheck Linken mit /fixed:no Starten mit Start All Programs Intel VTune Permance Analyzer. Neues Projekt erstellen vom Typ Threading Wizards Intel Threadhecker. 8 Hochleistungsrechnen mit Windows enter omputing and ommunication
Intel Threading Tools Intel Threadhecker Wir empfehlen die Analyse mit dem Threadhecker von jedem OpenMP-ode vor Produktionsbeginn. 9 Hochleistungsrechnen mit Windows enter omputing and ommunication
Agenda Intel Threading Tools: Threadhecker AMD odeanalyst: Permanceanalyse Intel VTune: Permanceanalyse 10 Hochleistungsrechnen mit Windows enter omputing and ommunication
AMD odeanalyst Permanceanalyse Die Permanceanalyse eines Programms besteht grob aus zwei Schritten: Finden des HotSpots in einem Programm. Analyse und Verbesserung der HotSpots. Ein HotSpot ist eine Stelle in einem Programm an der viel oder ein Großteil der Laufzeit verbracht wird. Die hierarchische Betrachtung des Programms spiegelt sich auch in der Benutzung von Permanceanalysetools wieder. 1. Stufe: Timer-based Profiling, um einen Eindruck von der Verteilung der Laufzeit in einem Programm zu bekommen. 2. Stufe: Detaillierte Analyse der HotSpots auf Probleme mit Hilfe z.b. von Hardware Permance ountern. Zur Analyse empfiehlt es sich, die Optimierung auf einen mittleren Wert zu setzen, aber möglichst alle Debuginmationen aufzunehmen. 11 Hochleistungsrechnen mit Windows enter omputing and ommunication
AMD odeanalyst Permanceanalyse Timer-based Profiling: Arbeit auf lokalen Platten ($TMP) um die Permance nicht zu beeinflussen. Start der Analyse durch Klicken auf 12 Hochleistungsrechnen mit Windows enter omputing and ommunication
AMD odeanalyse Permanceanalyse Das gesamte System wird analysiert: amdk8.sys: 72,6% PU Driver msvcr80d: 8,2% -Runtime ntoskrnl: 1,4% Kernelroutinen 13 Hochleistungsrechnen mit Windows enter omputing and ommunication
AMD odeanalyst Permanceanalyse Grafische Anzeige: Hier wird das Ergebnis aller Prozessorkerne zusammengefasst. Ebenfalls möglich: Anzeige pro Prozess. 14 Hochleistungsrechnen mit Windows enter omputing and ommunication
AMD odeanalyst Permanceanalyse Drill down in das Programm auf Funktionsebene: Quellcodeebene Auch die Anzeige von Samples für Assembler ist möglich. 15 Hochleistungsrechnen mit Windows enter omputing and ommunication
AMD odeanalyst Permanceanalyse Event-based Profiling: Es stehen alle Hardware Permance ounter der PU und des Systems zur Verfügung. 16 Hochleistungsrechnen mit Windows enter omputing and ommunication
AMD odeanalyst Permanceanalyse Die Anzeigemöglichkeiten sind identisch: 17 Hochleistungsrechnen mit Windows enter omputing and ommunication
Agenda Intel Threading Tools: Threadhecker AMD odeanalyst: Permanceanalyse Intel VTune: Permanceanalyse 18 Hochleistungsrechnen mit Windows enter omputing and ommunication
Intel VTune Permanceanalyse Problem: VTune läuft nur auf Intel Prozessoren, unser x86-luster besteht aber aus AMD Opteron Prozessoren. Die Maschine WIN1 ist eine Dual XEON 32bit Maschine. Es ist ein deutlich anderes Laufzeitverhalten als auf den Opterons beobachtbar. Die alte XEON-Architektur skaliert nicht bei gleichzeitigem Speicherzugriff, ist somit für die Analyse von parallelen Programmen nicht geeignet. Kaum Erfahrung mit Interna der XEONs, z.b. Hardware Permance ounter. In naher Zukunft sollte eine EM64T Maschine für VTune zur Verfügung stehen. 19 Hochleistungsrechnen mit Windows enter omputing and ommunication
Intel VTune Permanceanalyse 20 Hochleistungsrechnen mit Windows enter omputing and ommunication
Verifikations- und Analyseprogramme Gibt es Fragen zu diesem Teil? 21 Hochleistungsrechnen mit Windows enter omputing and ommunication