{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,2]],"date-time":"2025-03-02T05:53:05Z","timestamp":1740894785133,"version":"3.38.0"},"reference-count":15,"publisher":"SAGE Publications","issue":"6","license":[{"start":{"date-parts":[[2017,3,26]],"date-time":"2017-03-26T00:00:00Z","timestamp":1490486400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/journals.sagepub.com\/page\/policies\/text-and-data-mining-license"}],"content-domain":{"domain":["journals.sagepub.com"],"crossmark-restriction":true},"short-container-title":["The International Journal of High Performance Computing Applications"],"published-print":{"date-parts":[[2018,11]]},"abstract":"<jats:p> Heterogeneous parallel platforms, comprising multiple processing units and architectures, have become a cornerstone in improving the overall performance and energy efficiency of scientific and engineering applications. Nevertheless, taking full advantage of their resources comes along with a variety of difficulties: developers require technical expertise in using different parallel programming frameworks and previous knowledge about the algorithms used underneath by the application. To alleviate this burden, we present an adaptive offline implementation selector that allows users to better exploit resources provided by heterogeneous platforms. Specifically, this framework selects, at compile time, the tuple device-implementation that delivers the best performance on a given platform. The user interface of the framework leverages two C++ language features: attributes and concepts. To evaluate the benefits of this framework, we analyse the global performance and convergence of the selector using two different use cases. The experimental results demonstrate that the proposed framework allows users enhancing performance while minimizing efforts to tune applications targeted to heterogeneous platforms. Furthermore, we also demonstrate that our framework delivers comparable performance figures with respect to other approaches. <\/jats:p>","DOI":"10.1177\/1094342017698746","type":"journal-article","created":{"date-parts":[[2017,3,27]],"date-time":"2017-03-27T06:10:05Z","timestamp":1490595005000},"page":"854-863","update-policy":"https:\/\/doi.org\/10.1177\/sage-journals-update-policy","source":"Crossref","is-referenced-by-count":3,"title":["An adaptive offline implementation selector for heterogeneous parallel platforms"],"prefix":"10.1177","volume":"32","author":[{"given":"David","family":"del Rio Astorga","sequence":"first","affiliation":[{"name":"Department of Computer Science, University Carlos III of Madrid, Legan\u00e9s, Spain"}]},{"given":"Manuel F","family":"Dolz","sequence":"additional","affiliation":[{"name":"Department of Computer Science, University Carlos III of Madrid, Legan\u00e9s, Spain"}]},{"given":"Luis Miguel","family":"S\u00e1nchez","sequence":"additional","affiliation":[{"name":"Department of Computer Science, University Carlos III of Madrid, Legan\u00e9s, Spain"}]},{"given":"Javier","family":"Fern\u00e1ndez","sequence":"additional","affiliation":[{"name":"Department of Computer Science, University Carlos III of Madrid, Legan\u00e9s, Spain"}]},{"given":"J Daniel","family":"Garc\u00eda","sequence":"additional","affiliation":[{"name":"Department of Computer Science, University Carlos III of Madrid, Legan\u00e9s, Spain"}]}],"member":"179","published-online":{"date-parts":[[2017,3,26]]},"reference":[{"key":"bibr1-1094342017698746","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2011.52"},{"key":"bibr2-1094342017698746","doi-asserted-by":"publisher","DOI":"10.1007\/s00354-013-0301-5"},{"key":"bibr3-1094342017698746","doi-asserted-by":"publisher","DOI":"10.1109\/ICPADS.2006.40"},{"volume-title":"cuBLAS Library User Guide. v5.0 edition","year":"2012","author":"nVidia","key":"bibr4-1094342017698746"},{"key":"bibr5-1094342017698746","volume-title":"GNU Scientific Library Reference Manual - Third Edition","author":"Gough B","year":"2009","edition":"3"},{"issue":"4","key":"bibr6-1094342017698746","first-page":"1","volume":"11","author":"Wang Z","year":"2014","journal-title":"ACM Trans Archit Code Optim"},{"key":"bibr7-1094342017698746","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2014.2329494"},{"key":"bibr8-1094342017698746","doi-asserted-by":"publisher","DOI":"10.1109\/HPCC.2014.65"},{"key":"bibr9-1094342017698746","doi-asserted-by":"crossref","unstructured":"Duran A, Ayguad\u00e9 E, Badia RM, (2011) Ompss: a proposal for programming heterogeneous multi-core architectures. Parallel Processing Letters 21: 173\u2013193. DOI: http:\/\/dx.doi.org\/10.1142\/S0129626411000151.","DOI":"10.1142\/S0129626411000151"},{"key":"bibr10-1094342017698746","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-45293-2_13"},{"key":"bibr11-1094342017698746","unstructured":"Maurer J, Wong M (2008) Towards support for attributes in C++ (Revision 6). In: JTC1\/SC22\/WG21 - The C++ Standards Committee. N2761=08-0271."},{"key":"bibr12-1094342017698746","unstructured":"Sutton A (2014) Working Draft, C++ Extensions for Concepts. http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2014\/n4040.pdf (accessed 1 September 2016)."},{"key":"bibr13-1094342017698746","unstructured":"Sutton A, Stroustrup B (2012) Concepts lite: constraining templates with predicates. http:\/\/concepts.axiomatics.org\/ans\/concepts-lite.pdf (accessed 5 September 2016)."},{"key":"bibr14-1094342017698746","unstructured":"REPARA project (2014) Target Platform Description Specification. https:\/\/repara-project.eu\/wp-content\/uploads\/2014\/04\/ICT-609666-D3.1.pdf (accessed 1 October 2016)."},{"key":"bibr15-1094342017698746","doi-asserted-by":"publisher","DOI":"10.1109\/UIC-ATC-ScalCom-CBDCom-IoP-SmartWorld.2016.0177"}],"container-title":["The International Journal of High Performance Computing Applications"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/1094342017698746","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/full-xml\/10.1177\/1094342017698746","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/1094342017698746","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,3,1]],"date-time":"2025-03-01T18:03:07Z","timestamp":1740852187000},"score":1,"resource":{"primary":{"URL":"https:\/\/journals.sagepub.com\/doi\/10.1177\/1094342017698746"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,3,26]]},"references-count":15,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2018,11]]}},"alternative-id":["10.1177\/1094342017698746"],"URL":"https:\/\/doi.org\/10.1177\/1094342017698746","relation":{},"ISSN":["1094-3420","1741-2846"],"issn-type":[{"type":"print","value":"1094-3420"},{"type":"electronic","value":"1741-2846"}],"subject":[],"published":{"date-parts":[[2017,3,26]]}}}