{"title":"开放式ACC项目审查:绩效分析方法","authors":"R. Dietrich, G. Juckeland, M. Wolfe","doi":"10.1109/ICPP.2015.40","DOIUrl":null,"url":null,"abstract":"The Open ACC standard has been developed to simplify parallel programming of heterogeneous systems. Based on a set of high-level compiler directives it allows application developers to offload code regions from a host CPU to an accelerator without the need for low-level programming with CUDA or Open CL. Details are implicit in the programming model and managed by Open ACC API-enabled compilers and runtimes. However, it is still possible for the application developer to explicitly specify several performance-related details for the execution. To tune an Open ACC program and efficiently utilize available hardware resources, sophisticated performance analysis tools are required. In this paper we present a framework for detailed analysis of Open ACC applications. We describe new analysis capabilities introduced with an Open ACC tools interface and depict the integration of performance analysis for low-level programming models. As proof of concept we implemented the concept into the measurement infrastructure Score-P and the trace browser Vampir. This provides the program developer with a clearer understanding of the dynamic runtime behavior of the application and for systematic identification of potential bottlenecks.","PeriodicalId":423007,"journal":{"name":"2015 44th International Conference on Parallel Processing","volume":"86 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"11","resultStr":"{\"title\":\"Open ACC Programs Examined: A Performance Analysis Approach\",\"authors\":\"R. Dietrich, G. Juckeland, M. Wolfe\",\"doi\":\"10.1109/ICPP.2015.40\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The Open ACC standard has been developed to simplify parallel programming of heterogeneous systems. Based on a set of high-level compiler directives it allows application developers to offload code regions from a host CPU to an accelerator without the need for low-level programming with CUDA or Open CL. Details are implicit in the programming model and managed by Open ACC API-enabled compilers and runtimes. However, it is still possible for the application developer to explicitly specify several performance-related details for the execution. To tune an Open ACC program and efficiently utilize available hardware resources, sophisticated performance analysis tools are required. In this paper we present a framework for detailed analysis of Open ACC applications. We describe new analysis capabilities introduced with an Open ACC tools interface and depict the integration of performance analysis for low-level programming models. As proof of concept we implemented the concept into the measurement infrastructure Score-P and the trace browser Vampir. This provides the program developer with a clearer understanding of the dynamic runtime behavior of the application and for systematic identification of potential bottlenecks.\",\"PeriodicalId\":423007,\"journal\":{\"name\":\"2015 44th International Conference on Parallel Processing\",\"volume\":\"86 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2015-09-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"11\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2015 44th International Conference on Parallel Processing\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ICPP.2015.40\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2015 44th International Conference on Parallel Processing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICPP.2015.40","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 11
摘要
Open ACC标准的开发是为了简化异构系统的并行编程。基于一组高级编译器指令,它允许应用程序开发人员将代码区域从主机CPU卸载到加速器,而无需使用CUDA或Open CL进行低级编程。细节隐含在编程模型中,并由启用Open ACC api的编译器和运行时管理。但是,应用程序开发人员仍然可以显式地为执行指定一些与性能相关的细节。为了调优Open ACC程序并有效地利用可用的硬件资源,需要复杂的性能分析工具。在本文中,我们提出了一个详细分析Open ACC应用的框架。我们描述了由Open ACC工具接口引入的新分析功能,并描述了低级编程模型的性能分析集成。作为概念验证,我们将该概念实现到测量基础设施Score-P和跟踪浏览器Vampir中。这使程序开发人员能够更清楚地了解应用程序的动态运行时行为,并能够系统地识别潜在的瓶颈。
Open ACC Programs Examined: A Performance Analysis Approach
The Open ACC standard has been developed to simplify parallel programming of heterogeneous systems. Based on a set of high-level compiler directives it allows application developers to offload code regions from a host CPU to an accelerator without the need for low-level programming with CUDA or Open CL. Details are implicit in the programming model and managed by Open ACC API-enabled compilers and runtimes. However, it is still possible for the application developer to explicitly specify several performance-related details for the execution. To tune an Open ACC program and efficiently utilize available hardware resources, sophisticated performance analysis tools are required. In this paper we present a framework for detailed analysis of Open ACC applications. We describe new analysis capabilities introduced with an Open ACC tools interface and depict the integration of performance analysis for low-level programming models. As proof of concept we implemented the concept into the measurement infrastructure Score-P and the trace browser Vampir. This provides the program developer with a clearer understanding of the dynamic runtime behavior of the application and for systematic identification of potential bottlenecks.