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

  • Authors:
  • Rodrigo A. Vivanco;Nicolino J. Pizzi

  • Affiliations:
  • Institute for Biodiagnostics, National Research Council of Canada, 435 Ellice Avenue, Winnipeg, MB, Canada R3B 1Y6;Institute for Biodiagnostics, National Research Council of Canada, 435 Ellice Avenue, Winnipeg, MB, Canada R3B 1Y6

  • Venue:
  • Software—Practice & Experience - Research Articles
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

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++ 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++ 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++ 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++ 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++. 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. Copyright © 2004 John Wiley & Sons, Ltd.