Leandro Pereira, C. Bentes, Maria Clicia Stelling de Castro, E. Garcia
{"title":"异构环境下的性能优化案例研究","authors":"Leandro Pereira, C. Bentes, Maria Clicia Stelling de Castro, E. Garcia","doi":"10.1109/SBAC-PADW.2017.11","DOIUrl":null,"url":null,"abstract":"The optimization of legacy codes for fully exploiting the parallelism opportunities provided by modern heterogeneous architectures is a difficult task. Multiple levels of parallelism can be exploited in order to gain the expected performance. This work describes the lessons learned in the performance optimization of a real-world reservoir engineering application composed of thousands of code lines. We study the exploitation of the multiple levels of parallelism, showing a possible, although non-trivial, path to extract performance. Our results show that exploiting thread-level parallelism is not always the best path to derive performance gains. On the other side, vectorization plays a key role in reducing the execution time of the application.","PeriodicalId":325990,"journal":{"name":"2017 International Symposium on Computer Architecture and High Performance Computing Workshops (SBAC-PADW)","volume":"689 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"A Case Study of Performance Optimization in a Heterogeneous Environment\",\"authors\":\"Leandro Pereira, C. Bentes, Maria Clicia Stelling de Castro, E. Garcia\",\"doi\":\"10.1109/SBAC-PADW.2017.11\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The optimization of legacy codes for fully exploiting the parallelism opportunities provided by modern heterogeneous architectures is a difficult task. Multiple levels of parallelism can be exploited in order to gain the expected performance. This work describes the lessons learned in the performance optimization of a real-world reservoir engineering application composed of thousands of code lines. We study the exploitation of the multiple levels of parallelism, showing a possible, although non-trivial, path to extract performance. Our results show that exploiting thread-level parallelism is not always the best path to derive performance gains. On the other side, vectorization plays a key role in reducing the execution time of the application.\",\"PeriodicalId\":325990,\"journal\":{\"name\":\"2017 International Symposium on Computer Architecture and High Performance Computing Workshops (SBAC-PADW)\",\"volume\":\"689 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2017-10-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2017 International Symposium on Computer Architecture and High Performance Computing Workshops (SBAC-PADW)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/SBAC-PADW.2017.11\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2017 International Symposium on Computer Architecture and High Performance Computing Workshops (SBAC-PADW)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SBAC-PADW.2017.11","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
A Case Study of Performance Optimization in a Heterogeneous Environment
The optimization of legacy codes for fully exploiting the parallelism opportunities provided by modern heterogeneous architectures is a difficult task. Multiple levels of parallelism can be exploited in order to gain the expected performance. This work describes the lessons learned in the performance optimization of a real-world reservoir engineering application composed of thousands of code lines. We study the exploitation of the multiple levels of parallelism, showing a possible, although non-trivial, path to extract performance. Our results show that exploiting thread-level parallelism is not always the best path to derive performance gains. On the other side, vectorization plays a key role in reducing the execution time of the application.