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
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
References:
Archives