<html><body><div style="font-family: garamond,new york,times,serif; font-size: 12pt; color: #000000"><div>Please note a change in time.<br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__">Jordan Fix will present his Pre-FPO on Monday, November 7th, 2016 at<strong> 3pm</strong> in CS 401.<br></div><div><br>The members of his committee are: <br>Advisor: David August<br>Non-readers: David Wentzlaff, Margaret Martonosi<br>Readers: Andrew Appel, David Callahan (Facebook)<br><br>Everyone is invited to attend his talk. <br><br>Abstract:<br>Speculation with transactional memory (TM) systems helps programmers and<br>compilers produce profitable thread-level parallel programs. Prior work shows<br>that supporting transactions that span multiple threads, rather than requiring<br>transactions be contained within a single thread, enables new types of<br>speculative parallelization techniques for both programmers and parallelizing<br>compilers. The only prior TM systems with this multithreaded transactional (MTX)<br>support are software-based TM (STM) systems. Unfortunately, these systems are<br>notorious for their high overheads when validating speculative memory<br>operations, which often make otherwise good parallelization unprofitable. Thus,<br>parallelized programs using these prior STM systems with MTX support were forced<br>to overcome this problem through significant manual effort by the programmer to<br>optimize away most of this speculation validation. Unfortunately, compiler<br>technology and static analyses have not proven strong enough to relieve the<br>programmer of this burden.<br><br>This thesis presents the first complete design and implementation of a hardware<br>TM (HTM) system with MTX support. This system provides low overhead speculation<br>validation, enabling the aforementioned new types of speculative parallelization<br>techniques to achieve good performance even with high amounts of speculation<br>validation. Profitable parallelization of complex programs can be achieved even<br>with maximal speculation validation of every load and store inside transactions<br>of tens to hundreds of millions of instructions, thus making parallelization<br>less laborious and more feasible for both programmers and compilers.<br><br>In addition to supporting MTXs, transactions in this system are more resilient<br>than in many other prior works. Transactions avoid false misspeculation due to<br>branch misprediction; provide for large read and write sets that commit in a<br>lazy fashion; and allow for context switches (and thread migration) due to<br>common operations such as preemption or virtual memory management. This allows<br>the system to accommodate the large and long running transactions that are<br>needed to parallelize complex programs. Across 6 SPEC benchmarks a geomean<br>speedup of 2.11X over sequential execution is achieved on a multicore machine<br>with 4 cores, while increasing energy usage by 10%.<br></div></div></body></html>