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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Adamson, A., Dagastine, D., Sarne, S.: SPECjbb2005 – a year in the life of a benchmark. In: SPEC Benchmark Workshop (2007)
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)
Bienia, C.: Benchmarking modern multiprocessors. Ph.D. thesis, Princeton University, January 2011
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)
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
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)
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)
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)
Carbonnelle, P.: PYPL PopularitY of Programming Language Index (2016). http://pypl.github.io/PYPL.html
Cook, R.P.: An OpenMP library for Java. In: Proceedings of IEEE Southeastcon, pp. 1–6 (2013)
Geeknet Media: Parallel programing: Goals, skills, platforms, markets, languages (2012)
Giacaman, N., Sinnen, O.: Object-oriented parallelisation of Java desktop programs. IEEE Softw. Softw. Multiprocessor Deskt. Appl. Environ. Platforms 28(1), 32–38 (2011)
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)
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)
Pouchet, L.-N.: Polybench: The polyhedral benchmark suite (2016). http://www.cs.ucla.edu/~pouchet/software/polybench/. [cited May]
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)
Smith, L.A., Bull, J.M., Obdrizalek, J.: A parallel Java Grande benchmark suite. In: ACM/IEEE Conference on Supercomputing, p. 6. IEEE (2001)
TIOBE Software BV: TIOBE programming community index (2016). http://www.tiobe.com/tiobe_index
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)
Yuki, T.: Understanding PolyBench/C 3.2 kernels. In: International Workshop on Polyhedral Compilation Techniques (IMPACT) (2014)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)