Skip to main content

Evaluating OpenMP Implementations for Java Using PolyBench

  • Conference paper
  • First Online:
OpenMP: Memory, Devices, and Tasks (IWOMP 2016)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9903))

Included in the following conference series:

  • 1220 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Adamson, A., Dagastine, D., Sarne, S.: SPECjbb2005 – a year in the life of a benchmark. In: SPEC Benchmark Workshop (2007)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  3. Bienia, C.: Benchmarking modern multiprocessors. Ph.D. thesis, Princeton University, January 2011

    Google Scholar 

  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. 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). ACM

    Article  Google Scholar 

  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. 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. 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)

    Article  Google Scholar 

  9. Carbonnelle, P.: PYPL PopularitY of Programming Language Index (2016). http://pypl.github.io/PYPL.html

  10. Cook, R.P.: An OpenMP library for Java. In: Proceedings of IEEE Southeastcon, pp. 1–6 (2013)

    Google Scholar 

  11. Geeknet Media: Parallel programing: Goals, skills, platforms, markets, languages (2012)

    Google Scholar 

  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. 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)

    Article  Google Scholar 

  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. Pouchet, L.-N.: Polybench: The polyhedral benchmark suite (2016). http://www.cs.ucla.edu/~pouchet/software/polybench/. [cited May]

  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. 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. TIOBE Software BV: TIOBE programming community index (2016). http://www.tiobe.com/tiobe_index

  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. Yuki, T.: Understanding PolyBench/C 3.2 kernels. In: International Workshop on Polyhedral Compilation Techniques (IMPACT) (2014)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Xing Fan .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Fan, X., Feng, R., Sinnen, O., Giacaman, N. (2016). Evaluating OpenMP Implementations for Java Using PolyBench. In: Maruyama, N., de Supinski, B., Wahib, M. (eds) OpenMP: Memory, Devices, and Tasks. IWOMP 2016. Lecture Notes in Computer Science(), vol 9903. Springer, Cham. https://doi.org/10.1007/978-3-319-45550-1_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-45550-1_22

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-45549-5

  • Online ISBN: 978-3-319-45550-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics