##### 2020/11/06 鈴木綾馬 作成 ##### 使い方 (DCPAM 実行までのログ) ・計算を行うディレクトリ ユーザー追加手順(https://www.ep.sci.hokudai.ac.jp/~kodama/nozomi/src/adduser.txt) に従い,ユーザーを追加するとログインノードならびに計算ノードに 各ユーザーのディレクトリが "/work0*/ユーザ名" のように作成される. /work03 の HDD の容量に余裕があるため そこで計算を行っていただきたい. ・ジョブの実行 詳しい説明はジョブの投入を参照. (http://www.ep.sci.hokudai.ac.jp/~kodama/usage/index.htm.ja) 計算実行の際に,ノードを指定する場合は #PBS -l nodes=1:ppn=4 を #PBS -l nodes=nozomi101:ppn=4 というように指定すればよい. 指定できるノードは nozomi101 ~ 108 で それぞれコア数は8である. ・ノード間の並列を行う場合 (プロセス数が9以上) プロセス数が9以上でノード間の計算を行う際に, 通常通りジョブスクリプトを実行するとエラーが出る. ジョブスクリプト #!/bin/sh #PBS -N sample #PBS -j oe #PBS -o /work03/rsuzuki/test/out_main.log #PBS -q long #PBS -M rsuzuki@ep.sci.hokudai.ac.jp #PBS -m abe #PBS -l nodes=2:ppn=8 cd /work03/rsuzuki/test /work00/pgi/linux86-64-llvm/2019/mpi/openmpi-3.1.3/bin/mpiexec -n 16 ./a.out > main.log 2>&1 exit 0 エラー内容 -------------------------------------------------------------------------- There are not enough slots available in the system to satisfy the 16 slots that were requested by the application: ./a.out Either request fewer slots for your application, or make more slots available for use. -------------------------------------------------------------------------- そのため,計算に用いるノードとコア数を指定した hostfile を準備する. $ vi hostfile nozomi101 slots=8 nozomi102 slots=8 計算を実行する際はこの hostfile を以下のように指定することで実行できる. /work00/pgi/linux86-64-llvm/2019/mpi/openmpi-3.1.3/bin/mpiexec --hostfile "hostfileのパス" -n 16 ./a.out ・DCPAM を使うためのソフトウェア /work00/lib-openmpi2 に DCPAM を使う際に 必要なソフトウェアが PGI v19.10, OpenMPI v3.1.3 を用いて インストールされている. ・DCPAM 実行ログ 以下では DCPAM の並列計算までのログを示す. 作業ディレクトリ /work03/rsuzuki $ mkdir dcpam $ cd dcpam $ wget http://www.gfd-dennou.org/library/dcpam/dcpam5/dcpam5-20180304-2.tgz $ tar zxvf dcpam5-20180304-2.tgz $ mv dcpam5-20180304-2 dcpam5-20180304-2-mpi $ cd dcpam5-20180304-2-mpi/ $ export FC=mpif90 $ export LD_LIBRARY_PATH="/work00/lib-openmpi2/zlib-1.2.11-openmpi2/lib:/work00/lib-openmpi2/hdf5-1.10.5-openmpi2/lib:/work00/lib-openmpi2/netcdf-c-4.6.3-openmpi2/lib:/work00/lib-openmpi2/netcdf-fortran-4.4.5-openmpi2/lib:/work00/lib-openmpi2/gtool5-20160613-openmpi2-mpi/lib:/work00/lib-openmpi2/ispack-1.0.4-openmpi2:/work00/lib-openmpi2/spml-0.8.0-openmpi2/lib" $ ./configure --with-netcdf=/work00/lib-openmpi2/netcdf-c-4.6.3-openmpi2/lib/libnetcdf.a --with-netcdff=/work00/lib-openmpi2/netcdf-fortran-4.4.5-openmpi2/lib/libnetcdff.a --with-netcdf-include=/work00/lib-openmpi2/netcdf-fortran-4.4.5-openmpi2/include/netcdf.inc --with-gtool5=/work00/lib-openmpi2/gtool5-20160613-openmpi2-mpi/lib/libgtool5-mpi.a --with-ispack=/work00/lib-openmpi2/ispack-1.0.4-openmpi2/libisp.a --with-spml=/work00/lib-openmpi2/spml-0.8.0-openmpi2/lib/libspml-omp.a --with-mpiexec=/work00/pgi/linux86-64-llvm/2019/mpi/openmpi-3.1.3/bin/mpiexec --enable-mpi $ make ・地球実験 並列計算 $ mkdir -p dcpam-exp/Earth-exp-parallel $ cd dcpam-exp/Earth-exp-parallel $ mkdir bin conf $ cp ../../dcpam5-20180304-2-mpi/src/main/dcpam_main ./bin/ $ cp ../../dcpam5-20180304-2-mpi/src/main/dcpam_init_data ./bin/ $ cp ../../dcpam5-20180304-2-mpi/src/main/dcpam_init_data_surface ./bin/ $ cp ../../dcpam5-20180304-2-mpi/exp_setup_files/* ./conf/ 実験用データを準備 $ wget http://www.gfd-dennou.org/library/dcpam/sample/2015-02-11_tutorial/Earth/O3_CMIP5_climatology_zonalmean_T021.nc $ wget http://www.gfd-dennou.org/library/dcpam/sample/2015-02-11_tutorial/Earth/sic_amipII_bc_clim_T021.nc $ wget http://www.gfd-dennou.org/library/dcpam/sample/2015-02-11_tutorial/Earth/sp_for_Earth_T021.nc $ wget http://www.gfd-dennou.org/library/dcpam/sample/2015-02-11_tutorial/Earth/sst_amipII_bc_clim_T021.nc 外部入力データを分割 $ wget http://www.gfd-dennou.org/library/dcpam/related-program/util_split-2010-09-25.tgz $ tar zxvf util_split-2010-09-25.tgz $ cd util_split-2010-09-25 $ make $ cp split_Earth_data.nml split.nml $ ./split_ncf $ vi ../conf/dcpam_E_T21L26.conf *T021.nc -> *T021_P2.nc のように変更 初期値データを生成 $ mpiexec -n 2 ./bin/dcpam_init_data -N=./conf/init_data_E_T21L26.conf $ mpiexec -n 2 ./bin/dcpam_init_data_surface -N=./conf/surface_data_E_T21.conf 実験の実行 $ qsub run_dcpam.sh ・run_dcpam.sh #!/bin/sh #PBS -N earth_test #PBS -j oe #PBS -o /work03/hoge/dcpam/dcpam-exp/Earth-exp-parallel/out_main.log #PBS -q long #PBS -M hogehoge@ep.sci.hokudai.ac.jp #PBS -m abe #PBS -l nodes=2:ppn=1 export LD_LIBRARY_PATH="/work00/lib-openmpi2/zlib-1.2.11-openmpi2/lib:/work00/lib-openmpi2/hdf5-1.10.5-openmpi2/lib:/work00/lib-openmpi2/netcdf-c-4.6.3-openmpi2/lib:/work00/lib-openmpi2/netcdf-fortran-4.4.5-openmpi2/lib:/work00/lib-openmpi2/gtool5-20160613-openmpi2-mpi/lib:/work00/lib-openmpi2/ispack-1.0.4-openmpi2:/work00/lib-openmpi2/spml-0.8.0-openmpi/lib" cd /work03/hoge/dcpam/dcpam-exp/Earth-exp-parallel /work00/pgi/linux86-64-llvm/2019/mpi/openmpi-3.1.3/bin/mpiexec -n 2 ./bin/dcpam_main -N=./conf/dcpam_E_T21L26.conf > earth_test.log 2>&1 exit 0