PCJ is Java library for parallel computing in Java. It is based on the PGAS (Partitioned Global Address Space) paradigm. It allows for easy implementation in Java of any parallel algorithm. PCJ application can be run on laptop, workstation, cluster and HPC system including large supercomputers. It has been demonstrated that PCJ applications scale up to 200 000 cores. Examples and more information at https://pcj.icm.edu.pl.
Library requires at least Java 8, no modifications to Java syntax or JVM are neccessary.
PCJ Library is now available on Maven Central Repository.
For maven project, just add this dependency to your pom.xml
file.
<dependency>
<groupId>pl.edu.icm.pcj</groupId>
<artifactId>pcj</artifactId>
<version>5.3.3</version>
</dependency>
If you are using gradle, add those lines to your build.gradle
file:
implementation 'pl.edu.icm.pcj:pcj:5.3.3'
annotationProcessor 'pl.edu.icm.pcj:pcj:5.3.3'
If you wish to compile project by your own, use these instructions:
- to package the jar:
./gradlew assemble
orgradlew.bat assemble
- to create javadoc:
./gradlew javadoc
orgradlew.bat javadoc
Execute ./gradlew eclipse
, start eclipse
, and use
File -> Import : Existing Projects into Workspace
. See
https://gradle.org/docs/current/userguide/eclipse_plugin.html for more
information.
The usage should be acknowledged by reference to the PCJ web site and/or reference to the papers:
- M. Nowicki, Ł. Górski, P. Bała. "PCJ – Java Library for Highly Scalable HPC and Big Data" In: W. W. Samari (Ed.) Processing 2018 International Conference on High Performance Computing & Simulation (HPCS), IEEE 2018, pp:12-20
- Marek Nowicki, Magdalena Ryczkowska, Łukasz Górski, Michał Szynkiewicz, Piotr 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
- Marek Nowicki, Łukasz Górski, Patryk Grabarczyk, Piotr Bała. "PCJ - Java library for high performance computing in PGAS model" In: W. W. Samari and V. Zeljkovic (Eds.) 2012 International Conference on High Performance Computing and Simulation (HPCS) IEEE 2014 pp. 202-209
- Marek Nowicki, Piotr 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
- Marek Nowicki, Piotr 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