DCPAM 並列計算のためのファイルの分割
DCPAM で MPI (Message Passing Interface) を用いて行う並列計算のためには, 入力ファイルを分割しなければいけない.
計算結果の分割されたファイルを結合する方法としては Fortran プログラムを用意してある.
下では, 一つののファイルの分割について説明するが, 他の変数についても同じようにすれば分割したファイルを作ることができる.
このプログラムを用いることで分割することができる.
上記のファイルをダウンロードし, 展開し, コンパイルして設定して用いれば良い.
コンパイル
展開後のディレクトリ内で以下を実行する.
$ make
結果として生成される split_ncf が実行ファイルである. また, この実行ファイルは split.nml を設定ファイルとして読み込む.
設定
(詳細は util_split-2010-09-25/README.jp.rd を参照すること.)
入力ファイル, sp_for_Earth_T021.nc, を 4 つに分割する場合を考える. このファイルには, 計算に用いられる変数 zs, zsstd, sfcindex, culint が含まれる.
split.nml に下を記述する.
&proc nprocs = 4 / &item varname = 'zs', inncfn = '../sp_for_Earth_T021.nc', outncfn = '../sp_for_Earth_T021_P4.nc' / &item varname = 'zsstd', inncfn = '../sp_for_Earth_T021.nc', outncfn = '../sp_for_Earth_T021_P4.nc' / &item varname = 'sfcindex', inncfn = '../sp_for_Earth_T021.nc', outncfn = '../sp_for_Earth_T021_P4.nc' / &item varname = 'culint', inncfn = '../sp_for_Earth_T021.nc', outncfn = '../sp_for_Earth_T021_P4.nc' /
varname は変数名, inncfn は入力ファイル名, outncfn は出力ファイル名 ('_P4' は任意).
注意: 利用するディレクトリ構造を考慮して, 入力ファイル名を記述すること. (別ディレクトリで実行するならばディレクトリ名も必要.)
実行
$ ./split_ncf
正しく実行されれば ../sp_for_Earth_T021_P4_rank000000.nc, ../sp_for_Earth_T021_P4_rank000001.nc, ../sp_for_Earth_T021_P4_rank000002.nc, ../sp_for_Earth_T021_P4_rank000003.nc ファイルが生成される.