[ 地球流体電脳倶楽部 / dcpam 公開領域 ] [ ディレクトリ管理の手引き / SIGEN ]

netcdf ビルドログ @ 宇宙研 SX


  1. 準備
  2. ビルド
  3. 参考資料

準備

必要なファイルの取得

必要なファイル

http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-3.6.1.tar.gz

SX 用のパッチがあり, 動作確認ができている 3.6.1 を取得

netcdfのパッチ適応

パッチファイルの取得

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

ビルド

netcdf

クロスコンパイルに成功していないので, ジョブを投げてセルフコンパイルする.

ジョブを投げるディレクトリは

/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

参考資料


DCPAM Development Group / GFD Dennou Staff dcstaff@gfd-dennou.org
Last Updated: unknown, Since: unknown