以前のリビジョンの文書です


OpenMPについて

OpenMPによる並列プログラミングと数値計算法 牛島省(著)を参考に.

注意点

  • !$の後にOMPが続く場合は!$OMPと続けて書く.!$の後にOMPが続かない場合はスペースを入れる.
program hoge
  !$ use omp_lib
  !$OMP parallel default(none) private(j)
  !$ j=omp_get_num_threads()
  !$ write(*,*) j
  !$ j=omp_get_thread_num()
  !$ write(*,*) j
  !$ 
  !$OMP end parallel
end program hoge
  • defaultの後は(none)が無難?FIXME
  • doループの制御変数はいわゆる定義済み変数になるので共有属性節1)に記述する必要はない.書くとすればprivateかfirstprivateのいずれか.
program hoge
  !$ use omp_lib
  implicit none
  integer i,j,k
  !$OMP parallel default(none) private(j)
  !$OMP do
  do i=1,4
     !$ j=omp_get_thread_num()
     !$ write(*,*) i,j
  end do
  !$OMP end do
  !$OMP end parallel
end program hoge
  • !$OMPのついた文を改行するときは改行した文にも!$OMPが必要
program hoge
  !$ use omp_lib
  implicit none
  integer i,j,k
  k=-1
  !$OMP parallel default(none) private(i,j)&
  !$OMP & shared(k)
  !$ i=omp_get_thread_num()
  !$ j=omp_get_num_threads()
  !$ write(*,*) i,j,k
  !$OMP end parallel
end program hoge
1) sharedとかprivateとかfirstprivateとか
openmp.1242011914.txt.gz · 最終更新: 2009/05/11 12:18 by 10.249.202.199
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0