|
ABSTRACT
This paper formalizes and studies combinable memory-block transactions (MBTs). The idea is to encode short programs that operate on a single cache/memory block and then to specify such a program with a memory request. The code is then executed at the cache or memory controller, atomically with respect to other accesses to that block by this or other processors. The combinable form allows combining within the memory system or network. In addition to allowing for the standard set of read-modify-write operations (e.g., test-and-set, compare-and-swap, fetch-and-add), MBTs can be used to define other useful operations--such as a fetch-and-add that does not decrement below zero. We show how MBTs can be used to design simple and efficient implementations of a variety of protocols and algorithms, including a priority write, a semaphore with a non-blocking P operation, a bounded queue, and a timestamp-based transactional memory system. In all cases the protocols gain some advantage by using MBTs that are different from the standard set of operations. To gain an understanding of the efficiency that can be gained by using combining, we define a notion of bounded contention and show that all our protocols have bounded contention under arbitrary loads.
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
|
G. E. Blelloch, P. Cheng, and P. B. Gibbons. Scalable room synchronizations. Theory Comput. Syst., 36(5):397--430, 2003.
|
 |
3
|
|
 |
4
|
Zhen Fang , Lixin Zhang , John B. Carter , Ali Ibrahim , Michael A. Parker, Active memory operations, Proceedings of the 21st annual international conference on Supercomputing, June 17-21, 2007, Seattle, Washington
[doi> 10.1145/1274971.1275004]
|
| |
5
|
|
| |
6
|
|
| |
7
|
A. Gottlieb , R. Grishman , C. P. Kruskal , K. P. McAuliffe , L. Rudolph , M. Snir, The NYU Ultracomputer Designing an MIMD Shared Memory Parallel Computer, IEEE Transactions on Computers, v.32 n.2, p.175-189, February 1983
[doi> 10.1109/TC.1983.1676201]
|
 |
8
|
|
 |
9
|
|
 |
10
|
|
| |
11
|
IBM T.J. Watson Res. Ctr. System/370 principles of operations. Technical report, IBM, 1983.
|
| |
12
|
|
| |
13
|
|
 |
14
|
|
| |
15
|
P. M. Kogge and H. S. Stone. A parallel algorithm for the efficient solution of a general class of recurrence equations. IEEE Trans. on Computers, C--22(8):786--793, 1973.
|
 |
16
|
|
| |
17
|
D. J. Kuck, E. S. Davidson, D. H. Lawrie, and A. H. Sameh. Parallel supercomputing today and the Cedar approach. Science, 231:967--974, 1986.
|
| |
18
|
J. R. Larus and R. Rajwar. Transactional Memory. Morgan & Claypool Publishers, 2007.
|
 |
19
|
|
| |
20
|
D. Lenoski , J. Laudon , T. Joe , D. Nakahira , L. Stevens , A. Gupta , J. Hennessy, The DASH Prototype: Logic Overhead and Performance, IEEE Transactions on Parallel and Distributed Systems, v.4 n.1, p.41-61, January 1993
[doi> 10.1109/71.205652]
|
 |
21
|
|
 |
22
|
Maged M. Michael , Michael L. Scott, Simple, fast, and practical non-blocking and blocking concurrent queue algorithms, Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, p.267-275, May 23-26, 1996, Philadelphia, Pennsylvania, United States
[doi> 10.1145/248052.248106]
|
| |
23
|
G. F. Pfister, W. C. Brantley, D. A. George, S. L. Harvey, W. J. Kleinfelder, K. P. McAuliffe, E. A. Melton, V. A. Norton, and J. Weiss. The IBM Research parallel processor prototype(RP3): Introduction and architecture. In Proc. IEEE Int'l Conf. on Parallel Processing}, pages 764--771, 1985.
|
| |
24
|
|
| |
25
|
R. M. Shapiro and R. E. Millstein. Rehability and fault recovery in distributed processing. In Oceans'77 Conf Record, vol II, 1977.
|
| |
26
|
N. Shavit and D. Touitou. Software transactional memory. Distrib. Comput., 10(2):99--116, 1997.
|
| |
27
|
Thinking Machines Corporation. Model CM-2 technical summary. Technical Report HA87-4, Thinking Machines Corporation, Cambridge, Massachusetts, 1987.
|
| |
28
|
R. H. Thomas. A solution to the concurrency control problem for multiple copy databases. In Proc. IEEE COMP-CON Conf., 1978.
|
| |
29
|
R. K. Treiber. Systems programming: Coping with parallelism. Technical Report RJ 5118, IBM Almaden Research Center, 1986.
|
CITED BY
|
|
Phuong Hoai Ha , Philippas Tsigas , Otto J. Anshus, Preliminary results on nb-feb, a synchronization primitive for parallel programming, Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming, February 14-18, 2009, Raleigh, NC, USA
|
INDEX TERMS
Primary Classification:
D.
Software
D.1
PROGRAMMING TECHNIQUES
D.1.3
Concurrent Programming
Subjects:
Parallel programming
Additional Classification:
B.
Hardware
B.3
MEMORY STRUCTURES
B.3.2
Design Styles
Subjects:
Shared memory
General Terms:
Algorithms,
Design,
Performance,
Theory
Keywords:
combining,
contention,
linearizability,
memory-block transactions,
priority write,
queue,
read-modify-write,
semaphore,
shared memory,
stack,
transactional memory
|