vpp700/56での対話型処理 - catalog.lib.kyushu-u.ac.jp
TRANSCRIPT
九州大学学術情報リポジトリKyushu University Institutional Repository
VPP700/56での対話型処理
渡部, 善隆九州大学大型計算機センター研究開発部
https://doi.org/10.15017/1470311
出版情報:九州大学大型計算機センター広報. 30 (2), pp.167-185, 1997-06. 九州大学大型計算機センターバージョン:権利関係:
VPP700/56での対話型処理
VPP700/56での対話型処理
渡部着陸*
1997年4月より,スーパーコンピュータVPP700/56に直接アクセス(login)できるようになりました・本
稿は, VPP700/56での対話型処理1 (アクセス方法,処理コマンドなど)についての簡単な解説です・
全国の研究者に計算機資源を提供するというセンターの性格およびシステムの制限から, -利用者が対話型
処理で使用できる資源はそれほど潤沢とはいえません.しかし,プログラム開発段階でのデバッグや並列プロ
グラミングにおける翻訳レベルでのバグ出し,およびオブジェクトファイル,アーカイブライブラリの作成な
ど,大いに役に立つことと思います.
なお,対話型処理以外のVPP700/56の詳しい利用方法については, rvpp700/56利用の手引(第1・0版)j
([1】)を御覧下さい2・
1 対話型処理の概要
1.1 kyu-vpp
VPP700/56はPE(ProcessingElement)が56台あります.その中で利用者が直接手元のワークステーショ
ンやパーソナルコンピュータからアクセスできるPEは1台のみです3.ホスト名は"kyu-vpp"です4.
UXP/Vは,コマンドの若干の非互換を除けば汎用計算機(kyu一cc, IPアドレス133.5.9.1)のUXP/Mと
ほぼ同じ仕様のUNIX OSです. UXP(UNIX)に関する基本的なことがらは[2]を参照下さい.
1.2 制限値対話型処理の制限値は以下の通りです.
その他の制限値はIimitコマンドで調べることができます.
書九州大学大型計算横センター・研究開発部 E-mail :甘atanabeQcc.kyushu-u.ac.jp
^NIXの世界で「対話型処理」と言えば"親切なメニュー画面とのやりとり''などのイメージを持つ方もいらっしゃると思います.こ
こでの「対話型処理」とは,従来のジョブスクリプトを記述し処理を依頼する「バッチ処理」とは異なり,入力に対しリアルタイムで応答
を得る(現在ではあたりまえの)処理形態と定義させていただきます. MSPに慣れている方には"TSS(Time Sharing System)"の方が
分かりやすいかと思います.
2 FVPP700/56利用の手引(第1.0版)」の入手を希望される方は,連絡所経由で共同利用掛までお申し込みください.また,最薪の
バージョンはkyu-ccの/usr/local/doc/VPP700guide.psでPostScriptファイルとして公開しています.現在この原稿を含めた新版
を作成中です.
3"Primary PE"と呼びます.その名の通り,すべてのPEの動きを統括するPEです.
4ネーミングのセンスについては私に責任はありません.
-167-
九州大学大型計算機センター広報
Vol. 30 No. 2 1997
解 説
1.3 利用できるライブラリ
対話型処理で利用できるライブラリは以下の通りです.実行はFortran 90/VP, C/VPなどの1PEで動作
するプログラムで可能です.並列ライブラリは実行可能ファイルの作成までです.
残念ながら,
対話的に並列プログラム(Fortran 90/VPP, MPI, etc.)は実行できません.
frt -Wxなどで並列処理の実行ファイルを作成することは可能です.しかし,並列実行はバッチ処理とな
ります.また 1PEのプログラムでも, 100MBの制限値を超える場合はバッチ処理となります.
VPP700/56でサポートしているアプリケーションライブラリα-FLOW,MASPHYC, LS-DYNA3D,AVS
は,フロントエンドのワークステーションからジョブを投入するというもともとの性格から,対話型での利用
はできません.また, MARCは実行ファイルが制限値を超えるため,ノ〈ッチ処理となります.
1.4 kyu-vppとkyu-cc
ここでは M-1800/20UのUXP/M(ホスト名kyu-cc)の対話型処理と比べたkyu-vppの使い勝手につい
て書かせていただきます5.
kyu-vppの長所
◇nativeなFortran 90コンパイラである
"native"とは(ここでは) 「生粋の」という意味です kyu-ccのFortran90コンパイラ(frtex)は For-
tran 90の言語を解釈していったんFORTRAN 77 EXに変換し再翻訳するというプリプロセッサ(preproces-
sor)です.そのため,仕様に一部制限があったり,翻訳メッセージが不親切だったりと,完成されたコンパイ
ラとはいえませんでした.
kyu-vppのFortran 90は,規格を全て包合した純正のコンパイラであり,文法のレベルにおいては信用で
きるものだと思います.
なお, Fortran 90の文法に関しては[3], [4], [5]を御覧下さい.
5あくまでも個人の意見です.できるだけ正直に書いたつもりですが-
九州大学大型計算根センター広報Vol. 30 No.2 1997 -168-
VPP700/56での対話型処理
◇ベクトルチューニングされたプログラムに対しては十分な性能を発揮する
VPP700/56のそれぞれのPEは,理論ピーク性能2.2GFLOPSの性能を持つベクトル計算機です. FLOPS
は1秒間に処理される浮動小数点演算回数を表すもので,計算機の性能を計るためによく使われる債です.
十分なベクトルチューニングを行ったプログラムは,ベクトル演算機構のおかげで桁違いの性能を発揮し
ます.以下の表は, VU率(仝CPU時間に占めるベクトルユニットが使用した割合)が90%を超えるFortranプログラムで実測したCPU時間です.オプションはメーカーの推奨値を採用しています.
計算機 S-4/1000E M-1800/20U VPP700/56
S-4/1000Eはライブラリサーバー(ホスト名wisdom)です. 1996年1月の段階では最新のワークステーショ
ンでした. M-1800/20Uの理論ピーク性能は1.2GFLOPSです.ベクトルチューニングされたプログラムに
ついては,理論値に近い性能差が出ています.
さらにVPP700/56の結果は旺辺での倍だということを強調しておきます.これらの値は, Fortran90/VPP
やメッセージパッシングライブラリによる並列化によってさらに性能が伸びる可能性があります6.
◇ライブラリを対話型に作成できる
kyu-ccで翻訳したオブジェクトファイル,寒行ファイルはkyu-vppと非互換です.従って従来VPP700/56
の実行ファイルやライブラリを作成する場合,バッチリクエストをkyu-ccからqsubコマンドで投入する必要
がありました.
しかし kyu-vppでの対話型処理により,オブジェクトファイル,実行ファイルの作成が筒単に行えるよ
うになりました.
◇同一コンパイラでデバッグできる
これまでは kyu-ccでプログラム開発,動作確認,デバッグを行ったあと, VPP700/56にバッチジョブ
を依頼していました.通常はこの方法で問題ないのですが,浮動小数点の違い(cf.[l】)に敏感なプログラムや,
VPP700/56にしかない機能Tを使いたい場合は,バッチ処理を余儀なくされていました.
kyu-vppの対話型処理では,バッチ処理と同じコンパイラが起動するため,これらの心配は要らなくなり
ます.もちろん,プログラムのデバッグも容易になりました.
kyu-vppの短所
◇スカラー性能
先ほど,ベクトルチューニングされたプログラムに対する速度の比較表をあげました.これらは,ベクトル
計算機の性能をフルに発揮することが期待される理想的なプログラムです.しかし,ベクトル化率があまり高
くないプログラムの場合 kyu-ccとkyu-vppの性能が逆転することがあります.
これは, VPP700/56のスカラー演算性能がそれほど高くないことに原因します. (VPP700/56にとって
は)最悪のケースとして,先ほどのプログラムを全てスカラー演算で計算させてみます8.結果は次の通りです.
6もちろん,ベクトル長や並列化に向いているかなど,問題はたくさんあります.
7例えば, SSL II/VPの拡張械能IIやGETTODサービスルーチンなど.
8翻訳はkyu-ccはfrtコマンドで(-Jオプションをつけずに), kyu-vppではfrt -Wv,-scで行いました. VPP700/56のSSLII/VP
はベクトル化されたライブラリのため,スカラーでは実行できませんでした.
-169-九州大学大型計算穣センター広報
Vol. 30 No. 2 1997
解 説
上の表の性能はS-4/1000Eと比べてとても魅力的とは言えない数字です9.
自動ベクトル化技術はもうほとんど完成されたと言われています.しかし,逆に言えば, 「完成」された
コンパイラが諦めたのですから,そこから先のチューニングは「手前でやれ」ということでもあります.アム
ダールの法則(cfつ1])によれば,ベクトル化率10が90%を超えない限り実行性能はなかなか向上しません・
全くベクトル計算向きのアルゴリズムを意識せずに書いたプログラムをそのまま自動並列コンパイラにかけ
ても, 90%を超えるベクトル化率を達成することはなかなか難しいと思われます.
つまり,ベクトル計算機でのプログラミングでは次のことが大事です.
ベクトル計算機の性能を引き出すには,利用者がチューニングを行う覚悟が必要.
ベクトル化プログラミングについては[1], [7], [8], [9]を参考にしてください.
経験的にも,サブルーチンを差し替えたり,メモリーアクセスを意識してループを入れ換えただけで数倍の
性能向上が得られることがよくあります11.
また,スカラー演算のテストでも確認できるように kyu-vppはkyu-ccに比べてさらにベクトルチューニ
ングが必要です12.また, Fortran 90/VPPによる並列化も,ベクトル並列計算機という性格から一つ一つの
PEのベクトル性能が高くないと全体の性能が発揮できません(C£ [10】, [叫, [12】).従って,勇んで並列化を
行う前に,事前に1PEのベクトル化チューニングをきちんと行う必要があります.
◇翻訳時間が増大する
kyu-vppのFortranコンパイラは,従来のベクトル化や最適化にプラスして,スカラープロセッサ向けの
最適化を行っています.また,翻訳はスカラーユニットが受け持ちますので,スカラー演算性能の差も翻訳時
間に大きく影響します.
そのため kyu-vppでのプログラムの翻訳時間は kyu-ccと比較して一般に長くなります13.
従って,大規模なプログラムでデバッグが済んだ部分はできるだけ手続き化しライブラリとして管理するこ
とをお勧めします14.
◇並列ジョブが対話的に実行できない
並列プログラム(Fortran 90/VPP, MPI, etc.)をkyu-vppで対話的に翻訳・結合することは可能です.従って,翻訳レベルでのデバッグは可能です.しかし,対話的な実行はできません.実行はバッチ処理になり
ます15.
9特に富士通の汎用計算横,ベクトル計算桟のスカラー性能は他社と比べても悪いようです.それにしても,ベクトル演算機能を抑止し
た途端, (桓端な話)個人が趣味で購入するパーソナルコンピュータ並みの性能になってしまうのは困ったものです.
10定義は省略しますが, VU率でよくおきかえます.
11もちろん,本質的にベクトル計算機向きではない問題も存在します.
12なぜかといえば,スカラー演算性能がそれほど高くないからです.
13-概に性能の比較はできませんが,スーパーコンピュータ性能測定用に用意した6本の利用者プログラムでの測定結果では,平均でkyu一
ccの3.6倍の翻訳時間がかかりました(1997年4月現在).
14翻訳時間はプログラムの長さにほほ比例します.従って,メインプログラムを可能な限りスリムにすることが肝心です.
15並列ジョブの実行はkyu一ccでもできないので比較の項目として不適当ですが,悲しいので載せました.
九州大学大型計算槻センター広報Vol. 30 No.2 1997 - 170
VPP700/56での対話型処理
2 対話型処理の流れこの章では,具体的な例に沿って対話型処理の手順を説明します.なお,利用者はa79999aさんとします.
2.1 kyu-vppへのアクセス
2.1.1 login
kyu-vppにIogin Lます. IP接続されたワークステーションからIogin Lます.
user-vsy, telnet 133.5.9.70 田Trying 133.5.9.70 ...
Connected to 133.5.9.70.
Escape character is '~]
uxp/v TELNET (kyu-.vpp)
login: a79999a ◎password : ◎Fujitsu UXP/V (kyu-vpp)
Copyright (c) 1984, 1986, 1987, 1988 AT&T
Copyright (c) 1990,耶工I Sy醜em Laboratories,工nc.
Copyright (c) 1991, 1992, 1993, 1994, 1995 FUJITSU LIMITED
All Rights Reserved
Lastエogin: Tue Apr 22 16:00:25 on user-ws.cc.kyus
Terminal Type:田kyu-vpp'/f
kyu-vppのパスワ- ドは1997年4月1日 現在のkyu-ccのパスワードです16. loginした後はpasswdコ
マンドでkyu-vpp独自のパスワードに変更できます.
2.1.2 シェル
デフォルトのログインシェルはcsh(/usr/bin/csh)です. tcsh(/usr/local/bin/tcsh)も利用可能で
す.
2.1.3 エディタ
vi(/bin/vi)とemacs(/usr/local/bin/emacs)が利用できます.ただし,現在のところemacsで日本
語入力はできません17.
2.1.4 kyu-ccとkyu-vppとの関係
汎用機M-1800/20UのUXP(ホスト名kyu-cc)の利用者のホヤムディレクトリの"VPP"というディレクト
リとVPP700/56の利用者ホームディレクトリとの間にシンボリックリンクが張られています.
161997年4月1日以降センター課題を取得された場合は,初期パスワードです.また,毎年度4月にkyu-ccのパスワードに書き変わる
こともありません. 1997年4月1日以降kyu-ccのパスワードを変更したりなどしてkyu-vppのパスワードが分からなくなってしまった
場合は,共同利用掛まで連絡願います.
17端末側の日本語環境 kyu-cc経由でWnnを用いての入力は可能です.また,日本語の表示は問題ありません.
-171-九州大学大型計算機センター広報
Vol. 30 No. 2 1997
VPP700/56
M-1800/20U
解 説
kyu-ccとkyu-vppのファイルの共有
つまり kyu-ccのa79999aさんから見える
と, kyu-vppのa79999aさんのホームディレクトリから見える
は全く同じものです.
kyu-ccからVPP700/56へジョブを投入する場合,使用するソースプログラムおよびデータは必ずkyu-cc
から見たvpp配下(即ちkyu-vppから見える場所)に作成する必要があります.
つまり kyu-vppのファイルはkyu-ccからすべて見ることができます.従って, kyu-vppのファイルを
kyu-ccに転送することなく18kyu-cc側から編集したり, Graphmanやgnuplot等の入力データとして利用す
ることができます.
kyu-vppからIp(/bin/lp)コマンドによりファイルの内容をセンター2階のネットワークプリンターに出
力することができます19 utoprintコマンドは利用できません.
2.1.5 オンラインマニュアル
frt, vccなどのコマンドはman(/usr/uxp/man)コマンドで機能,オプションを確認できます.日本語環
境20の場合,マニュアルは大抵日本語で表示されます.表示を英語にする場合は''unsetenv LANG"と入力し
ます.日本語環境に戻す時は"setenv LANG japan"と入力します.
18本当は裏で転送しているのですが
19kyu-cc側からkyu-vppのファイルを出力する場合はIp -cと入力します.
2Oenvと入力することにより,環境の一覧が表示されます.
九州大学大型計算機センター広報Vol. 30 No. 2 1997 172 -
VPP700/56での対話型処理
2.2 Fortran
2.2.1 サフィックス
言語仕様がFortran 90の場合は".f90", FORTRAN 77の場合は".f"として下さい.翻訳時オプショ
ンによって切替えることもできますが,サフィックス21で使い分けることをお勧めします.
2.2.2 frtコマンド
kyu-vppのFortranのコマンドはfrt(/usr/lang/bin/frt)です.
kyu-ccには2つのコマンド(frt, frtex)がありますが kyu-vppではfrtのみです.また kyu-ccで
ベクトル演算処理を指示する場合(kyu-ccのfrtコマンドに)必要な翻訳時オプションーJは必要ありません.
kyu-VPF?*壬生七est.ゴ90 薗 <--Fortranプログラムの朝訳
Fortran 90のプログラムtest.f90を翻訳しました.翻訳が正常に終了すると,実行ファイルa.outが作成
されます22.プロンプト(何も設定しなければkyu-vpp'/,)が出た状態でa.outと入力すると,プログラムが実行されます.
kyu-Trppy,生壁蛭 田t
II拐帯m
<一一-プログラムの実行
2.2.3 Fortran 90/VPPでの翻訳_
-wxオプションの指定によりFortran 90/VPPが起動され,並列プログラムの翻訳を行います.
kyti-vj>S>ft允t j蛭te8七.ゴ90 固 く--Ferはan 90/VPPごの翻訳
-wxオプションは,ソースプログラムに挿入された拡張最適化制御行(!xoCL行)を有効にするもので,自動並
列化を行うオプションではありません.また,作成された実行ファイルを対話的に実行することもできません.
ただし,対話型処理によるFortran 90/VPPの文法レベルでのデバッグが容易にできます.
kyu一叩由frtゴ蛭teS七、.f90 薗 く-Fortrm 90/VPPでの翻訳
Fortraii90!vpp .VIOLIO 日付97-04-22 時刻22:03:左l
FortraH90!VPP診断メッセージ:プログラム名(dp_ycreーte醜)
joo4622i-B HtBBt.f90日; <spr的d-do-stmt>に対応する<dfid-BPr飽d-do-stmt>が存在しません.
2.2.4 プログラムがFORTRAN 77の自由形式の場合
FortranプログラムがFORTRAN 77の自由形式の場合は, -Freeオプションを指定します23.
kyu-vpp*/, fr七二聖聖jobi.f 琶l r く FORTRAN 77の自由形式プログラムの翻訳
-*suffix :末尾に添えたもの,付加したもの
22正確には,オブジェクトファイルを結合・編集するプログラム1dが起動され,実行ファイルが生成されます.
23kyu一ccのfrtコマンドの-Fオプションと異なります.
173
九州大学大型計算機センター広報Vol. 30 No. 2 1997
解 説
2.2.5 実行ファイル名を変更する
frtコマンドによって作成される実行ファイルは省略億でa.outという名前です.実行ファイルにa.out
以外の名前を付ける場合は, -Oに続けてファイル名を指定します.
fcyu-vpp'/, fr‥o b.out test.ゴ90 ◎ <--実行ファイル名をも.outに変更
2.2.6 ベクトル化メッセージを出力する
オプションーWv,-m3でベクトル化に関する翻訳情報が表示できます.省略値では情報が端末に表示されま
すので, -Zオプションで指定したファイルに格納した方がいいでしょう.
さらに -Psオプションによって,プログラムリストに対応したベクトル化情報を得ることができます.これ
らは性能解析やチューニングの重要な情報となります.
2.2.7 最適化オプション
省略値の最適化オプション(-06で翻訳した場合,極まれにですがプログラムの実行がエラーを出して終了
したり,計算誤差に影響が出たりします(cf. [1], [8】).最適化の副作用は,最適化レベルを下げることで回避できます.しかし,実行時間は一般に増大します.
kyu-vppJi frtゴ捜test,f90 田 く一一一基本的な最適化にとどめる
サブオプションを使った細かい制御も可能です。
ky叩ppy.まrt生望test,f90 田 く-不変式の先行評価の最適化を抑止
2.2.8 デバッグオプション
引数の受渡しや配列と添字がうまく対応しているかなどのチェックは,デバッグオプションーDで行いま
す.診断メッセージは実行時に出力されます.思わぬミスが見つかったりして,バグ取りに大変有効です.
また,デバッグオプションを指定する場合は-wv,-adでデバッグモードに切替える必要があります.
車yu-vpp/.まrt -Dasu一Vv,-ad test.ゴ90 田 く---デ!ヾッグオプションの指定例
kyu-vppy, a.out ◎ - く一一一実行
j甘e0320i-w line 6配列要素または文字部分列(H)の引用で,添字式または部分列式の
億(334,1001)は,宣言した範囲(1:1000,1:1000)内でなければなりません.
error occurs at出Af甘 Iine 6 loc OOOOO478 0ffset OOOOOle8
MAI打__ at Ioc 00000290 called from o.8.
七と血en to (standard) corrective action, execution continuing.
九州大学大型計算機センター広報Vol. 30 No. 2 1997 -174-
VPP700/56での対話型処理
実行時の診断メッセージが大量に出る場合は,次のように実行時オプションを指定してファイルに書き出しま
す.出力ファイルはoutとしています.
kyu-vpp'/. a-.put 』もコ蛭> out 田 <一実行時の診断メッセージをファイルに出力
また,デバッグオプションを指定した場合,最適化やベクトル化は最低限に押えられますので、実行時間は大
幅に増加します.そのため,デバッグオプションは開発中の小規模なプログラムに対し指定することをおすす
めします.
2.2.9 オブジェクトファイルの作成
-Cオプションは,翻訳のみを行いオブジェクトファイルを出力するオプションです.オブジェクトファイ
ルはサフィックスが貼.oHとなります.
kyn-vppXまrt竺sub.ゴ90 固 く-オアジュクけアイルの作成
既にデバッグが完了したサブルーチンなどをファイルとして保存,翻訳し,オブジェクトファイルとして管理
すると,パラメータを修正する皮にいちいち翻訳する手間を省くことができ,効率的です.
オブジェクトの中身のリストはnn(/usr/ccs/bin/nm)コマンドで出力できます.
kyu-vpp'/i竺sub.o 固 く一一一名前リストの出力
Symbols from sub.o;
【Index】 value Size Type Bind Other Shndx 打ame
ol olsECT
Ol OloBJT
O | 1832 IF甘yc
冗I^^^^^EU和 白
引 SIMiiJ肖
OI OINOTY
1840 1 3000 | FHNC
LOCL |O
LOCL 10
GLOB
GLDB
GLOB
6LDB
GLOB
IO
0
l0
Io
0
i t^^^^^^H
1 l | ssOoOOOOl
1 2 I s醜dat_
柑打DEF |g_datan
lmDEF lg_dsqrt
lUNDEF I甘_dsin
1 1 mamul_
2.2.10 ライブラリの作成
自分で作成した手続きで頻繁に使用するものは,私用のライブラリとして管理すると便利です.ライブラリ
の管理はar(/usr/ccs/bin/ar)コマンドで行います. arコマンドで管理されるライブラリ名を「アーカイ
ブファイル」と呼びます24.ァ-カイブファイルの名前は
Iibexample.a, libEXAMPLE.a
などと,先頭が"lib"でサフィックスが".a"の形式にして下さい.主なオプションは次の通りです.
24"archive"は文書や情報などを保管する「記録保管所」の意味です.
-175-
九州大学大型計算桟センター広報Vol. 30 No. 2 1997
解 説
手続きプログラムを記述したsubl.f90, sub2.f90を翻訳し,オブジェクトファイルsubl.O, sub2.0を作成
します.次にarコマンドによってアーカイブファイル1ibmylib.aを作成します.
なお,並列化オプションーWxを指定して作成したライブラリは,指定しないライブラリと独立に管理して
下さい.
2.2.11 自分用のライブラリの結合
-Lに続けて,アーカイブファイルのあるディレクトリをフルパスで,さらに, -1に続けてライブラリ名を
指定します.
鞄n・叩蝣*x王rt teat.f90 -L/G/Jeyu-vpp-pe16/asr9/a79999a柵LIB -Imyl主b ◎
ライブラリIibmylib.aを結合します.ライブラリはkyu-vppの7MYLIBにあるとします.アンダーライン
は利用者によって異なります.この部分は以下のように知ることができます.
栂V"-7PP'/ォ押d 薗
描/kyu-vpp-j>e16/TisrS/a79999a畑YtIB 一一一フルパスの表示
/G/kyu-vpp-pe*("*"は利用者によります)は/homeにリンクが張られています.
従って, /G/kyu-vpp-pe16/usr9/a79999a/MYLIBは/home/usr9/a79999a/MYLIBと見ることもできます.
なお,検索パスLD_LIBRARY_PATHを設定することもできます.
蜘-vj>j>*/. seten* LD-LTBRARY-PATH /G糖u-vpp-pe16/usr9/a79999a/MYLIB 固 く一一一検索パスの指定
kyu-vppX frt test.f90 -lmylib 田 <-ライブラリを結合
2.2.12 複数のファイルを分割処理
手続きごとに分けて作成したプログラムやオブジェクトファイルも,ファイル名を続けて書くことで実行
ファイルが作成できます.
坤u-vpp% i蛸main.f90細tl.f90 te的2.0 回 <∴分封コアパイル
2.2.13 モジュールの引用
モジュールをusE文で引用する際に,もし,モジュールを引用箇所より後に記述している場合は, -Amオ
プションをつけます.モジュールが引用箇所より前に記述している場合は必要ありません.
kyu-vppX出当直mam.ま90 回
モジュールが別のファイル,ディレクトリにある場合は注意が必要です. [8】の4・5節を参照下さい.
九州大学大型計算機センター広報Vol. 30 No. 2 1997 -176-
VPP700/56での対話型処理
2.2.14 標準入力からデータを読み込む
UNIXにはリダイレクション(redirection)と呼ばれる便利な機能があります. Fortranの入出力に関する
装置参照番号(論理機番)の5番が標準入力(stdin), 6番が標準出力(stdout)に対応しています・
実行ファイル > 出力ファイル: 6番の出力をファイルに上書き
実行ファイル >> 出力ファイル: 6番の出力をファイルに追加書き
実行ファイル く 入力ファイル: 5番の入力をファイルから取り込む
出力ファイルが存在しない場合は,新規に作成されます.
kyu-vpp*/, a.cmt < in.data 田
例では,装置参照番号5番(標準入力)からデータを読み込みんでいます.データファイル名はin.dataとしています.入力ファイルを指定しない場合は,端末からの入力となります.
2.2.15 標準出力にファイルを指定
kyu-vppX a.out > out.data 固 く-out.dataにデータを出方
装置参照番号6番(標準出力)にデータを書き出す例です.リダイレクションの方向に注意して下さい.追加書きする場合は>>とします。
Jcyu-vppX a.outサout.data く-既存のout.dataにデー車を追加書き
2.2.16 標準入出力の例
kyu-vpp% a.on上 < in.data > out.data 田
装置参照番号5番にあたるファイルin.dataからデータを読み込み, 6番にあたるファイルout.dataにデー
タを書き出します.このようにリダイレクション機能は使い勝手がとてもいいのですが,方向を間違えると大
変なことになりますのでご注意下さい.
2.2.17 プログラム中にファイルを指定する
一般の装置参照番号に対してファイル入出力を行う方法は,
1.プログラム中にファイルを書き込む
2.環境変数として設定する
かのどちらかです.
open文中では"file*"に続けて,ファイル名を' 'で括り指定します.
op-(i ,file=>in.data>)
r甲d(1,100) x,yサz
close(1)
例では,装置参照番号1番をin.dataに割り当て,データを読み込んでいます. in.dataがソースプログラ
ムと同じディレクトリにない場合は,フルパスなどファイルがきちんと見えるように指定します.
open (1 , file= * /G/kyu-▼pp-pe16/tL汀9/a79999a/DATA/in. data* )
- 177
九州大学大型計算棲センター広報Vol. 30 No. 2 1997
解 説
2.2.18 環境変数としてのファイル処理
環境変数によって装置参照番号とファイルを対応づけることもできます.環境変数は
funriufile - n am e
です・ fuは"fortran unit"の意味です・ nnは2桁の装置参照番号(00-99)を指定します.ファイル名はパ
ス名込みでも構いません.
Setenv fuOl exl.data
響-vpp5」 a.out白こ ヽ
梅u-vppx unseteny血01由
<-装置参照番号1番にexl.dataを割り当てる
く一一一実行
く一一割り当てを解除
ファイル入出力があるプログラムで,ソース中にファイル名指定のopen文がない場合は,上の要領で割り当てます.例では装置参照番号1番にexl.dataを対応づけています.
複数の装置参照番号を使用する場合も同様です.
2.2.19 IEEE形式でファイル処理
VPP700/56の浮動小数点形式は,ワークステーションで広く使われているIEEE形式と呼ばれるものです.
一方,汎用計算機M-1800/20Uの浮動小数点形式はM形式(IBM形式)と呼ばれるものです. M-1800/20U
で作成したM形式のバイナリデータをVPP700/56で読み込んだり, VPP700/56の出力するIEEE形式のバ
イナリデータをM-1800/20Uで読み込んだりする場合には, 2つの形式を実行時オプションによって変換する必要があります.
実行時オプションは-Wlのあとにカンマで区切って指定します.
-wl,-Cuno 装置参照番号unoからのバイナリデータの入出力をM形式で行います.
unoの指定がない場合は、すべての装置参照番号を指定したものとします.
-wl ,-M IEEE ⇔ M浮動小数点形式の入出力変換後に浮動小数点データの仮数部の一部が
損失した場合、診断メッセージを出力します.
あらかじめ作成したb.outを実行する際に,実行時のバイナリデータの入出力をM形式で行います.ファイ
ル名はプログラムに陽に記述してあるとしています.
装置番号88番の入出力だけをM形式で行う場合は,次のように指定します.
2.2.20 SSL II/VPの結合
SSL II/VPのサブルーチンを使用する場合は, -Issl2vpを指定します.
kyu-vpp'/i frt test.ま90 -Issl2vp 田 く一一動乱ssl ii/vpを結合
九州大学大型計算機センター広報Vol.30 No.2 1997 -178-
VPP700/56での対話型処理
2.2.21 NUMPACの結合
NUMPACのサブルーチンを使用する場合は, -lnumpacを指定します.
kyu-vpp*/. frt test.ゴ90 -lnnmpac 固 く一一一翻乱打珊PAcを結合
2.2.22 SSL II/VPPの結合
SSL II/VPPのサブルーチンを使用する場合は, -Issl2vppを指定します.並列化指示オプションーWxも必ず指定します.
kyu-vpp'/, frtニ艶test.f90 -Iss12vpp 白 く--一翻訳. SSL II/VPPを結合
ただし,並列プログラムの実行はできません.
2.3 C,C++C, C++プログラムも,実行ファイル名はデフォルトでa.out,オブジェクトファイルのサフィックスは
紘.o"です.分割コンパイルや自分用のライブラリの作成方法なども同じです.
2.3.1 コマンド
C/VPはvcc(/usr/lang/bin/vcc), Cはcc(/usr/ccs/bin/cc), C++はcc(/usr/lang/bin/cc)
です.各オプションはmanで検索できます.
2.3.2 C/VPでの翻訳
ベクトル版Cの起動はvccコマンドです.
kyu-vpp#/,旦竺te醜.C ◎ <一翻訳
kyu-vpp% a.out 田 く一一一実行
kyu-vpp% vcc一恥,-m3,-PB test.c 固 く一一一翻訳
kyu-vppX a.out ◎ <-実行
-wv,-m3はFortranと同じくベクトル化に関するメッセージを出力します. -wv,-PsはFortranの-Psと同
じく,ベクトル化表示付きのソースリストを出力します. frtとの違いは,ベクトル化オプションーWvの中に
-psが組み込まれたことと,プログラムリストの出力先がfrtでは標準エラー出力であるのに対し vccでは
標準出力となることです.
2.3.3 最適化レベルを上げる
kyn-vpp7, vccゴ」巡生test.c ◎
-Oと-K4の組合せで最大限の最適化となります.実行時間の短縮が期待される反面,翻訳時間の増加と最適化
による精度誤差および異常終了の可能性があります(cf. [9]).
-179-
九州大学大型計算桟センター広報Vol.30 No. 2 1997
解 説
2.3.4 SSI- II/VPの結合
kyu-vpp5i vccニ旦teSt.c 田 く-翻訳.オブジェクトファイルを出力
軍yu-vppy, frt test.0 -Issl2vp -lcvp -1m田 くI一一実行ファイルの作成a.out
CプログラムからSSLII/VPを利用する場合は, vccコマンドによってオブジェクトファイルtest.Oを作成
した後に, frtコマンドにライブラリをリンクする-Issl2vp -lcvp -lmを付加して実行ファイルを作成し
mm
SSL II/VPを呼び出す場合のCプログラミングの注意点は[6】を参照下さい.
2.3.5 Cでの翻訳
スカラ一版Cの起動はccコマンドです.オプションはベクトル化オプションーWv以外vccとほぼ共通で
す.
kyu-vpp'/盟-0 test.c 固 く--一翻訳
最適化レベルを上げた(-o)翻訳例です.
2.3.6 C++での翻訳
C++の起動はccコマンドです. ccはC++プログラムを一皮Cプログラムに変換します.
kyu-vpp'/. CC加st.C -lm 固 く--数学関数を使う場合は-1mを指定
通常は自動的にスカラー版のccが起動されますので,実行はスカラー処理です.
ベクトル処理を行う場合は,一皮Cのソースに変換したものを保存し vccコマンドによって処理するこ
とで,ベクトル処理可能な実行ファイルが作成できます.下線部分は必ず指定します.
kyu一叩py. cc丑七est.C I te醜.C 固 く--Cのソースに変換
坤L-vppX ycc -wl,-L/nsr/uxp/C・・/ユib t08も.cゴ星 田 く--vccコマンドによる翻訳
2.4 メッセージパッシングライブラリ
メッセージパッシングライブラリは,結合のみ可能で,並列実行はできません.
2.4.1 PVMの例(Fortran)
PVMはC言語またはFortran言語の関数およびサブルーチンの集合です.従って,結合・編集時にデー
タ通信を制御するライブラリを読み込む必要があります.
kyu-vppX irt test・ゴ90 -Wl, -P -L, -J -dn -Ipvro -Imp -lei‥lpx -lc -I.国
2.4.2 PVMの例(C)
kyu-vpp*/, cc test.c -HI, -P -L. -J -dn -lpvm -Imp -lelf -lpx -1c -工. ◎
なお,ライブラリの指定順序には細かい規定があります.詳細は13を参照下さい.
九州大学大型計算桟センター広報Vol. 30 No. 2 1997 180 -
VPP700/56での対話型処理
2.4.3 MPIの例(Fortran)
kyu-vpp'/. frt七甲七・ゴ90 -VI,-J,-P -L/usr/lang/mpi/lib -lmpi -Imp -lei-Ipx \薗
? -I/tisr/1弧g/mpi/include ◎
"\"はコマンドの継続を意味します.
2.4.4 MPIの例(C)
kyu-vpp% cc -K a4 test.c -Vl,-∫,-P -L/usr/lang/mpi/lib一叫pi -Imp -lelf -lpx \臣!? -I/usr/lang/mpi/include g
詳細は[14】を参照下さい.
2.4.5 PARMACSの例(Fortran)
kyu-vj>p%血もーo host ーWl,-J,-P,一七hos七.o node.o other..objects.o otIier^libs.且\田
7 -L…/parmacs/lib/fuji七su-vpp700/VPP700 -Ipm6 -Imp2 -lpx -lm -lei王-lc ho醜 ◎
2.4.6 PARMACSの例(C)
fcyu-vpp*/. cc -o hostーWl.-J.-P,一七host.o node.o other_objects.o other_libs.a某 国
7 -L. ‥/parmacs/lib/fujitsu-vpp700/VPP700 -Ipm6 -Imp2 -lpx -lm -1el王-1c host; ◎
詳細は[15]を参照下さい.
また, PARMACSのREADMEファイルを/usr/lang/parmacs/doc/README.VPP700で公開しています.
2.5 Analyzer
Analyzerの利用は1PEのジョブに限って対話的に利用できます.機能の詳細は川を参照下さい.
2.5.1 Fortran 90/VPの情報収集
解析結果は標準出力に出力されます.ここでは,ファイルoutに結果を書き出しています. sampler.dataは情報収集用のファイルで,利用者が任意の名前で指定します.
2.5.2 C/VPの情幸剛文集
C/VPの場合も同様に,作成した実行ファイルを一皮実行することでサンプラ情報を作成し, fjs叫Pによる解析を行います.
-181-九州大学大型計算棲センター広報
Vol. 30 No. 2 1997
解 説
解析結果は標準出力に出力されます.ここでは,ファイルoutに結果を書き出しています.
対話的に情報を収集できる実行ファイルは,領域が100MB以下の1PEジョブに限られます.それ以外は
バッチ処理になります.
2.5.3 PEPAによる情幸剛文集
1PEの場合のみ, PEPAによる情報収集ができます.
kyu-vpp'/i setenv FJPEPA ON 田kyu-vppl/. a.ont 田
(英行結果)
PE performance analyzer
[ VU performance 】
pe no
く一一環境変数の設定
く一一実行
VU busy ratio 【'/.] 5. 566235e+01
PE average per王onnance 1. 299649e+01
Operation count of Scalar UNIT and Vector UNエT 【times*le6] 1.668771e-02
Operation count of Vector UNIT times*le6j 1.566971e-02
Measurement time 【 sec ] 1.284017e-03
2.6 Gaussian94
Gaussian94の利用方法は kyu-vppのホームディレクトリの".cshrc"の環境設定を行うことで, kyu-
ccと全く同じように利用できます.詳しくは川を参照下さい.
2.7 バッチリクエストの投入
kyu-vppからのバッチリクエストの投入方法は,従来のkyu-ccからの手順と同様,ファイルに記述したバッ
チリクエストをqsubコマンドで投入します.
kyu-ccとの違いは,リクエスト名を構成するホスト名が"kyu-cc"ではなく, "kyu-vpp"だという点だけ
です.リクエスト名は,リクエストをキャンセルする際に指定が必要になります.
バッチリクエストの記述方法,リクエスト投入の方法などは川をご覧下さい.参考までにバッチキューの
制限値をあげておきます.
キュー名 CPU時間 記憶城 処理形態
60 fr
l易 us毎
:●`・ ::
】
/
/
/
九州大学大型計算根センター広報Vol.30 No.2 1997 -182-
VPP700/56での対話型処理
3 便利なコマンド集最後に, kyu-vppでの対話型処理の際に知っておくと便利なコマンドをいくつか紹介します.
3.1 qps
qps(/usr/local/bin/qps)コマンドは, qsubコマンドで投入したバッチリクエストの処理状況をモニター
するコマンドです.
qpsコマンドはkyu-vppからのみ利用できます kyu-ccから利用する場合は, rsh kyu-vpp qpsと入力
します.
並列ジョブの各PE毎の処理状況を知りたい場合は, -pオプションを付加します.
kyu-vpp% qps 田que user request cpu vu vu/cpu cpu-limit elapse v-mem(MB)
pi a79999a 16803.kyu-cc 0:31:04 0:00:01 07. 20:00:00 0:31:24 48/1792
1PEのジョブ(plキュー)の実行状況のモニター例です.
kyu-vpp'/, qps -p 薗qua user request
p8 a79999a 16758.kyu-cc
parallel- >
parallel >
parallel >
parallel一一>
cpu vu vu/cpu cptt-limi七 elapse v-mem(MB)
12:57:14 11:34:11 897. 20:00:00 18:50:03 1512/1704
12:24:59 11:34:40 937.
12:24:42 11:34:37 937.
12:24:44 11:34:39 937,
12:24:40 11:34:39 93%
p8キューに投入した並列ジョブの実行状況の表示です.
3.2 丘le
file(/bin/file)コマンドは,ファイルのタイプを調べるコマンドです.実行ファイルが並列用なのか1PE
用なのか調べる場合に有効です.
kyu-vppX file b.out 田b.out: ELF 32 ビット MSB実行可能VPp UxP/v Version 1 Vector-EX
kyu-vppX file a.out ◎a.out: ELF 32 ビット 推SB美行可能VPp uxp/v Version 1 Vector-EX Parallel
3.3 size, gsize
size(/usr/ccs/bin/size)コマンドは,実行ファイルが必要とする頚城をバイト単位で表示するコマン
ドです.
kyu-vpp*/, size a.out 固 く sizeコマンド
1227176 + 146128 + 6446832と7820136 く--一約7.4Mもの額城が必要
-183-
九州大学大型計算機センター広報
Vol. 30 No. 2 1997
解 説
ただし, sizeコマンドではFortran 90/VPPで翻訳された実行ファイルに対してはグローバル変数に対す
る見積もりができません.
kyu-vppにはグローバル変数の頚城の大きさを表示するコマンドとしてgsize(/usr/local/bin/gsize)
コマンドがあります.
kyu-vppJ! gsize b.ou七 回- - hthh-し---h一---~1- ------°一 - -44- - -1●--1-i ---
global array informataon :
total size
partitioned
non-peartItioned -
max. size / pe
50680461KB
50680461KB
OKB
1 583764KB
′
ヽ
′
L
′
し
n0lhHu IHJ rii"
EiKu 【且
32 pe's
実行ファイルは約48GBのグローバル変数を必要とし, 1PEあたりに必要な領域が約1.5GBであることがわ
かります.
3.4 timex
timex(/bin/timex)コマンドを用いると,翻訳時間や実行時問の経過時間 CPU時間,ベクトルユニッ
ト占有時間がそれぞれ計測でき,チューニングに必要な情報が得られます.指定方法は,通常のコマンドの前
にtimexと書くだけです.
kyu-vppy.盤ftt七est・f90 田 く一一-胡乱cpu時間等をモニター
(翻訳結果)
real 43.03
user 38.55
sys 1.01
vti-user 0.00
vtx-sys 0.00
く一一一経過時聞
く一一一利只者のCPU時間
く一一一システムのcP甘時間
翻訳はすべてスカラーユニットで処理されます.
kyii-vpp*/.地a.out ◎
(実行結果)
一
real
user
SyB
vn-u事qr
yu-sys
i
-
ォ
T
-
4
O
M
O
O Sl rl <0-0
一
ュ
一
r
-
t
O
1
-
t
O
く一一実行. CPU時間等をモニター
<-利用者のベクトルユニット僚用時開
く一一1システムのベクトルユニット使用時間
3.5 kill
何らかの原因で暴走したジョブはkillコマンド25でキャンセルします.
まず,暴走している端末(ウインドウ)以外からkyu-vppにIogin Lます.次に, ps(/bin/ps)コマンドの
オプション-uに続けて自分の謀題名を入力します.
25シェルのコマンドです.
九州大学大型計算機センター広報Vol. 30 No. 2 1997 -184-
VPP700/56での対話型処理
下線部分が暴走している実行ファイルだとします.このプロセスをキャンセルするため kill -9に続けてプ
ロセスID(PID)を指定します・
ky㌣vpp'/. kill -9 257 田 く一一プロセスのキャンセル
参考文献H VPP700/56利用の手引(第1・0版),九州大学大型計算機センター(1997).
[2】佐藤周行,山元規靖,南里豪志: UXP初級講習会資料,九州大学大型計算機センター(1997).
(講習会資料はセンターの共同利用掛で残部を配布しています)
[3】東田幸樹,山本芳人,熊沢友信:入門Fortran90実践プログラミング,ソフトバンク(1994).
[4】 M. Metcalf, J. Reid (西村恕彦,和田英穂,西村和夫,高田正之訳) :詳解mrtran 90, bit別冊,共立出
版(1993).
[5]渡部善隆: Fortran 90の紹介,九州大学大型計算機センター広報, Vol.29, No.4, pp.301-313 (1996).
[6]渡部善隆,山元規靖: CプログラムからSSL IIを利用するには,九州大学大型計算機センター広報,
Vol.29, No.3, pp.234-242 (1996).
間UXP/VVPプログラミングハンドブックVIO,富士通株式会社(toappear).
(現在校正段階です. 1997年の夏前には発行と聞いています)
[81 UXP/V Fortran 90/VP使用手引書VIO用J2U5-0050,富士通株式会社(1995).
[9】 UXP/V C/VP使用手引書VIO用, J2U5-0120,富士通株式会社(1995).
[10] UXP/V Fortran 90/VPP使用手引書VIO用, J2U5-0080,富士通株式会社(1995).
[111 UXP/WPPプログラミングハンドブックVIO,富士通株式会社(to appear).
(現在校正段階です. 1997年の夏前には発行と聞いています)
[12】 FUJITSU SSL II/VPP使用手引書(科学用サブルーチンライブラリ)Vll用J2X0-1370,富士通株式会
社(1996).
[13】 UXP/V PVM使用手引書VIO用, J2U5-0140,富士通株式会社(1995).
[14】 UXP/V MPI使用手引書VIO用J2U5-0270,富士通株式会社(1996).
[15] PARMACS reference manual, user's manual, PALLAS GmbH (1995).
185
九州大学大型計算桟センター広報Vol. 30 No. 2 1997