Title :
PCJ - Java library for high performance computing in PGAS model
Author :
Nowicki, Michal ; Gorski, Lukasz ; Grabrczyk, Patryk ; Bala, P.
Author_Institution :
Fac. of Math. & Comput. Sci., N. Copernicus Univ., Torun, Poland
Abstract :
This paper presents the application of the PCJ library for the parallelization of the selected HPC applications implemented in Java language. The library is motivated by partitioned global address space (PGAS) model represented by Co-Array Fortran, Unified Parallel C, X10 or Titanium. In the PCJ, each task has its own local memory and stores and access variables locally. Variables can be shared between tasks and can be accessed, read and modified by other tasks. The library provides methods to perform basic operations like synchronization of tasks, get and put values in asynchronous onesided way. Additionally the library offers methods for creating groups of tasks, broadcasting and monitoring variables. The PCJ has ability to work on the multinode multicore systems hiding details of interand intranode communication. The PCJ library fully complies with Java standards therefore the programmer does not have to use additional libraries, which are not part of the standard Java distribution. In this paper the PCJ library has been used to run example HPC applications on the multicore nodes. In particular we present performance results for parallel raytracing, matrix multiplication and map-reduce calculations. The detailed information on performance of the reduction operation is also presented. The results show good performance and scalability compared to native implementations of the same algorithms. In particular, MPI C++ and Java 8 parallel streams have been used as a reference. It is noteworthy that the PCJ library due to its performance and ability to create simple code has great promise to be successful for parallelization of the HPC applications.
Keywords :
C++ language; FORTRAN; Java; application program interfaces; message passing; multiprocessing systems; parallel programming; Co-Array Fortran; HPC applications; Java 8 parallel streams; Java language; Java library; Java standards; MPI C++; PCJ library; PGAS model; Titanium; Unified Parallel C; X10; high performance computing; inter-intranode communication; map-reduce calculations; matrix multiplication; multicore nodes; multinode multicore systems; parallel raytracing; partitioned global address space; Electronics packaging; Instruction sets; Java; Libraries; Message systems; Programming; Synchronization; HPC; Java; Parallel computing; Partitioned Global Address Space;
Conference_Titel :
High Performance Computing & Simulation (HPCS), 2014 International Conference on
Conference_Location :
Bologna
Print_ISBN :
978-1-4799-5312-7
DOI :
10.1109/HPCSim.2014.6903687