Research & Papers

New Formal Semantics for OpenMP C Code Guarantees Race-Free Execution

Researchers formalize C+OpenMP semantics to catch logic errors and data races automatically.

Deep Dive

Ke Du, Anshu Sharma, Liyi Li, and William Mansky present a formal semantics for C code with OpenMP directives, building on the C semantics of the CompCert verified compiler and its extension to concurrency. It captures subtle interactions between OpenMP directives and variable state, providing a basis for detecting undesired behaviors introduced by incorrect annotations. Any successful execution is guaranteed to be free of data races.

Key Points
  • Builds on CompCert's verified C semantics and its concurrency extension for rigorous formal reasoning.
  • Captures previously obscured interactions between OpenMP directives (shared/private clauses) and variable state.
  • Guarantees that any successful execution under the semantics is provably free of data races.

Why It Matters

Provides a rigorous foundation to eliminate race conditions in real-world parallel C code.