{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T02:30:19Z","timestamp":1740105019916,"version":"3.37.3"},"reference-count":10,"publisher":"Wiley","issue":"6","license":[{"start":{"date-parts":[[2014,7,25]],"date-time":"2014-07-25T00:00:00Z","timestamp":1406246400000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"funder":[{"DOI":"10.13039\/501100002347","name":"Bundesministerium f\u00fcr Bildung und Forschung","doi-asserted-by":"publisher","award":["01IH11004G"],"id":[{"id":"10.13039\/501100002347","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Concurrency and Computation"],"published-print":{"date-parts":[[2015,4,25]]},"abstract":"Summary<\/jats:title>Current programming models for heterogeneous devices with disjoint physical memory spaces require explicit allocation of device memory and explicit data transfers. While it is quite easy to manually implement these operations for linear data objects like arrays, this task becomes more difficult for nonlinear objects, for example, linked lists or multiple inherited classes. The difficulties arise because of memory requirements known only at run\u2010time and the composition of complex data structures from basic types. In this paper, we present a novel method to build a graph\u2010based static data\u2010type description that is used to create code for injectable functions that automatically determine the memory footprint of data objects at run\u2010time. Our approach is extensible to implement automatically generated optimized data transfers across physical memory spaces. Copyright \u00a9 2014 John Wiley & Sons, Ltd.<\/jats:p>","DOI":"10.1002\/cpe.3345","type":"journal-article","created":{"date-parts":[[2014,7,25]],"date-time":"2014-07-25T22:05:15Z","timestamp":1406325915000},"page":"1564-1574","source":"Crossref","is-referenced-by-count":1,"title":["An automated approach for estimating the memory footprint of nonlinear data objects"],"prefix":"10.1002","volume":"27","author":[{"given":"Sebastian","family":"Dre\u00dfler","sequence":"first","affiliation":[{"name":"Berlin Germany"}]},{"given":"Thomas","family":"Steinke","sequence":"additional","affiliation":[{"name":"Zuse Institute Berlin Berlin Germany"}]}],"member":"311","published-online":{"date-parts":[[2014,7,25]]},"reference":[{"doi-asserted-by":"crossref","unstructured":"DhurjatiD KowshikS AdveV.SAFECode: enforcing alias analysis for weakly typed languages.ACM SIGPLAN Notices ACM Vol.41 Ottawa 2006;144\u2013157.","key":"e_1_2_10_2_1","DOI":"10.1145\/1133255.1133999"},{"doi-asserted-by":"publisher","key":"e_1_2_10_3_1","DOI":"10.1109\/TPDS.2010.62"},{"doi-asserted-by":"crossref","unstructured":"UchiyamaH TsumuraT MatsuoH.An automatic host and device memory allocation method for OpenMPC 2012.","key":"e_1_2_10_4_1","DOI":"10.1109\/ICNC.2012.39"},{"doi-asserted-by":"crossref","unstructured":"LeeS EigenmannR.OpenMPC: extended OpenMP programming and tuning for GPUs.Proceedings of the 2010 ACM\/IEEE International Conference for High Performance Computing Networking Storage and Analysis IEEE Computer Society New Orleans LA 2010;1\u201311.","key":"e_1_2_10_5_1","DOI":"10.1109\/SC.2010.36"},{"doi-asserted-by":"crossref","unstructured":"JablinTB PrabhuP JablinJA JohnsonNP BeardSR AugustDI.Automatic CPU\u2010GPU communication management and optimization.ACM SIGPLAN Notices ACM Vol.46 Odense Denmark 2011;142\u2013151.","key":"e_1_2_10_6_1","DOI":"10.1145\/1993316.1993516"},{"unstructured":"Dre\u00dflerS SteinkeT.A novel hybrid approach to automatically determine kernel interface data volumes Technical Report ZIB 2012.","key":"e_1_2_10_7_1"},{"unstructured":"LattnerC AdveV.The LLVM compiler infrastructure. The LLVM compiler infrastructure 2010.","key":"e_1_2_10_8_1"},{"unstructured":"AndersenLO.Program analysis and specialization for the C programming language.Ph.D. Thesis University of Cophenhagen 1994.","key":"e_1_2_10_9_1"},{"unstructured":"ENHANCE Consortium.Enhance \u2010 enabling heterogeneous hardware acceleration using novel programming and scheduling models January2012.","key":"e_1_2_10_10_1"},{"unstructured":"HerouxMA DoerflerDW CrozierPS WillenbringJM EdwardsHC WilliamsA RajanM ERKeiter ThornquistHK NumrichRW.Improving performance via mini\u2010applications Technical Report Sandia National Laboratories 2009.","key":"e_1_2_10_11_1"}],"container-title":["Concurrency and Computation: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fcpe.3345","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/cpe.3345","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,9,11]],"date-time":"2023-09-11T12:38:19Z","timestamp":1694435899000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/cpe.3345"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,7,25]]},"references-count":10,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2015,4,25]]}},"alternative-id":["10.1002\/cpe.3345"],"URL":"https:\/\/doi.org\/10.1002\/cpe.3345","archive":["Portico"],"relation":{},"ISSN":["1532-0626","1532-0634"],"issn-type":[{"type":"print","value":"1532-0626"},{"type":"electronic","value":"1532-0634"}],"subject":[],"published":{"date-parts":[[2014,7,25]]}}}