Synchronization Summary
Rich interaction of hardware-software tradeoffs
Must evaluate hardware primitives and software algorithms together
- primitives determine which algorithms perform well
Evaluation methodology is challenging
- Use of delays, microbenchmarks
- Should use both microbenchmarks and real workloads
Simple software algorithms with common hardware primitives do well on bus
- Will see more sophisticated techniques for distributed machines
- Hardware support still subject of debate
Theoretical research argues for swap or compare&swap, not fetch&op
- Algorithms that ensure constant-time access, but complex