Selecting Software Phase Markers with Code Structure Analysis
Most programs are repetitive, where similar behavior can be seen at different execution times. Algorithms have been proposed that automatically group similar portions of a program's execution into phases, where samples of execution in the same phase have homogeneous behavior and similar resourc...
Uložené v:
| Vydané v: | Fourth IEEE/ACM International Symposium on Code Generation and Optimization (CGO 2006): 26-29 March 2006/New York, New York s. 135 - 146 |
|---|---|
| Hlavní autori: | , , |
| Médium: | Konferenčný príspevok.. |
| Jazyk: | English |
| Vydavateľské údaje: |
Washington, DC, USA
IEEE Computer Society
26.03.2006
IEEE |
| Edícia: | ACM Conferences |
| Predmet: | |
| ISBN: | 0769524990, 9780769524993 |
| On-line prístup: | Získať plný text |
| Tagy: |
Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
|
| Abstract | Most programs are repetitive, where similar behavior can be seen at different execution times. Algorithms have been proposed that automatically group similar portions of a program's execution into phases, where samples of execution in the same phase have homogeneous behavior and similar resource requirements. In this paper, we present an automated profiling approach to identify code locations whose executions correlate with phase changes. These "software phase markers" can be used to easily detect phase changes across different inputs to a program without hardware support. Our approach builds a combined hierarchical procedure call and loop graph to represent a program's execution, where each edge also tracks the max, average, and standard deviation in hierarchical execution variability on paths from that edge. We search this annotated call-loop graph for instructions in the binary that accurately identify the start of unique stable behaviors across different inputs. We show that our phase markers can be used to accurately partition execution into units of repeating homogeneous behavior by counting execution cycles and data cache hits. We also compare the use of our software markers to prior work on guiding data cache reconfiguration using datareuse markers. Finally, we show that the phase markers can be used to partition the program's execution at code transitions to pick accurately simulation points for SimPoint. When simulation points are defined in terms of phase markers, they can potentially be re-used across inputs, compiler optimizations, and different instruction set architectures for the same source code. |
|---|---|
| AbstractList | Most programs are repetitive, where similar behavior can be seen at different execution times. Algorithms have been proposed that automatically group similar portions of a program's execution into phases, where samples of execution in the same phase have homogeneous behavior and similar resource requirements. In this paper, we present an automated profiling approach to identify code locations whose executions correlate with phase changes. These 'software phase markers' can be used to easily detect phase changes across different inputs to a program without hardware support. Our approach builds a combined hierarchical procedure call and loop graph to represent a program's execution, where each edge also tracks the max, average, and standard deviation in hierarchical execution variability on paths from that edge. We search this annotated call-loop graph for instructions in the binary that accurately identify the start of unique stable behaviors across different inputs. We show that our phase markers can be used to accurately partition execution into units of repeating homogeneous behavior by counting execution cycles and data cache hits. We also compare the use of our software markers to prior work on guiding data cache reconfiguration using datareuse markers. Finally, we show that the phase markers can be used to partition the program's execution at code transitions to pick accurately simulation points for SimPoint. When simulation points are defined in terms of phase markers, they can potentially be re-used across inputs, compiler optimizations, and different instruction set architectures for the same source code. Most programs are repetitive, where similar behavior can be seen at different execution times. Algorithms have been proposed that automatically group similar portions of a program's execution into phases, where samples of execution in the same phase have homogeneous behavior and similar resource requirements. In this paper, we present an automated profiling approach to identify code locations whose executions correlate with phase changes. These ''software phase markers" can be used to easily detect phase changes across different inputs to a program without hardware support. Our approach builds a combined hierarchical procedure call and loop graph to represent a program's execution, where each edge also tracks the max, average, and standard deviation in hierarchical execution variability on paths from that edge. We search this annotated call-loop graph for instructions in the binary that accurately identify the start of unique stable behaviors across different inputs. We show that our phase markers can be used to accurately partition execution into units of repeating homogeneous behavior by counting execution cycles and data cache hits. We also compare the use of our software markers to prior work on guiding data cache reconfiguration using data-reuse markers. Finally, we show that the phase markers can be used to partition the program's execution at code transitions to pick accurately simulation points for SimPoint. When simulation points are defined in terms of phase markers, they can potentially be re-used across inputs, compiler optimizations, and different instruction set architectures for the same source code. |
| Author | Lau, Jeremy Calder, Brad Perelman, Erez |
| Author_xml | – sequence: 1 givenname: Jeremy surname: Lau fullname: Lau, Jeremy organization: University of California, San Diego – sequence: 2 givenname: Erez surname: Perelman fullname: Perelman, Erez organization: University of California, San Diego – sequence: 3 givenname: Brad surname: Calder fullname: Calder, Brad organization: University of California, San Diego |
| BookMark | eNqNkE1LAzEURQMqqLUrl25mIS6E1nzMpJOFizJoFSoVquuQSd7Y2OmkJhlK_70p9Qf4NvfBPdzFuUSnnesAoWuCx4Rg8VDNFmOKMR8zeoIu8YSLguZC4HM0DOEbp8sLgnNygR6X0IKOtvvKlq6JO-Uhe1-pANmb8mvwIdvZuMoqZyBbRt_r2Cdi2ql2H2y4QmeNagMM_3KAPp-fPqqX0Xwxe62m85GiExxHwDlptDCk1E0OHENjBFZY0BqY0NoYVgJnTJfCUCiMYBNG6lKnj-cETMkG6O64u_Xup4cQ5cYGDW2rOnB9kIwURc4FTuDNEbQAILfebpTfS8IJKRhP7e2xVXoja-fWQRIsD8ZkMiYPxiSjCbv_ByZrb6Fhv7f2bIM |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IL CBEJK RIE RIL 7SC 8FD JQ2 L7M L~C L~D |
| DOI | 10.1109/CGO.2006.32 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Xplore POP ALL IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP All) 1998-Present Computer and Information Systems Abstracts Technology Research Database ProQuest Computer Science Collection Advanced Technologies Database with Aerospace Computer and Information Systems Abstracts Academic Computer and Information Systems Abstracts Professional |
| DatabaseTitle | Computer and Information Systems Abstracts Technology Research Database Computer and Information Systems Abstracts – Academic Advanced Technologies Database with Aerospace ProQuest Computer Science Collection Computer and Information Systems Abstracts Professional |
| DatabaseTitleList | Computer and Information Systems Abstracts |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EndPage | 146 |
| ExternalDocumentID | 1611536 |
| Genre | orig-research Conference Paper |
| GroupedDBID | 6IE 6IF 6IK 6IL 6IN AAJGR AARBI ACM ADPZR ALMA_UNASSIGNED_HOLDINGS APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK GUFHI OCL RIB RIC RIE RIL AAWTH LHSKQ 7SC 8FD JQ2 L7M L~C L~D |
| ID | FETCH-LOGICAL-a270t-e661fc9d18cf4e60efd90a092be39ccdd38e633c89d2e5d93731b8c5d9641ed83 |
| IEDL.DBID | RIE |
| ISBN | 0769524990 9780769524993 |
| ISICitedReferencesCount | 19 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000237247000011&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Fri Jul 11 06:52:06 EDT 2025 Wed Aug 27 02:28:20 EDT 2025 Wed Jan 31 06:44:48 EST 2024 |
| IsPeerReviewed | false |
| IsScholarly | true |
| Language | English |
| LinkModel | DirectLink |
| MeetingName | CGO06: 4th Annual IEEE / ACM International Symposium on Code Generation and Optimization |
| MergedId | FETCHMERGED-LOGICAL-a270t-e661fc9d18cf4e60efd90a092be39ccdd38e633c89d2e5d93731b8c5d9641ed83 |
| Notes | SourceType-Conference Papers & Proceedings-1 ObjectType-Conference Paper-1 content type line 25 |
| PQID | 31554690 |
| PQPubID | 23500 |
| PageCount | 12 |
| ParticipantIDs | proquest_miscellaneous_31554690 ieee_primary_1611536 acm_books_10_1109_CGO_2006_32_brief acm_books_10_1109_CGO_2006_32 |
| PublicationCentury | 2000 |
| PublicationDate | 20060326 20060000 |
| PublicationDateYYYYMMDD | 2006-03-26 2006-01-01 |
| PublicationDate_xml | – month: 03 year: 2006 text: 20060326 day: 26 |
| PublicationDecade | 2000 |
| PublicationPlace | Washington, DC, USA |
| PublicationPlace_xml | – name: Washington, DC, USA |
| PublicationSeriesTitle | ACM Conferences |
| PublicationTitle | Fourth IEEE/ACM International Symposium on Code Generation and Optimization (CGO 2006): 26-29 March 2006/New York, New York |
| PublicationTitleAbbrev | CGO |
| PublicationYear | 2006 |
| Publisher | IEEE Computer Society IEEE |
| Publisher_xml | – name: IEEE Computer Society – name: IEEE |
| SSID | ssj0000451041 |
| Score | 1.8094201 |
| Snippet | Most programs are repetitive, where similar behavior can be seen at different execution times. Algorithms have been proposed that automatically group similar... |
| SourceID | proquest ieee acm |
| SourceType | Aggregation Database Publisher |
| StartPage | 135 |
| SubjectTerms | Acceleration Clustering algorithms Computer science Hardware Heuristic algorithms Optimizing compilers Pattern analysis Phase detection Program processors Software and its engineering -- Software notations and tools -- Compilers Software and its engineering -- Software notations and tools -- Compilers -- Preprocessors Tracking loops |
| Title | Selecting Software Phase Markers with Code Structure Analysis |
| URI | https://ieeexplore.ieee.org/document/1611536 https://www.proquest.com/docview/31554690 |
| WOSCitedRecordID | wos000237247000011&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV07T8MwED7RioGJtyhQsAQjAcc2qT0wIQoTIAESm-XYF8FAWyUU_j7nJA0DCIkluihOZF18vpfvPoBjLVChkXnCHV2UI5HKVeBJkQeRqpBnShc12MTo9lY_P5v7JTjpamEQsT58hqeRrHP5YernMVR2RtYJCWjWg95olDW1Wl08JfZJ4SptPHNzTl6FaVs6dfeyrc9LuTm7vL5rMhERd6Tn_FuLrvJjS671zHj1fzNcg63vgj1236midVjCyQasLhAbWCvAm3DxUMPe0BhW0f776UpksxdSZOwtHtMpKxbjsizWubOms-ycRri2cckWPI2vHi9vkhZAIXFixN8TJOVbeBNS7QuFGcciGO64ETlK430IUmMmpdcmCDwPZKnINNeeqEylGLTchv5kOsEdYMQ0gSmKILRT9DkX075EOZ7mXnA9gCEx0UbPoLK1Y8GNJSZHmMvMSjGAoz-f27x8xWIAm5GndtZ02rAtOwdwuPgpllZ_TGm4CU7nlZXRHCIHf_f3F_dg5Ttksg99YhwOYdl_vL9W5UG9gL4AXJLAmQ |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LS8QwEB50FfTkG9dnQI9W0yTbTQ6exBfqKqjgLaTJFPfgrmxd_ftO2roeFMFLmdK0hGkm88rMB7CvBSo0Mk-4o4tyJFK5Cjwp8iBSFfJM6aICm-j2evrpydxNwcGkFgYRq8NneBjJKpcfhn4cQ2VHZJ2QgGbTMNNRSvC6WmsSUYmdUrhKa9_cdMivME1Tp8m9bCr0Um6OTs5v61xERB6Zdv6lwVf5sSlXmuZs4X9zXITV75I9djdRRkswhYNlWPjCbGCNCK_A8X0FfENjWEk78IcbIXt9JlXGXuJBnVHJYmSWxUp3VveWHdMI17QuWYXHs9OHk4ukgVBInOjytwRJ_RbehFT7QmHGsQiGO25EjtJ4H4LUmEnptQkCO4FsFZnm2hOVqRSDlmvQGgwHuA6MmCYwRRGEdoo-52LilyjH09wLrtuwTUy00TcobeVacGOJyRHoMrNStGHvz-c2H_WxaMNK5Kl9rXtt2Iadbdj9-imW1n9MargBDselldEgIhd_4_cXd2Hu4uHm2l5f9q42Yf47gLIFLWIibsOsf3_rl6OdajF9ApDvw-A |
| 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%3Abook&rft.genre=proceeding&rft.title=Proceedings+of+the+International+Symposium+on+Code+Generation+and+Optimization&rft.atitle=Selecting+Software+Phase+Markers+with+Code+Structure+Analysis&rft.au=Lau%2C+Jeremy&rft.au=Perelman%2C+Erez&rft.au=Calder%2C+Brad&rft.series=ACM+Conferences&rft.date=2006-03-26&rft.pub=IEEE+Computer+Society&rft.isbn=0769524990&rft.spage=135&rft.epage=146&rft_id=info:doi/10.1109%2FCGO.2006.32 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769524993/lc.gif&client=summon&freeimage=true |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769524993/mc.gif&client=summon&freeimage=true |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769524993/sc.gif&client=summon&freeimage=true |

