SLIDE 11 Some published experimental results (1/3)
0.1 1 10 100 1 2 3 4 5 6 8 10 12 16
Throughput (ops/usec)
# Threads HashTable Test: keyrange=256, 0% lookups phtm phtm-tl2 hytm stm stm-tl2
0.1 1 10 100 1 2 3 4 5 6 8 10 12 16
Throughput (ops/usec)
# Threads HashTable Test: keyrange=128000, 0% lookups phtm phtm-tl2 hytm stm stm-tl2
(a) (b) Figure 1. HashTable with 50% inserts, 50% deletes: (a) key range 256 (b) key range 128,000.
Source: Dice et al: Early Experience with a Commercial Hardware Transactional Memory Implementation, ASPLOS’09. c Sun Microsoftems, Inc.
Some published experimental results (2/3)
0.1 1 10 100 1 2 3 4 6 8 12 16
Throughput (ops/usec)
# Threads RedBlackTree: 100% reads, keyrange=[0,128) 0.1 1 10 100 1 2 3 4 6 8 12 16
Throughput (ops/usec)
# Threads RedBlackTree: 96% reads, keyrange=[0,2048) phtm phtm-tl2 hytm stm stm-tl2
(a) (b) Figure 2. Red-Black Tree. (a) 128 keys, 100% reads (b) 2048 keys, 96% reads, 2% inserts, 2% deletes.
Source: Dice et al: Early Experience with a Commercial Hardware Transactional Memory Implementation, ASPLOS’09. c Sun Microsoftems, Inc.
Some published experimental results (3/3)
1 10 100 1 2 3 4 6 8 12 16
Throughput (ops/usec)
# Threads STLVector Test: initsiz=100, ctr-range=40 htm.oneLock noTM.oneLock htm.rwLock noTM.rwLock 1 10 100 1 2 3 4 6 8 12 16 Throughput (operations/us) # threads TLE with Hashtable in Java 0:10:0-locks 0:10:0-TLE 1:8:1-locks 1:8:1-TLE 2:6:2-locks 2:6:2-TLE 4:2:4-locks 4:2:4-TLE
(a) (b) Figure 3. (a) TLE in C++ with STL vector (b) TLE in Java with Hashtable.
Source: Dice et al: Early Experience with a Commercial Hardware Transactional Memory Implementation, ASPLOS’09. c Sun Microsoftems, Inc.
11