Loading…
Binary Analysis for Measurement and Attribution of Program Performance
Modern programs frequently employ sophisticated modular designs. As a result, performance problems cannot be identified from costs attributed to routines in isolation; understanding code performance requires information about a routine's calling context. Existing performance tools fall short in...
Saved in:
Published in: | ACM SIGPLAN notices 2009-06, Vol.44 (6), p.441-452 |
---|---|
Main Authors: | , , |
Format: | Article |
Language: | English |
Subjects: | |
Citations: | Items that this one cites Items that cite this one |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
cited_by | cdi_FETCH-LOGICAL-c271t-b4ccfd2a2bd1921cb89fa0bfc3632b279183a43d2f3b437f90bc6e56dbe6c8d83 |
---|---|
cites | cdi_FETCH-LOGICAL-c271t-b4ccfd2a2bd1921cb89fa0bfc3632b279183a43d2f3b437f90bc6e56dbe6c8d83 |
container_end_page | 452 |
container_issue | 6 |
container_start_page | 441 |
container_title | ACM SIGPLAN notices |
container_volume | 44 |
creator | TALLENT, Nathan R MELLOR-CRUMMEY, John M FAGAN, Michael W |
description | Modern programs frequently employ sophisticated modular designs. As a result, performance problems cannot be identified from costs attributed to routines in isolation; understanding code performance requires information about a routine's calling context. Existing performance tools fall short in this respect. Prior strategies for attributing context-sensitive performance at the source level either compromise measurement accuracy, remain too close to the binary, or require custom compilers. To understand the performance of fully optimized modular code, we developed two novel binary analysis techniques: 1)
on-the-fly
analysis of optimized machine code to enable minimally intrusive and accurate attribution of costs to dynamic calling contexts; and 2) post-mortem analysis of optimized machine code and its debugging sections to recover its program structure and reconstruct a mapping back to its source code. By combining the recovered static program structure with dynamic calling context information, we can accurately attribute performance metrics to calling contexts, procedures, loops, and inlined instances of procedures. We demonstrate that the fusion of this information provides unique insight into the performance of complex modular codes. This work is implemented in the HPCToolkit performance tools (http://hpctoolkit.org). |
doi_str_mv | 10.1145/1543135.1542526 |
format | article |
fullrecord | <record><control><sourceid>pascalfrancis_cross</sourceid><recordid>TN_cdi_pascalfrancis_primary_22149981</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>22149981</sourcerecordid><originalsourceid>FETCH-LOGICAL-c271t-b4ccfd2a2bd1921cb89fa0bfc3632b279183a43d2f3b437f90bc6e56dbe6c8d83</originalsourceid><addsrcrecordid>eNo9kD1PwzAQhi0EEqUws3phTOs7f8QZQ0UBqYgOMEe2Y6OgfFR2OvTfk6oR03vDPa_uHkIega0AhFyDFBy4XE2JEtUVWYCUOgNQ7Po8I89Qq_yW3KX0yxhoyHFBts9Nb-KJlr1pT6lJNAyRfniTjtF3vh-p6WtajmNs7HFshp4Oge7j8BNNR_c-Ttud6Z2_JzfBtMk_zLkk39uXr81btvt8fd-Uu8xhDmNmhXOhRoO2hgLBWV0Ew2xwXHG0mBeguRG8xsCt4HkomHXKS1Vbr5yuNV-S9aXXxSGl6EN1iE03PVABq84aqllDNWuYiKcLcTDJmTbE6dwm_WOIIIpCA_8DTN5dUw</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>Binary Analysis for Measurement and Attribution of Program Performance</title><source>Association for Computing Machinery:Jisc Collections:ACM OPEN Journals 2023-2025 (reading list)</source><creator>TALLENT, Nathan R ; MELLOR-CRUMMEY, John M ; FAGAN, Michael W</creator><creatorcontrib>TALLENT, Nathan R ; MELLOR-CRUMMEY, John M ; FAGAN, Michael W</creatorcontrib><description>Modern programs frequently employ sophisticated modular designs. As a result, performance problems cannot be identified from costs attributed to routines in isolation; understanding code performance requires information about a routine's calling context. Existing performance tools fall short in this respect. Prior strategies for attributing context-sensitive performance at the source level either compromise measurement accuracy, remain too close to the binary, or require custom compilers. To understand the performance of fully optimized modular code, we developed two novel binary analysis techniques: 1)
on-the-fly
analysis of optimized machine code to enable minimally intrusive and accurate attribution of costs to dynamic calling contexts; and 2) post-mortem analysis of optimized machine code and its debugging sections to recover its program structure and reconstruct a mapping back to its source code. By combining the recovered static program structure with dynamic calling context information, we can accurately attribute performance metrics to calling contexts, procedures, loops, and inlined instances of procedures. We demonstrate that the fusion of this information provides unique insight into the performance of complex modular codes. This work is implemented in the HPCToolkit performance tools (http://hpctoolkit.org).</description><identifier>ISSN: 1523-2867</identifier><identifier>ISSN: 0362-1340</identifier><identifier>EISSN: 1558-1160</identifier><identifier>DOI: 10.1145/1543135.1542526</identifier><language>eng</language><publisher>New York, NY: Association for Computing Machinery</publisher><subject>Applied sciences ; Computer science; control theory; systems ; Computer systems performance. Reliability ; Exact sciences and technology ; Software ; Software engineering</subject><ispartof>ACM SIGPLAN notices, 2009-06, Vol.44 (6), p.441-452</ispartof><rights>2015 INIST-CNRS</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c271t-b4ccfd2a2bd1921cb89fa0bfc3632b279183a43d2f3b437f90bc6e56dbe6c8d83</citedby><cites>FETCH-LOGICAL-c271t-b4ccfd2a2bd1921cb89fa0bfc3632b279183a43d2f3b437f90bc6e56dbe6c8d83</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>309,310,780,784,789,790,23930,23931,25140,27925</link.rule.ids><backlink>$$Uhttp://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&idt=22149981$$DView record in Pascal Francis$$Hfree_for_read</backlink></links><search><creatorcontrib>TALLENT, Nathan R</creatorcontrib><creatorcontrib>MELLOR-CRUMMEY, John M</creatorcontrib><creatorcontrib>FAGAN, Michael W</creatorcontrib><title>Binary Analysis for Measurement and Attribution of Program Performance</title><title>ACM SIGPLAN notices</title><description>Modern programs frequently employ sophisticated modular designs. As a result, performance problems cannot be identified from costs attributed to routines in isolation; understanding code performance requires information about a routine's calling context. Existing performance tools fall short in this respect. Prior strategies for attributing context-sensitive performance at the source level either compromise measurement accuracy, remain too close to the binary, or require custom compilers. To understand the performance of fully optimized modular code, we developed two novel binary analysis techniques: 1)
on-the-fly
analysis of optimized machine code to enable minimally intrusive and accurate attribution of costs to dynamic calling contexts; and 2) post-mortem analysis of optimized machine code and its debugging sections to recover its program structure and reconstruct a mapping back to its source code. By combining the recovered static program structure with dynamic calling context information, we can accurately attribute performance metrics to calling contexts, procedures, loops, and inlined instances of procedures. We demonstrate that the fusion of this information provides unique insight into the performance of complex modular codes. This work is implemented in the HPCToolkit performance tools (http://hpctoolkit.org).</description><subject>Applied sciences</subject><subject>Computer science; control theory; systems</subject><subject>Computer systems performance. Reliability</subject><subject>Exact sciences and technology</subject><subject>Software</subject><subject>Software engineering</subject><issn>1523-2867</issn><issn>0362-1340</issn><issn>1558-1160</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2009</creationdate><recordtype>article</recordtype><recordid>eNo9kD1PwzAQhi0EEqUws3phTOs7f8QZQ0UBqYgOMEe2Y6OgfFR2OvTfk6oR03vDPa_uHkIega0AhFyDFBy4XE2JEtUVWYCUOgNQ7Po8I89Qq_yW3KX0yxhoyHFBts9Nb-KJlr1pT6lJNAyRfniTjtF3vh-p6WtajmNs7HFshp4Oge7j8BNNR_c-Ttud6Z2_JzfBtMk_zLkk39uXr81btvt8fd-Uu8xhDmNmhXOhRoO2hgLBWV0Ew2xwXHG0mBeguRG8xsCt4HkomHXKS1Vbr5yuNV-S9aXXxSGl6EN1iE03PVABq84aqllDNWuYiKcLcTDJmTbE6dwm_WOIIIpCA_8DTN5dUw</recordid><startdate>20090601</startdate><enddate>20090601</enddate><creator>TALLENT, Nathan R</creator><creator>MELLOR-CRUMMEY, John M</creator><creator>FAGAN, Michael W</creator><general>Association for Computing Machinery</general><scope>IQODW</scope><scope>AAYXX</scope><scope>CITATION</scope></search><sort><creationdate>20090601</creationdate><title>Binary Analysis for Measurement and Attribution of Program Performance</title><author>TALLENT, Nathan R ; MELLOR-CRUMMEY, John M ; FAGAN, Michael W</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c271t-b4ccfd2a2bd1921cb89fa0bfc3632b279183a43d2f3b437f90bc6e56dbe6c8d83</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2009</creationdate><topic>Applied sciences</topic><topic>Computer science; control theory; systems</topic><topic>Computer systems performance. Reliability</topic><topic>Exact sciences and technology</topic><topic>Software</topic><topic>Software engineering</topic><toplevel>online_resources</toplevel><creatorcontrib>TALLENT, Nathan R</creatorcontrib><creatorcontrib>MELLOR-CRUMMEY, John M</creatorcontrib><creatorcontrib>FAGAN, Michael W</creatorcontrib><collection>Pascal-Francis</collection><collection>CrossRef</collection><jtitle>ACM SIGPLAN notices</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>TALLENT, Nathan R</au><au>MELLOR-CRUMMEY, John M</au><au>FAGAN, Michael W</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Binary Analysis for Measurement and Attribution of Program Performance</atitle><jtitle>ACM SIGPLAN notices</jtitle><date>2009-06-01</date><risdate>2009</risdate><volume>44</volume><issue>6</issue><spage>441</spage><epage>452</epage><pages>441-452</pages><issn>1523-2867</issn><issn>0362-1340</issn><eissn>1558-1160</eissn><abstract>Modern programs frequently employ sophisticated modular designs. As a result, performance problems cannot be identified from costs attributed to routines in isolation; understanding code performance requires information about a routine's calling context. Existing performance tools fall short in this respect. Prior strategies for attributing context-sensitive performance at the source level either compromise measurement accuracy, remain too close to the binary, or require custom compilers. To understand the performance of fully optimized modular code, we developed two novel binary analysis techniques: 1)
on-the-fly
analysis of optimized machine code to enable minimally intrusive and accurate attribution of costs to dynamic calling contexts; and 2) post-mortem analysis of optimized machine code and its debugging sections to recover its program structure and reconstruct a mapping back to its source code. By combining the recovered static program structure with dynamic calling context information, we can accurately attribute performance metrics to calling contexts, procedures, loops, and inlined instances of procedures. We demonstrate that the fusion of this information provides unique insight into the performance of complex modular codes. This work is implemented in the HPCToolkit performance tools (http://hpctoolkit.org).</abstract><cop>New York, NY</cop><pub>Association for Computing Machinery</pub><doi>10.1145/1543135.1542526</doi><tpages>12</tpages><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | ISSN: 1523-2867 |
ispartof | ACM SIGPLAN notices, 2009-06, Vol.44 (6), p.441-452 |
issn | 1523-2867 0362-1340 1558-1160 |
language | eng |
recordid | cdi_pascalfrancis_primary_22149981 |
source | Association for Computing Machinery:Jisc Collections:ACM OPEN Journals 2023-2025 (reading list) |
subjects | Applied sciences Computer science control theory systems Computer systems performance. Reliability Exact sciences and technology Software Software engineering |
title | Binary Analysis for Measurement and Attribution of Program Performance |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-07T14%3A47%3A38IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-pascalfrancis_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Binary%20Analysis%20for%20Measurement%20and%20Attribution%20of%20Program%20Performance&rft.jtitle=ACM%20SIGPLAN%20notices&rft.au=TALLENT,%20Nathan%20R&rft.date=2009-06-01&rft.volume=44&rft.issue=6&rft.spage=441&rft.epage=452&rft.pages=441-452&rft.issn=1523-2867&rft.eissn=1558-1160&rft_id=info:doi/10.1145/1543135.1542526&rft_dat=%3Cpascalfrancis_cross%3E22149981%3C/pascalfrancis_cross%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-c271t-b4ccfd2a2bd1921cb89fa0bfc3632b279183a43d2f3b437f90bc6e56dbe6c8d83%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true |