必要なファイル
http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-3.6.1.tar.gz
SX 用のパッチがあり, 動作確認ができている 3.6.1 を取得
パッチファイルの取得
http://www.unidata.ucar.edu/software/netcdf/patches/blksz-361-patch http://www.unidata.ucar.edu/software/netcdf/patches/f90-361-patch http://www.unidata.ucar.edu/software/netcdf/patches/nec_sx_vector_ncx-361-patch http://www.unidata.ucar.edu/software/netcdf/patches/fileinf-361-patch
netcdfのファイルを解凍する
$ tar zxvf netcdf-3.6.1.tar.gz
パッチファイルを
netcdf-3.6.1/src
に移動する
$ cp *-patch netcdf-3.6.1/src
パッチを適応する
$ cd netcdf-3.6.1/src $ patch -p0 < blksz-361-patch $ patch -p0 < f90-361-patch $ patch -p0 < nec_sx_vector_ncx-361-patch $ patch -p0 < fileinf-361-patch netcdf-3.6.1/src/libsrc/v2i.c
がヘッダ指定不足なので以下の部分を追加する
#include "config.h" #include "nc.h"
> sxmode
でコンパイラーのモードを知ることができる sx-8rとsx-9用がある(sx-9は大規模計算用)
> compver -sx8r
クロスコンパイルに成功していないので, ジョブを投げてセルフコンパイルする.
ジョブを投げるディレクトリは
/large/t/t583
とする.
ジョブを投げるのにはジョブスクリプトを 作成する必要がある (参考:jss user guide P80). ここでは <URL:netcdf_config.sh> を利用
パスは下のように設定
#PBS -v TOPDIR_front=/large/t/t290/netcdf/netcdf-3.6.1
ジョブの投入
> qsub ./config.sh
うまくいけば
Request 94136.iox submitted to queue: T.
というように表示される.
ジョブの状況を知りたい時は以下のコマンドを実行
> qstat
標準出力
netcdf_config.sh.o*
標準エラー出力
netcdf_config.sh.e*
config.sh.e*をみると
%NQSII(INFO): Batch job received signal SIGKILL. (Exceeded per-req elapse time limit)
という表示がある
時間切れのため途中で止まっているので
./configure make clean
をコメントアウトしてもう一度実行
> qsub ./config.sh > qstat
で確認
netcdfというディレクトリができるのでこれを移動.
> mv netcdf ~/local/netcdf-3.6.1-sx8r