PCJ is a library for Java language that helps to perform parallel and distributed calculations. The current version is able to work on the multicore systems connected with the typical interconnect such as ethernet or infiniband providing users with the uniform view across nodes.

Download PCJ library (jar file of 29.04.2017 ver. 5.0.6)  Latest (bug fixing release)!

Download PCJ manual (pdf) for PCJ 5 New!

The PCJ library can be used with no cost at BSD license. It requires Java 8 and no additional tools or comilers.  The PCJ library for Java 7 is available in the dowload section.

The source code is available at GitHub: https://github.com/hpdcj/pcj

Version 5 introduces asyncPut() and asyncGet() methods; put() and get() methods are now synchronous. There is new handling of shared variables. The code developed for PCJ 4 hast to be modified. For details please reffer to the JavaDoc file.

The usage should be acknowledged by reference to the PCJ web site and/or reference to the papers:

Full paper list can be found here: http://pcj.icm.edu.pl/pcj-papers

Contact: bala@icm.edu.pl faramir@icm.edu.pl

Papers describing PCJ:

  1. M. Nowicki, Ł. Górski, P. Bała PCJ – Java Library for Highly Scalable HPC and Big Data Processing 2018 International Conference on High Performance Computing \& Simulation (HPCS), pp:12-20 IEEE, 2018
  2. M. Nowicki, Ł. Górski, P. Bała Performance evaluation of parallel computing and Big Data processing with Java and PCJ library CUG 2018
  3. M. Nowicki, M. Ryczkowska, Ł. Górski, P. Bała Big Data analytics in Java with PCJ library - performance comparison with Hadoop.In: Wyrzykowski R., Dongarra J., Deelman E., Karczewski K. (eds) Parallel Processing and Applied Mathematics. PPAM 2017. Lecture Notes in Computer Science, vol 10778. Springer, Cham, pp 318-327 (2018)
  4. M. Nowicki, Ł. Górski, P. Bała Evaluation of the parallel performance of the Java and PCJ on the Intel KNL based systems. In: Wyrzykowski R., Dongarra J., Deelman E., Karczewski K. (eds) Parallel Processing and Applied Mathematics. PPAM 2017. Lecture Notes in Computer Science, vol 10778. Springer, Cham, pp 288-297 (2018)
  5. M. Szynkiewicz, M. Nowicki Fault-tolerance mechanisms for the Java parallel codes implemented with the PCJ library. In: Wyrzykowski R., Dongarra J., Deelman E., Karczewski K. (eds) Parallel Processing and Applied Mathematics. PPAM 2017. Lecture Notes in Computer Science, vol 10778. Springer, Cham, pp 298-307 (2018)
  6. M. Nowicki, Ł. Górski, M. Ryczkowska, P. Bała PCJ as a tool for masivelly parallel data processing. In: M. Bubak, M. Turała, K. Wiatr (Eds.) CGW Workshop'17 ACK Cyfronet AGH 2017, pp 39-40
  7. M. Nowicki, P. Bała Programowanie równoległe w języku Java z wykorzystaniem biblioteki PCJ W: Ł. Kuźmiński, J. Doskocz, P. Kardasz (Red.) Innowacje w polskiej nauce w obszarze matematyki i informatyki. Przegląd aktualnej tematyki badawczej Wydawnictwo Nauka i Biznes 2016. pp 130-140
  8. M. Nowicki, P. Bała Programowanie równoległe w języku Java z wykorzystaniem biblioteki PCJ W: Materiały konferencyjne – Innowacyjne Projekty Badawcze.Dolnośląski Akcelerator Technologii i Innowacji Sp. z o. o. Wrocław 2.09.2016 p. 30
  9. M. Nowicki, M. Ryczkowska, Ł. Górski, M. Szynkiewicz, P. Bała PCJ - a Java library for heterogenous parallel computing In: X. Zhuang (Ed.) Recent Advances in Information Science (Recent Advances in Computer Engineering Series vol 36) WSEAS Press 2016 pp. 66-72
  10. M. Nowicki, Ł. Górski, P. Grabarczyk, P. Bała PCJ - Java library for high performance computing in PGAS model In: W. W. Smari and V. Zeljkovic (Eds.) 2012 International Conference on High Performance Computing and Simulation (HPCS) IEEE 2014 pp. 202-209
  11. M. Nowicki, P. Bała PCJ-new approach for parallel computations in java In: P. Manninen, P. Oster (Eds.) Applied Parallel and Scientific Computing, LNCS 7782, Springer, Heidelberg (2013) pp. 115-125
  12. M. Nowicki, P. Bała Parallel computations in Java with PCJ library In: W. W. Smari and V. Zeljkovic (Eds.) 2012 International Conference on High Performance Computing and Simulation (HPCS) IEEE 2012 pp. 381-387

