top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

What is the difference between Parallelism and Concurrency?

+1 vote
293 views
What is the difference between Parallelism and Concurrency?
posted Aug 18, 2016 by Dominic

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

1 Answer

+1 vote

The term parallel computing has been in use the longest; Geoffrey Fox (Caltech physics professor and hypercube computer pioneer) started using the term concurrent instead of parallel in the mid-1980s because at the time, the term parallel was most often applied to Single-Instruction, Multiple-Data (SIMD) systems that were not as flexible as the Multiple-Instruction, Multiple Data (MIMD) systems like the hypercube clusters that Fox helped develop and study. Concurrency was a good way to convey the notion that many processor-memory pairs were busy at the same time, with different system clocks and different instruction streams.

It is safe to use the terms interchangeably in technical papers and be understood. There is no "faux pas" in doing so, and parallel computing is understood to mean all forms of computing where more work is done through simultaneous activity, not necessarily SIMD. It is a far more common generic term. A Google search on "parallel computing" produces almost three million hits; a Google search on "concurrent computing" produces only about 100,000 hits.

That said, when I write papers on parallel computing, I think of three pairs of antonyms:

Parallel is the opposite of serial.

Concurrent is the opposite of sequential.

Vector is the opposite of scalar.

I threw in vector computing because there are still those who occasionally use it as a synonym for parallel computing, when they talk about it at all anymore. Vector computing means applying an operation to a list containing more than one value, often (but not always) by means of a sort of pipelined, assembly-line flow of data to improve performance. As an analogy, an orchestral performance of a symphony is concurrency; a chorus singing in unison is operating in parallel; singing a round like "Row, Row, Row Your Boat" is like vector processing.

In summary, if anyone draws a distinction between concurrent and parallel, it is likely that they mean concurrency to be any kind of overlap in time, doing any kind of task, whereas parallel implies the simultaneous tasks tend to start and end at nearly the same time so they are well matched.

answer Aug 24, 2016 by Karthick.c
...