K. Komatsu, Ryusuke Egawa, H. Takizawa, Hiroaki Kobayashi
{"title":"使用用户自定义规则的指令生成方法","authors":"K. Komatsu, Ryusuke Egawa, H. Takizawa, Hiroaki Kobayashi","doi":"10.1109/CANDAR.2016.0095","DOIUrl":null,"url":null,"abstract":"The appearance of various high-performance computing (HPC) systems compels a user to write a code considering the characteristic of each HPC system. To describe the system-dependent information without drastic code modifications, the directive sets such as the OpenMP directive set and the OpenACC directive set are useful. However, a code becomes complex to achieve high performance on various HPC systems because different directive sets are required for each HPC system. Thus, the code maintainability and readability are degraded. This paper proposes a directive generation approach that generates various kinds of directive sets using user-defined rules. Instead of several kinds of directive sets, a user writes a special placeholder that is utilized to specify a unique code pattern where several directives are inserted. Then, the special placeholder triggers generation of appropriate directives for each system using a user-defined rule with a code translation framework Xevolver. Because only special placeholders are inserted in a code, the proposed approach can keep the code maintainability and readability. From the demonstration of translation into three kinds of directive-based implementations, it is clarified that the proposed approach can replace directives into a smaller number of special placeholders. Moreover, it is clarified that the proposed approach can realize high performance portability by generating appropriate directives for each HPC system.","PeriodicalId":322499,"journal":{"name":"2016 Fourth International Symposium on Computing and Networking (CANDAR)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"A Directive Generation Approach Using User-Defined Rules\",\"authors\":\"K. Komatsu, Ryusuke Egawa, H. Takizawa, Hiroaki Kobayashi\",\"doi\":\"10.1109/CANDAR.2016.0095\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The appearance of various high-performance computing (HPC) systems compels a user to write a code considering the characteristic of each HPC system. To describe the system-dependent information without drastic code modifications, the directive sets such as the OpenMP directive set and the OpenACC directive set are useful. However, a code becomes complex to achieve high performance on various HPC systems because different directive sets are required for each HPC system. Thus, the code maintainability and readability are degraded. This paper proposes a directive generation approach that generates various kinds of directive sets using user-defined rules. Instead of several kinds of directive sets, a user writes a special placeholder that is utilized to specify a unique code pattern where several directives are inserted. Then, the special placeholder triggers generation of appropriate directives for each system using a user-defined rule with a code translation framework Xevolver. Because only special placeholders are inserted in a code, the proposed approach can keep the code maintainability and readability. From the demonstration of translation into three kinds of directive-based implementations, it is clarified that the proposed approach can replace directives into a smaller number of special placeholders. Moreover, it is clarified that the proposed approach can realize high performance portability by generating appropriate directives for each HPC system.\",\"PeriodicalId\":322499,\"journal\":{\"name\":\"2016 Fourth International Symposium on Computing and Networking (CANDAR)\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2016-11-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2016 Fourth International Symposium on Computing and Networking (CANDAR)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CANDAR.2016.0095\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 Fourth International Symposium on Computing and Networking (CANDAR)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CANDAR.2016.0095","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
A Directive Generation Approach Using User-Defined Rules
The appearance of various high-performance computing (HPC) systems compels a user to write a code considering the characteristic of each HPC system. To describe the system-dependent information without drastic code modifications, the directive sets such as the OpenMP directive set and the OpenACC directive set are useful. However, a code becomes complex to achieve high performance on various HPC systems because different directive sets are required for each HPC system. Thus, the code maintainability and readability are degraded. This paper proposes a directive generation approach that generates various kinds of directive sets using user-defined rules. Instead of several kinds of directive sets, a user writes a special placeholder that is utilized to specify a unique code pattern where several directives are inserted. Then, the special placeholder triggers generation of appropriate directives for each system using a user-defined rule with a code translation framework Xevolver. Because only special placeholders are inserted in a code, the proposed approach can keep the code maintainability and readability. From the demonstration of translation into three kinds of directive-based implementations, it is clarified that the proposed approach can replace directives into a smaller number of special placeholders. Moreover, it is clarified that the proposed approach can realize high performance portability by generating appropriate directives for each HPC system.