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


OpenMPについて

  • 使い方は以下の文献を参考に
    • [[インテル® Fortran コンパイラー OpenMP* 活用ガイド|download.intel.com/jp/business/japan/pdf/527J-002.pdf]が分かりやすい.
    • OpenMPによる並列プログラミングと数値計算法牛島省(著)を参考に.
  • !$ use omp_lib を最初に宣言
progaram hoge
 
 
 
 ===== 注意点 =====
  * !$の後にOMPが続く場合は!$OMPと続けて書く.!$の後にOMPが続かない場合はスペースを入れる.
<code fortran>
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.1245802719.txt.gz · 最終更新: 2009/06/24 09:18 by 10.249.202.217
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