Scientific computing with Java and C Plus Plus: a case study using functional magnetic resonance neuroimages

Modern systems for the analysis of image-based biomedical data, such as functional magnetic resonance imaging (fMRI), require fast computational techniques and rapid, robust development. Object-oriented programming languages such as Java and C Plus Plus provide the foundations for the development of...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Software, practice & experience practice & experience, 2005-03, Vol.35 (3), p.237-254.
Hauptverfasser: Vivanco, Rodrigo A, Pizzi, Nicolino J
Format: Artikel
Sprache:eng
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Modern systems for the analysis of image-based biomedical data, such as functional magnetic resonance imaging (fMRI), require fast computational techniques and rapid, robust development. Object-oriented programming languages such as Java and C Plus Plus provide the foundations for the development of complex data analysis applications. This case study explores the advantages and disadvantages of using these two programming environments for scientific computation as typified in the analysis of fMRI datasets. C Plus Plus is well suited for computational and memory optimization while Java is more compliant to the object-oriented paradigm, supports cross-platform development and has a rich set of application programming interface (API) classes. The same data model and algorithms were implemented in C Plus Plus and Java, and a user interface was developed with the Java API. Comparisons were made with respect to computational performance and ease of development. Benchmarks show that C Plus Plus generally outperforms Java, while Java is easier to use, leading to more robust code and shorter development times. However, with the advent of newer just-in-time compilers, Java performance is at times comparable to C Plus Plus. The latest Java virtual machine technology is closing the gap and eventually Java should be a good compromise between efficient algorithm performance and effective application development.
ISSN:0038-0644
DOI:10.1002/spe.633