I like this definition: <a href="https://news.ycombinator.com/item?id=5715394" rel="nofollow">https://news.ycombinator.com/item?id=5715394</a><p>Concurrency is a property of the problem - no dependencies between tasks. Parallelism is a solution which uses that property.<p>This definition doesn't require (erroneous) distinctions between single and multicore systems. If I use a single core system to emulate a multicore system complete with emulated clock cycles and what not, are the emulated programs running concurrently or in parallel? From which point of view? The definition shouldn't dictate an implementation.