Huu Tan Nguyen, Lai Wei, A. Bhatele, T. Gamblin, David Böhme, M. Schulz, K. Ma, P. Bremer
{"title":"VIPACT: A Visualization Interface for Analyzing Calling Context Trees","authors":"Huu Tan Nguyen, Lai Wei, A. Bhatele, T. Gamblin, David Böhme, M. Schulz, K. Ma, P. Bremer","doi":"10.1109/VPA.2016.9","DOIUrl":null,"url":null,"abstract":"Profiling tools are indispensable for performance optimization of parallel codes. They allow users to understand where a code spends its time, and to focus optimization efforts on the most time consuming regions. However, two sources of complexity make them difficult to use on large-scale parallel applications. First, the code complexity of parallel applications is increasingly, and identifying the problematic regions in the code is difficult. Traditional profilers show either a flat view or a calling context tree view. Second, most tools average performance data across processes, losing per-process behavior. Diagnosing problems like load imbalance requires profiles from many processes, and manually analyzing profiles from hundreds or thousands of processes is infeasible. We introduce VIPACT, a visualization tool to identify different behaviors in multiple processes. VIPACT introduces “halo nodes” that concisely encode the distributions of runtimes from all processes, and a hybrid tree view that combines the advantages of calling context trees with those of flat profiles. We combine these with approaches such as ring charts, as well as the filtering and subselection of nodes, and we apply these techniques to a production multi-physics code.","PeriodicalId":166523,"journal":{"name":"2016 Third Workshop on Visual Performance Analysis (VPA)","volume":"26 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-11-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 Third Workshop on Visual Performance Analysis (VPA)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/VPA.2016.9","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 10
Abstract
Profiling tools are indispensable for performance optimization of parallel codes. They allow users to understand where a code spends its time, and to focus optimization efforts on the most time consuming regions. However, two sources of complexity make them difficult to use on large-scale parallel applications. First, the code complexity of parallel applications is increasingly, and identifying the problematic regions in the code is difficult. Traditional profilers show either a flat view or a calling context tree view. Second, most tools average performance data across processes, losing per-process behavior. Diagnosing problems like load imbalance requires profiles from many processes, and manually analyzing profiles from hundreds or thousands of processes is infeasible. We introduce VIPACT, a visualization tool to identify different behaviors in multiple processes. VIPACT introduces “halo nodes” that concisely encode the distributions of runtimes from all processes, and a hybrid tree view that combines the advantages of calling context trees with those of flat profiles. We combine these with approaches such as ring charts, as well as the filtering and subselection of nodes, and we apply these techniques to a production multi-physics code.