Correctness Analysis for Multicore Software Development
Klaus Tschira Foundation (2015 – 2019)
The objective of the CAMSOD project is the development of methods that help software developers on multicore systems with shared memory to create correct and efficient parallel programs. Specifically, we develop methods and tools for automated testing and correctness analysis. Furthermore, we explore techniques for finding performance bugs, in particular thread-level communication bottlenecks.
We created a method to automatically generate unit tests for testing parallel programs. To this end, we use a hybrid combination of data dependence and control flow analyses to generate test cases that target concurrency bugs. Our method successfully generates unit test cases for a specific region of code such as a loop or function, and reports potential concurrency bugs (i.e., data races). We further developed an automatic method to explore performance bugs arising from inefficient communication between threads in multicore programs. Specifically, we developed a technique to characterize the communication bottlenecks and report code regions suffering from thread-level communication overhead. Additionally, our method helps programmers to choose the right set of optimization methods.
Arya Mazaheri, Felix Wolf, Ali Jannesari: Unveiling Thread Communication Bottlenecks Using Hardware-Independent Metrics. In Proc. of the 47th International Conference on Parallel Processing (ICPP), Eugene, OR, USA, pages 1-11. ACM, August 2018. [PDF] [BiBTex]
Ali Jannesari, Felix Wolf: Automatic Generation of Unit Tests for Correlated Variables in Parallel Programs. International Journal of Parallel Programming (IJPP), 44(3):644–662, March 2016. [PDF] [URL] [DOI] [BiBTex]
Jochen Schimmel, Korbinian Molitorisz, Ali Jannesari, Walter F. Tichy: Combining Unit Tests for Data Race Detection. In Proc. of 10th IEEE/ACM International Workshop on Automation of Software Test (AST 2015), pages 43-47, IEEE, May 2015. [PDF] [URL] [DOI] [BiBTex]