NINJA
NINJA: Java for high performance numerical computing. When Java was first introduced, there was a perception that its many benefits came at a significant performance cost. In the particularly performance-sensitive field of numerical computing, initial measurements indicated a hundred-fold performance disadvantage between Java and more established languages such as Fortran and C. Although much progress has been made, and Java now can be competitive with C/C++ in many important situations, significant performance challenges remain. Existing Java virtual machines are not yet capable of performing the advanced loop transformations and automatic parallelization that are now common in state-of-the-art Fortran Compilers. Java also has difficulties in implementing complex arithmetic efficiently. These performance deficiencies can be attacked with a combination of class libraries (packages, in Java) that implement truly multidimensional arrays and complex numbers, and new compiler techniques that exploit the properties of these class libraries to enable other, more conventional, optimizations. Two compiler techniques, versioning and semantic expansion, can be leveraged to allow fully automatic optimization and parallelization of Java code. Our measurements with the NINJA prototype Java environment show that Java can be competitive in performance with highly optimized and tuned Fortran code.
Keywords for this software
References in zbMATH (referenced in 27 articles , 1 standard article )
Showing results 1 to 20 of 27.
Sorted by year (- Ossokine, Serguei; Foucart, Francois; Pfeiffer, Harald P.; Boyle, Michael; Szilágyi, Béla: Improvements to the construction of binary black hole initial data (2015)
- Sperhake, Ulrich: Numerical relativity: the role of black holes in gravitational wave physics, astrophysics and high-energy physics (2014)
- Taboada, Guillermo L.; Ramos, Sabela; Expósito, Roberto R.; Touriño, Juan; Doallo, Ramón: Java in the high performance computing arena: research, practice and experience (2013)
- Duarte, Rafael; Mota, Alexandre; Sampaio, Augusto: Introducing concurrency in sequential Java via laws (2011)
- Baronas, Romas; Ivanauskas, Feliksas; Kulys, Juozas: Mathematical modeling of biosensors. An introduction for chemists and mathematicians (2010)
- Centrella, Joan; Baker, John G.; Kelly, Bernard J.; van Meter, James R.: Black-hole binaries, gravitational waves, and numerical relativity (2010)
- Ivanauskas, F.; Baronas, R.: Modelling an amperometric biosensor acting in a flowing liquid (2008)
- Lin, Phone; Chang, Huan-Ming; Fang, Yuguang; Cheng, Shin-Ming: Hisns: Distributed gateways for application-level integration of heterogeneous wireless networks (2008)
- Noh, Donggeon; Shin, Heonshik: URECA: efficient resource location middleware for ubiquitous environment (2008)
- Gaidamasukaité, E.; Baronas, R.: A comparison of finite difference schemes for computational modelling of biosensors (2007)
- Yang, Shuo; Butt, Ali R.; Fang, Xing; Hu, Y.Charlie; Midkiff, Samuel P.: A fair, secure and trustworthy peer-to-Peer based cycle-sharing system (2006)
- Yang, Shuo; Butt, Ali R.; Fang, Xing; Hu, Y.Charlie; Midkiff, Samuel P.: A fair, secure and trustworthy peer-to-Peer based cycle-sharing system (2006)
- Chakraborty, Dipanjan; Joshi, Anupam; Finin, Tim; Yesha, Yelena: Service composition for mobile environments (2005)
- Heroux, Michael A.; Bartlett, Roscoe A.; Howle, Vicki E.; Hoekstra, Robert J.; Hu, Jonathan J.; Kolda, Tamara G.; Lehoucq, Richard B.; Long, Kevin R.; Pawlowski, Roger P.; Phipps, Eric T.; Salinger, Andrew G.; Thornquist, Heidi; Tuminaro, Ray S.; Willenbring, James M.; Williams, Alan; Stanley, Kendall S.: An overview of the Trilinos project. (2005)
- Wolff von Gudenberg, Jürgen: OOP and interval arithmetic -- language support and libraries (2004)
- Hampshire, Alastair; Blair, Gordon S.: JGrid: Exploiting Jini for the development of grid applications (2003)
- Todorov, V.: Java and computing for robust statistics (2003)
- van Reeuwijk, C.; Kuijlman, F.; Sips, H.J.: Spar: a set of extensions to Java for scientific computation (2003)
- Aversa, Rocco; Di Martino, Beniamino; Fahringer, Thomas; Venticinque, Salvatore: On the evaluation of the distributed objects and mobile agents programming models for a distributed optimization application (2002)
- Moreira, José E.; Midkiff, Samuel P.; Gupta, Manish; Wu, Peng; Almasi, George; Artigas, Pedro: NINJA: Java for high performance numerical computing (2002)