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...
Gespeichert in:
Veröffentlicht in: | Software, practice & experience practice & experience, 2005-03, Vol.35 (3), p.237-254. |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
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 |