Comparing Intel Thread Checker and Sun Thread Analyzer

C. Terboven
Abstract:Multiprocessor compute servers have been available for many years now. It is expected that the number of cores and threads per processor chip will increase in the future. Hence, parallel programming will become more common. Posix-/Win32-Threads and OpenMP are the most wide-spread programming paradigms for shared-memory parallelization. At the first sight, programming for Posix-Threads or OpenMP may seem to be easily understandable. But for non-trivial applications, reasoning about the correctness of a parallel program is much harder than of a sequential control flow. The typical programming errors of shared-memory parallelization are data races and deadlocks. Data races cause the result of a computation to be non-deterministic and dependent on the timing of other events. In case of a deadlock two or more threads are waiting for each other. Finding those errors with traditional debuggers is hard, if not impossible. This paper compares two software tools: Intel Thread Checker and Sun Thread Analyzer, that help the programmer in finding these errors. Experiences using both tools on multithreaded applications will be presented together with findings on the strengths and limitations of each product.
What problem does this paper attempt to address?