Skip to main content
Log in

Efficient High-Level Programming in Plain Java

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

This paper introduces the support for developing efficient parallel programs in plain Java in the Gaspar framework. The framework supports a complete set of data locality optimisations that are introduced with Java annotations, keeping the original Java code platform independent and postponing performance tuning tasks. Performance results show that data layout improvements can provide a 2.5-fold speedup, and, when combined with the exploitation of parallelism, can deliver a 50-fold speedup when compared with an unoptimised sequential base Java application running on a 24-core machine.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

References

  1. Bondhugula, U., Hartono, A., Ramanujam, J., Sadayappan, P.: A practical and fully automatic polyhedral program optimization system. In: ACM SIGPLAN PLDI, vol. 10 (2008)

  2. Booch, G., Maksimchuk, R., Engle, M., Young, B., Conallen, J., Houston, K.: Object-Oriented Analysis and Design with Applications, 3rd edn. Addison-Wesley Professional, Boston (2007)

    Google Scholar 

  3. Bull, M., Smith, L., Westhead, M., Henty, D., Davey, R.: Benchmarking Java Grande applications. In: Proceedings of the Second International Conference on The Practical Applications of Java, Manchester, UK, pp. 63–73 (2000)

  4. Costa, D., Andrzejak, A., Seboek, J., Lo, D.: Empirical study of usage and performance of java collections. In: Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering, pp. 389–400. ACM (2017)

  5. Evangelista, P., Maia, P., Rocha, M.: Implementing metaheuristic optimization algorithms with jecoli. In: 2009 Ninth International Conference on Intelligent Systems Design and Applications, pp. 505–510 (2009). https://doi.org/10.1109/ISDA.2009.161

  6. Faria, N., Silva, R., Sobral, J.L.: Impact of data structure layout on performance. In: 2013 21st Euromicro International Conference on Parallel, Distributed, and Network-Based Processing, pp. 116–120. IEEE (2013)

  7. Grosser, T., Zheng, H., Aloor, R., Simbürger, A., Größlinger, A., Pouchet, L.N.: Polly-polyhedral optimization in llvm. In: Proceedings of the First International Workshop on Polyhedral Compilation Techniques (IMPACT), vol. 2011, p. 1 (2011)

  8. https://github.com/carrotsearch/hppc

  9. http://trove4j.sourceforge.net/html/overview.html

  10. https://fastutil.di.unimi.it

  11. Hasan, S., King, Z., Hafiz, M., Sayagh, M., Adams, B., Hindle, A.: Energy profiles of Java collections classes. In: Proceedings of the 38th International Conference on Software Engineering, pp. 225–236. ACM (2016)

  12. Hirzel, M.: Data layouts for object-oriented programs. In: Proceedings of the 2007 ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems, SIGMETRICS ’07, pp. 265–276. ACM, New York, NY, USA (2007). https://doi.org/10.1145/1254882.1254915

  13. Jeffers, J., Reinders, J., Sodani, A.: Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition. Morgan Kaufmann, Burlington (2016)

    Google Scholar 

  14. Lashgar, A., Baniasadi, A.: Openacc cache directive: opportunities and optimizations. In: 2016 Third Workshop on Accelerator Programming Using Directives (WACCPD), pp. 46–56. IEEE (2016)

  15. Majeti, D., Barik, R., Zhao, J., Grossman, M., Sarkar, V.: Compiler-driven data layout transformation for heterogeneous platforms. In: European Conference on Parallel Processing, pp. 188–197. Springer (2013)

  16. Medeiros, B., Silva, R., Sobral, J.: Gaspar: a compositional aspect-oriented approach for cluster applications. Concurr. Comput. Pract. Exp. (2015). https://doi.org/10.1002/cpe.3666

    Article  Google Scholar 

  17. Sharma, K., Karlin, I., Keasler, J., McGraw, J.R., Sarkar, V.: User-specified and automatic data layout selection for portable performance. Rice University, Houston, Texas, USA, technical report, TR13-03 (2013)

  18. Silva, R., Sobral, J.L.: Gaspar data-centric framework. In: International Conference on Vector and Parallel Processing, pp. 234–247. Springer (2016)

  19. Silva, R., Sobral, J.L.: High performance computing with java streams. In: Euro-Par 2021 International Workshops, Lisbon, Portugal, August 30–31, 2021, Revised Selected Papers, pp. 17–28. Springer (2021)

  20. Stratton, J.A., Rodrigues, C., Sung, I.J., Chang, L.W., Anssari, N., Liu, G., Wen-mei, W.H., Obeid, N.: Algorithm and data optimization techniques for scaling to massively threaded systems. Computer 45(8), 26–32 (2012)

    Article  Google Scholar 

  21. Unat, D., Cai, X., Baden, S.B.: Mint: realizing CUDA performance in 3D stencil methods with annotated C. In: Proceedings of the International Conference on Supercomputing, pp. 214–224. ACM (2011)

  22. Wende, F.: C++ data layout abstractions through proxy types. In: 2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), pp. 758–767. IEEE (2019)

  23. Wimmer, C., Mössenböck, H.: Automatic array inlining in Java virtual machines. In: Proceedings of the 6th Annual IEEE/ACM International Symposium on Code Generation and Optimization, CGO ’08, pp. 14–23. ACM, New York, NY, USA (2008). https://doi.org/10.1145/1356058.1356061

Download references

Acknowledgements

This work has been supported by FCT—Fundação para a Ciência e Tecnologia within the R &D Units Project Scope: UIDB/00319/2020. The evaluation used the computing infra-structure of the project Search-ON2: Revitalization of HPC infrastructure of UMinho, (NORTE-07-0162-FEDER-000086), co-funded by the North Portugal Regional Operational Programme (ON.2-O Novo Norte), under the National Strategic Reference Framework (NSRF), through the European Regional Development Fund (ERDF).

Author information

Authors and Affiliations

Authors

Contributions

JLS wrote the main manuscript based on RSS PhD thesis. All authors reviewed the manuscript.

Corresponding author

Correspondence to João L. Sobral.

Ethics declarations

Conflict of interest

The authors declare no competing interests.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Silva, R.S., Sobral, J.L. Efficient High-Level Programming in Plain Java. Int J Parallel Prog 51, 22–42 (2023). https://doi.org/10.1007/s10766-022-00747-0

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-022-00747-0

Keywords

Navigation