title: 'Concurrency' vs 'Parallelism' -- 'Threads' vs 'Processes'
body: <p>I do know the difference between concurrency (CPU process swapping) and parallelism (processes running in real-time parallel on multiple cores). What I wish to know is what role threads and processes play in all of this. I am aware that every OS is different, and that CPU scheduling varies from OS to OS and VM to VM. In general, threads have much less overhead, and CPU swapping is generally quicker for threads, compared to processes. But when I read about multi-process computing, everyone seems to agree that this is the only alternative for computing on multiple CPUs in parallel.</p>
  
  <p>Does this mean that threads are not capable of running in real parallel on multiple CPU cores -- or does it mean that multi-process computing is the only viable option if you need to run calculations on multiple physical CPU chips, such as cluster network supercomputers?</p>
  
  <p>I would appreciate a clarification!</p>