Show simple item record

Compiler and Runtime Techniques for Automatic Parallelization of Sequential Applications.

dc.contributor.authorMehrara, Mojtabaen_US
dc.date.accessioned2011-09-15T17:17:20Z
dc.date.availableNO_RESTRICTIONen_US
dc.date.available2011-09-15T17:17:20Z
dc.date.issued2011en_US
dc.date.submitteden_US
dc.identifier.urihttps://hdl.handle.net/2027.42/86499
dc.description.abstractMulticore designs have emerged as the mainstream design paradigm for the microprocessor industry. Unfortunately, providing multiple cores does not directly translate into performance for most applications. An attractive approach for exploiting multiple cores is to rely on tools, both compilers and runtime optimizers, to automatically extract threads from sequential applications. This dissertation tackles many challenges faced in automatic parallelization of sequential applications, including general-purpose applications written in C/C++ and client-side web applications written in JavaScript, with the goal of achieving speedup on commodity multicore systems. First, a complete parallelizing compiler system for C/C++ is introduced. This system successfully identifies parallelization opportunities in programs and transforms the code to a parallel version. A matching runtime system, STMlite, is proposed to monitor the parallelized program behavior and fix any misspeculations that might happen. We show that this system can generate and execute parallel programs that are upto 2.2x faster than their sequential counterparts, when executed on an 8-core commodity system. The second piece of work focuses on a similar problem in a very different application domain, JavaScript programs running on the client’s web browser. This dissertation is the first research work that proposes dynamic and automatic parallelization of JavaScript applications. The nature of the JavaScript language and its target execution environments impose a completely different set of challenges that we intend to solve. We first propose the ParaScript parallelizing engine, which identifies and speculatively parallelizes potentially parallel code segments while the code is running in the browser. A low-cost and highly customized speculation approach verifies the execution of the parallelized client-side code and rolls back in case of any misspeculation. Dynamic parallelization using ParaScript yields an average of 2.18x speedup over sequential JavaScript code on an 8-core commodity system. In addition, we introduce ParaGuard, a technique which executes the runtime checks required by trace-based JavaScript compilers in parallel with the main execution. ParaGuard is able to improve performance by 15% by using an additional core in multi-core systems.en_US
dc.language.isoen_USen_US
dc.subjectSpeculative Parallelizationen_US
dc.subjectSoftware Transactional Memoryen_US
dc.subjectJavaScript Parallelizationen_US
dc.subjectMulticore Compilationen_US
dc.subjectDynamic Parallelizationen_US
dc.subjectLoop Level Parallelismen_US
dc.titleCompiler and Runtime Techniques for Automatic Parallelization of Sequential Applications.en_US
dc.typeThesisen_US
dc.description.thesisdegreenamePhDen_US
dc.description.thesisdegreedisciplineComputer Science & Engineeringen_US
dc.description.thesisdegreegrantorUniversity of Michigan, Horace H. Rackham School of Graduate Studiesen_US
dc.contributor.committeememberMahlke, Scotten_US
dc.contributor.committeememberAustin, Todd M.en_US
dc.contributor.committeememberDick, Roberten_US
dc.contributor.committeememberHarris, Timen_US
dc.contributor.committeememberNarayanasamy, Satishen_US
dc.subject.hlbsecondlevelComputer Scienceen_US
dc.subject.hlbtoplevelEngineeringen_US
dc.description.bitstreamurlhttp://deepblue.lib.umich.edu/bitstream/2027.42/86499/1/mehrara_1.pdf
dc.owningcollnameDissertations and Theses (Ph.D. and Master's)


Files in this item

Show simple item record

Remediation of Harmful Language

The University of Michigan Library aims to describe library materials in a way that respects the people and communities who create, use, and are represented in our collections. Report harmful or offensive language in catalog records, finding aids, or elsewhere in our collections anonymously through our metadata feedback form. More information at Remediation of Harmful Language.

Accessibility

If you are unable to use this file in its current format, please select the Contact Us link and we can modify it to make it more accessible to you.