Process Coordination Library (Procol) is a project that investigates the use of space-based systems for multi-core programming in the Java programming language. It's programming model strives to combine the space-based choreography of concurrent components with the orchestration of domain-specific activities and space operations. The goal is to provide a coordination library that separates domain-specific implementation of component activity from the cumbersome implementation of concurrency in Java.
Industry today is relying on hyper-threading and increasing processor count. These new performance drivers make it necessary to explicitly consider concurrency. Unfortunately, our current programming languages rely on mechanisms that require to cut away unwanted non-determinism (concurrency), instead of careful introduction. Even worse, after years of sequential programming practice, the majority of software developers today are short on parallel programming experience. The challenge is not solely software performance and speed-up, but also to provide a convenient way to participate in the new performance drivers in general. Procol is intended to adress this challenge.
Procol is a research project. Expect a prototype, not a product. It is also subject to the following paper:
Gudenkauf, S., & Hasselbring, W. (2011). Space-Based Multi-Core Programming in Java. In C. Wimmer & C. W. Probst (Eds.), PPPJ 2011: Proceedings of the 9th International Conference on the Principles and Practice of Programming in Java (pp. 41-50). New York: The Associacion for Computing Machinery, Inc.
Procol consists of the following parts:
The Procol project is in an early state and there is still much to do. We are currently working on the following extensions:
Procol is hosted as an open source project by SourceForge. It contains the following elements:
Go, grab the current version from the Sourceforge SVN
Else, take this (slightly older non-Maven) archive:
The API of Procol can be found here (old version, new version will come soon):
I collected a list of tuple space implementations along with some information copied from various internet sites:
Please feel free to contact me <stefan( (at) )gudenkauf.de> if you have any questions on the procol framework.