|
ABSTRACT
Mutual exclusion locks remain the de facto mechanism for concurrency control on shared-memory data structures. However, their apparent simplicity is deceptive: It is hard to design scalable locking strategies because locks can harbor problems such as priority inversion, deadlock, and convoying. Furthermore, scalable lock-based systems are not readily composable when building compound operations. In looking for solutions to these problems, interest has developed in nonblocking systems which have promised scalability and robustness by eschewing mutual exclusion while still ensuring safety. However, existing techniques for building nonblocking systems are rarely suitable for practical use, imposing substantial storage overheads, serializing nonconflicting operations, or requiring instructions not readily available on today's CPUs. In this article we present three APIs which make it easier to develop nonblocking implementations of arbitrary data structures. The first API is a multiword compare-and-swap operation (MCAS) which atomically updates a set of memory locations. This can be used to advance a data structure from one consistent state to another. The second API is a word-based software transactional memory (WSTM) which can allow sequential code to be reused more directly than with MCAS and which provides better scalability when locations are being read rather than being updated. The third API is an object-based software transactional memory (OSTM). OSTM allows a simpler implementation than WSTM, but at the cost of reengineering the code to use OSTM objects. We present practical implementations of all three of these APIs, built from operations available across all of today's major CPU families. We illustrate the use of these APIs by using them to build highly concurrent skip lists and red-black trees. We compare the performance of the resulting implementations against one another and against high-performance lock-based systems. These results demonstrate that it is possible to build useful nonblocking data structures with performance comparable to, or better than, sophisticated lock-based designs.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
 |
2
|
|
 |
3
|
James H. Anderson , Srikanth Ramamurthy , Rohit Jain, Implementing wait-free objects on priority-based systems, Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing, p.229-238, August 21-24, 1997, Santa Barbara, California, United States
[doi> 10.1145/259380.259443]
|
 |
4
|
|
| |
5
|
Dice, D., Shalev, O., and Shavit, N. 2006. Transactional locking II. In Proceedings of the 20th International Symposium on Distributed Computing (DISC).
|
| |
6
|
Fich, F., Luchangco, V., Moir, M., and Shavit, N. 2005. Obstruction-Free algorithms can be practically wait-free. In Distributed Algorithms, P. Fraigniaud, Ed. Lecture Notes in Computer Science, vol. 3724. Springer Verlag, Berlin. 78--92.
|
| |
7
|
Fraser, K. 2003. Practical lock freedom. Ph.D. thesis, Computer Laboratory, University of Cambridge. Also available as Tech. Rep. UCAM-CL-TR-639, Cambridge University.
|
| |
8
|
|
 |
9
|
|
 |
10
|
Lance Hammond , Brian D. Carlstrom , Vicky Wong , Ben Hertzberg , Mike Chen , Christos Kozyrakis , Kunle Olukotun, Programming with transactional coherence and consistency (TCC), Proceedings of the 11th international conference on Architectural support for programming languages and operating systems, October 07-13, 2004, Boston, MA, USA
|
| |
11
|
|
| |
12
|
|
| |
13
|
|
| |
14
|
Harris, T. 2004. Exceptions and side-effects in atomic blocks. In Proceedings of the PODC Workshop on Synchronization in Java Programs. 46--53. Proceedings published as Memorial University of Newfoundland CS Tech. Rep. 2004-01.
|
 |
15
|
Tim Harris , Keir Fraser, Language support for lightweight transactions, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
 |
16
|
|
 |
17
|
Tim Harris , Simon Marlow , Simon Peyton-Jones , Maurice Herlihy, Composable memory transactions, Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, June 15-17, 2005, Chicago, IL, USA
[doi> 10.1145/1065944.1065952]
|
| |
18
|
Heller, S., Herlihy, M., Luchangco, V., Moir, M., Scherer, B., and Shavit, N. 2005. A lazy concurrent list-based set algorithm. In 9th International Conference on Principles of Distributed Systems (OPODIS).
|
| |
19
|
|
 |
20
|
|
| |
21
|
Herlihy, M. 2005. SXM1.1: Software transactional memory package for C#. Tech. Rep., Brown University and Microsoft Research. May.
|
 |
22
|
|
| |
23
|
|
 |
24
|
Maurice Herlihy , Victor Luchangco , Mark Moir , William N. Scherer, III, Software transactional memory for dynamic-sized data structures, Proceedings of the twenty-second annual symposium on Principles of distributed computing, p.92-101, July 13-16, 2003, Boston, Massachusetts
[doi> 10.1145/872035.872048]
|
 |
25
|
|
 |
26
|
|
| |
27
|
Hoare, C. A. R. 1972. Towards a theory of parallel programming. In Operating Systems Techniques. A.P.I.C. Studies in Data Processing, vol. 9. Academic Press, 61--71.
|
 |
28
|
|
 |
29
|
|
| |
30
|
|
 |
31
|
|
 |
32
|
|
 |
33
|
Virendra J. Marathe , William N. Scherer , Michael L. Scott, Design tradeoffs in modern software transactional memory systems, Proceedings of the 7th workshop on Workshop on languages, compilers, and run-time support for scalable systems, p.1-7, October 22-23, 2004, Houston, Texas
[doi> 10.1145/1066650.1066660]
|
| |
34
|
Austen McDonald , JaeWoong Chung , Hassan Chafi , Chi Cao Minh , Brian D. Carlstrom , Lance Hammond , Christos Kozyrakis , Kunle Olukotun, Characterization of TCC on Chip-Multiprocessors, Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques, p.63-74, September 17-21, 2005
[doi> 10.1109/PACT.2005.11]
|
 |
35
|
|
 |
36
|
|
 |
37
|
|
| |
38
|
|
| |
39
|
|
| |
40
|
Moir, M. 2002. Personal communication.
|
| |
41
|
Moore, K. E., Hill, M. D., and Wood, D. A. 2005. Thread-Level transactional memory. Tech. Rep.: CS-TR-2005-1524, Deptartment of Computer Sciences, University of Wisconsin, Motorola Inc., Phoenix, AZ. 1--11.
|
| |
42
|
|
| |
43
|
|
| |
44
|
Rajwar, R. and Goodman, J. R. 2002. Transactional lock-free execution of lock-based programs. ACM SIGPLAN Not. 37, 10 (Oct.), 5--17.
|
 |
45
|
|
| |
46
|
Riegel, T., Felber, P., and Fetzer, C. 2006. A lazy snapshot algorithm with eager validation. In Proceedings of the 20th International Symposium on Distributed Computing (DISC).
|
 |
47
|
|
 |
48
|
|
 |
49
|
|
 |
50
|
|
 |
51
|
|
 |
52
|
John Turek , Dennis Shasha , Sundeep Prakash, Locking without blocking: making lock based concurrent data structure algorithms nonblocking, Proceedings of the eleventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems, p.212-222, June 02-05, 1992, San Diego, California, United States
[doi> 10.1145/137097.137873]
|
| |
53
|
Welc, A., Jagannathan, S., and Hosking, T. 2004. Transactional monitors for concurrent objects. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). 519--542.
|
| |
54
|
|
CITED BY 7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Junchang Wang , Haipeng Cheng , Bei Hua , Xinan Tang, Practice of parallelizing network applications on multi-core architectures, Proceedings of the 23rd international conference on Supercomputing, June 08-12, 2009, Yorktown Heights, NY, USA
|
REVIEW
"A. Squassabia : Reviewer"
Transactional memory technology reduces the granularity of synchronization from the relatively coarse level of mutual exclusion locks to the finer level of memory access. This comprehensive paper contains valuable insights and working code to asse
more...
|