Publication Date


Degree Type

Master's Project

Degree Name

Master of Science (MS)


Computer Science


The race condition in a shared memory parallel program is subtle and harder to find than in a sequential program. The race conditions cause non-deterministic and unexpected results from the program. It should be avoided in the parallel region of OpenMP programs. The proposed OpenMP Race Avoidance Tool statically analyzes the parallel region. It gives alerts regarding possible data races in that parallel region. The proposed tool has the capability to analyze the basic frequently occurring non-nested ‘for loop(s)’. We are comparing the results of the proposed tool with the commercially available static analysis tool named Intel Parallel Lint and the dynamic analysis tool named Intel Thread Checker for race detection in OpenMP program. The proposed tool detects race conditions in the ‘critical’ region that have not been detected by existing analysis tools. The proposed tool also detects the race conditions for the ‘atomic’, ‘parallel’, ‘master’, ‘single’ and ‘barrier’ constructs. The OpenMP beginner programmers can use this tool to understand how to create a shared-memory parallel program.