ナビゲーション:前へ 上へ 次へ
ナビゲーション:前へ 上へ 次へ
9 結合並列指示構文
OpenMPではparallel指示構文と他の指示構文を組み合わせたショートカットとしての結合並列指示構文がいくつか用意されています。 以下に主な結合並列指示構文を示します。!$omp parallel !$omp do ... !$omp end do !$omp end parallelは下記のように結合並列指示構文で置き換える事が可能です。
!$omp parallel do ... !$omp end parallel do同様に
!$omp parallel !$omp sections ... !$omp end sections !$omp end parallelは下記のように結合並列指示構文で置き換える事が可能です。
!$omp parallel sections ... !$omp end parallel sections以下にparallel do指示構文を用いたコード例を示します。
program parallelDo implicit none integer i, a(10) !$omp parallel do do i=1, 10 a(i) = i*2 end do !$omp end parallel do print *, a end program
9.1 ☆演習課題:結合並列指示構文
下記に示すプログラムを結合並列指示構文を用いてより簡潔に書き換えて下さい。[課題のコード] program kadaiCombinedSections implicit none integer,parameter :: N = 100 real x(N), y(N), z(N), xsum, ysum, zsum call random_number(x) call random_number(y) call random_number(z) !$omp parallel !$omp sections !$omp section xsum = sum(x) !$omp section ysum = sum(y) !$omp section zsum = sum(z) !$omp end sections !$omp end parallel print *, xsum, ysum, zsum end program
[実行例] 49.3362312 52.8307991 48.8469810解答例:kadaiCombinedSections.f90
ナビゲーション:前へ 上へ 次へ