Popis: |
paper describes the design of a high-performance linear al- gebra library for Java. Linear algebra libraries such as ESSL and LAPACK are important tools of computational science and engi- neering, and have been available to C and Fortran programmers for quite a while. If Java is to become a serious language for the de- velopment of large scale numerical applications, it must provide equivalent functionality. From the many possible alternatives to accomplish this goal, we took the approach of designing a linear algebra library entirely in Java. This approach leads to good porta- bility and maintainability of the code. It is also a good test of how far we can push Java performance. We adopted an object-oriented design in which the linear algebra operations are implemented as strategy design pattems. The higher level algorithms, optimized for the memory hierarchies of present-clay machines, are described in a type independent manner. Type specific methods capture the lower level optimizations for operations on matrices of single-precision, double-precision, or complex numbers. We evaluate the perfor- mance of our linear algebra package on three different machines. Our preliminary results show that our Java library achieves up to 85% of the performance of the highly optimized ESSL. |