おいも貴婦人ブログ

生物系博士課程満期退学をしたAIエンジニアのブログ。

OpenMP

はじめてのOpenMP(4)

OpenMPの構文は以下のようになります。 #pragma omp 指示文名 [指示句[]...] 指示文 parallel 構文 並列実行の開始を指示し、複数のスレッドを生成する。 for 構文 forループの繰り返しがスレッドに並列処理されることを指定する。 #pragma omp for [指示句[…

はじめてのOpenMP(3)

private指示文 ソースと実行結果を見れば、private指示文の挙動がわかると思います。OpenMPでfor文を並列化するとき、for文で使用されるインデックスは自動的にprivate変数になっています。 #include <omp.h> #include <stdio.h> int main(void){ int i=0,j=10,k=20; #pragma</stdio.h></omp.h>…

はじめてのOpenMP(2)

sectionに分けて並列化をする。 #include <omp.h> #include <stdio.h> int main(void){ int i; int th_num[3]; #pragma omp parallel { #pragma omp sections { #pragma omp section { th_num[0]=omp_get_thread_num(); } #pragma omp section { th_num[1]=omp_get_thread_nu</stdio.h></omp.h>…

はじめてのOpenMP(1)

OpenMPを使って簡単なプログラムを書いてみました。 #pragma omp parallel num_threads(4):OpenMPの始まりとスレッド数の指定する。 #pragma omp for:OpenMPを使って、forを各スレッドに分割する。 omp_get_thread_num():スレッドの番号を取得する。 omp_get…