Concurrency is a property of the problem - no dependencies between tasks. Parallelism is a solution which uses that property.
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.
Concurrency is a property of the problem - no dependencies between tasks. Parallelism is a solution which uses that property.
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.