An Operational Semantic Basis for OpenMP Race Analysis
نویسندگان
چکیده
OpenMP is the de facto standard to exploit the on-node parallelism in new generation supercomputers. Despite its overall ease of use, even expert users are known to create OpenMP programs that harbor concurrency errors, of which one of the most insidious of errors are data races. OpenMP is also a rapidly evolving standard, which means that future data races may be introduced within unfamiliar contexts. A simple and rigorous operational semantics for OpenMP can help build reliable race checkers and ward off future errors through programmer education and better tooling. This paper’s key contribution is a simple operational semantics for OpenMP, with primitive events matching those generated by today’s popular OpenMP runtimes and tracing methods such as OMPT. This makes our operational semantics more than a theoretical document for intellectual edification; it can serve as a blueprint for OpenMP event capture and tool building. We back this statement by summarizing the workings of a new data race checker for OpenMP being built based on this semantics. The larger purpose served by our semantics is to serve the needs of the OpenMP community with regard to their contemplated extensions to OpenMP, as well as future tooling efforts.
منابع مشابه
Chapter 7 - Troubleshooting Using OpenMP : Portable Shared Memory Parallel Programming
OpenMP has several safety nets to help avoid this kind of bug. But OpenMP cannot prevent its introduction, since it is typically a result of faulty use of one of the directives. For example it may arise from the incorrect parallelization of a loop or an unprotected update of shared data. In this section we elaborate on this type of error, commonly known as a data race condition. This is sometim...
متن کاملEmpirical Comparison of Filtering Techniques for On-the-fly Data Race Detection in OpenMP Programs
It is a well-known that data races in implicit threading applications, such as OpenMP programs, are the most notorious class of concurrency bugs, because they may lead to unpredictable results of the program. The main drawback of on-the-fly data race detection techniques is the heavy additional overheads for analyzing every memory operations and thread operations, such as load, store, fork, and...
متن کاملCougar: An Interactive Tool for Cluster Computing
Cougar Compiler is a tool designed to help the programmer understand the structure of a sequential or parallel Fortran program. We support the de facto standards OpenMP and MPI, as well as the mixed mode OpenMP/MPI model, which can be used to write programs for executions on SMP clusters. The user may query the system interactively and view the results obtained by our program analysis via a gra...
متن کاملExperiences with OpenMP in tmLQCD
An overview is given of the lessons learned from the introduction of multi-threading using OpenMP in tmLQCD. In particular, programming style, performance measurements, cache misses, scaling, thread distribution for hybrid codes, race conditions, the overlapping of communication and computation and the measurement and reduction of certain overheads are discussed. Performance measurements and sa...
متن کاملTracing Logical Concurrency for Dynamic Race Detection in OpenMP Programs
OpenMP is an industry standard supporting a serialized program to be executed in parallel with simple compiler directives and libraries. OpenMP covers only user-directed parallelization and does not enforce to fix concurrency bugs, such as data races. However it is difficult to locate data races occurred in an execution of the program, because they may lead the program execution to be non-deter...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1709.04551 شماره
صفحات -
تاریخ انتشار 2017