An empirical comparison of monitoring algorithms for access anomaly detection
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
An efficient cache-based access anomaly detection scheme
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
Improving the accuracy of data race detection
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
PCF parallel Fortran extensions
ACM SIGPLAN Fortran Forum
Compile-time support for efficient data race detection in shared-memory parallel programs
PADD '93 Proceedings of the 1993 ACM/ONR workshop on Parallel and distributed debugging
Online data-race detection via coherency guarantees
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Scalable on-the-fly detection of the first races in parallel programs
ICS '98 Proceedings of the 12th international conference on Supercomputing
Protocol-based data-race detection
SPDT '98 Proceedings of the SIGMETRICS symposium on Parallel and distributed tools
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Space-Efficient First Race Detection in Shared Memory Programs with Nested Parallelism
PARA '02 Proceedings of the 6th International Conference on Applied Parallel Computing Advanced Scientific Computing
A practical tool for detecting races in OpenMP programs
PaCT'05 Proceedings of the 8th international conference on Parallel Computing Technologies
Hi-index | 0.01 |
Detecting races is important for debugging shared-memory parallel programs, because the races result in unintended nondeterministic executions of the programs. Previous on-the-fly techniques to detect races have a bottleneck caused by the need to check or serialize all accesses to each shared variable in a program that may have nested parallelism with barrier synchronization. The new scalable monitoring technique in this paper reduces the bottleneck significantly by checking or serializing at most 2(B + 1) non-nested accesses in an iteration for each shared variable, where B is the number of barrier operations in the iteration. This technique, therefore, makes on-the-fly race detection more scalable.