...

高速演算システムSX

by user

on
Category: Documents
10

views

Report

Comments

Transcript

高速演算システムSX
Akita University
高速演算システムSX-Siの紹介
総合情報処理センター正木忠良
1.システム概要
1.1SX-Biシステム構成
SX-8iシステムはベクトル計算機SX-8il台とそのアプリケーションサーバ1台で構成されて
おります。SX-8iシステムでは,アプリケーションサーバ上でユーザが作成したFORTRANプ
ログラム,C/C++プログラムをベクトル計算機上で実行させることが可能です。
機器名称
ベクトル計算機SX-8i
アプリケーションサーバ
用 途
ベクトル命令により高速化可能なプログラ
ムの実行
プログラムのコンパイル,デバッグおよび
SX-8iへのジヨブ投入
1.2八一ドウェア構成
SX-8iシステムのハードウエア構成は以下の通りです。
機 能
仕 様
製品名
SX-8i
CPU性能(最大ベクトル性能)
16GFLOPS
搭載CPU数
1
共有メモリ容量
16GB
内蔵ディスク容量
30OGB
1.s八一ドウェア構成
SX-8iシステムのハードウエア構成は以下の通りです。
機 能
オペレーティングシステム
バッチ処理
FORTRANコンパイラ
C
/
C ++ コ ン パ イ ラ
科学技術計算ライブラリ
2
2
品 名
SUPER−UX
NQSIl
FORTRAN90/SX
C++/SX
ASL
Akita University
1.4利用方法
SX−8iへ直接ログインすることは出来ません。アプリケーションサーバ(quintet・ipcakita‐
u、ac、jp)上でファイル操作,プログラムのコンパイルを行い,NQSIIを使用してSX-8iへジョ
ブ投入を行ないます。アプリケーションサーバへはsshを利用してログインしてください。な
お,SX-8iシステムを利用できるユーザは教職員ユーザと申請書を提出した学生ユーザのみと
なります。
アプリケーションサーバ上でのコンパイルの方法については「2.プログラム開発環境」,ジョ
ブの投入方法については「3.バッチ処理環境」をご参考ください。各ユーザのホームディレク
トリはアプリケーションサーバおよびSX-8iシステムで共有されているため,いずれのシステ
ムからも同じファイルパスでアクセスすることができます。
2.プログラム開発環境
2.1コンパイル環境
プログラムのコンパイルはアプリケーションサーバ上でクロスコンパイ ラを利用して行ない
ます。
アプリケーションサーバ上で利用できるコマンド
グラム言語
FORTRAN
C
C++
コマンド
マニュアル参照
sxf90
mansxf90
SXCC
mansxcc
SXC++
mansxc++
コンパイル方法
FORTRANの場合
sxfgO(コンパイルオプション)(ソースファイル)
例.ソースファイルsample.fをコンパイルし,実行ファイルsample、exeを生成する
Cの場合
sxcc(コンパイルオプション)(ソースファイル)
例.ソースファイルsample.cをコンパイルし,実行ファイルsample、exeを生成する
o g s x c e x e
2
3
Akita University
C++の場合
sxc+十(コンパイルオプション)(ソースファィル)
例.ソースファイルsamplecppをコンパイルし,実行ファイルsampleexeを生成する
[ho9e@quintet‐]$sxc++−osample・exesampleocpp
2.2ライブラリ環境
SX-8iシステムでは,科学技術計算ライブラリとしてASL(AdvancedScientificLibrary)が
利用できます。複雑で大規模な科学技術計算プログラムにおいて,高速な計算が可能な数学ラ
イブラリは必須ライブラリの一つといえます。科学技術計算ライブラリASLはSX-8iシステム
に適合した高速なFORTRANサブルーチンライブラリとして開発されており,SX-8iシステム
のハードウェア性能を十分発揮できるように設計されています。(SX-8iシステムではIMSLは
提供されませんのでご注意ください)ライブラリのリンク方法は以下の通りです。
32bit整数型に対応したASLを使用する場合
sxf90(コンパイルオプション)(ソースファイル)‐lasl
64bit整数型に対応したASLを使用する場合
sxf90(コンパイルオプション)(ソースフアイル)‐│asl64
2.3開発環境
プログラムの最適化,高速化チューニングのための開発環境として,プログラム実行解析機
能,簡易性能解析機能が利用できます。
2.3.1プログラム解析機能
実行時に環境変数PROGINFを設定することでFORTRAN,C/C++プログラム実行時の
実行時間,実行命令数などのプログラムの実行に関する情報が表示されます。プログラム実
行終了後に標準エラー出力に表示されます。また,環境変数FILEINFを指定することによ
りプログラム全体のファイル入出力情報を表示することもできます。
実行解析情報の表示
壷胆
一一一一巨
2
4
環境変数
設定値
FORTRAN
FPROGlNF
YESまたはDETAIL
C
/
C
l
.
1
.
CPROGlNF
YESまたはDETAll
Akita University
ファイル入出力情報の表示
壷四
一一一一国
環境変数
設定値
FORTRAN
FFIlEINF
YESまたはDE「AlL
C/C+十
CFlLEINF
YES
2.3.2簡易性能解析機能
プログラムの関数ごとの
プログラムコンパイル時にオプションーftraceを指定することで,ブ
こ,解析コマンドにより,
CPU時間やベクトル化に関する詳細な性能情報を取得できます。また,
詳細な解析リストを表示することができます。
ファイル入出力情報の表示
壷胆
一一一一目
FORTRAN
C/C+十
環境変数
sxftrace
sxftrace十.I‐
解析コマンドの使用例
[hoge@quintetwork]$sxftrace++
*
米一一一一一一
FLOWTRACEANALYSlSLlST
淵
Execution:ThuOct2511:00:562007
TotaICPU:0:00,08''609
PR0G.UNITFREQUENCYEXCLUSIVEAVER・TlMEMOPSMFLOPSV"OPAVER。VECTORI-CACHEO-CACHEBANK
TIME[sec](%)[msec]
RATIOV、LENTlMEMISSMlSSCONF
input-data
24.693(54.5)2346.477503.70.90.000.00.0000.02780曇02370.0007
printdata
12.315(26.9)2314.980416.513.60.000.00.0000.01450国01090.0003
maIn
11.602(18.6)1601.6253037.61408.69a01250.91,5830軍00020.00020重8184
一
total
=
ー
48.610(100.0)2152’390951.6266.258.19250.91.5830・04250.03470.8193
2.4日本語環境
SX-8iシステムの言語環境は英語が既定値となっておりますので,
SX-81システムの言詔環境は英語が既定値となっておりますので,ジョブの実行後に出力され
るPROGINFやエラーメッセージなどは英語表記となります。これは,プログラムのコンパイ
ルやバッチジョブの投入などをおこなうアプリケーションサーバの日本語文字コード(UTF-8)
とSX-8iシステムの日本語文字コード(EUC-JP)が異なるためです。
2
5
Akita University
ただし,ジョブスクリプトの中で以下のようにLANG環境変数をjapanと 設 定 す る こ と で 出
力ファイルを日本語表記とすることが可能です。
sh形式のジョブスクリプトでの記述例
#1/bin/sh
cd/home/…/ho9e/work
LANG=japan
exportLANG
CPROGlNF=yes
exportCPROGlNF
CFlLElNF=yes
exportCFlLElNF
./a・outdata>data・out
csh形式のジヨブスクリプトでの記述例
#1/bin/sh
cd/home/…/ho9e/work
setenvLANGjapan
setenvFPROGlNFdetail
-
setenvFFlLEINFdetail
./a、outdata>data・out
日本語で表記された出力ファイルを,アプリケーションサーバ上で正しく表示させるには,
iconvコマンドやnkfコマンドを使用してください。参照する頻度が高い場合は,文字コードを
変更したファイルを保存しておくと作業が楽になるかもしれません。
iconvコマンドの例
2
6
Akita University
プログラム解析機能の表示例
800,
シスフー:=
亜幽明脇慨r
HⅧⅢⅢ
Z、齢HmⅢⅢ
鋤設一夕.:.」毒遡
醐側m0m■■■
gベクノレ員
ベク
里_垂GI,
0Ⅲ00Ⅲ
幽醐
3.バッチ処理環境(NQSlI利用方法)
旧システム(SX-6i)システムからSX-8iシステムへの更新にあたり, バ ッ チ 処 理 関 連 コ マ ン
ドが変更となりますのでご注意ください。
31キュー構成
SX-8iシステムのバッチキユー構成は以下の通りです。実行するジョブの特‘性(CPU時間/
メモリ規模)に応じて適したキューを利用してください。
キュー名
CPU時間制限(秒)
メモリ容量(MB)
同時実行数
a
3600
3200
4
b
10800
6400
2
C
43200
12800
1
・CPU時間制限
1つのジョブで使用できる最大のCPU時間です。本制限時間を超過して実行を継続しよう
2フ
Akita University
としたジョブはシステムにより強制的に終了となります。
・メモリ容量
1つのジョブで使用できる最大メモリ容量です。本制限メモリ容量を超過してメモリを使
用しようとしたジョブはシステムにより強制的に終了となります。
・同時実行数
各キューの最大同時実行ジョブ数です。本制限同時実行数を超えてキューに投入されたジ
ョブは実行待ち状態(QUE状態)となります。本制限値はユーザごとの制限値ではなくシス
テム全体の制限値ですのでご注意ください。
32ジョブ投入方式
シェルスクリプト形式で記述したジョブスクリプトファイルをアプリケーションサーバから
SX-8iシステムへ投入する際にはqsubコマンドを使用します。
ジョブ投入コマンド
qsub-q(投入先キュー名)(その他オプション)(ジョブスクリプト名)
その他,主に使用するオプションとしては以下のものが上げられます。
オプション
機 能
一○〈ファイル名)
投入するバツチジョブの標準出力用結果ファイルを指定します。
-e(ファイル名)
投入するバツチジョブの標準エラー出力用結果ファイルを指定します。
-me-M〈メールアドレス)
バッチジョブが終了したときに,指定したメールアドレスにメールが
送られます。安易に使用するとメールシステムの不具合の原因にもなり
ますので,注意して使用してください。
qsubコマンドを実行し正常に投入されると,“リクエストID(数字.quintet)”を含む投入メッ
セージが出力されます。
ジョブ投入例
[ho9e@quintet‐]$qsub−qa−me−Mhoge@gmailocomtestosh
Request2100・quintetsubmittedtoqueuega。
上記の例ではaキューに対-してジョブスクリプトtest・shを投入し,ジョブ終了時に
hoge@gmaiLcomまでメールを送るようにしています。ここでは「2100.quintet」が“リクエス
トID”となります。バッチ処理では“リクエストID”によってジョブが管理されるため,以後の
情報の参照やジョブの削除についてもこの“リクエストID”を使用いたします。
2
8
Akita University
3.3情報参照方法
投入したジョブの状態等の情報参照には,qstatコマンドを使用します。qstatコマンドはオ
プションの指定により各キユーの状態や自分のリクエストの状態を参照することができます。
コマンドオプションの詳細や出力情報についてはマニユアルを参照してください。manコマン
ドによりコマンドマニュアルの参照もできます。
ジョブ状態表示コマンド
qstat(オプション)
主なオプションとしては下記のものがあります。
qstatで指定可能なオプシヨン
機 能
オプション
I︺
リクェスト情報参照(旧システムのqstatrに対応〉
キュー1情報参照(旧システムのqstatqに対応)
Q−e
リクエスト情報参照の例
[hoge@quintet∼]$qstat
RequestlDReqNameUserNameQueuePriSTTSMemoryCPU
ElapseRHMJobs
17YYY1
2100・quintettestoshhogeaORUN−20.21M7.08
キュー情報参照の例
[hoge@quintet ]$qstat−Q−e
[EXECUTlONQUEUE]BatchServerHost:quintet
QueueName
SCHJSVsENASTSPRlTOTARRWAlQUEPRRRUNPOREXT HLDHOLRSTSUSMiGSTGCHK
−
−
ー
ー
一
一
一
一
一
一
ー
−
−
000
■
000
ー
000
ー
000
一
000
一
000
一
000
ー
000
ー
000
一
201
一
000
一
00Ⅱ
=
000
1ENA ACT
一
000
1ENA ACT
一
001
02
02
0
2
abc
000
一
1ENA ACT
− ー ー ー ー − ー ー ヨ
<TOTAL>
一 一 一 一 一 一 一 一 一 一 一 一 一 一 一
1 0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 ー ー ー ー − ー ー
− ー − − − − − − − − − − − − − 一 一 一 一
29
Akita University
3.4ジョブの削除方法
投入済みのリクエストを削除するには,qdelコマンドを利用します。
ジョブ削除コマンド
qdel(オプション)
ジョブ削除の例
35実行結果
ジョブ投入時に‐oや‐eオプションを使用していない場合,ジョブからの標準出力,標準エ
ラー出力はジョブを投入した際のカレントディレクトリにファイルとして格納されます。
出力ファイル名
種 別
機 能
標準出力
“
ジョブスクリプト名”.○”リクエストIDの数字部分
”
標準エラー出力
“
ジヨブスクリプト名,,.e”リクエストIDの数字部分
”
その他,コンパイルオプションの詳細やベクトル化の技法について詳しく知りたい方は,総
合‘情報処理センター2階でマニュアル「FORTRAN/SXプログラミングの手引き」および
「C++/SXプログラミングの手引き」を貸し出ししておりますのでご利用下さい。
3
○
Fly UP