Parallel expression in the APL2 language
IBM Systems Journal
LAPACK's user's guide
Numerical recipes in FORTRAN (2nd ed.): the art of scientific computing
Numerical recipes in FORTRAN (2nd ed.): the art of scientific computing
Execution of automatically parallelized APL programs on RP3
IBM Journal of Research and Development
Fortran 90 handbook: complete ANSI/ISO reference
Fortran 90 handbook: complete ANSI/ISO reference
Mining association rules between sets of items in large databases
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
Automatic selection of high-order transformations in the IBM XL FORTRAN compilers
IBM Journal of Research and Development - Special issue: performance analysis and its impact on design
Data transformations for eliminating conflict misses
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Recursion leads to automatic variable blocking for dense linear-algebra algorithms
IBM Journal of Research and Development
Advanced compiler design and implementation
Advanced compiler design and implementation
Efficient support for complex numbers in Java
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Dependence Analysis
Solving Linear Systems on Vector and Shared Memory Computers
Solving Linear Systems on Vector and Shared Memory Computers
Fortran 90 in CSE: A Case Study
IEEE Computational Science & Engineering
IEEE Expert: Intelligent Systems and Their Applications
Enhancing Spatial Locality via Data Layout Optimizations
Euro-Par '98 Proceedings of the 4th International Euro-Par Conference on Parallel Processing
A Matrix-Based Approach to the Global Locality Optimization Problem
PACT '98 Proceedings of the 1998 International Conference on Parallel Architectures and Compilation Techniques
Optimizing array reference checking in Java programs
IBM Systems Journal
Automatic loop transformations and parallelization for Java
Proceedings of the 14th international conference on Supercomputing
Design and evaluation of a linear algebra package for Java
Proceedings of the ACM 2000 conference on Java Grande
From flop to megaflops: Java for technical computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Techniques for obtaining high performance in Java programs
ACM Computing Surveys (CSUR)
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
High-performance Java codes for computational fluid dynamics
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Communications of the ACM
Elimination of Java array bounds checks in the presence of indirection
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
Adding tuples to Java: a study in lightweight data structures
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
Computing in Science and Engineering
Just When You Thought Your Little Language Was Safe: ``Expression Templates'' in Java
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
Influence of Array Allocation Mechanisms on Memory System Energy
IPDPS '01 Proceedings of the 15th International Parallel & Distributed Processing Symposium
Hands-On Training for Undergraduates in High-Performance Computing Using Java
PARA '00 Proceedings of the 5th International Workshop on Applied Parallel Computing, New Paradigms for HPC in Industry and Academia
A Contribution to Industrial Grid Computing
Proceedings of the 9th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Using generative design patterns to generate parallel code for a distributed memory environment
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Compiler optimizations for low power systems
Power aware computing
X10: an object-oriented approach to non-uniform cluster computing
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Concurrent clustered programming
CONCUR 2005 - Concurrency Theory
High performance XSL-FO rendering for variable data printing
Proceedings of the 2006 ACM symposium on Applied computing
Implicit array bounds checking on 64-bit architectures
ACM Transactions on Architecture and Code Optimization (TACO)
NINJA: Java for high performance numerical computing
Scientific Programming
Energy behavior of java applications from the memory perspective
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
JCUDA: A Programmer-Friendly Interface for Accelerating Java Programs with CUDA
Euro-Par '09 Proceedings of the 15th International Euro-Par Conference on Parallel Processing
A Java application for quality weighted 3-d interpolation
Computers & Geosciences
Device level communication libraries for high-performance computing in Java
Concurrency and Computation: Practice & Experience
Java in the High Performance Computing arena: Research, practice and experience
Science of Computer Programming
Harmonizing classes, functions, tuples, and type parameters in virgil iii
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.02 |
First proposed as a mechanism for enhancing Web content, the JavaTM language has taken off as a serious general-purpose programming language. Industry and academia alike have expressed great interest in using the Java language as a programming language for scientific and engineering computations. Applications in these domains are characterized by intensive numerical computing and often have very high performance requirements. In this paper we discuss programming techniques that lead to Java numerical codes with performance comparable to FORTRAN or C, the more traditional languages for this field. The techniques are centered around the use of a high-performance numerical library, written entirely in the Java language, and on compiler technology. The numerical library takes the form of the Array package for Java. Proper use of this package, and of other appropriate tools for compiling and running a Java application, results in code that is clean, portable, and fast. We illustrate the programming and performance issues through case studies in data mining and electromagnetism.