研究室の並列計算機を対象に記述する。
適当なディレクトリを作って CReSS を展開する。
mkdir CatsEye cd CatsEye tar zxvf ~tama/CRESS/Tars/cress2.2m.tar.Z cd CReSS2.2m/これで、CReSS のホーム (みたいなところ) にいる。
次に、うちの並列計算機では必要な変更をする。
cd User_Mod vi declmpi.f90vi では、 h:左、 j:下、k:上、l:右 の移動で、i文字列(ESC)で 文字列挿入[ (ESC) はエスケープキー ]、
use mpi !! include 'mpif.h'となっているところを
! use mpi include 'mpif.h'とする。(この作業は、玉川の手元のPC FreeBSD + mpich2 + gfortran では不要)
そして、cd .. として、~/CatsEye/CReSS2.2m/ に戻って
vi compile.confとして、
LDFLAGS = -O3 FFLAGS = -O3 FC = ifortとする。( 玉川の手元のPC FreeBSD + mpich2 + gfortran では FC = gfortran42 )
そして、./compile.csh solver ./compile.csh unite として、 実行ファイル solver.exe unite.exe を作成する。
実行に必要なファイルを Form からコピー
cp Form/user.conf.cats.eye.form user.conf cp Form/sounding.txt.cats.eye.form test.sounding.txt(後者の test は、user.conf 中で実験名がテストだから)
そして演算実行。
もし、シングル CPU なら ./solver.exe < user.conf > LOG & として、
tail -f LOG とかして見ていれば良いが、
マルチCPUなので、もうちょっと複雑
になる。
まず、使用するCPU数に合わせた設定を user.conf で行う。
vi user.conf
&dimset xpedim = 8 ypedim = 1 xdim = 99 ydim = 4 zdim = 139の xpedim ypedim を xpedim*ypedim が使用するCPU数なのでそれを考えて設定する。 xdim ydim の値に制限があるので、Doc/readme.user.conf を注意して読む事。
実行は、
bsub -n 4 -o LOG_BSUB "mpijob mpirun ./solver.exe < user.conf > LOG"となる。LOG_BSUB には bsub に関する状況が出力され、LOG には CReSS 実行時の 情報が出力される。
同じ実行の方法であるが、ジョブ管理ソフトを使わず、直接 mpi を使うには
machinefile として、
例えば以下のデータ (PCに合わせるべし) を作成し、
tamacalc1:1 tamacalc2:1 tamacalc3:1 tamacalc4:11つのCPUを持つ、tamacalc1 云々と読む。ホスト名は /etc/hosts に存在すべし。
mpirun -np 4 -machinefile machinefile ./solver.exe < user.conf > LOGbsub 系のコマンドのライセンスが切れたら、こちらを使う事。
ともかく計算が終ったら、unite で *pe00* という名前のファイルを くっつける。
&uniconf_uni fltyp_uni = 'dmp' flitv_uni = 40.e0 rmopt_uni = 1とある。fltyp_uni = 'geo' にすると test.geometry* が、
./unite.exe < user.confその後、例えば、 readcateye.f90 のようなプログラムを 作成して、データを読みだし、図化など行う。
これ以降の作業は、並列計算機から、192.168.1.12 などにデータを 移して、そちらで行う。
(地形や気象データを用いた本格的なデータの場合、もっと汎用的なソフトを 製作してある ここ 。データの移動
cd tar cvf - CatsEye/CReSS2.2m | ssh 192.168.1.12 'tar xf -'とすると、192.168.1.12 の同じ場所にデータがコピーされる。
ssh 192.168.1.12 あるいは、putty などで 192.168.1.12 にログインし データがあることを確認後、特に理由が無ければ、計算結果を消去する。cd CatsEye/CReSS2.2m rm test.dmp* test.geography*次に、192.168.1.12 にログインして
cd CatsEye/CReSS2.2mとする。また、同じディレクトリに、 readcateye.f90 を置く。
( wget http://tama.green.gifu-u.ac.jp/CReSS/CatsEye/readcateye.f90 で取得できる )
そして、コンパイルgfortran -o readcateye readcateye.f90実行./readcateye > X_Z_Pt240 dmp file name と入力を促されたら test.dmp000240.united.bin readcateye.f90 はあくまでサンプルなので、必要に応じて改変して使う必要がある。
( ここでは、温位を X、Z 座標とともに X Z Pt の順で、 XZ断面データを出力している。 )
このあたりも ここに載っている が、念のためここにも略述する。出力されたデータを使って、コンター図を作ってみる。
GMTというソフトを利用する。 研究室のGMTのページ 等を 参照のこと。
GMT 実行用のスクリプトset input = X_Z_Pt240 # set output = Pt240.ps set output = Pt240.eps # eps file name set lonmin = 20 set lonmax = 970 set latmin = 10 set latmax = 685 set dlon = 1 set dlat = 1 set tmp = temporal.grd set ContourLevel = 300/315/0.5 set fcolor = xxx.cpt set scale = 15/10 # set EPS type file gmtset PAPER_MEDIA = a4+ makecpt -Crainbow -T$ContourLevel > $fcolor surface $input -G$tmp -R$lonmin/$lonmax/$latmin/$latmax -I$dlon/$dlat grdimage $tmp -JX$scale -R$lonmin/$lonmax/$latmin/$latmax \ -B"a100:(m):/a50:(m)::.Potential Temperature at 240sec:WeSn" \ -C$fcolor -K >! $output grdcontour $tmp -JX$scale -R$lonmin/$lonmax/$latmin/$latmax \ -C$fcolor -O >> $output \rm $tmp \rm $fcolorを適当な名前で置いて、tcsh スクリプトのファイル名 とすれば、 Pt240.eps という画像ファイルができる。 詳しくは、それぞれのコマンドを man grdimage のようにするか、 grdimage として実行するか、Google など他のWWWページの解説を探すか、 するべし。
玉川のページ | 研究室 | CReSS関係ページ研究室 | 流域圏科学研究センター | 岐阜大学 |
tama@green.gifu-u.ac.jp
〒501-1193 岐阜市柳戸1-1
岐阜大学流域圏科学研究センター
Tel/Fax: 058-293-2430