Title page for ETD etd-02222012-091827


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 chips

called 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

Browse All Available ETDs by ( Author | Department )

dla home
etds imagebase journals news ereserve special collections
virgnia tech home contact dla university libraries

If you have questions or technical problems, please Contact DLA.