Papers where PCJ is used to develop parallel applications:

  1. J. Posner, L. Reitz, C. Fohry Comparison of the HPC and Big Data Java Libraries Spark, PCJ and APGAS Parallel Applications Workshop - Alternatives to MPI, SC'18, Dallas 2018
  2. M. Nowicki, D. Bzhalava, P. Bała Massively Parallel Implementation of Sequence Alignment with BLAST Using PCJ Library J. Comp. Biology 25 (8):871-881, 2018
  3. M. Nowicki, D. Bzhalava, P. Bała Massively Parallel Sequence Alignment with BLAST through Work Distribution Implemented using PCJ Library In: S. Ibrahim, Kim-Kwang R. Choo, Z. Yan, W. Pedrycz (Eds.) Algorithms and Architectures for Parallel Processing. ICA3PP 2017. Lecture Notes in Computer Science, vol 10393. Springer, Cham ,2017, pp. 503-512
  4. R. Istrate, P. Barkoutsos, M. Dolfi, P. Staar, C. Bekas Exploring graph analytics with the PCJ toolbox. In: Wyrzykowski R., Dongarra J., Deelman E., Karczewski K. (eds) Parallel Processing and Applied Mathematics. PPAM 2017. Lecture Notes in Computer Science, vol 10778. Springer, Cham, pp 308-317 (2018)

  5. M Ryczkowska, M Nowicki Performance comparison of graph BFS implemented in MapReduce and PGAS programming models. In: Wyrzykowski R., Dongarra J., Deelman E., Karczewski K. (eds) Parallel Processing and Applied Mathematics. PPAM 2017. Lecture Notes in Computer Science, vol 10778. Springer, Cham, pp 328-337 (2018)

  6. M Ryczkowska, M Nowicki, P Bała Level-synchronous BFS algorithm implemented in Java using PCJ Library In: 2016 International Conference on Computational Science and Computational Intelligence (CSCI), Las Vegas, NV, USA}, 2016, pp. 596-601
  7. Ł. Górski, F. Rakowski, P. Bała A case study of software load balancing policies implemented with the PGAS programming model In: W. W. Smari, V. Zejkovic (Eds) (eds.) 2016 International Conference on High Performance Computing \& Simulation (HPCS), IEEE 2016, pp. 443 - 448
  8. M Ryczkowska, M Nowicki, P Bala The Performance Evaluation of the Java Implementation of Graph500 In: R. Wyrzykowski et all (eds.) Parallel Processing and Applied Mathematics, Springer 2016 pp. 221-230
  9. Ł Górski, F Rakowski, P Bała Parallel Differential Evolution in the PGAS Programming Model Implemented with PCJ Java Library In: R. Wyrzykowski et all (eds.) Parallel Processing and Applied Mathematics, Springer 2015, pp. 448-458
  10. M Nowicki, M Marchwiany, M Szpindler, P Bała On-line Service for Teaching Parallel Programming In:Euro-Par 2015: Parallel Processing Workshops, Springer 2015, pp. 78-89
  11. M. Ryczkowska  Evaluating PCJ library for graph problems-Graph500 in PCJ In: W. W. Smari and V. Zeljkovic (Eds.) 2012 International Conference on High Performance Computing and Simulation (HPCS) IEEE 2014 pp. 1005-1007