Thinking in Parallel
blog.baasil.io
blog.baasil.io
You can handle multiple concurrent connections/requests on a single CPU core; but that would not classify as parallel processing. So the term 'parallel' is more specific than 'concurrent'.
The paragraph under 'Introduction' here https://en.wikipedia.org/wiki/Concurrent_computing seems to give a pretty good definition.
In French, the word 'concurrent' literally means 'competitor' - Which in our case implies competition for computational resources (E.g. specific memory locations) - On the other hand, the 'Thinking in Parallel' article talks about how to partition resources in a way which removes the element of competition between processes - So the word 'Parallel' seems fitting.
Concurrent is for separate entities working together in a coordinated manner. A prime example is threads working together on a work queue. Parallel is for a singular entity doing multiple things at the same time. For example a vector instruction that does multiple additions at the same time.
If you are talking about a single system, running an a black-box cluster, all the networking inside the cluster is just an artifact of parallelism (not very different from what happens on the networking between your processor cores and the memory, by the way).
If you are talking about the construction of the cluster, or how to port software to it, you'll break it down into a level where that network is now in your "outside world", and the ordering over it must be called concurrency.
This isn't quite the idea behind thinking in parallel. In fact, parallelism is more about understanding the dependencies between any given piece of your program. Each piece need not necessarily be independent of another; rather, it's understanding where the dependencies are.