

Type of Document Master's Thesis Author Mahmoud Mohamedin, Mohamed Ahmed Author's Email Address mohamedin@vt.edu URN etd-02222012-091827 Title ByteSTM: Java Software Transactional Memory at the Virtual Machine Level Degree Master of Science Department Electrical and Computer Engineering Advisory Committee
Advisor Name Title Ravindran, Binoy Committee Chair Nazhandali, Leyla Committee Member Plassmann, Paul E. Committee Member Rizk, Mohamed Committee Member Keywords
- Synchronization
- Virtual Machine
- Java
- Multiprocessor
- Concurrency
- Software Transactional Memory
Date of Defense 2012-02-08 Availability unrestricted Abstract As chip vendors are increasingly manufacturing a new generation of multi-processor chipscalled multicores, improving software performance requires exposing greater concurrency in
software. Since code that must be run sequentially is often due to the need for synchro-
nization, the synchronization abstraction has a significant effect on program performance.
Lock-based synchronization – the most widely used synchronization method – suffers from
programability, scalability, and composability challenges.
Transactional memory (TM) is an emerging synchronization abstraction that promises to
alleviate the difficulties with lock-based synchronization. With TM, code that read/write
shared memory objects is organized as transactions, which speculatively execute. When
two transactions conflict (e.g., read/write, write/write), one of them is aborted, while the
other commits, yielding (the illusion of) atomicity. Aborted transactions are re-started,
after rolling-back changes made to objects. In addition to a simple programming model,
TM provides performance comparable to lock-based synchronization. Software transactional
memory (STM) implements TM entirely in software, without any special hardware support,
and is usually implemented as a library, or supported by a compiler or by a virtual machine.
In this thesis, we present ByteSTM, a virtual machine-level Java STM implementation.
ByteSTM implements two STM algorithms, TL2 and RingSTM, and transparently supports
implicit transactions. Program bytecode is automatically modified to support transactions:
memory load/store bytecode instructions automatically switch to transactional mode when
a transaction starts, and switch back to normal mode when the transaction successfully com-
mits. Being implemented at the VM-level, it accesses memory directly and uses absolute
memory addresses to uniformly handle memory. Moreover, it avoids Java garbage collection
(which has a negative impact on STM performance), by manually allocating and recycling
memory for transactional metadata. ByteSTM uses field-based granularity, and uses the
thread header to store transactional metadata, instead of the slower Java ThreadLocal ab-
straction.
We conducted experimental studies comparing ByteSTM with other state-of-the-art Java
STMs including Deuce, ObjectFabric, Multiverse, DSTM2, and JVSTM on a set of micro-
benchmarks and macro-benchmarks. Our results reveal that, ByteSTM’s transactional
throughput improvement over competitors ranges from 20% to 75% on micro-benchmarks
and from 36% to 100% on macro-benchmarks.
Files
Filename Size Approximate Download Time (Hours:Minutes:Seconds)
28.8 Modem 56K Modem ISDN (64 Kb) ISDN (128 Kb) Higher-speed Access MahmoudMohamedin_MA_T_2012.pdf 968.67 Kb 00:04:29 00:02:18 00:02:01 00:01:00 00:00:05
If you have questions or technical problems, please Contact DLA.