transactional
memory
why is it only a research toy?
privately—or nontransactionally in general, by using
locks). For some STM designs, once a location is accessed
transactionally, it must continue to be accessed that way.
Sometimes, the programmer can ease the transition by
guaranteeing that the first access to the privatized location—such as after the location is no longer accessible by
other threads—is transactional.
• Memory reclamation. Some STM designs prohibit the
seamless reclamation of the memory locations accessed
transactionally for arbitrary reuse, such as using malloc
and free. With such STM designs, memory allocation and
deallocation for locations accessed transactionally are
handled differently than for other locations.
• Legacy binaries. STM needs to observe all memory
activities of the transactional regions to ensure atomicity
and isolation. STM designs that achieve this observation
by code instrumentation generally cannot support transactions calling legacy codes that are not instrumented (for
example, third-party libraries) without seriously limiting
concurrency, such as by serializing transactions.
EVALUATION
Throughout this section we use the following set of
benchmarks:
• b+tree is an implementation of database indexing
operations on a b-tree data structure for which the data
FIGURE
2Scalability Results for Three STM Runtimes on a Quad-Core Intel Xeon Server
2. 5
2. 5
Intel
IBM
Sun TL2
delaunay
scalability normalized
to sequential
2.0
1. 5
1.0
0.5
2.0
Intel
IBM
Sun TL2
kmeans
1. 5
1.0
0.5
0
1
2. 5
2
4
8
0
1
2. 5
2
4
8
Intel
IBM
Sun TL2
vacation
scalability normalized
to sequential
2.0
1. 5
1.0
0.5
2.0
Intel
IBM
Sun TL2
genome
1. 5
1.0
0.5
0
1
2
4
8
0
1
2
4
8
threads