Altix 350 Setup

2005/10/6-

Users' Guide

仕様

Installation of Local Applications

GPV-MSMがGRIB2対応になったため導入。
$ wget ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tar
$ tar xvf wgrib2.tar
$ cd grib2 ; make
shuiでは問題なくインストール完了。trmmでは/usr/lib/libpng.aが無かったため、それを導入後インストール。Sunには対応して いない。
GPV-MSMの読み方に関してはこちら。
(注:bashにて。cshならexportがsetenvになる)
# cd /usr/local/

# wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf.tar.gz
# gunzip netcdf.tar.gz
# tar xvf netcdf.tar
# cd ./netcdf-3.6.0-p1/src
# export FC=ifort
# export F90=ifort
# export CC=icc
# export CXX=icpc
# export CPPFLAGS=-DpgiFortran
# export FFLAGS="-g -O2 -mp -recursive"
# ./configure
# make test
# make install
この後、/etc/profile.d/に、netcdf.csh, netcdf.shなどを作り、PATHとMANPATHを設定する。
(注:cコンパイラにiccを指定すると、 GMTDIR/src/makegmt.macrosに適切なCC_OPTがないため、うまく行かない。)
(注2:sharedlibをyesにすると、なぜかうまく行かない。上と似たような理由と思うが)
# wget ftp://ftp.eos.hokudai.ac.jp/pub/gmt/install_gmt
# sh install_gmt
適宜回答。上記事項に注意。
この後、 /etc/profile.d/に、gmt.csh, gmt.shなどを作り、PATHとMANPATHを設定する。
→完了
Makedef.Altix
include/zfnum.hのfpp処理がなぜかうまく行かない。
(注:適宜gsファイルを取得しておく。ここではSunより /urs/local/gradslib.tarとして取得したとする。)
(注2:公式版である1.8はRedHat5までの対応で、バイナリだけではどうもうまくいかないし、コンパイルもうまく行かないので、1.9betaの RHE3版を使用)
# cd /usr/local/
# wget ftp://grads.iges.org/grads/1.9/grads-1.9b4-linuxRHE3.tar.gz
# gunzip
grads-1.9b4-linuxRHE3.tar.gz
# tar xvf grads-1.9b4-linuxRHE3.tar
# ln -s /usr/local/grads-1.9b4 /usr/local/GrADS
# cd /usr/local/GrADS/lib/
# tar xvf /usr/local/gradslib.tar
# ln -s /usr/local/GrADS/lib /usr/local/lib/grads
/etc/profile.d/grads.csh などに、PATHとGASCRPを登録。
RedHat AS2.1(RHE4) + Intel Fortran Compiler 8.1 + Intel C/C++ Compiler 8.1 にて確認。
【2006/01/26追記】
・F_UFMTENDIAN=big で動かすとダメ。unsetenvする必要がある。
# cd /usr/local/
# wget http://www.gfd-dennou.org/arch/dcl/dcl-5.3.1.tar.gz
# gunzip
dcl-5.3.1.tar.gz
# tar xvf
dcl-5.3.1.tar
# export FC=ifort
# export CC=icc
# export DCLDIR=/usr/local/dcl-5.3.1
# ./configure --prefix=/usr/local/dcl-5.3.1
# make
# make install
# cd demo
# make
# cd gokuraku/hop ; ./hop (例→描画できたらOK。)

後述するGTOOL3.5の導入のため、GTK出力の部分は削除してmakeするこ とに。
# (前述の設定に加えて)export FFLAGS="-O -mp -recursive"
# ./configure --disable-gtk --disable-gtk2
# make
# make install
# cd demo ; make <−動作確認
ちゃんとドキュメントを読みましょう。
0. dcl5.3.1のGTK関連はサポートしていないため、GTKなしでdclをインストールする。
1. http://gcm.tokyo.rist.or.jp/gcm/  から、『CCSR/NIES/FRCGC AGCM コミュニティ版 gtool のβ版パッケージ』を入手。(ユーザー登録が必要)
2.libsrcのdcl-gtoolのリンクを5.3.1に変える。
3.libsrc/sysmake においてMakedef.$(SYSTEM)をいじる。ここではMakedef.Altixを作った。
4.Mkincludeをいじる。DCLのとことか、パールとか。
5.make, make install (ここでどれだけ苦労したことか・・・アホ)
6.gtshow, gtcontなどを試す。エンディアンも問題なく、うまく行っている模様(※注)
7./etc/profile.dに登録

※注(原因究明中):
・Abort時に
数百MB と非常に大きいcoreが dumpされてしまう。
 (10/26付記:解決。ログインシェルでlimitを指定した。)
・gtcontは、ファイル(例えば/export/raid37/kei/ERA4_1979/GLW→ファイルサイズがでかい?)によっては
 ***** ERROR (SZQTXW) ***  CONTROL CHARACTERS ARE NOT IN GOOD AGREEMENT.
 などと出て、うまく出力できない。
 (10/26付記:未解決。Ferretのバイナリからも同じ現象が起きることが判明。引き続き調査。
  シーケンシャルなデータの場合にエラーがでるようだ。)
