Abstract
Cloud resources are more often used for large scale computing and data processing. However, the usage of the cloud is different than traditional High-Performance Computing (HPC) systems and both algorithms and codes have to be adjusted. This work is often time-consuming and performance is not guaranteed. To address this problem we have developed the PCJ library (Parallel Computing in Java), a novel tool for scalable high-performance computing and big data processing in Java. In this paper, we present a performance evaluation of parallel applications implemented in Java using the PCJ library. The performance evaluation is based on the examples of highly scalable applications that run on the traditional HPC system and Amazon AWS Cloud. For the cloud, we have used Intel x86 and ARM processors running Java codes without changing any line of the program code and without the need for time-consuming recompilation. Presented applications have been parallelized using the PGAS programming model and its realization in the PCJ library. Our results prove that the PCJ library, due to its performance and ability to create simple portable code, has great promise to be successful for the parallelization of various applications and run them on the cloud with a similar performance as for HPC systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
PCJ homepage. http://pcj.icm.edu.pl. Accessed 12 Feb 2020
Barr, J.: New – EC2 Instances (A1) Powered by Arm-Based AWS Graviton Processors. AWS News Blog, 26 November 2018. https://aws.amazon.com/blogs/aws/new-ec2-instances-a1-powered-by-arm-based-aws-graviton-processors/. Accessed 18 Feb 2020
Barr, J.: Coming Soon – Graviton2-Powered General Purpose, Compute-Optimized and Memory-Optimized EC2 Instances. AWS News Blog, 3 December 2019. https://aws.amazon.com/blogs/aws/coming-soon-graviton2-powered-general-purpose-compute-optimized-memory-optimized-ec2-instances/. Accessed 18 Feb 2020
Bonér, J., Kuleshov, E.: Clustering the Java virtual machine using aspect-oriented programming. In: AOSD 2007 Proceedings of the 6th International Conference on Aspect-Oriented Software Development (2007)
Carey, N.: Parallel DES Key Cracker Benchmark: SealedDES implementation - source code. https://github.com/ncarey/Parallel-DES-Key-Cracker-Benchmark/blob/a760f6412495eb186a6dea53fa0aab1ed3546732/source/SealedDES.java. Accessed 12 Feb 2020
Carlson, W.W., Draper, J.M., Culler, D.E., Yelick, K., Brooks, E., Warren, K.: Introduction to UPC and language specification. Technical Report CCS-TR-99-157, IDA Center for Computing Sciences (1999)
Carpenter, B., Getov, V., Judd, G., Skjellum, A., Fox, G.: MPJ: MPI-like message passing for Java. Concurrency: Pract. Experience 12(11), 1019–1038 (2000)
Chamberlain, B.L., Callahan, D., Zima, H.P.: Parallel programmability and the chapel language. Int. J. High Perform. Comput. Appl. 21(3), 291–312 (2007)
Charles, P., et al.: X10: an object-oriented approach to non-uniform cluster computing. In: ACM SIGPLAN Notices, vol. 40, pp. 519–538. ACM (2005)
Feind, K.: Shared memory access (SHMEM) routines. Cray Research (1995)
Górski, Ł.: PCJ Fast Fourier Transform - source code. https://github.com/hpdcj/hpc-challenge-fft/tree/ebd557e40ad50f614a869000321ee822b67d2623. Accessed 12 Feb 2020
Górski, Ł.: PCJ WordCount - source code. https://github.com/hpdcj/wordcount/tree/6a265bc92147a89c37176692ccae8dcf8d97df72. Accessed 12 Feb 2020
Górski, Ł., Rakowski, F., Bała, P.: Parallel differential evolution in the pgas programming model implemented with PCJ Java library. In: Wyrzykowski, R., Deelman, E., Dongarra, J., Karczewski, K., Kitowski, J., Wiatr, K. (eds.) PPAM 2015. LNCS, vol. 9573, pp. 448–458. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-32149-3_42
Gupta, A., Milojicic, D.: Evaluation of HPC applications on cloud. In: 2011 Sixth Open Cirrus Summit, pp. 22–26. IEEE (2011)
He, Q., Zhou, S., Kobler, B., Duffy, D., McGlynn, T.: Case study for running HPC applications in public clouds. In: Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing, pp. 395–401 (2010)
Korona, M.: PCJ SealedDES - source code. https://github.com/hpdcj/PCJ-tests/blob/96907dd4f0b0165cdd1a807005294c5cb84012c2/src/org/pcj/tests/app/des/PCJSealedDES.java. Accessed 12 Feb 2020
Liang, J., Qu, B., Suganthan, P.: Problem definitions and evaluation criteria for the CEC 2014 special session and competition on single objective real-parameter numerical optimization. Zhengzhou University, Zhengzhou China and Technical Report, Nanyang Technological University, Singapore, Computational Intelligence Laboratory (2013)
Mellor-Crummey, J., et al.: Class ii submission to the hpc challenge award competition coarray fortran 2.0. http://www.hpcchallenge.org/presentations/sc2011/hpcc11_report_caf2_0.pdf
Nester, C., Philippsen, M., Haumacher, B.: A more efficient RMI for Java. Java Grande 99, 152–159 (1999)
Nieplocha, J., Harrison, R.J., Littlefield, R.J.: Global arrays: a non-uniform-memory-access programming model for high-performance computers. J. Supercomputing 10(2), 169–189 (1996)
Nowicki, M.: PCJ DesDecryptor - source code. https://github.com/hpdcj/PCJ-tests/blob/12c407d24c57442d8fac1395dd44bd8e4d6021cc/src/org/pcj/tests/app/des/DesDecryption.java. Accessed 12 Feb 2020
Nowicki, M., Bała, P.: Parallel computations in Java with PCJ library. In: 2012 International Conference on High Performance Computing and Simulation (HPCS), pp. 381–387. IEEE (2012)
Nowicki, M., Bzhalava, D., Bała, P.: Massively parallel sequence alignment with BLAST through work distribution implemented using PCJ library. In: Ibrahim, S., Choo, K.-K.R., Yan, Z., Pedrycz, W. (eds.) ICA3PP 2017. LNCS, vol. 10393, pp. 503–512. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-65482-9_36
Nowicki, M., Bzhalava, D., Bała, P.: Massively parallel implementation of sequence alignment with basic local alignment search tool using parallel computing in Java library. J. Comput. Biol. 25(8), 871–881 (2018)
Nowicki, M., Górski, Ł., Bała, P.: PCJ - Java library for highly scalable HPC and big data processing. In: 2018 International Conference on High Performance Computing and Simulation (HPCS), pp. 12–20. IEEE (2018)
Nowicki, M., Górski, Ł., Bała, P.: Performance evaluation of parallel computing and Big Data processing with Java and PCJ library. Cray Users Group (2018). https://cug.org/proceedings/cug2018_proceedings/includes/files/pap139s2-file1.pdf. Accessed 12 Feb 2020
Nowicki, M., Górski, Ł., Bała, P.: PCJ Java Library as a solution to integrate HPC. In: Big Data and Artificial Intelligence Workloads (in review)
Nowicki, M., Ryczkowska, M., Górski, Ł., Bala, P.: Big data analytics in Java with PCJ library: performance comparison with Hadoop. In: Wyrzykowski, R., Dongarra, J., Deelman, E., Karczewski, K. (eds.) PPAM 2017. LNCS, vol. 10778, pp. 318–327. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-78054-2_30
Oracle: Java Platform, Standard Edition 6, Features and Enhancements (2006). http://www.oracle.com/technetwork/java/javase/features-141434.html. Accessed 12 Feb 2020
Oracle: Class ForkJoinPool (2018). https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/ForkJoinPool.html
Posner, J., Reitz, L., Fohry, C.: Comparison of the HPC and big data Java libraries spark, PCJ and APGAS. In: 2018 IEEE/ACM Parallel Applications Workshop, Alternatives To MPI (PAW-ATM), pp. 11–22. IEEE (2018)
Rakowski, F., Karbowski, J.: Optimal synaptic signaling connectome for locomotory behavior in Caenorhabditis elegans: design minimizing energy cost. PLoS Comput. Biol. 13(11), e1005834 (2017)
Reid, J.: The new features of Fortran 2008. In: ACM SIGPLAN Fortran Forum, vol. 27, pp. 8–21. ACM (2008)
Ryczkowska, M., Nowicki, M., Bała, P.: Level-synchronous BFS algorithm implemented in Java using PCJ library. In: 2016 International Conference on Computational Science and Computational Intelligence (CSCI), pp. 596–601. IEEE (2016)
Scudéry, M.D.: Artamène ou le grand Cyrus (1972)
Takahashi, D., Kanada, Y.: High-performance radix-2, 3 and 5 parallel 1-d complex FFT algorithms for distributed-memory parallel computers. J. Supercomputing 15(2), 207–228 (2000)
Tardieu, O.: The apgas library: resilient parallel and distributed programming in java 8. In: Proceedings of the ACM SIGPLAN Workshop on X10, pp. 25–26. ACM (2015)
Thirunavukkarasu, S.: Foundation of learning structure infusion for high execution processing in the cloud. Int. J. Pure Appl. Math. 119(12), 5253–5264 (2018)
Trader, T.: It’s Official: Aurora on Track to Be First US Exascale Computer in 2021. HPC Wire, 18 March 2019. https://www.hpcwire.com/2019/03/18/its-official-aurora-on-track-to-be-first-u-s-exascale-computer-in-2021/. Accessed 18 Feb 2020
Vega-Gisbert, O., Roman, J.E., Squyres, J.M.: Design and implementation of Java bindings in Open MPI. Parallel Comput. 59, 1–20 (2016)
Yelick, K., et al.: Titanium: a high-performance Java dialect. Concurrency Comput. Pract. Experience 10(11–13), 825–836 (1998)
Yokoyama, D., Schulze, B., Borges, F., Mc Evoy, G.: The survey on ARM processors for HPC. J. Supercomputing 75(10), 7003–7036 (2019). https://doi.org/10.1007/s11227-019-02911-9
Acknowledgment
This research was carried out with the support of the Interdisciplinary Centre for Mathematical and Computational Modelling (ICM) the University of Warsaw providing computational resources under grants no GB65-15, GA69-19. The authors would like to thank CHIST-ERA consortium for financial support under HPDCJ project.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Nowicki, M., Górski, Ł., Bała, P. (2021). Performance Evaluation of Java/PCJ Implementation of Parallel Algorithms on the Cloud. In: Balis, B., et al. Euro-Par 2020: Parallel Processing Workshops. Euro-Par 2020. Lecture Notes in Computer Science(), vol 12480. Springer, Cham. https://doi.org/10.1007/978-3-030-71593-9_17
Download citation
DOI: https://doi.org/10.1007/978-3-030-71593-9_17
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-71592-2
Online ISBN: 978-3-030-71593-9
eBook Packages: Computer ScienceComputer Science (R0)