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

用語集

並列処理

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

概 要

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

解 説

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

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

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

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

補 足

並列処理では、本当に並列して実行するとは限りません。プログラムはコンピュータに搭載された「CPU」によって実行するのですが、同時に実行できるのは「CPU」の内部に含まれる「コア」と呼ばれる数が最大だからです。

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

PAGE TOP