Ever since mass-market processors transitioned from single-core to multi-core architectures, software could no longer rely on an increase in sequential performance for an increase in software performance. Now, developing high-performance software on multi-core architectures requires to exploit the apparent parallelism. Concurrent programming is the main tool for developing such software, but programmers struggle to create correct and scalable concurrent systems. It is argued in this thesis Communicating Sequential Processes (CSP) is a great model for creating correct and expressive concurrent systems. Further, it is argued combining the parallel nature of CSP with a dynamic multithreaded runtime system sets the foundation for creating high...