2008 · 92 citations · 27 references
ComputingComputer EngineeringComputer ScienceAlgorithmsComputer ArchitectureData StructuresConcurrency AnalysisConcurrency ControlData Structure AlgorithmsData SynchronizationData-flow AnalysisSynchronization PrimitivesConcurrent Data Structure SynchronizationExplorationFine-grained SynchronizationModel Checking For ConcurrencySynchronization SemanticsWait-free AlgorithmsWait-free Data Structures
Practical and efficient algorithms for concurrent data structures are difficult to construct and modify. Algorithms in the literature are often optimized for a specific setting, making it hard to separate the algorithmic insights from implementation details. The goal of this work is to systematically construct algorithms for a concurrent data structure starting from its sequential implementation. Towards that goal, we follow a construction process that combines manual steps corresponding to high-level insights with automatic exploration of implementation details. To assist us in this process, we built a new tool called Paraglider. The tool quickly explores large spaces of algorithms and uses bounded model checking to check linearizability of algorithms.
27
Combinatorial sketching for finite programs
Armando Solar-Lezama, Liviu Tancau, Rastislav Bodík et al. · 2006 · 642 citations