この文書の現在のバージョンと選択したバージョンの差分を表示します。
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
openmp [2009/06/24 14:31] 10.249.202.217 |
openmp [2009/12/24 22:29] isakari |
||
---|---|---|---|
ライン 4: | ライン 4: | ||
* [[http://download.intel.com/jp/business/japan/pdf/527J-002.pdf|インテル® Fortran コンパイラー OpenMP* 活用ガイド]]が分かりやすい. | * [[http://download.intel.com/jp/business/japan/pdf/527J-002.pdf|インテル® Fortran コンパイラー OpenMP* 活用ガイド]]が分かりやすい. | ||
* OpenMPによる並列プログラミングと数値計算法牛島省(著)も良い. | * OpenMPによる並列プログラミングと数値計算法牛島省(著)も良い. | ||
+ | |||
+ | ===== コンパイル方法 ===== | ||
+ | * gfortran -openmp file.f90 | ||
+ | * ifort -openmp file.f90 | ||
+ | * frt -KOMP -Am file.f90 (thinの場合) | ||
+ | |||
+ | |||
+ | ===== 基本的なこと ===== | ||
+ | |||
* !$ use omp_lib を最初に宣言.**!$とuseの間にはスペースが必要.** | * !$ use omp_lib を最初に宣言.**!$とuseの間にはスペースが必要.** | ||
<code fortran> | <code fortran> | ||
ライン 70: | ライン 79: | ||
do i=1,n | do i=1,n | ||
do j=1,m | do j=1,m | ||
+ | 実行文 | ||
end do | end do | ||
end do | end do | ||
!$OMP end do | !$OMP end do | ||
</code> | </code> | ||
+ | |||
+ | ===== threadprivate ===== | ||
+ | moduleなどで、グローバル変数を定義している場合に、thread間ではその変数を共有しないで欲しいときに。 | ||
+ | <code fortran> | ||
+ | module common | ||
+ | implicit none | ||
+ | real(8) a,b,c | ||
+ | !$OMP threadprivate(a,b,c) | ||
+ | end module common | ||
+ | </code> | ||
+ |