{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,3]],"date-time":"2025-03-03T06:01:35Z","timestamp":1740981695067,"version":"3.38.0"},"reference-count":22,"publisher":"SAGE Publications","issue":"4","license":[{"start":{"date-parts":[[2015,5,8]],"date-time":"2015-05-08T00:00:00Z","timestamp":1431043200000},"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":[[2015,11]]},"abstract":"<jats:p> Scientific algorithms are designed and implemented in a variety of programming languages. Depending on the exact application, some languages are a better choice than others: some offer a productive environment while others focus on performance. Selecting a language is often difficult, with poor choices resulting in much higher development times. <\/jats:p><jats:p> By implementing a case study algorithm in multiple programming languages, we compare their pros and cons. As a case study, we selected the trace transform, an image processing algorithm from the widely used class of integral transforms. We describe each implementation, including a highly optimized version for NVIDIA graphics processing units, and present a productivity overview and an in-depth performance analysis, from which we draw more generic conclusions. <\/jats:p><jats:p> We have found that MATLAB is still the best choice overall, but Julia proves an interesting emerging choice. For realistic images, our compute unified device architecture (CUDA) implementation offers the best performance, albeit at a high development cost. <\/jats:p>","DOI":"10.1177\/1094342015584091","type":"journal-article","created":{"date-parts":[[2015,5,9]],"date-time":"2015-05-09T01:51:24Z","timestamp":1431136284000},"page":"489-505","update-policy":"https:\/\/doi.org\/10.1177\/sage-journals-update-policy","source":"Crossref","is-referenced-by-count":1,"title":["Case study of multiple trace transform implementations"],"prefix":"10.1177","volume":"29","author":[{"given":"Tim","family":"Besard","sequence":"first","affiliation":[{"name":"CSL-ELIS, Ghent University, Belgium"}]},{"given":"Bjorn","family":"De Sutter","sequence":"additional","affiliation":[{"name":"CSL-ELIS, Ghent University, Belgium"}]},{"given":"Andr\u00e9s","family":"Fr\u00edas-Vel\u00e1zquez","sequence":"additional","affiliation":[{"name":"IPI-TELIN\/iMinds, Ghent University, Belgium"}]},{"given":"Wilfried","family":"Philips","sequence":"additional","affiliation":[{"name":"IPI-TELIN\/iMinds, Ghent University, Belgium"}]}],"member":"179","published-online":{"date-parts":[[2015,5,8]]},"reference":[{"key":"bibr1-1094342015584091","doi-asserted-by":"publisher","DOI":"10.1145\/1468075.1468121"},{"key":"bibr2-1094342015584091","unstructured":"Bezanson J, Karpinski S, Shah VB, (2012) Julia: A fast dynamic language for technical computing. : arXiv preprint arXiv:1209.5145."},{"issue":"11","key":"bibr3-1094342015584091","first-page":"120","volume":"25","author":"Bradski G","year":"2000","journal-title":"Doctor Dobb\u2019s Journal of Software Tools"},{"volume-title":"Parallel Programming in OpenMP","year":"2001","author":"Chandra R","key":"bibr4-1094342015584091"},{"key":"bibr5-1094342015584091","first-page":"385","volume-title":"Proceedings of the computer measurement group conference","author":"Ciemiewicz DM","year":"2001"},{"journal-title":"Linux Kongress","year":"2010","author":"De Melo AC","key":"bibr6-1094342015584091"},{"key":"bibr7-1094342015584091","doi-asserted-by":"publisher","DOI":"10.1007\/s11554-007-0061-x"},{"key":"bibr8-1094342015584091","doi-asserted-by":"publisher","DOI":"10.1109\/ICIP.2012.6467319"},{"key":"bibr9-1094342015584091","first-page":"1","author":"Fr\u00edas-Vel\u00e1zquez A","year":"2013","journal-title":"IS&T\/SPIE electronic imaging"},{"issue":"39","key":"bibr10-1094342015584091","first-page":"851","volume":"3","author":"Harris M","year":"2007","journal-title":"GPU Gems"},{"volume-title":"Computer Architecture: A Quantitative Approach","year":"2012","author":"Hennessy JL","key":"bibr11-1094342015584091"},{"key":"bibr12-1094342015584091","doi-asserted-by":"publisher","DOI":"10.1109\/34.946986"},{"key":"bibr13-1094342015584091","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2004.1281665"},{"key":"bibr14-1094342015584091","doi-asserted-by":"publisher","DOI":"10.1145\/355841.355847"},{"key":"bibr15-1094342015584091","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2008.31"},{"key":"bibr16-1094342015584091","doi-asserted-by":"publisher","DOI":"10.1145\/1040136.1040137"},{"volume-title":"Dynamic binary analysis and instrumentation","year":"2004","author":"Nethercote N","key":"bibr17-1094342015584091"},{"key":"bibr18-1094342015584091","doi-asserted-by":"publisher","DOI":"10.1109\/TPAMI.2004.1261077"},{"key":"bibr19-1094342015584091","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2009.5161005"},{"key":"bibr20-1094342015584091","doi-asserted-by":"publisher","DOI":"10.1109\/CVPR.2003.1211368"},{"key":"bibr21-1094342015584091","volume-title":"Introduction to Error Analysis, the Study of Uncertainties in Physical Measurements","volume":"1","author":"Taylor J","year":"1997","edition":"2"},{"key":"bibr22-1094342015584091","unstructured":"The MathWorks, Inc. (2002) Technology Backgrounder: Accelerating MATLAB. Technical report, The MathWorks Available at: http:\/\/www.ee.columbia.edu\/\u223cmarios\/matlab\/accel_matlab.pdf."}],"container-title":["The International Journal of High Performance Computing Applications"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/1094342015584091","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/full-xml\/10.1177\/1094342015584091","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/1094342015584091","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,3,3]],"date-time":"2025-03-03T02:19:09Z","timestamp":1740968349000},"score":1,"resource":{"primary":{"URL":"https:\/\/journals.sagepub.com\/doi\/10.1177\/1094342015584091"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,5,8]]},"references-count":22,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2015,11]]}},"alternative-id":["10.1177\/1094342015584091"],"URL":"https:\/\/doi.org\/10.1177\/1094342015584091","relation":{},"ISSN":["1094-3420","1741-2846"],"issn-type":[{"type":"print","value":"1094-3420"},{"type":"electronic","value":"1741-2846"}],"subject":[],"published":{"date-parts":[[2015,5,8]]}}}