Concurrent programming is about user experience Parallel programming about performance.
- Concurrency
- Parallelism In a concurrent program, several threads of operation are running at the same time because the user expects several actions to be happening at the same time. In a parallel program, the work that would be performed on a single CPU is split up and handed to multiple CPUs who execute each part in parallel (hardware thread-level parallelism). Instruction-level parallelism: a single instruction performed on multiple words in parallel. If we run a parallel program on a single-core system, the only effect will be that it runs slower.
Because effectively parallel programs execute concurrent threads, many of the issues of concurrent programs are also encountered in parallel programming