Static-Dynamic analysis for Performance and Accuracy of Data Race Detection in MPI One-Sided Programs
Résumé
To take advantage of asynchronous communication mechanisms provided by the recent platforms, the Message Passing Interface (MPI) proposes operations based on one-sided communications. These operations enable a better overlap of communications with computations. However, programmers must manage data consistency and synchronization to avoid data races, which may be a daunting task. In this paper, we propose three solutions to improve the performance and the accuracy of an existing data race detection tool in MPI one-sided programs. First, we present a new node-merging algorithm that takes into account non-adjacent memory accesses. Then, we use an alias analysis to reduce the number of load/store instrumented. Finally, we extend our analyses to manage synchronization routines. Our solutions have been implemented in PARCOACH, a MPI verification tool. Experiments on real-life applications show that our contributions lead to a better accuracy, a reduction of the memory usage by a factor up to 4 of the dynamic analysis and a reduction of the overhead at runtime at larger scale.
Origine | Fichiers produits par l'(les) auteur(s) |
---|