MulticoreInfo.com header image 2

Concurrent and Parallel Are Not The Same

July 7th, 2009 · 3 Comments




by Douglas Eadline, Ph.D.
Understanding the difference between concurrent and parallel: These two terms are often used interchangeably while, in my opinion, they are represent two different concepts.

Let’s start with concurrency. A concurrent program or algorithm is one where operations can occur at the same time. For instance, a simple integration, where numbers are summed over an interval. The interval can be broken into many concurrent sums of smaller sub-intervals. As I like to say, concurrency is a property of the program. Parallel execution is when the concurrent parts are executed at the same time on separate processors. The distinction is subtle, but important. And, parallel execution is a property of the machine, not the program.

If execution efficiency is important (i.e. you want things to go faster by adding more cores), then the question you need to ask is “If I run everything that is concurrent in parallel, will my code run faster?” If the answer were “yes” then we would not be having this discussion. And, since the answer, is “no”, then the question is “What should run in parallel?” which is obviously, the portions of code that lower execution time.

Full Story

  • Share/Save/Bookmark

Tags: HPC · MulticoreInfo

Like what you're reading? Come back every day for multicore news, or subscribe to RSS updates.



Stumble It!     


3 responses so far ↓

  • 1 Gregory Kornblum // Jul 10, 2009 at 8:46 am

    I agree to an extent. However most 4GL do not allow to choose which processor you want your concurrent process to run on. Typically that is for the OS to decide. I’m sure if your using one that is closer to the metal it is possible but since the majority of applications are written that are pretty far from it they are left with only concurrency in the hopes the process will run on another processor (or core) but it is usually safe to say the OS will make the right decision in that regard (ok, maybe not but it should). So in a narrower scope I’d say make these distinctions matter but in a global one discussing all 4GL the distinction loses value. Regardless, with this clarification, it’s a worthy write up on the discussion.

  • 2 Twitted by DevGuli // Jul 13, 2009 at 11:40 am

    [...] This post was Twitted by DevGuli [...]

  • 3 Multicore Review: Best Multicore Posts of 2009 // Dec 20, 2009 at 8:33 am

    [...] Concurrent and Parallel Are Not The Same: Douglas Eadline writes this article on Linux magazine explaining the difference between concurrent and parallel, which are often used interchangeably. [...]