B. Schaeli, S. Gerlach, R.D. Hersch
21st International Parallel and Distributed Processing Symposium (IPDPS’07); 12th International Workshop on High-Level Parallel Programming Models and Supportive Environments; (HIPS-ToPMoDRS), March 26-30, Long Beach, USA, 2007, pp. 1-8
In message-passing parallel applications, messages are not delivered in a strict order. In most applications, the computation results and the set of messages produced during the execution should be the same for all distinct orderings of messages delivery. Finding an ordering that produces a different outcome then reveals a message race. Assuming that the Partial Order Execution Graph (POEG) capturing the causality between events is known for a reference execution, the present paper describes techniques for identifying independent sets of messages and within each set equivalent message orderings. Orderings of messages belonging to different sets may then be reexecuted independently from each other, thereby reducing the number of orderings that must be tested to detect message races. We integrated the presented techniques into the Dynamic Parallel Schedules parallelization framework, and applied our approach on an image processing, a linear algebra, and a neighborhood-dependent parallel computation. In all cases, the number of possible orderings is reduced by several orders of magnitudes. In order to further reduce this number, we describe an algorithm that generates a subset of orderings that are likely to reveal existing message races.
Download the full paper: PDF 204 kb