スレッドとプロセスの違い

スレッドとプロセスはどう違うのかを、うまく説明する言葉はないだろうか、と考える。

http://www.curiocube.com/mikata/progtips/ch16_thread.php

↑このへんの説明がもっとも分かりやすい。

OpenMPでの並列実行の場合、プログラムは1つのプロセスとして実行され、そのプロセス内で複数のスレッドが動作していることになる。だから、psコマンドやtopコマンドで見えるのはプロセスなので並列実行しても1つしか見えないわけだ。
一方、MPI並列では、複数のプロセスが同時に実行されてそれらがデータの
やりとりを行う。

スレッドもプロセスも固有のスタックを持っている。すべてのスレッドは
メモリ空間を共有している。