臼井 英之
program hello implicit none integer omp_get_thread_num print*, program start.’ !$OMP parallel print*, My thread number =’, omp_get_thread_num() !$OMP end parallel print*,‘program end.’ end program hello
pgf90 -o [output] -mp [filename]ただし、-mpは、OpenMP directive を処理する、という意味。 つけないと、指示行は単なるコメントとみなされ無視される。
pgf90 -o hello -mp hello.f90とタイプすると、文法的に問題がなければ、helloという実行形式が生成される。
setenv OMP_NUM_THREADS [thread_num]とコマンドライン上で環境設定し、実行形式helloのある場所で ./hello とタイプすれば走る。(scalarの場合、thread_numは2を指定する。)
#PBS -l cputim_job=00:01:00 #PBS -l memsz_job=1gb #PBS -l cpunum_job=2 #PBS -q PCL-A cd [work_directory] setenv OMP_NUM_THREADS 2 ./helloただし、[work_directory]は実行形式のあるディレクトリ名
qsub [ジョブスクリプト名]上の例だと、test.sh
qstat
program hello を各自作成し、コンパイル後、バッチジョブで実行せよ。 ただし、標準出力は[スクリプト名].o[ジョブ番号]
intent(in) | 入力 | その手続き内で値は変更されない変数 |
intent(out) | 出力 | その手続き内で値が設定される変数 |
intent(inout) | 入出力 | 両者の混合。デフォルト。 |
バグの混入を防ぐために、Fortran90/95プログラムではすべての引数に入出力属性をつけることを強く勧める。
as of 2023-06-01 (木) 00:37:11 (90)