Methoden und Werkzeuge zur automatischen Kontrolle der Thread-Platzierung auf Mehrkernprozessoren
Autoři
Více o knize
Die Taktfrequenz von Mikroprozessoren wurde noch vor wenigen Jahren mit jeder neuen Prozessorgeneration kontinuierlich erhöht. Aufgrund von physikalischen Rahmenbedingungen wie Energiebedarf oder Wärmeabgabe konnte diese Entwicklung nicht beliebig weiterverfolgt werden. Um weiterhin Leistungssteigerungen zu gewährleisten, werden derzeit mehrere vollständige Prozessorkerne in einen Chip integriert. Um die volle Leistungsfähigkeit dieser Mehrkernprozessoren optimal auszunutzen, müssen die darauf ablaufenden Programme parallelisiert werden. Da die Parallelisierung von Programmen bzw. deren Optimierung fehleranfällig und zeitaufwendig ist, benötigen Entwickler Konzepte und Werkzeuge, die sie dabei unterstützen. Diese Arbeit befasst sich mit dem Thema der Platzierung von Threads auf Mehrkernrechnern mit gemeinsamem Speicher. Die Architektur aktueller Mehrkernprozessoren wird ebenso vorgestellt und klassifiziert wie gängige Methoden der Leistungsbewertung von Rechnersystemen und Programmen. Auf dieser Basis werden Konzepte erarbeitet, um die optimale Thread-zu-Kern-Platzierung (Kernbindung) für ein zu untersuchendes Programm hinsichtlich eines gegebenen Optimierungsziels (z. B. kürzeste Programmlaufzeit oder niedrigster Energieverbrauch) zu ermitteln. Dabei finden die Besonderheiten von Mehrkernprozessoren wie gemeinsame Cache-Speicher oder schnelle Verbindungsnetzwerke auf dem Chip Berücksichtigung. Die wesentlichen Erkenntnisse der erarbeiteten Konzepte werden in einem prototypischen Werkzeug umgesetzt, das zur Programmlaufzeit verschiedene Kernbindungen untersucht und bewertet. Anhand der Anwendungsprogramme aus dem SPEC-OMP-Benchmark wird gezeigt, dass das entwickelte Werkzeug einen Anwender in die Lage versetzt, die optimale Kernbindung für seine Problemstellung auf den verschiedenen Klassen von Mehrkernrechnern zuverlässig zu ermitteln. Der zeitliche Mehraufwand, der durch die Verwendung des Werkzeugs entsteht, wird untersucht und ausführlich dargestellt. Exemplarisch wird nachgewiesen, dass auch bei parallelen Programmen, die auf Nachrichtenaustausch basieren, eine optimale Prozessplatzierung signifikante Leistungssteigerungen mit sich bringen kann. Abschließend wird anhand einer parallelen Anwendung aus dem Bereich der Nuklearmedizin der Einfluss verschiedener Kernbindungen auf die elektrische Leistungsaufnahme untersucht. Es wird aufgezeigt, dass für die eingesetzte Architektur unterschiedliche Kernbindungen zu stark variierender Energieaufnahme führen.