OpenMPを用いたコード例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/20 16:29 UTC 版)
「OpenMP」の記事における「OpenMPを用いたコード例」の解説
以下はC言語における for ループを並列処理させる例である。 int main(int argc, char *argv[]){ int i;#pragma omp parallel for for (i = 0; i < 10000; ++i) { /* (並列処理させたいプログラム) */ } return 0;} OpenMPはループの反復処理を自動的に複数のスレッドに分割して並行処理できるようにする。例えば4つのスレッドを用いて処理を分割する場合、上記例ではインデックス[0, 2499], [2500, 4999], [5000, 7499], [7500, 9999]の各範囲をそれぞれのスレッドに分担させる、といった具合である。実際にいくつのスレッドを起動するのか、また各スレッドに対してどのように処理を振り分けるのかはOpenMP処理系およびプログラム実行環境などの条件に依存する。 以下は区分求積法を用いた円周率πの数値計算を、OpenMP並列リダクションによって行なうC++のコード例である。 #include
※この「OpenMPを用いたコード例」の解説は、「OpenMP」の解説の一部です。
「OpenMPを用いたコード例」を含む「OpenMP」の記事については、「OpenMP」の概要を参照ください。
- OpenMPを用いたコード例のページへのリンク