UR Research > Computer Science Department > CS Ph.D. Theses >

Compiler assisted speculation for multithreaded systems

URL to cite or link to: http://hdl.handle.net/1802/30068

Xiang_rochester_0188E_11006.pdf   1.11 MB (No. of downloads : 360)
PDF of thesis.
Thesis (Ph. D.)--University of Rochester. Department of Computer Science, 2015.
Multithreaded programming requires synchronization, to coordinate access to shared resources. As more and more processor cores become available on a single machine, synchronization tends to be the performance bottleneck of many multithreaded programs. This thesis focuses on two important synchronization scenarios: lock-based critical sections and transactional atomic blocks.

Since speculation is a well-known means of increasing parallelism among concurrent executions that are usually but not always independent, this thesis first explores the manual addition of speculation to lock-based critical sections (in concurrent data structures). With simple language extensions accompanied by compiler assistance, a technique which we refer to as CSpec, the programmer can exploit high-level program knowledge to move speculative work out of lock-based critical sections, thereby improving scalability while still maintaining correctness.

Speculation is also a major approach to improved parallelism in transactional memory systems. Frequent failures of speculative execution, however, may render the technique unprofitable. In recently emerged best-effort hardware transactional memory, speculation fails mainly due to two reasons: hardware overflow and data conflicts. In this thesis we develop a programming technique and compiler support, ParT, to reduce the duration and memory footprint of hardware transactions, leading to lower abort rates while preserving deadlock-free composability. To reduce the incidence of conflict, we propose an automatic, high-level mechanism, Staggered Transactions, that uses advisory locks to serialize (just) the portions of the transactions in which conflicting accesses occur.

In all proposed techniques, compiler assistance is essential to maintaining ease of programming. We thus conclude that compiler assistance can significantly improve speculation in multithreaded systems.
Contributor(s):
Lingxiang Xiang - Author

Michael L. Scott (1959 - ) - Thesis Advisor
ORCID: 0000-0001-8652-7644

Primary Item Type:
Thesis
Identifiers:
Local Call No. AS38.661
Language:
English
Subject Keywords:
Compiler assistance; Hardware transactional memory; Multithreaded programming; Speculation; Synchronization
Sponsor - Description:
IBM - IBM Canada CAS Fellowships; equipment
Oracle Corporation - Equipment
National Science Foundation (NSF) - Grant CCF-1116055; grant CNS-1116109; grant CNS-1319417; grant CCF-1337224; grant CCF-1422649
First presented to the public:
8/31/2015
Originally created:
2015
Original Publication Date:
2015
Previously Published By:
University of Rochester
Place Of Publication:
Rochester, N.Y.
Citation:
Extents:
Number of Pages - xvii, 161 pages
Illustrations - illustrations (some color)
License Grantor / Date Granted:
John Dickson / 2015-09-04 14:36:04.121 ( View License )
Date Deposited
2015-09-04 14:36:04.121
Submitter:
John Dickson

Copyright © This item is protected by copyright, with all rights reserved.

All Versions

Thumbnail Name Version Created Date
Compiler assisted speculation for multithreaded systems1 2015-09-04 14:36:04.121