メインコンテンツに移動

並列計算

C++における並列処理には次のものがあります.

マルチスレッド

一つのプログラムにおいて,複数のCPUが異なる場所を実行するものです.実行しているひとつひとつを「スレッド」と呼びます.CPUコアが複数ある現代の計算機では,基本となる並列処理方法です.その特徴は

  • 一つのプログラムであるので,データを通信する必要がない
  • 一つのプログラムであるので,複数のスレッドが矛盾したデータを書き込む可能性がある

マルチスレッドを行うには,std::thread などの標準的ライブラリを用いて自由度が高いマルチスレッドを行う方法と.どうせループを並列処理するのだから,それに特化したOpenMPライブラリを使う方法があります.数値計算では,OpenMPが普通です.

マルチプロセス

複数のCPUが複数のプログラムを実行し,プログラムたちが通信しながら並列処理を行う方法です.計算機が数多くなる現代のクラウド社会では,基本となる並列処理方法です.通信を行うのですから,送信とか受信を記述する必要があり,各種のライブラリーがあります.代表的なものは

GPGPU

これ