Paper Details

Communicating Process Architectures (CPA)
 Title: aPyCSP - Asynchronous PyCSP Using Python Coroutines and asyncio
 Conference: Communicating Process Architectures 2018
 Authors: John Markus Bjørndalena, Brian Vinterb, Otto J. Anshusa
(a) Department of Computer Science, University of Tromsø
(b) Niels Bohr Institute, University of Copenhagen
 Abstract: PyCSP provides a CSP (Communicating Sequential Processes) based library for Python, where CSP processes can be executed as threads, operating system processes or greenlets. The main drawback of the thread and process implementations is that they limit the number of CSP processes that a program can use due to operating system limitations. Threads and processes also introduce memory and synchronisation overheads. This overhead is reduced when using greenlets, but requires the use of an external library. aPyCSP is an experimental implementation of PyCSP that uses recent support for coroutines in Python. This paper explores two implementation approaches for aPyCSP where the most recent version is shorter, simpler to read and understand and supports more functionality than the original version, including generic channel support and input and output guards. The aPyCSP implementation is also faster and uses less memory per CSP process, allowing us to scale to 15 million processes on a computer with 64 GB memory. 

BibTeX Entry

Full paper