IPSJ情報処理カタログ #ジョーショリ

用語集

並列処理

へいれつしょりParallel Processing/Asynchronous Processing

概 要

複数のプログラムを同時に実行して処理すること。プログラムは決められた順序に従って処理が進むのが基本だが、同時に複数の処理をしたいことがある。そのようなときにはコンピュータなどがもつ仕組みを使って、並列に実行できる。

解 説

並列処理は、複数の処理を並行して同時に動かす仕組みです。それぞれの処理は、独立して動くことから「非同期処理」とも呼ばれます(「同期」とは、互いに相手の状態を確認しながら処理を進めることを言います)。

並列処理のメリットは、時間がかかる処理が間に入るときも、それを待たずに他の処理が進むことです。そのため全体の処理時間が短くなる傾向があります。

並列処理と一般的な処理を比較した場合、待ち時間が一切ないならば処理速度は同じですが、コンピュータにとって、「ディスクの読み込み」は「書き込まれるまで待つ」、「ネットワークの通信」は「書き込まれるまで待つ」「データが到着するまで待つ」というように、ほとんどの処理で待ちが発生するので、一般的に並列処理のほうが速くなります。

たとえばゲームプログラミングでは、ゲーム内に登場する物体に対して個別にプログラムを記述し、それらを同時に動かすという作り方をよくします。そうすれば、各プログラムは、対応するひとつの物体の動きしか関与しないので見通しがよくわかりやすくなるからです。こうした作り方であれば、物体を2つ3つと複製するのも容易です。

補 足

並列処理では、指定した処理が完全に並列で実行されるとは限りません。プログラムはコンピュータに搭載された「CPU」によって実行されますが、同時に実行できる処理の数のは「CPU」の内部に含まれる「コア」というプロセッサーの数で決まります。

そのため実際には、並列処理は指定したとおりに同時に実行されるのではなく、OSなどのソフトウェアがもつ「タスクスケジュール」という機能によって、複数の処理を分割し、それぞれをとても短い時間で切り替えて実行することで、あたかも並列に実行されるようにする機構で実現されています。

PAGE TOP