OpenMP 入門

ナビゲーション:前へ   上へ   次へ

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


ナビゲーション:前へ   上へ   次へ
関連情報
ご案内
© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks