金星大気放射計算

金星大気放射場のラインバイライン計算を並列で行う方法を説明する.

ラインバイライン吸収係数計算 (prog02.1)

$ cd prog02.1_calc_ac

設定ファイルの準備

既に説明した方法で準備する.

コンパイル

Makefile_calc_ac の下記の箇所のコメントを外す.

#DEF    = $(DMTCKD) -DMPI

コンパイルする.

$ make distclean
$ make

コンパイルが成功すると, 下の実行ファイルができる.

  • calc_ac
  • merge

実行

例えば 16 並列での実行するには下のようにする.

$ mpiexec -n 16 ./calc_ac

Finish と表示されれば無事実行終了.

計算結果のファイルは以下.

  • out/Venus_ProfB_ac_rank??????.nc

"??????" は 000000, 000001, 000002, ..., 000015 であり, 計算結果はプロセスごとに別ファイルに保存される.

分割ファイルの結合

プロセスごとに別ファイルに保存された結果を結合して一つのファイルに保存するために merge を用いる.

merge.conf にプロセス数とファイル名を指定する.

&file_nml
  NProcs = 16,
  InputFileName0 = "out/Venus_ProfB_ac.nc",
  OutputFileName = "out/Venus_ProfB_ac.nc"
/

入力ファイルは分割されているので名前が out/Venus_ProfB_ac_rank??????.nc であるが, プロセス番号 (ランク番号) は表記しない.

下のように実行.

$ ./merge

Finish と表示されれば無事実行終了.

親ディレクトリに戻る

$ cd ..