並列処理と平行処理について

ふと並列処理と平行処理の違いは?と考えると毎回う〜んとなるので一番しっくりくる考え方を書き残しておこうと思います。

定義

システムが複数の動作(処理の流れ)を同時に実行状態(in progress)に保てる機能を備えている場合を 並行(concurrent)と言い、複数の動作を同時に実行できる場合を並列(parallel)と言います。 重要な概念、違いは「実行状態」という点です。

平行処理

 平行処理はシングルコアプロセッサで考えると理解しやすいです。シングルコアなので基本は1つの仕事しかできません。なので1つの仕事にだけ集中していると他の仕事はこなせません。なので複数の仕事を分割して処理すれば多くの仕事をこなすことができます。これが平行処理の考えです。

平列処理

 平列処理はマルチコアプロセッサで考えると理解しやすいです。マルチプロセスで動く仕事をそれぞれのコアで分担して、さらに同時に処理していきます。これが平行処理です。

まとめ

 並列処理の中に平行処理の考え方があるみたいな感じかな?

参考リンク

並列と並行:その違いは? - ablog