Loading...
Please wait, while we are loading the content...
Similar Documents
ByteSTM: Java Software Transactional Memory at the Virtual Machine Level
| Content Provider | Semantic Scholar |
|---|---|
| Author | Mohamedin, Mahmoud Ahmed, Mohamed H. |
| Copyright Year | 2012 |
| Abstract | (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 synchronization , 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 restarted , 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 commits. 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 abstraction. 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. Without her love, care and support, I could not have completed this thesis To my parents. Without their love, trust and continued support, I could not have made their dream true iii Acknowledgments First, I would like to thank my advisor, Dr. Binoy Ravindran, for his continues support, help, guidance, encouragement, and trust. He believed in me … |
| File Format | PDF HTM / HTML |
| Alternate Webpage(s) | https://theses.lib.vt.edu/theses/available/etd-02222012-091827/unrestricted/MahmoudMohamedin_MA_T_2012.pdf |
| Alternate Webpage(s) | http://scholar.lib.vt.edu/theses/available/etd-02222012-091827/unrestricted/MahmoudMohamedin_MA_T_2012.pdf |
| Language | English |
| Access Restriction | Open |
| Content Type | Text |
| Resource Type | Article |