logoalt Hacker News

pdpitoday at 5:12 PM1 replyview on HN

> concurrency _is_ parallelism, but for I/O.

Not really. They're just separate but related concepts.

E.g. coroutines are a form of concurrency that doesn't have to involve any sort of I/O, you're just taking two logical processes (e.g generating a sequence and consuming it) and abstracting away how they execute relative to each other.

Describing your tasks using the language of concurrency is a requirement for process-based parallelism (multiple CPUs/cores), but data-level parallelism (SIMD) is a form of parallelism that doesn't involve concurrency either.


Replies

threatofraintoday at 5:32 PM

Concurrency is the property of a program or algorithm such that:

    - the program is decomposable into partially ordered or unordered units of execution
    - the program result remains determinant despite partial ordering
Your data-level parallelism is taking advantage of the concurrent properties of a problem.