Compiler and Runtime Techniques for Automatic Parallelization of Sequential Applications
Multicore 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 r...
Saved in:
| Main Author: | |
|---|---|
| Format: | Dissertation |
| Language: | English |
| Published: |
ProQuest Dissertations & Theses
01.01.2011
|
| Subjects: | |
| ISBN: | 1124912479, 9781124912479 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | Multicore 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. |
|---|---|
| AbstractList | Multicore 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. |
| Author | Mehrara, Mojtaba |
| Author_xml | – sequence: 1 givenname: Mojtaba surname: Mehrara fullname: Mehrara, Mojtaba |
| BookMark | eNotTslqxDAMNbQD7Sz_YHoPxEsWH0PoBgNT2hx6G2xHYlwcO81y6dfXXRBCPL1F2pLrEANckS1jXKrUlbohh3l2JmdclXXBq1vy3sZhdB4mqkNPX9ewuAFoB_YS3OcKM8U40WZd4qAXZ-mLnrT34N1XgjHQiPQNki7ZtKfNOHpnf5l5Tzao_QyH_7kj3cN91z5lx9Pjc9scs4sSLCtMr9BK7CuJFhFUKouygLQ0Ole5Er2plK4lGiF7jlKXwDQvDUNlMRc7cvcXO07x59_l_BHXKaSL51qVoqjKnItvd3VSCQ |
| ContentType | Dissertation |
| Copyright | Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works. |
| Copyright_xml | – notice: Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works. |
| DBID | 053 0BH 0NL AFTDF CBPLH EU9 G20 M8- OK5 PHGZT PKEHL PQEST PQQKQ PQUKI S0W |
| DatabaseName | Dissertations & Theses Europe Full Text: Science & Technology ProQuest Dissertations and Theses Professional Dissertations & Theses @ University of Michigan DELNET Engineering & Technology Collection - hybrid linking ProQuest Dissertations & Theses Global: The Sciences and Engineering Collection ProQuest Dissertations & Theses A&I ProQuest Dissertations & Theses Global ProQuest Dissertations and Theses A&I: The Sciences and Engineering Collection Dissertations & Theses @ Big Ten Academic Alliance ProQuest One Academic (New) ProQuest One Academic Middle East (New) ProQuest One Academic Eastern Edition (DO NOT USE) ProQuest One Academic (retired) ProQuest One Academic UKI Edition DELNET Engineering & Technology Collection |
| DatabaseTitle | ProQuest One Academic Middle East (New) ProQuest One Academic Eastern Edition ProQuest Dissertations & Theses Global: The Sciences and Engineering Collection ProQuest Dissertations and Theses Professional ProQuest Dissertations and Theses A&I: The Sciences and Engineering Collection ProQuest Dissertations & Theses Global Dissertations & Theses Europe Full Text: Science & Technology Dissertations & Theses @ University of Michigan ProQuest One Academic UKI Edition ProQuest DELNET Engineering and Technology Collection Dissertations & Theses @ CIC Institutions ProQuest One Academic ProQuest Dissertations & Theses A&I ProQuest One Academic (New) |
| DatabaseTitleList | ProQuest One Academic Middle East (New) |
| Database_xml | – sequence: 1 dbid: G20 name: ProQuest Dissertations & Theses Global url: https://www.proquest.com/pqdtglobal1 sourceTypes: Aggregation Database |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| ExternalDocumentID | 2476407911 |
| Genre | Dissertation/Thesis |
| GroupedDBID | 053 0BD 0BH 0NL ALMA_UNASSIGNED_HOLDINGS CBPLH EU9 G20 M8- OK5 PHGZT PKEHL PQEST PQQKQ PQUKI S0W |
| ID | FETCH-LOGICAL-h931-5bd9fc4fd74fcffe9e9ecf45efc4ba09093db79a84fb34d2f4a6e1a26b1f9cf03 |
| IEDL.DBID | G20 |
| ISBN | 1124912479 9781124912479 |
| IngestDate | Sun Jun 29 16:33:18 EDT 2025 |
| IsPeerReviewed | false |
| IsScholarly | false |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-h931-5bd9fc4fd74fcffe9e9ecf45efc4ba09093db79a84fb34d2f4a6e1a26b1f9cf03 |
| Notes | SourceType-Dissertations & Theses-1 ObjectType-Dissertation/Thesis-1 content type line 12 |
| PQID | 896357602 |
| PQPubID | 18750 |
| ParticipantIDs | proquest_journals_896357602 |
| PublicationCentury | 2000 |
| PublicationDate | 20110101 |
| PublicationDateYYYYMMDD | 2011-01-01 |
| PublicationDate_xml | – month: 01 year: 2011 text: 20110101 day: 01 |
| PublicationDecade | 2010 |
| PublicationYear | 2011 |
| Publisher | ProQuest Dissertations & Theses |
| Publisher_xml | – name: ProQuest Dissertations & Theses |
| SSID | ssib012968527 ssib000933042 |
| Score | 1.5545039 |
| Snippet | Multicore designs have emerged as the mainstream design paradigm for the microprocessor industry. Unfortunately, providing multiple cores does not directly... |
| SourceID | proquest |
| SourceType | Aggregation Database |
| SubjectTerms | Computer Engineering Computer science Studies |
| Title | Compiler and Runtime Techniques for Automatic Parallelization of Sequential Applications |
| URI | https://www.proquest.com/docview/896357602 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV3PS8MwFA46PYiH-RN1Kjl4DTZN2iYnGer0IGPokN1GfqIwW203_36TLB0DwYu0DSS9lBfy5b281-8D4EpqnYpUakQVc42UGDGdEcRthgUhWOWBrun1qRgO2WTCR7E2p4lllS0mBqDWlfJn5NeMe-a0PElvPr-QF43yydWooLEJtrxj46nzH9a9n2Ww3vbdzpazLC2CXpCLOtxT8Mj6tOr_guSwzwy6__zCPbB7t5Zf3wcbpjwA3Va5AcaFfAgmfsjhQQ1FqeGzl4v4MHDc8rk20LmysL-YV4HQFY5E7SVXZvGfTVhZ-BJKsB08zGB_LQd-BMaD-_HtI4oaC-iNE4wyqblV1OqCWmWt4e5SlmbGDUqRcGdCLQsuGLWSUJ1aKnKDRZpLbLmyCTkGnbIqzQmALpij3GJpRKIpoQkzLjQ1wigXkGElk1PQa802jeukma5sdvbn2x7YWZ7l-vscdOb1wlyAbfU9f2_qyzDrP0vTuGM |
| linkProvider | ProQuest |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMw1V1LS8NAEB5qFRQP9YlaH3vQYzCbbB57ECnW2tJaihbprewThdpq0yr-J3-ku2lSCoK3HiQP2A0Eklm-2W92dj6Acy6lxzwuHSJic-McO7EMfIfqADPfxyJMyzU9taJ2O-71aKcA3_leGJtWmWNiCtRyJGyM_DKmtnJa6HrXb--OFY2yi6u5gsZsVDTV16dhbMlVo2rMe-F5tdvuTd3JRAWcZ-pjJ-CSakG0jIgWWitqDqFJoEwnZy41BF_yiLKYaO4T6WnCQoWZF3KsqdCub167AqvEj7BNILxbnGzNYgN52zjSMA68KJUnMiTHXBHNikzN2788QOrWaqX_9UO2YLO6kD2wDQU13IFSrkuBMpjahZ7tMmg3Rmwo0YMVw3hVqJtXq02QmaijynQySsvVog4bW0GZQbYjFY00ekwTzA34DVBlYYV_D7rL-LZ9KA5HQ3UAyFBVQjXmirmS-MSNlSHeiilh6CYW3D2Ecm6lfoYCSX9uoqM_n57Ber173-q3Gu1mGTZmUWt7HkNxMp6qE1gTH5OXZHyaDjgE_SXb8wed6hmp |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adissertation&rft.genre=dissertation&rft.title=Compiler+and+Runtime+Techniques+for+Automatic+Parallelization+of+Sequential+Applications&rft.DBID=053%3B0BH%3B0NL%3BAFTDF%3BCBPLH%3BEU9%3BG20%3BM8-%3BOK5%3BPHGZT%3BPKEHL%3BPQEST%3BPQQKQ%3BPQUKI%3BS0W&rft.PQPubID=18750&rft.au=Mehrara%2C+Mojtaba&rft.date=2011-01-01&rft.pub=ProQuest+Dissertations+%26+Theses&rft.isbn=1124912479&rft.externalDBID=HAS_PDF_LINK&rft.externalDocID=2476407911 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781124912479/lc.gif&client=summon&freeimage=true |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781124912479/mc.gif&client=summon&freeimage=true |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781124912479/sc.gif&client=summon&freeimage=true |

