Evaluating OpenMP Implementations for Java Using PolyBench

  • Xing FanEmail author
  • Rui Feng
  • Oliver Sinnen
  • Nasser Giacaman
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9903)


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.


Execution Time Benchmark Case Benchmark Suite Java Code Java Virtual Machine 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Adamson, A., Dagastine, D., Sarne, S.: SPECjbb2005 – a year in the life of a benchmark. In: SPEC Benchmark Workshop (2007)Google Scholar
  2. 2.
    Aslot, V., Domeika, M., Eigenmann, R., Gaertner, G., Jones, W.B., Parady, B.: SPEComp: a new benchmark suite for measuring parallel computer performance. In: Eigenmann, R., Voss, M.J. (eds.) WOMPAT 2001. LNCS, vol. 2104, pp. 1–10. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  3. 3.
    Bienia, C.: Benchmarking modern multiprocessors. Ph.D. thesis, Princeton University, January 2011Google Scholar
  4. 4.
    Bienia, C., Kumar, S., Singh, J.P., Li, K.: The PARSEC benchmark suite: characterization and architectural implications. In: Proceedings of the 17th International Conference on Parallel Architectures and Compilation Techniques, pp. 72–81. ACM (2008)Google Scholar
  5. 5.
    Blackburn, S.M., Garner, R., Hoffmann, C., Khang, A.M., McKinley, K.S., Bentzur, R., Diwan, A., Feinberg, D., Frampton, D., Guyer, S.Z., et al.: The DaCapo benchmarks: Java benchmarking development and analysis. ACM SIGPLAN Not. 41, 169–190 (2006). ACMCrossRefGoogle Scholar
  6. 6.
    Bull, J.M., Kambites, M.E.: JOMPan OpenMP-like interface for Java. In: Proceedings of the ACM Conference on Java Grande, pp. 44–53. ACM (2000)Google Scholar
  7. 7.
    Bull, J.M., Smith, LA., Westhead, M.D., Henty, DS, Davey, RA.: A methodology for benchmarking Java Grande applications. In: Proceedings of the ACM Conference on Java Grande, pp. 81–88. ACM (1999)Google Scholar
  8. 8.
    Bull, J.M., Smith, L.A., Westhead, M.D., Henty, D.S., Davey, R.A.: A benchmark suite for high performance Java. Concurr. Prac. Exper. 12(6), 375–388 (2000)CrossRefGoogle Scholar
  9. 9.
    Carbonnelle, P.: PYPL PopularitY of Programming Language Index (2016).
  10. 10.
    Cook, R.P.: An OpenMP library for Java. In: Proceedings of IEEE Southeastcon, pp. 1–6 (2013)Google Scholar
  11. 11.
    Geeknet Media: Parallel programing: Goals, skills, platforms, markets, languages (2012)Google Scholar
  12. 12.
    Giacaman, N., Sinnen, O.: Object-oriented parallelisation of Java desktop programs. IEEE Softw. Softw. Multiprocessor Deskt. Appl. Environ. Platforms 28(1), 32–38 (2011)Google Scholar
  13. 13.
    Klemm, M., Bezold, M., Veldema, R., Philippsen, M.: JaMP: an implementation of OpenMP for a Java DSM. Concurr. Comput. Pract. Exper. 19(18), 2333–2352 (2007)CrossRefGoogle Scholar
  14. 14.
    Medeiros, B., Sobral, J.L.: AOmpLib: an aspect library for large-scale multi-core parallel programming. In: 42nd International Conference on Parallel Processing (ICPP), pp. 270–279. IEEE (2013)Google Scholar
  15. 15.
    Pouchet, L.-N.: Polybench: The polyhedral benchmark suite (2016). [cited May]
  16. 16.
    Smith, L.A., Bull, J.M.: A multithreaded Java Grande benchmark suite. In: Proceedings of the Third Workshop on Java for High Performance Computing (2001)Google Scholar
  17. 17.
    Smith, L.A., Bull, J.M., Obdrizalek, J.: A parallel Java Grande benchmark suite. In: ACM/IEEE Conference on Supercomputing, p. 6. IEEE (2001)Google Scholar
  18. 18.
    TIOBE Software BV: TIOBE programming community index (2016).
  19. 19.
    Vikas, N.G., Sinnen, O.: Pyjama: OpenMP-like implementation for Java, with GUI extensions. In: Proceedings of the International Workshop on Programming Models and Applications for Multicores and Manycores, pp. 43–52. ACM (2013)Google Scholar
  20. 20.
    Yuki, T.: Understanding PolyBench/C 3.2 kernels. In: International Workshop on Polyhedral Compilation Techniques (IMPACT) (2014)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Xing Fan
    • 1
    Email author
  • Rui Feng
    • 1
  • Oliver Sinnen
    • 1
  • Nasser Giacaman
    • 1
  1. 1.Department of Electrical and Computer EngineeringUniversity of AucklandAucklandNew Zealand

Personalised recommendations