Publication

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)
Bachelor Thesis

Bachelorarbeit, RWTH Aachen University, 2023

Abstract

With sequential processing speed having reached a plateau, modern computing is increasingly reliant on parallelization for performance gains. Apart from node and thread level parallelism, hardware manufacturers have been progressively leaning on instruction level parallelism, which leverages the single instruction, multiple data paradigm (SIMD) to more efficiently utilize individual CPU clock cycles. A prime example of this shift are Intel's AVX-512 extensions, which implemented support for SIMD vector instructions to the x86 architecture. However, increasing parallelism carries the risk of introducing data races, a notoriously difficult to remove type of bug caused by two or more unsynchronized accesses to a shared memory location, with at least one of them being a write. Thus, numerous data race detection tools, such as ThreadSanitizer, have been developed over the years. Despite being one of the most prominent data race detectors, integrated in compilers such as GCC and Clang, ThreadSanitizer in its original form is, at the time of this writing, incapable of detecting most types of data races involving vector memory operations. This work presents a modified ThreadSanitizer, which addresses this gap in functionality. As a basis for the applied modifications, the ThreadSanitizer LLVM tool found in Clang/16.0.5 was used. Furthermore, microbenchmarks that target various vector memory operations have been created with the aim of facilitating performance and correctness evaluation, both for the tool presented in this thesis, and for any other tool which seeks to implement similar functionality. Performance in real-world scenarios was measured with applications from the SPEC OMP2012 benchmark suite, using the JUBE benchmarking environment.

Institutions

  • Department of Computer Science [120000]
  • Chair of High Performance Computing (Computer Science 12) [123010]