Concurrency vs Parallelism

A concurrent application is an application for which computations logically execute simultaneously due to the semantics of the application. The problem is fundamentally concurrent, i.e., it is built into the problem definition. The primary goal of using concurrency is not to gain performance, but rather because that is the simplest and most direct way to write the program.

A parallel application is an application for which computations actually execute simultaneously in order to complete a problem in less time. The problem doesn’t inherently require parallelism, it can be stated sequentially. Parallelism means running a program on multiple processors, with the goal of improving performance. Ideally, this should be done invisibly, and with no semantic changes.

For more see:
Rob Pike on Concurrency vs Parallelism
What is the difference between Concurrency and Parallelism – Stackoverflow

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s