{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,1]],"date-time":"2026-05-01T05:03:40Z","timestamp":1777611820094,"version":"3.51.4"},"reference-count":48,"publisher":"Springer Science and Business Media LLC","issue":"4","license":[{"start":{"date-parts":[[2019,7,26]],"date-time":"2019-07-26T00:00:00Z","timestamp":1564099200000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2019,7,26]],"date-time":"2019-07-26T00:00:00Z","timestamp":1564099200000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"funder":[{"DOI":"10.13039\/501100004919","name":"King Abdulaziz City for Science and Technology","doi-asserted-by":"publisher","award":["12-INF3008-04"],"award-info":[{"award-number":["12-INF3008-04"]}],"id":[{"id":"10.13039\/501100004919","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Computing"],"published-print":{"date-parts":[[2020,4]]},"DOI":"10.1007\/s00607-019-00744-1","type":"journal-article","created":{"date-parts":[[2019,7,26]],"date-time":"2019-07-26T06:02:27Z","timestamp":1564120947000},"page":"977-1003","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":9,"title":["A review of CUDA optimization techniques and tools for structured grid computing"],"prefix":"10.1007","volume":"102","author":[{"given":"Mayez A.","family":"Al-Mouhamed","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1167-7319","authenticated-orcid":false,"given":"Ayaz H.","family":"Khan","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3580-5960","authenticated-orcid":false,"given":"Nazeeruddin","family":"Mohammad","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2019,7,26]]},"reference":[{"issue":"9","key":"744_CR1","doi-asserted-by":"publisher","first-page":"3761","DOI":"10.1007\/s11227-017-1972-3","volume":"73","author":"MA Al-Mouhamed","year":"2017","unstructured":"Al-Mouhamed MA, Khan AH (2017) SpMV and BiCG-Stab optimization for a class of hepta-diagonal-sparse matrices on GPU. J Supercomput 73(9):3761\u20133795. \nhttps:\/\/doi.org\/10.1007\/s11227-017-1972-3","journal-title":"J Supercomput"},{"issue":"11","key":"744_CR2","doi-asserted-by":"publisher","first-page":"5690","DOI":"10.1007\/s11227-016-1871-z","volume":"74","author":"M Aldinucci","year":"2018","unstructured":"Aldinucci M, Danelutto M, Drocco M, Kilpatrick P, Misale C, Peretti Pezzi G, Torquati M (2018) A parallel pattern for iterative stencil + reduce. J Supercomput 74(11):5690\u20135705. \nhttps:\/\/doi.org\/10.1007\/s11227-016-1871-z","journal-title":"J Supercomput"},{"key":"744_CR3","unstructured":"Almousa A (2017) Experimental evaluation and enhancement of optimizations of annotation-based and automatic parallel code generators for GPUs. PhD thesis, King Fahd University of Petroleum and Minerals"},{"issue":"2","key":"744_CR4","doi-asserted-by":"publisher","first-page":"9","DOI":"10.1145\/2566630","volume":"40","author":"MS Aln\u00e6s","year":"2014","unstructured":"Aln\u00e6s MS, Logg A, \u00d8lgaard KB, Rognes ME, Wells GN (2014) Unified form language: a domain-specific language for weak formulations of partial differential equations. ACM Trans Math Softw (TOMS) 40(2):9","journal-title":"ACM Trans Math Softw (TOMS)"},{"key":"744_CR5","doi-asserted-by":"crossref","unstructured":"Ansel J, Kamil S, Veeramachaneni K, Ragan-Kelley J, Bosboom J, O\u2019Reilly UM, Amarasinghe S (2014) Opentuner: an extensible framework for program autotuning. In: Proceedings of the 23rd international conference on parallel architectures and compilation. ACM, pp 303\u2013316","DOI":"10.1145\/2628071.2628092"},{"issue":"3","key":"744_CR6","doi-asserted-by":"publisher","first-page":"366","DOI":"10.1177\/1094342015580139","volume":"29","author":"H Anzt","year":"2015","unstructured":"Anzt H, Tomov S, Luszczek P, Sawyer W, Dongarra J (2015) Acceleration of GPU-based krylov solvers via data transfer reduction. Int J High Perform Comput Appl 29(3):366\u2013383","journal-title":"Int J High Perform Comput Appl"},{"key":"744_CR7","doi-asserted-by":"crossref","unstructured":"Bell N, Garland M (2009) Implementing sparse matrix\u2013vector multiplication on throughput-oriented processors. In: Proceedings of the conference on high performance computing networking, storage and analysis. ACM, p 18","DOI":"10.1145\/1654059.1654078"},{"key":"744_CR8","doi-asserted-by":"crossref","unstructured":"Beyer JC, Stotzer EJ, Hart A, de Supinski BR (2011) OpenMP for accelerators. In: IWOMP, lecture notes in computer science. Springer, pp 108\u2013121","DOI":"10.1007\/978-3-642-21487-5_9"},{"issue":"4","key":"744_CR9","first-page":"325","volume":"17","author":"F Bodin","year":"2009","unstructured":"Bodin F, Bihan S (2009) Heterogeneous multicore parallel programming for graphics processing units. Sci Program 17(4):325\u2013336","journal-title":"Sci Program"},{"issue":"6","key":"744_CR10","doi-asserted-by":"publisher","first-page":"101","DOI":"10.1145\/1379022.1375595","volume":"43","author":"U Bondhugula","year":"2008","unstructured":"Bondhugula U, Hartono A, Ramanujam J, Sadayappan P (2008) A practical automatic polyhedral parallelizer and locality optimizer. SIGPLAN Not 43(6):101\u2013113. \nhttps:\/\/doi.org\/10.1145\/1379022.1375595","journal-title":"SIGPLAN Not"},{"issue":"3","key":"744_CR11","doi-asserted-by":"publisher","first-page":"777","DOI":"10.1145\/1015706.1015800","volume":"23","author":"I Buck","year":"2004","unstructured":"Buck I, Foley T, Horn D, Sugerman J, Fatahalian K, Houston M, Hanrahan P (2004) Brook for GPUs: stream computing on graphics hardware. ACM Trans Graph 23(3):777\u2013786. \nhttps:\/\/doi.org\/10.1145\/1015706.1015800","journal-title":"ACM Trans Graph"},{"issue":"1\u20132","key":"744_CR12","doi-asserted-by":"publisher","first-page":"83","DOI":"10.1007\/s00450-010-0112-6","volume":"25","author":"A Cevahir","year":"2010","unstructured":"Cevahir A, Nukada A, Matsuoka S (2010) High performance conjugate gradient solver on multi-GPU clusters using hypergraph partitioning. Comput Sci Res Dev 25(1\u20132):83\u201391","journal-title":"Comput Sci Res Dev"},{"issue":"1","key":"744_CR13","doi-asserted-by":"publisher","first-page":"46","DOI":"10.1109\/99.660313","volume":"5","author":"L Dagum","year":"1998","unstructured":"Dagum L, Menon R (1998) OpenMP: an industry-standard API for shared-memory programming. IEEE Comput Sci Eng 5(1):46\u201355. \nhttps:\/\/doi.org\/10.1109\/99.660313","journal-title":"IEEE Comput Sci Eng"},{"key":"744_CR14","doi-asserted-by":"crossref","unstructured":"Datta K, Murphy M, Volkov V, Williams S, Carter J, Oliker L, Patterson D, Shalf J, Yelick K (2008) Stencil computation optimization and auto-tuning on state-of-the-art multicore architectures. In: Proceedings of the 2008 ACM\/IEEE conference on Supercomputing. IEEE Press, p 4","DOI":"10.1109\/SC.2008.5222004"},{"issue":"1","key":"744_CR15","doi-asserted-by":"publisher","first-page":"62","DOI":"10.1007\/s10766-017-0490-5","volume":"46","author":"A Ernstsson","year":"2018","unstructured":"Ernstsson A, Li L, Kessler C (2018) Skepu 2: flexible and type-safe skeleton programming for heterogeneous parallel systems. Int J Parallel Program 46(1):62\u201380. \nhttps:\/\/doi.org\/10.1007\/s10766-017-0490-5","journal-title":"Int J Parallel Program"},{"key":"744_CR16","unstructured":"Galvez R, van Anders G (2011) Accelerating the solution of families of shifted linear systems with cuda. \narXiv:1102.2143"},{"key":"744_CR17","doi-asserted-by":"publisher","DOI":"10.1155\/2016\/4596943","author":"J Gao","year":"2016","unstructured":"Gao J, Qi P, He G (2016) Efficient CSR-based sparse matrix-vector multiplication on GPU. Math Probl Eng. \nhttps:\/\/doi.org\/10.1155\/2016\/4596943","journal-title":"Math Probl Eng"},{"key":"744_CR18","doi-asserted-by":"publisher","DOI":"10.1002\/9780470932025","volume-title":"Algorithms and parallel computing","author":"F Gebali","year":"2011","unstructured":"Gebali F (2011) Algorithms and parallel computing, vol 84. Wiley, Hoboken"},{"key":"744_CR19","doi-asserted-by":"crossref","unstructured":"Godwin J, Holewinski J, Sadayappan P (2012) High-performance sparse matrix\u2013vector multiplication on GPUs for structured grid computations. In: Proceedings of the 5th annual workshop on general purpose processing with graphics processing units. ACM, pp 47\u201356","DOI":"10.1145\/2159430.2159436"},{"key":"744_CR20","doi-asserted-by":"publisher","first-page":"78","DOI":"10.1109\/TPDS.2010.62","volume":"22","author":"TD Han","year":"2011","unstructured":"Han TD, Abdelrahman TS (2011) hiCUDA: high-level GPGPU programming. IEEE Trans Parallel Distrib Syst 22:78\u201390. \nhttps:\/\/doi.org\/10.1109\/TPDS.2010.62","journal-title":"IEEE Trans Parallel Distrib Syst"},{"key":"744_CR21","doi-asserted-by":"crossref","unstructured":"Huan G, Qian Z (2012) A new method of sparse matrix\u2013vector multiplication on GPU. In: 2012 2nd International conference on computer science and network technology (ICCSNT). IEEE, pp 954\u2013958","DOI":"10.1109\/ICCSNT.2012.6526085"},{"key":"744_CR22","volume-title":"A generalized framework for auto-tuning stencil computations","author":"S Kamil","year":"2009","unstructured":"Kamil S (2009) A generalized framework for auto-tuning stencil computations. Lawrence Berkeley National Laboratory, Berkeley"},{"key":"744_CR23","doi-asserted-by":"crossref","unstructured":"Kamil S, Chan C, Oliker L, Shalf J, Williams S (2010) An auto-tuning framework for parallel multicore stencil computations. In: 2010 IEEE international symposium on parallel and distributed processing (IPDPS). IEEE, pp 1\u201312","DOI":"10.1109\/IPDPS.2010.5470421"},{"issue":"4","key":"744_CR24","doi-asserted-by":"publisher","first-page":"801","DOI":"10.1007\/s10766-015-0378-1","volume":"44","author":"A Khan","year":"2016","unstructured":"Khan A, Al-Mouhamed M, Fatayer A, Mohammad N (2016) Optimizing the matrix multiplication using strassen and winograd algorithms with limited recursions on many-core. Int J Parallel Program 44(4):801\u2013830","journal-title":"Int J Parallel Program"},{"issue":"3","key":"744_CR25","doi-asserted-by":"publisher","first-page":"551","DOI":"10.1007\/s10766-016-0433-6","volume":"45","author":"AH Khan","year":"2017","unstructured":"Khan AH, Al-Mouhamed M, Al-Mulhem M, Ahmed AF (2017) RT-CUDA: a software tool for CUDA code restructuring. Int J Parallel Program 45(3):551\u2013594","journal-title":"Int J Parallel Program"},{"issue":"4","key":"744_CR26","doi-asserted-by":"publisher","first-page":"31:1","DOI":"10.1145\/2400682.2400690","volume":"9","author":"M Khan","year":"2013","unstructured":"Khan M, Basu P, Rudy G, Hall M, Chen C, Chame J (2013) A script-based autotuning compiler system to generate high-performance cuda code. ACM Trans Archit Code Optim 9(4):31:1\u201331:25. \nhttps:\/\/doi.org\/10.1145\/2400682.2400690","journal-title":"ACM Trans Archit Code Optim"},{"issue":"1","key":"744_CR27","first-page":"4","volume":"8","author":"S Lee","year":"2013","unstructured":"Lee S, Eigenmann R (2013) OpenMPC: extended OpenMP for efficient programming and tuning on GPUs. Int J Comput Sci Eng (IJCSE) 8(1):4\u201320","journal-title":"Int J Comput Sci Eng (IJCSE)"},{"key":"744_CR28","doi-asserted-by":"crossref","unstructured":"Leung A, Vasilache N, Meister B, Baskaran M, Wohlford D, Bastoul C, Lethin R (2010) A mapping path for multi-GPGPU accelerated computers from a portable high level programming abstraction. In: Proceedings of the 3rd workshop on general-purpose computation on graphics processing units, GPGPU \u201910. ACM, New York, NY, USA, pp 51\u201361","DOI":"10.1145\/1735688.1735698"},{"key":"744_CR29","doi-asserted-by":"crossref","unstructured":"Liao SW, Du Z, Wu G, Lueh GY (2006) Data and computation transformations for brook streaming applications on multiprocessors. In: Fourth IEEE\/ACM international symposium on code generation and optimization (CGO). pp 196\u2013207","DOI":"10.1109\/CGO.2006.13"},{"issue":"5","key":"744_CR30","doi-asserted-by":"publisher","first-page":"S209","DOI":"10.1137\/120883153","volume":"35","author":"D Lowell","year":"2013","unstructured":"Lowell D, Godwin J, Holewinski J, Karthik D, Choudary C, Mametjanov A, Norris B, Sabin G, Sadayappan P, Sarich J (2013) Stencil-aware GPU optimization of iterative solvers. SIAM J Sci Comput 35(5):S209\u2013S228","journal-title":"SIAM J Sci Comput"},{"key":"744_CR31","doi-asserted-by":"crossref","unstructured":"Mametjanov A, Lowell D, Ma CC, Norris B (2012) Autotuning stencil-based computations on GPUs. In: 2012 IEEE international conference on cluster computing (CLUSTER). IEEE, pp 266\u2013274","DOI":"10.1109\/CLUSTER.2012.46"},{"key":"744_CR32","unstructured":"Maruyama N, Aoki T (2014) Optimizing stencil computations for NVIDIA Kepler GPUs. In: Proceedings of the 1st international workshop on high-performance stencil computations, Vienna. pp 89\u201395"},{"key":"744_CR33","doi-asserted-by":"crossref","unstructured":"Mueller K, Xu F, Neophytou N (2007) Why do commodity graphics hardware boards (GPUs) work so well for acceleration of computed tomography? Proc SPIE 6498:64980N \u2013 6498 \u2013 12","DOI":"10.1117\/12.716797"},{"key":"744_CR34","unstructured":"OpenMP: The OpenMP\u00aeAPI specification for parallel programming (2018). \nhttp:\/\/openmp.org\/wp\/\n\n. Accessed Jan 2019"},{"key":"744_CR35","doi-asserted-by":"crossref","unstructured":"Peercy M, Segal M, Gerstmann D (2006) A performance-oriented data parallel virtual machine for GPUs. In: SIGGRAPH \u201906: ACM SIGGRAPH 2006 Sketches. ACM, New York, NY, USA, p 184","DOI":"10.1145\/1179849.1180079"},{"key":"744_CR36","unstructured":"PGI: Portland group (2019). \nhttp:\/\/www.pgroup.com\/resources\/accel.htm\n\n. Accessed Jan 2019"},{"key":"744_CR37","unstructured":"Rivera-Polanco D (2009) Collective communication and barrier synchronization on NVIDIA CUDA GPU. Ms thesis, University of Kentucky"},{"key":"744_CR38","doi-asserted-by":"crossref","unstructured":"Sedaghati N, Ashari A, Pouchet LN, Parthasarathy S, Sadayappan P (2015) Characterizing dataset dependence for sparse matrix\u2013vector multiplication on GPUs. In: Proceedings of the 2nd workshop on parallel programming for analytics applications. ACM, pp 17\u201324","DOI":"10.1145\/2726935.2726941"},{"key":"744_CR39","doi-asserted-by":"crossref","unstructured":"Sedaghati N, Mu T, Pouchet LN, Parthasarathy S, Sadayappan P (2015) Automatic selection of sparse matrix representation on GPUs. In: Proceedings of the 29th ACM on international conference on supercomputing. ACM, pp 99\u2013108","DOI":"10.1145\/2751205.2751244"},{"key":"744_CR40","unstructured":"Tojo N, Tanabe K, Matsuzaki H (2014) US Patent and Trademark Office, Washington, DC, US Patent No. 8,732,684"},{"issue":"5","key":"744_CR41","doi-asserted-by":"publisher","first-page":"232","DOI":"10.1016\/j.parco.2009.12.005","volume":"36","author":"S Tomov","year":"2010","unstructured":"Tomov S, Dongarra J, Baboulin M (2010) Towards dense linear algebra for hybrid GPU accelerated manycore systems. Parallel Comput 36(5):232\u2013240","journal-title":"Parallel Comput"},{"key":"744_CR42","first-page":"1","volume-title":"Languages and compilers for parallel computing","author":"SZ Ueng","year":"2008","unstructured":"Ueng SZ, Lathara M, Baghsorkhi SS, Hwu WMW (2008) Cuda-lite: reducing GPU programming complexity. In: Amaral JN (ed) Languages and compilers for parallel computing. Springer, Berlin, pp 1\u201315"},{"key":"744_CR43","doi-asserted-by":"crossref","unstructured":"Volkov V, Demmel J (2008) Benchmarking GPUs to tune dense linear algebra. In: Proceedings of the ACM\/IEEE conference on high performance computing. p 31","DOI":"10.1109\/SC.2008.5214359"},{"key":"744_CR44","doi-asserted-by":"publisher","unstructured":"Wang Z, Xu X, Zhao W, Zhang Y, He S (2010) Optimizing sparse matrix\u2013vector multiplication on CUDA. In: International conference on education technology and computer. \nhttps:\/\/doi.org\/10.1109\/ICETC.2010.5529724","DOI":"10.1109\/ICETC.2010.5529724"},{"key":"744_CR45","unstructured":"Wikipedia: Algorithmic skeleton (2019). \nhttps:\/\/en.wikipedia.org\/wiki\/Algorithmic_skeleton\n\n. Accessed 01 June 2019"},{"issue":"3","key":"744_CR46","doi-asserted-by":"publisher","first-page":"178","DOI":"10.1016\/j.parco.2008.12.006","volume":"35","author":"S Williams","year":"2009","unstructured":"Williams S, Oliker L, Vuduc R, Shalf J, Yelick K, Demmel J (2009) Optimization of sparse matrix\u2013vector multiplication on emerging multicore platforms. Parallel Comput 35(3):178\u2013194","journal-title":"Parallel Comput"},{"key":"744_CR47","unstructured":"Xiao S, chun Feng W (2010) Inter-block GPU communication via fast barrier synchronization. In: IPDPS. pp 1\u201312"},{"key":"744_CR48","unstructured":"Yang M, Sun C, Li Z, Cao D (2012) An improved sparse matrix\u2013vector multiplication kernel for solving modified equation in large scale power flow calculation on CUDA. In: IEEE 7th international power electronics and motion control conference\u2014ECCE Asia"}],"container-title":["Computing"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s00607-019-00744-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s00607-019-00744-1\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s00607-019-00744-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,7,24]],"date-time":"2020-07-24T23:24:15Z","timestamp":1595633055000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s00607-019-00744-1"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,7,26]]},"references-count":48,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2020,4]]}},"alternative-id":["744"],"URL":"https:\/\/doi.org\/10.1007\/s00607-019-00744-1","relation":{},"ISSN":["0010-485X","1436-5057"],"issn-type":[{"value":"0010-485X","type":"print"},{"value":"1436-5057","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,7,26]]},"assertion":[{"value":"18 March 2019","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"13 July 2019","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"26 July 2019","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}