arrow
Return

Case study of multiple trace transform implementations

delete2015-05-08
delete1
PRE
AI
T
Tim Besard
B
Bjorn De Sutter *
A
Andrés Frías-Velázquez
W
Wilfried Philips
DOI:10.1177/1094342015584091delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
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. 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. 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.
Keywords:
Trace transform
MATLAB
MEX
Octave
Scilab
C plus
OpenMP
CUDA
Julia
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

International Journal of High Performance Computing Applications cover
International Journal of High Performance Computing Applications
IF:
2.5
Papers:
1.1K
Citations:
1.3K

Organization

G
Ghent University
Scholars:
5.2W
Papers: 4.5W
Citations: 5.5W