3 ms·
I don't understand the goal of this post, it seems like it is just a list of short summaries of whatever libraries have CSP in the their name. What problem are
by iso-8859-1 7y ago
I don't understand the goal of this post, it seems like it is just a list of short summaries of whatever libraries have CSP in the their name. What problem are you trying to solve?
Are you trying to number-crunch across many machines? In that case, I guess MPI is standard, but how is CSP related to this?
If you're trying to concurrently download ten files, why not just use asyncio/trio and async/await? You're mentioning await/async, but you're not explaining how it is relevant to either MPI or CSP, or whatever this blog post is about.
You claim that CSP helps "efficiently abstracting away dependencies on underlying hardware", but how is this relevant to CSP? Any decent piece of software is portable, it isn't a property of CSP. "CSP provides [abstraction from hardware primitives] by multiplexing and scheduling coroutines on top of a CPU thread pool". Well, which concurrency frameworks don't do that?
- yingw787 7y agoHey thanks for commenting! This is mostly an academic exercise for me personally. I’m not familiar with different concurrency models as I’m starting off in my career and don’t get a whole lot of exposure to it in production. I was inspired by Paul Butcher’s book on seven concurrency models in seven weeks, where we actually does solve problems with different concurrency models in languages that have good support for them. So I thought if I could write down my thoughts and explain it to other people I will have gained some sticky understanding for me. I think Paul took a year or more in order to research and write his book, and it shows. Conversely it shows how my posts are sort of link aggregations because this series has taken about two months so far. Python’s also not terribly great for CPU-bound concurrency work in Python code. As to your points, I saw MPI and async await as primitive constructs on top of which you could build something like CSP. Not all software is portable; one example, if you want MKL acceleration in numpy, you have to use Intel CPUs. The next blog post I’m writing I’m writing about is hardware-based parallelism. IMHO this is Python’s bread and butter, and I should be able to demonstrate how Python comes in handy with code samples.