Scaling PyCSP

PyCSP is intended to help scientists develop correct, maintainable and portable code for emerging architectures. The library uses concepts from Communicating Sequential Processes (CSP) and is implemented in the Python programming language. This paper introduces a new channel implementation and new process types for PyCSP that are intended to simplify writing programs for clusters. The new processes and channels are investigated by running three benchmarks on a cluster, using up to 512 CPU cores. The results show that PyCSP scales well, and that the introduction of a mobile channel home improves the performance of all three benchmarks.