・バイナリの容量がでかい。(ドキュメントにもあったが原因不明)
【2006/01/26追記】
・unsetenv F_UFMTENDIANしないとダメ。CONTROL CHARACTERSの問題は未解明。
【2006/01/28 追記】
・DSETにアンダーバーが使用されているとダメなようだ。そういう場合は、gtheadなどでDSETを変更。
(うまく行かなかった人の記録)
まったくうまくいかない!!!
Intel Fortranが原因かと思ってf77を使うも撃沈。DCLをf77で入れなおしても撃沈。
/usr/local/dcl-5.3.1/lib/libf77dcl531.a(swlqnp.o)(.text+0x9a0): In function `swlqvl_':
: multiple definition of `swlqvl_'
などなどと出る。もうダメだ。マジでむかつく。
・・・
libsrc/dcl-gtoolのリンクをdcl531-gtoolに設定、makesするとmultiple definitionは消滅した(やった!)。が、
/usr/local/dcl-5.3.1/lib/libf77dcl531.a(zgpack.o)(.text+0x72): In function `zgupdate':
: undefined reference to `gtk_widget_draw'
とでるようになった。むむぅ。
びっくりするくらいうまく行ったぞ。
# cd /usr/local
# wget http://www.gfd-dennou.org/arch/gtool4/gt4f90io-current.tgz
# gunzip
gt4f90io-current.tgz
# tar xvf
gt4f90io-current.tar
# cd gt4f90io
# export FC=ifort
# export CC=icc
# export FFLAGS="-O -g -mp -recursive"
# ./configure --prefix=/usr/local/gt4f90io --with-netcdf=/usr/local/netcdf/lib/libnetcdf.a
Config.mkにSYSFFLAGS=-O -Qoption,ld,-Bdynamic -Vaxlib -wを追加。
→つけなくても動いた。多分早くなったのだろう。
# make
# make install
# make test-installed
Altixの特徴にあわせたMPIが-lmpiでできるから意味ない、とSGIには 言われたが、 とりあえず入れてみる。
# cd /usr/local
# wget http://www-unix.mcs.anl.gov/mpi/mpich/downloads/mpich.tar.gz
# gunzip mpich.tar.gz
# tar xvf
# バイナリをwgetするだけでは、ダメだ。
と思っていたら、Thanh君から、パーフェクトだ、との話が。どうもちゃんとできているみたい。はて。
【2006/01/26追記】
unsetenv F_UFMTENDIAN しないとダメ。つまり、little endianでバイナリ化されているから。

http://ferret.pmel.noaa.gov/Ferret/Documentation/Users_Guide/current/fer_html.htm
Sample Sessionsをトライしてみよう。
# 難しい。。。CMAQ導入格闘記 (README.kei)へ。
・m3bld用のスクリプト、FCなどはフルパスは書くこと。(そうでないとなぜかエラー)
・CCTMコンパイルにおいて、-Dの個数制限に引っかかる。。。どぼしよ。(よくわからんが、-Dが86個あるとだめらしい。"defined variable buffer exceeded"とでる。)
→m3bldではMakefileの自動生成→makeまでが勝手にされてしまうので、bld.pgfのset MakeOptを指定(コメントをはずす)、Makefileだけをつくり、Makefileに.F.oの記述をいれた。fppしてコンパイルという2段 階コンパイル(fppには-Dの制限はないようだ)。wr_conc.FにALLOCSTATの二重定義を発見→訂正。mashine8を変える。 mpirunによる実行→8CPUで動いた!バンザーイ。
・残りのscriptのコンパイルは、READMEには特に指示されていない模様。

とりあえずライブラリ・コマンド群はできた。あとはリンさんに期待。
→ひととおり正常に動いたらしい。ワーイ。
# これまた難しい。。。
・リンさんが自らifort用の設定ファイルを作成。すばらしい。
・ちょこちょこバグが残っているようだ。特にsrc/biog/hrno.fやsrc/mrgascielev.fなんかは、subroutineや function内にFORMATの宣言文がない。
・script/make/Makeallは、とっても重いので、トラブルシュート時にはsrcの各フォルダに行ってmakeするのが得策。
・src/biog/hrno.fにて、ifortでは子サブルーチンや子ファンクション同士では、呼び合えないことが判明。仕方ないので、 CONTAINS文をはずし、足りない変数の宣言を逐一入れていくことに。→GNU F90などでは問題ないようだ。
・でコンパイルは成功。
-lifcore -limf -lm -lirc -lcxa -lguide -pthreadを加えたらコンパイルは成功。

デフォルトで入っているのは5.5.6のため、別に導入。主にGIF/TIFFの LZW圧縮を可能にするため。
/usr/local/ImagiMagick-6.2.5/binにPATHを通すなりしてください。
特に問題なくコンパイル終了。

Sunで動くのにAltixで動かない、というときのメモ

メモ

RedHat Linux AS, Intel F/C/C++ Compilar