Performance test case generation for microprocessors
Pradip Bose
VTS 1998
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. Starting from a sequential implementation and assisted by the tool, we present the steps that we used to derive various highly-concurrent algorithms. Among these algorithms is a new finegrained set data structure that provides a wait-free contains operation, and uses only the compare-and-swap (CAS) primitive for synchronization. Copyright copy; 2008 ACM.
Pradip Bose
VTS 1998
Nanda Kambhatla
ACL 2004
Inbal Ronen, Elad Shahar, et al.
SIGIR 2009
M.J. Slattery, Joan L. Mitchell
IBM J. Res. Dev