Towards performance evaluation of high-performance computing on multiple Java platforms
Despite claims of platform portability, it is not clear whether the current Java, its language design and its implementation, is suitable for high-performance scientific computing. In fact, since the portability property of Java rests upon its interpretative execution model of stack-based bytecode, optimizations by static and JIT compilers may or may not be effective for achieving high performance in various scientific code. In other words, performance portability may not necessarily be guaranteed in current Java systems. To solve this situation, we are constructing a benchmarking platform for Java that candidly compares different Java systems. In particular, we have constructed a Java version of ATLAS, a program generator that outputs platform-specific optimized BLAS, to investigate the peak performance of each Java system. Then, we compared this performance to typical source-level optimizations that a user or a compiler might perform, to see how close such optimizations can approach optimized performance. Such work investigating the performance portability of Java systems will allow us to feedback the results into future high-performance compiler for Java.
java jit compiler blas numerical computing performance benchmarking atlas for java