Publikation

Reviewing and improving data race detection techniques for vectorized OpenMP applications

  • Überblick und Verbesserung von Techniken zur Erkennung von Data Races in vektorisierten OpenMP Anwendungen

Ignatov, Kaloyan; Müller, Matthias S. (Thesis advisor); Lankes, Stefan (Thesis advisor); Jenke, Joachim (Consultant)

Aachen : RWTH Aachen University (2023)
Bachelorarbeit

Bachelorarbeit, RWTH Aachen University, 2023

Kurzfassung

Da die sequenzielle Verarbeitungsgeschwindigkeit ein Plateau erreicht hat, ist modernes Computing zunehmend auf Parallelisierung angewiesen, um Leistungssteigerungen zu erzielen. Neben der Parallelisierung auf Node- und Thread-Ebene haben sich Hardwarehersteller zunehmend auf die Parallelisierung auf Anweisungsebene verlassen, die das SIMD-Paradigma (Single Instruction, Multiple Data) verwendet, um die einzelnen CPU-Taktzyklen effizienter auszunutzen. Ein Paradebeispiel für diesen Wandel sind die AVX-512-Erweiterungen von Intel, mit denen die x86-Architektur um SIMD-Vektorbefehle erweitert wurde. Die zunehmende Parallelität birgt jedoch das Risiko der Einführung von Data Races, eine bekanntermaßen schwer zu beseitigende Art von Fehlern, die durch zwei oder mehr unsynchronisierte Zugriffe auf eine gemeinsame Speicherstelle verursacht werden, von denen mindestens einer ein Schreibvorgang ist. Daher wurden im Laufe der Zeit zahlreiche Tools zur Erkennung von Datenrennen entwickelt, wie z. B. ThreadSanitizer. Obwohl ThreadSanitizer einer der bekanntesten Data-Race-Detektoren darstellt, der Integration in Compilern wie GCC und Clang findet, ist er in seiner ursprünglichen Form zum Zeitpunkt dieser Arbeit nicht in der Lage, die meisten Arten von Data-Races zu erkennen, die Vektor-Speicheroperationen beinhalten. In dieser Arbeit wird ein modifizierter ThreadSanitizer vorgestellt, der diese Lücke in der Funktionalität behebt. Als Basis für die angewandten Modifikationen wurde das ThreadSanitizer LLVM-Tool aus Clang/16.0.5 verwendet. Darüber hinaus wurden Mikrobenchmarks für verschiedene Vektorspeicheroperationen erstellt, um die Leistungs- und Korrektheitsevaluierung zu ermöglichen, sowohl für das in dieser Arbeit vorgestellte Tool als auch für jedes andere Tool, das eine ähnliche Funktionalität implementieren möchte. Die Leistung in realen Szenarien wurde mit Anwendungen aus der SPEC OMP2012-Benchmark-Suite unter Verwendung der JUBE-Benchmarking-Umgebung gemessen.

Einrichtungen

  • Fachgruppe Informatik [120000]
  • Lehrstuhl für Hochleistungsrechnen (Informatik 12) [123010]