[目次] [1ページ目] [前ページ] [次ページ] [質疑応答]
(8/15)

 ここでは、SMPでの並列処理の実現について説明する。
 ノード内並列処理として、コンパイラによる自動並列、またはOpenMPによる並列処理がある。この場合コンパイラは、スレッドと呼ぶ並列処理単位を生成するオブジェクトコードを生成する。プログラム実行時には、一つのプロセス配下で複数のスレッドが同時(並列)実行される。
 一つのスレッドが通常1CPU下で実行される。並列度(スレッド数=動作CPU数)は実行時の環境変数として定義される。
 このコンパイラによる自動並列化/OpenMPは小〜中規模問題を容易に並列処理したい場合に用いられる手法であり、従来のベクトル機のコンパイラを利用した自動ベクトル化に相当するものである。
 問題規模が大きくなった場合には、自動並列/OpenMPとMPIを組み合わせたプログラミングモデルが考えられる。これはコンパイラにより生成されたスレッド並列を行うプロセス間で、さらにMPI通信を用いて並列処理を行う手法であり、単一OS(一台のSMPマシン)内でも、あるいは問題規模がさらに大きい場合には複数のOS(複数台のSMPマシン)をまたがってMPI通信を利用できる。本手法はベクトル並列機(VPP)におけるベクトル並列処理に相当するものである。


[目次] [1ページ目] [前ページ] [次ページ] [質疑応答]