並列
時刻 $ t において、ある複数のプロセス $ p_0,\dots,p_n が実行状態にある ⇔ プロセス $ p_0,\dots,p_nは時刻 $ t において並列に実行されている。
並行プログラミング入門 p.5
同時に実行状態にある というのがキモ
並行 は同時に計算途中状態 (実行状態 | 待機状態)にある という定義
なぜ並列処理が必要になるのか?
性能向上のため
2000年代以降、CPUコア数の増加(マルチコアCPUの普及)が進んでいる
動作周波数、消費電力、発熱、リーク電流対策を同時に達成することが困難になっているため、1コアで発揮できる性能が頭打ちになってきた
半導体素子の微細化でコスト削減と動作周波数の向上を図っていた
しかし、微細化が進みすぎて量子トンネル効果によるリーク電流が無視できなくなってきた
量子トンネル効果を抑えるためには素子をでかくするか、電圧を上げなければいけない
電圧を上げると発熱と消費電力が多くなる
発熱すると壊れる