CReSS に関するメモ
研究室の並列計算機で、CReSS を実行する手順 (2005.1 の備忘録)
- ソースを展開 tar zxvf ディレクトリ/cress2.1m.tar.Z
- cd CReSS2.1m/
- 下記訂正を行う。cd User_Mod; vi declmpi.f90; use mpi をコメントアウトし、
include 'mpif.h' を有効にする。; cd ..
- compile.conf の FC を ifort に設定
- user.conf で wlngth = 1 を設定。 <= wlngth = 4 が正しい。
- 実験に合わせて、ここから各種設定、およびデータファイル作成 etc.
- たとえば、solver の実行は
- ./compile.csh solver
- bsub
- cd 実行ディレクトリ
- mpirum -np CPU数 ./solver.exe < user.conf > test.out
- Ctrl + D
などとする。(本当にこれで良いのか。。。。)
- bsub -n CPU数 -o test.out "cd /home/tama/test; mpijob mpirun ./solver.exe < user.conf.caps2002 > LOG"
- とやっても動いた。こっちの方が、CPUを選んでくれて良い?
- 2行上の cd /home/tama/test; は不要のようだ。
- CPU数は user.conf の xpedim * ypedim と合う必要がある
- 更に、CPU数は user.conf の xdim-3 を xpedim で、ydim-3 を ypedim で割り切れるようにしておかねばならない。
- どちらも、Src/rdname.f90 で、チェックされているところを見れば分かる。
- データをまとめるために、unite を作成、実行する。dmp と geo のファイルのバイト数設定や、どちらをまとめるのか、などの設定を忘れずに! user.conf の一番最後にある。
- unite の実行は、並列じゃないので、普通に ./unite.exe < user.conf などとするべし。
CReSS 2.x が、並列計算機でコンパイルできない。(2004.Nov.)
研究室の並列計算機 (HIT P4 x8、MPICH Version: 1.2.6, Intel Fortran Version 8.1)で、コンパイルすると、mpi_bcast を含むいくつかのソースで
fortcom: Error: castname.multi.f90, line 44: There is no matching specific subr
outine for this generic subroutine call. [MPI_BCAST]
と言われてしまう。
解決策 User_Mod/declmpi.f90 の、"use mpi" が有効になっているところを、"include 'mpif.h'" が有効になるように変更。(榊原氏@中電CTIに感謝)
他、種々
- うちの並列計算機では、 wlength = 1 らしい (これで4バイトづつ読み書き)
- 上の文は間違っている! wlngth = 4 である。
- 正しく言うと、open文の recl=1 と指定すると、1レコードが4バイトになる。
MPI
私的メモへ