R. Araujo, Daniel Henrique Barboza, Rafael Sene, Rafael Medeiros Teixeira, Renato Stoffalette João, Wainer Santos Moschetta
{"title":"用于优化应用程序性能的CPI分解模型插件","authors":"R. Araujo, Daniel Henrique Barboza, Rafael Sene, Rafael Medeiros Teixeira, Renato Stoffalette João, Wainer Santos Moschetta","doi":"10.1109/TOPI.2013.6597191","DOIUrl":null,"url":null,"abstract":"Effectiveness and quality are fundamental characteristics for the development of a product. In order to support them, one needs to ensure that an application optimization level is at its best. The most widely used metric for evaluating an application performance is the CPI (Cycles Per Instruction), i.e., the number of clock cycles that takes place when an instruction is executed. We have developed a CPI Breakdown Model Plug-in, that automates the profiling of an application in the Power architecture, breaking it down into several groups of CPI events and metrics in order to identify possible bottlenecks. When analyzing such events and metrics the user can become aware of which operations are causing the processor to stall, and consequently enhance the application source code. We have discussed the adaptation of some command-line tools to be used by our CPI plug-in, which is integrated into the IBM Software Development Toolkit for PowerLinux, an Eclipse based IDE comprising a set of mainstream C/C++ development tools along with several in-house IBM ones. A case study that shows the usefulness of our approach is presented and details on how to optimize an application are discussed.","PeriodicalId":274157,"journal":{"name":"2013 3rd International Workshop on Developing Tools as Plug-Ins (TOPI)","volume":"25 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"A CPI breakdown model plug-in for optimizing application performance\",\"authors\":\"R. Araujo, Daniel Henrique Barboza, Rafael Sene, Rafael Medeiros Teixeira, Renato Stoffalette João, Wainer Santos Moschetta\",\"doi\":\"10.1109/TOPI.2013.6597191\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Effectiveness and quality are fundamental characteristics for the development of a product. In order to support them, one needs to ensure that an application optimization level is at its best. The most widely used metric for evaluating an application performance is the CPI (Cycles Per Instruction), i.e., the number of clock cycles that takes place when an instruction is executed. We have developed a CPI Breakdown Model Plug-in, that automates the profiling of an application in the Power architecture, breaking it down into several groups of CPI events and metrics in order to identify possible bottlenecks. When analyzing such events and metrics the user can become aware of which operations are causing the processor to stall, and consequently enhance the application source code. We have discussed the adaptation of some command-line tools to be used by our CPI plug-in, which is integrated into the IBM Software Development Toolkit for PowerLinux, an Eclipse based IDE comprising a set of mainstream C/C++ development tools along with several in-house IBM ones. A case study that shows the usefulness of our approach is presented and details on how to optimize an application are discussed.\",\"PeriodicalId\":274157,\"journal\":{\"name\":\"2013 3rd International Workshop on Developing Tools as Plug-Ins (TOPI)\",\"volume\":\"25 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2013-05-21\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2013 3rd International Workshop on Developing Tools as Plug-Ins (TOPI)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/TOPI.2013.6597191\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2013 3rd International Workshop on Developing Tools as Plug-Ins (TOPI)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/TOPI.2013.6597191","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
摘要
有效性和质量是产品开发的基本特征。为了支持它们,需要确保应用程序优化级别处于最佳状态。用于评估应用程序性能的最广泛使用的指标是CPI (Cycles Per Instruction),即执行一条指令时发生的时钟周期数。我们已经开发了一个CPI分解模型插件,它可以自动分析Power架构中的应用程序,将其分解为几组CPI事件和指标,以便识别可能的瓶颈。在分析这些事件和指标时,用户可以了解哪些操作导致处理器停滞,从而增强应用程序源代码。我们已经讨论了CPI插件使用的一些命令行工具的适配,CPI插件集成到IBM软件开发工具包中,PowerLinux是一个基于Eclipse的IDE,包含一组主流的C/ c++开发工具以及几个内部IBM工具。本文给出了一个案例研究,展示了我们的方法的有效性,并详细讨论了如何优化应用程序。
A CPI breakdown model plug-in for optimizing application performance
Effectiveness and quality are fundamental characteristics for the development of a product. In order to support them, one needs to ensure that an application optimization level is at its best. The most widely used metric for evaluating an application performance is the CPI (Cycles Per Instruction), i.e., the number of clock cycles that takes place when an instruction is executed. We have developed a CPI Breakdown Model Plug-in, that automates the profiling of an application in the Power architecture, breaking it down into several groups of CPI events and metrics in order to identify possible bottlenecks. When analyzing such events and metrics the user can become aware of which operations are causing the processor to stall, and consequently enhance the application source code. We have discussed the adaptation of some command-line tools to be used by our CPI plug-in, which is integrated into the IBM Software Development Toolkit for PowerLinux, an Eclipse based IDE comprising a set of mainstream C/C++ development tools along with several in-house IBM ones. A case study that shows the usefulness of our approach is presented and details on how to optimize an application are discussed.