{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,28]],"date-time":"2025-09-28T04:06:45Z","timestamp":1759032405543,"version":"3.37.3"},"reference-count":33,"publisher":"Springer Science and Business Media LLC","issue":"2","license":[{"start":{"date-parts":[[2016,5,13]],"date-time":"2016-05-13T00:00:00Z","timestamp":1463097600000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"funder":[{"DOI":"10.13039\/501100004963","name":"Seventh Framework Programme (BE)","doi-asserted-by":"publisher","award":["609666"],"award-info":[{"award-number":["609666"]}],"id":[{"id":"10.13039\/501100004963","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100003329","name":"Ministerio de Econom\u00eda y Competitividad (ES)","doi-asserted-by":"publisher","award":["TIN2013-41350-P"],"award-info":[{"award-number":["TIN2013-41350-P"]}],"id":[{"id":"10.13039\/501100003329","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Int J Parallel Prog"],"published-print":{"date-parts":[[2017,4]]},"DOI":"10.1007\/s10766-016-0425-6","type":"journal-article","created":{"date-parts":[[2016,5,13]],"date-time":"2016-05-13T14:26:15Z","timestamp":1463149575000},"page":"262-282","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":6,"title":["Automatic CPU\/GPU Generation of Multi-versioned OpenCL Kernels for C++ Scientific Applications"],"prefix":"10.1007","volume":"45","author":[{"given":"Rafael","family":"Sotomayor","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Luis Miguel","family":"Sanchez","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Javier","family":"Garcia Blas","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Javier","family":"Fernandez","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"J. Daniel","family":"Garcia","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2016,5,13]]},"reference":[{"key":"425_CR1","doi-asserted-by":"crossref","unstructured":"Aldinucci, M., Meneghin, M., Torquati, M.: Efficient smith-waterman on multi-core with fastflow. In: 2010 18th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP), pp. 195\u2013199. IEEE (2010)","DOI":"10.1109\/PDP.2010.93"},{"key":"425_CR2","unstructured":"Baghdadi, S., Gr\u00f6\u00dflinger, A., Cohen, A.: Putting automatic polyhedral compilation for GPGPU to work. In: Proceedings of the 15th Workshop on Compilers for Parallel Computers (CPC\u201910). Vienna, Austria (2010)"},{"key":"425_CR3","unstructured":"Bar\u00e1th, \u00c1., Porkol\u00e1b, Z.: Attribute-based checking of C++ move semantics. In: Proceedings of the 3rd Workshop on Software Quality Analysis, Monitoring, Improvement and Applications (SQAMIA 2014), Lovran, Croatia, September 19-22, 2014., pp. 9\u201314 (2014)"},{"key":"425_CR4","series-title":"Lecture notes in computer science","doi-asserted-by":"crossref","first-page":"244","DOI":"10.1007\/978-3-642-11970-5_14","volume-title":"Compiler construction","author":"M Baskaran","year":"2010","unstructured":"Baskaran, M., Ramanujam, J., Sadayappan, P.: Automatic C-to-CUDA code generation for affine programs. In: Gupta, R. (ed.) Compiler construction. Lecture notes in computer science, vol. 6011, pp. 244\u2013263. Springer, Berlin (2010)"},{"key":"425_CR5","doi-asserted-by":"crossref","unstructured":"Baskaran, M.M., Bondhugula, U., Krishnamoorthy, S., Ramanujam, J., Rountev, A., Sadayappan, P.: A compiler framework for optimization of affine loop nests for gpgpus. In: Proceedings of the 22Nd Annual International Conference on Supercomputing. ICS \u201908, pp. 225\u2013234. ACM, New York, NY, USA (2008)","DOI":"10.1145\/1375527.1375562"},{"key":"425_CR6","unstructured":"Bastoul, C.: Extracting polyhedral representation from high level languages. Tech. rep., LRI, Paris-Sud University (2008). Related to the Clan tool"},{"key":"425_CR7","doi-asserted-by":"crossref","unstructured":"Bertolli, C., Antao, S.F., Eichenberger, A.E., O\u2019Brien, K., Sura, Z., Jacob, A.C., Chen, T., Sallenave, O.: Coordinating GPU Threads for OpenMP 4.0 in LLVM. In: Proceedings of the 2014 LLVM Compiler Infrastructure in HPC. LLVM-HPC \u201914, pp. 12\u201321. IEEE Press, Piscataway, NJ, USA (2014)","DOI":"10.1109\/LLVM-HPC.2014.10"},{"key":"425_CR8","doi-asserted-by":"crossref","unstructured":"Bhattacharyya, A., Amaral, J.N.: Automatic Speculative Parallelization of Loops Using Polyhedral Dependence Analysis. In: Proceedings of the First International Workshop on Code OptimiSation for MultI and Many Cores, COSMIC \u201913, pp. 1:1\u20131:9. ACM, New York, NY, USA (2013)","DOI":"10.1145\/2446920.2446921"},{"key":"425_CR9","doi-asserted-by":"crossref","unstructured":"Bondhugula, U., Bandishti, V., Cohen, A., Potron, G., Vasilache, N.: Tiling and optimizing time-iterated computations on periodic domains. In: Proceedings of the 23rd International Conference on Parallel Architectures and Compilation. PACT \u201914, pp. 39\u201350. ACM, New York, NY, USA (2014)","DOI":"10.1145\/2628071.2628106"},{"key":"425_CR10","volume-title":"Learning OpenCV: computer vision with the OpenCV library","author":"G Bradski","year":"2008","unstructured":"Bradski, G., Kaehler, A.: Learning OpenCV: computer vision with the OpenCV library. O\u2019Reilly Media, Inc., California (2008)"},{"key":"425_CR11","doi-asserted-by":"crossref","first-page":"354","DOI":"10.1016\/j.future.2013.12.038","volume":"37","author":"S Campa","year":"2014","unstructured":"Campa, S., Danelutto, M., Goli, M., Gonz\u00e1lez-V\u00e9lez, H., Popescu, A.M., Torquati, M.: Parallel patterns for heterogeneous CPU\/GPU architectures: structured parallelism from cluster to cloud. Future Gener. Comp. Syst. 37, 354\u2013366 (2014)","journal-title":"Future Gener. Comp. Syst."},{"key":"425_CR12","unstructured":"Doerfert, J., Hammacher, C., Streit, K., Hack, S.: SPolly: Speculative Optimizations in the Polyhedral Model. In: Proceedings 3rd International Workshop on Polyhedral Compilation Techniques (IMPACT), pp. 55\u201361. Berlin, Germany (2013)"},{"key":"425_CR13","doi-asserted-by":"crossref","unstructured":"Feld, D., Soddemann, T., J\u00fcnger, M., Mallach, S.: Hardware-aware automatic code-transformation to support compilers in exploiting the multi-level parallel potential of modern CPUs. In: Proceedings of the 2015 International Workshop on Code Optimisation for Multi and Many Cores, COSMIC \u201915, pp. 2:1\u20132:10. ACM, New York, NY, USA (2015)","DOI":"10.1145\/2723772.2723776"},{"key":"425_CR14","doi-asserted-by":"crossref","unstructured":"Grewe, D., O\u2019Boyle, M.F.P.: A static task partitioning approach for heterogeneous systems using opencl. In: Proceedings of the 20th International Conference on Compiler Construction: Part of the Joint European Conferences on Theory and Practice of Software. CC\u201911\/ETAPS\u201911, pp. 286\u2013305. Springer-Verlag, Berlin, Heidelberg (2011)","DOI":"10.1007\/978-3-642-19861-8_16"},{"key":"425_CR15","doi-asserted-by":"crossref","unstructured":"Grewe, D., Wang, Z., O\u2019Boyle, M.: Portable mapping of data parallel programs to OpenCL for heterogeneous systems. In: Code Generation and Optimization (CGO), 2013 IEEE\/ACM International Symposium on, pp. 1\u201310 (2013)","DOI":"10.1109\/CGO.2013.6494993"},{"issue":"04","key":"425_CR16","doi-asserted-by":"crossref","first-page":"1250,010","DOI":"10.1142\/S0129626412500107","volume":"22","author":"T GROSSER","year":"2012","unstructured":"GROSSER, T., GROESSLINGER, A., LENGAUER, C.: Polly\u2014performing polyhedral optimizations on a low-level intermediate representation. Parallel Proc. Lett. 22(04), 1250,010 (2012)","journal-title":"Parallel Proc. Lett."},{"key":"425_CR17","unstructured":"ISO\/IEC: Information technology\u2014programming languages \u2013 C++. International Standard ISO\/IEC 14882:20111, ISO\/IEC, Geneva, Switzerland (2011)"},{"key":"425_CR18","doi-asserted-by":"crossref","unstructured":"Lincke, R., Lundberg, J., L\u00f6we, W.: Comparing software metrics tools. In: Proceedings of the 2008 International Symposium on Software Testing and Analysis. ISSTA \u201908, pp. 131\u2013142. ACM, New York, NY, USA (2008)","DOI":"10.1145\/1390630.1390648"},{"key":"425_CR19","doi-asserted-by":"crossref","unstructured":"Ma, K., Li, X., Chen, W., Zhang, C., Wang, X.: GreenGPU: A holistic approach to energy efficiency in GPU-CPU heterogeneous architectures. In: 2012 41st International Conference on Parallel Processing (ICPP), pp. 48\u201357. IEEE (2012)","DOI":"10.1109\/ICPP.2012.31"},{"issue":"4","key":"425_CR20","doi-asserted-by":"crossref","first-page":"308","DOI":"10.1109\/TSE.1976.233837","volume":"2","author":"TJ McCabe","year":"1976","unstructured":"McCabe, T.J.: A complexity measure. IEEE Trans. Softw. Eng. 2(4), 308\u2013320 (1976)","journal-title":"IEEE Trans. Softw. Eng."},{"key":"425_CR21","unstructured":"Mikushin, D., Likhogrud, N., Zhang, E.Z., Bergstrom, C.: KernelGen - The Design and Implementation of a Next Generation Compiler Platform for Accelerating Numerical Models on GPUs. In: 2014 IEEE International Parallel & Distributed Processing Symposium Workshops, Phoenix, AZ, USA, May 19-23, 2014, pp. 1011\u20131020. IEEE (2014)"},{"issue":"4","key":"425_CR22","doi-asserted-by":"crossref","first-page":"35:1","DOI":"10.1145\/2665079","volume":"11","author":"C Nugteren","year":"2014","unstructured":"Nugteren, C., Corporaal, H.: Bones: an automatic skeleton-based C-to-CUDA compiler for GPUs. ACM Trans. Archit. Code Optim. 11(4), 35:1\u201335:25 (2014)","journal-title":"ACM Trans. Archit. Code Optim."},{"key":"425_CR23","unstructured":"OpenCL: open computing language. http:\/\/www.khronos.org\/opencl (2015)"},{"key":"425_CR24","unstructured":"Par4All: automatic parallelizing and optimizing compiler. http:\/\/www.par4all.org\/ (2015)"},{"key":"425_CR25","unstructured":"PPCG: Automatic parallelizing and optimizing compiler. http:\/\/freecode.com\/projects\/ppcg (2015)"},{"key":"425_CR26","unstructured":"REPARA website (2015). http:\/\/repara-project.eu\/"},{"key":"425_CR27","unstructured":"Saaty, T.: Fundamentals of the analytic hierarchy process. RWS Publications, 4922 Ellsworth Avenue, Pittsburgh, PA 15413 (2000)"},{"issue":"3","key":"425_CR28","doi-asserted-by":"crossref","first-page":"139","DOI":"10.1007\/s00354-013-0301-5","volume":"31","author":"LM Sanchez","year":"2013","unstructured":"Sanchez, L.M., Fernandez, J., Sotomayor, R., Escolar, S., Garcia, J.D.: A comparative study and evaluation of parallel programming models for shared-memory parallel architectures. New Gener. Comput. 31(3), 139\u2013161 (2013)","journal-title":"New Gener. Comput."},{"key":"425_CR29","doi-asserted-by":"crossref","unstructured":"Seo, S., Jo, G., Lee, J.: Performance characterization of the NAS parallel benchmarks in OpenCL. In: Workload Characterization (IISWC), 2011 IEEE International Symposium on, pp. 137\u2013148 (2011)","DOI":"10.1109\/IISWC.2011.6114174"},{"key":"425_CR30","doi-asserted-by":"crossref","unstructured":"Serban, T., Danelutto, M., Kilpatrick, P.: Autonomic scheduling of tasks from data parallel patterns to CPU\/GPU core mixes. In: International Conference on High Performance Computing & Simulation, HPCS 2013, Helsinki, Finland, July 1-5, 2013, pp. 72\u201379 (2013)","DOI":"10.1109\/HPCSim.2013.6641395"},{"issue":"3","key":"425_CR31","first-page":"11","volume":"82","author":"K Thouti","year":"2013","unstructured":"Thouti, K., Sathe, S.R.: A methodology for translating C-programs to openCL. Int. J. Comput. Appl. 82(3), 11\u201315 (2013)","journal-title":"Int. J. Comput. Appl."},{"key":"425_CR32","doi-asserted-by":"crossref","unstructured":"Vi\u00f1as, M., Fraguela, B.B., Bozkus, Z., Andrade, D.: Improving OpenCL programmability with the heterogeneous programming library. Procedia Computer Science 51, 110\u2013119 (2015). International Conference On Computational Science, ICCS 2015Computational Science at the Gates of Nature","DOI":"10.1016\/j.procs.2015.05.208"},{"key":"425_CR33","doi-asserted-by":"crossref","unstructured":"Wienke, S., Springer, P., Terboven, C., an Mey, D.: OpenACC: First experiences with real-world applications. In: Proceedings of the 18th International Conference on Parallel Processing. Euro-Par\u201912, pp. 859\u2013870. Springer, Berlin, Heidelberg (2012)","DOI":"10.1007\/978-3-642-32820-6_85"}],"container-title":["International Journal of Parallel Programming"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10766-016-0425-6.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s10766-016-0425-6\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10766-016-0425-6","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10766-016-0425-6.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,9,7]],"date-time":"2019-09-07T12:52:52Z","timestamp":1567860772000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s10766-016-0425-6"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,5,13]]},"references-count":33,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2017,4]]}},"alternative-id":["425"],"URL":"https:\/\/doi.org\/10.1007\/s10766-016-0425-6","relation":{},"ISSN":["0885-7458","1573-7640"],"issn-type":[{"type":"print","value":"0885-7458"},{"type":"electronic","value":"1573-7640"}],"subject":[],"published":{"date-parts":[[2016,5,13]]}}}