Maintaining order in a generalized linked list
Acta Informatica
Data structures and network algorithms
Data structures and network algorithms
Good worst-case algorithms for inserting and deleting records in dense sequential files
SIGMOD '86 Proceedings of the 1986 ACM SIGMOD international conference on Management of data
Two algorithms for maintaining order in a list
STOC '87 Proceedings of the nineteenth annual ACM symposium on Theory of computing
Lower bounds for monotonic list labeling
SWAT '90 Proceedings of the second Scandinavian workshop on Algorithm theory
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
Wait-free parallel algorithms for the union-find problem
STOC '91 Proceedings of the twenty-third annual ACM symposium on Theory of computing
On-the-fly detection of data races for programs with nested fork-join parallelism
Proceedings of the 1991 ACM/IEEE conference on Supercomputing
Cilk: an efficient multithreaded runtime system
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
Efficient detection of determinacy races in Cilk programs
Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures
Thread scheduling for multiprogrammed multiprocessors
Proceedings of the tenth annual ACM symposium on Parallel algorithms and architectures
Detecting data races in Cilk programs that use locks
Proceedings of the tenth annual ACM symposium on Parallel algorithms and architectures
The implementation of the Cilk-5 multithreaded language
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Journal of Algorithms - Special issue on SODA '95 papers
Proceedings of the ninth annual ACM-SIAM symposium on Discrete algorithms
Efficiency of a Good But Not Linear Set Union Algorithm
Journal of the ACM (JACM)
Applications of Path Compression on Balanced Trees
Journal of the ACM (JACM)
Scheduling multithreaded computations by work stealing
Journal of the ACM (JACM)
SODA '01 Proceedings of the twelfth annual ACM-SIAM symposium on Discrete algorithms
Compact labeling schemes for ancestor queries
SODA '01 Proceedings of the twelfth annual ACM-SIAM symposium on Discrete algorithms
Proceedings of the thirteenth annual ACM symposium on Parallel algorithms and architectures
Labeling schemes for flow and connectivity
SODA '02 Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms
Improved labeling scheme for ancestor queries
SODA '02 Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms
A comparison of labeling schemes for ancestor queries
SODA '02 Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms
Nearest common ancestors: a survey and a new distributed algorithm
Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures
Introduction to Algorithms
Labeling schemes for small distances in trees
SODA '03 Proceedings of the fourteenth annual ACM-SIAM symposium on Discrete algorithms
A Tight Lower Bound for On-line Monotonic List Labeling
SWAT '94 Proceedings of the 4th Scandinavian Workshop on Algorithm Theory
A Sparse Table Implementation of Priority Queues
Proceedings of the 8th Colloquium on Automata, Languages and Programming
Two Simplified Algorithms for Maintaining Order in a List
ESA '02 Proceedings of the 10th Annual European Symposium on Algorithms
Maintaining dense sequential files in a dynamic environment (Extended Abstract)
STOC '82 Proceedings of the fourteenth annual ACM symposium on Theory of computing
Maintaining order in a linked list
STOC '82 Proceedings of the fourteenth annual ACM symposium on Theory of computing
Compact roundtrip routing with topology-independent node names
Proceedings of the twenty-second annual symposium on Principles of distributed computing
A proposal for parallel self-adjusting computation
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Nested parallelism in transactional memory
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
The Cilk++ concurrency platform
Proceedings of the 46th Annual Design Automation Conference
The Cilk++ concurrency platform
The Journal of Supercomputing
The Journal of Supercomputing
Safe parallel programming using dynamic dependence hints
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Aikido: accelerating shared data dynamic analyses
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Scalable and precise dynamic datarace detection for structured parallelism
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
On-the-fly detection of data races in OpenMP programs
Proceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
RADISH: always-on sound and complete Ra Detection in Software and Hardware
Proceedings of the 39th Annual International Symposium on Computer Architecture
Steal Tree: low-overhead tracing of work stealing schedulers
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
A key capability of data-race detectors is to determine whether one thread executes logically in parallel with another or whether the threads must operate in series. This paper provides two algorithms, one serial and one parallel, to maintain series-parallel (SP) relationships "on the fly" for fork-join multithreaded programs. The serial SP-order algorithm runs in O(1) amortized time per operation. In contrast, the previously best algorithm requires a time per operation that is proportional to Tarjan's functional inverse of Ackermann's function. SP-order employs an order-maintenance data structure that allows us to implement a more efficient "English-Hebrew" labeling scheme than was used in earlier race detectors, which immediately yields an improved determinacy-race detector. In particular, any fork-join program running in T1 time on a single processor can be checked on the fly for determinacy races in O(T1) time. Corresponding improved bounds can also be obtained for more sophisticated data-race detectors, for example, those that use locks.By combining SP-order with Feng and Leiserson's serial SP-bags algorithm, we obtain a parallel SP-maintenance algorithm, called SP-hybrid. Suppose that a fork-join program has n threads, T1 work, and a critical-path length of T∞. When executed on P processors, we prove that SP-hybrid runs in O((T1/P +PT,/i∞)lg ) expected time. To understand this bound, consider that the original program obtains linear speed-up over a 1-processor execution when P=O(T1T∞). In contrast, SP-hybrid obtains linear speed-up when P=O(√T1T∞), but the work is increased by a factor of O(lg n).