Evaluating OpenMP Implementations for Java Using PolyBench
Reference
Degree Grantor
Abstract
This paper proposes a benchmark suite to evaluate the performance and scalability of (unofficial) OpenMP implementations for Java. The benchmark suite is based on our Java port of PolyBench, a Polyhedral Benchmark suite. We selected PolyBench instead of other existing benchmarks, like JGF, as it allows us to run and use the OpenMP C version as a performance and scalability reference. Further, PolyBench was conceived as a benchmark suite to analyse the optimisation capabilities of compilers. It is interesting to study these capabilities in the OpenMP context of a dynamically compiled language like Java in comparison to the statically compiled C. We apply the benchmark suite to two Java OpenMP implementations, Pyjama and JOMP, and compare with C code compiled by GCC, optimised and unoptimised. The sometimes surprising and unexpected results shed light on the appropriateness of Java as an OpenMP platform, the areas for improvement and the usefulness of this benchmark suite.