logoalt Hacker News

criddell • today at 7:37 PM • 3 replies • view on HN

This review seems to equate parallelism and concurrency as the same thing and they are not.

As I understand it, the parallelism is about task execution and concurrency is about task structure. Or, as Rob Pike said:

"Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once."

He said that in his Concurrency is not Parallelism talk.


Replies

Jtsummers • today at 7:57 PM

That's a useful interpretation of the two terms, but it's far from universal and the two have often been used fairly interchangeably over the decades. It's been much more useful as a distinction when someone discussing it announces that that is how they're separating the two concepts, instead of trying to force other people to adopt that particular pair of definitions.

mkehrt • today at 10:08 PM

As other comments have pointed out, this is just not true in general usage.

When I was a grad student studying this stuff (~20 years ago), we used "parallelism" to mean running on different cores at the same time and "concurrency" to mean preemptive multithreading on a single processor.

➕ show 1 reply
ahelwer • today at 7:58 PM

That battle has unfortunately been lost and different sources give different definitions, often exactly swapped. This was discussed in one of the HN posts linked in the article: https://news.ycombinator.com/item?id=36318280

In the end I don't think it is too much of an issue. What confusion is really brought by conflating parallelism and concurrency? Sure, concurrent programs can be serialized onto a single core (that's how deterministic simulation testing implementations like Antithesis and record & replay implementations like Mozilla's rr operate). But there isn't some deep conceptual unlock you get by having a strict conceptual boundary between concurrency and parallelism.

➕ show 3 replies