
Trace Generation and Deterministic Execution for Concurrent Programs
Author(s) -
Paulo Sérgio Lopes de Souza,
Raphael Negrisoli Batista,
Simone R. S. Souza,
Rafael Prado,
George G. M. Dourado,
Júlio Cézar Estrella
Publication year - 2016
Language(s) - English
Resource type - Conference proceedings
DOI - 10.5753/wscad.2016.14256
Subject(s) - computer science , synchronization (alternating current) , trace (psycholinguistics) , blocking (statistics) , distributed computing , overhead (engineering) , focus (optics) , parallel computing , shared memory , code (set theory) , programming language , computer network , channel (broadcasting) , set (abstract data type) , linguistics , philosophy , physics , optics
This paper proposes new algorithms for generation of trace les and deterministic execution of concurrent programs under test. The proposed algorithms are essential to automate the coverage testing of concurrent programs and allow to execute new synchronizations automatically, increasing the source code coverage with focus on non-determinism, and edges of communication and synchronization. Our algorithms consider programs with multiple paradigms of communication and synchronization (collective, blocking and non-blocking point-to-point message passing, and shared memory). We validate our algorithms by means of experiments based on nine representative benchmarks, which exercise non-trivial aspects of synchronization found in real applications. Our algorithms have a robust behaviour and meet their objectives. We also highlight the overhead generated with the algorithms.