TSUBAME2.0 利用の手引 東京工業大学学術国際情報センター 2013.08 version 1.5 目次 TSUBAME 2.0 利用の手引き 1 1. はじめに 1 2. TSUBAME2概要 2 2.1 全体概念 2 2.2計算ノード 2 2.3 オペレーティングシステム構成 3 2.4 ストレージ 3 2.5 ネットワーク 4 3. 利用環境 3.1 利用できるリソース 5 5 3.1.1 インタラクティブノード 5 3.1.2 インタラクティブノードでの制限 6 3.1.3 バッチノード 6 3.1.4 バッチキューでの制限 7 3.1.5 ノード内並列数 8 3.1.6 制限一覧 8 3.1.7 Xキューの利用条件 9 3.2 利用環境 10 3.2.1 開発環境 10 3.2.2 MPI環境 10 3.2.3 MPI環境の切り替え 11 3.2.4 環境切り替えシェル 11 3.3 アプリケーション 11 3.3.1 ISV アプリケーション 11 3.3.2 free アプリケーション 12 3.4 GPU利用環境 13 3.4.1 インタラクティブ 13 3.4.2 バッチキューへのジョブ投入 13 3.4.3 GPUを使用した大規模並列 13 3.4.4 対応アプリケーション 13 3.5 目的別環境の選択 14 3.5.1 大規模並列環境 14 3.5.2 大容量メモリ 15 3.5.3 大容量ストレージ 15 3.5.4 並列環境とアプリケーション 16 3.6 WINDOWS HPC 17 3.7 関連設備の利用 17 3.8 Naregi連携 17 3.9 ストレージサービス(CIFS) 17 4. システムの利用 18 4.1 アカウントの取得 18 4.2 ログイン 18 4.3 パスワード管理 19 4.4 インタラクティブ 19 4.5 バッチジョブ 19 4.5.1 ジョブの作成 20 4.5.2 ジョブの投入 20 4.5.3 ジョブID 20 4.5.4 ジョブの状態確認 20 4.5.5 ジョブの結果確認 22 4.5.6 ジョブ実行情報・課金情報 22 4.5.7 ジョブの削除 23 4.5.8 sshログイン 23 4.5.9 課金グループでの実行状況確認 23 4.6 ストレージの利用 23 4.6.1 home 23 4.6.2 data 24 4.6.3 work 24 4.6.4 共有スクラッチ 24 4.6.5 ローカルスクラッチ 25 4.6.6 MPIプログラムでのSSDの使用 26 4.6.7 ストレージの制限 27 4.6.8 I/O 専用ノードの利用 28 4.7 WINDOWS HPC 28 4.8 Naregi 28 4.9 ストレージサービス(CIFS) 28 4.9.1 Windowsからの利用 28 4.9.2 Macからの利用 31 4.9.3 TSUBAME2からの利用 33 5. PBSによるジョブの投入 5.1 ジョブスクリプト 34 34 5.1.1 シングルジョブ 34 5.1.2 SMP並列ジョブ 34 5.1.3 GPUジョブ 34 5.1.4 MPIジョブ 34 5.2 ジョブの投入 35 5.2.1 バッチキューの選択 35 5.2.2 PBSオプション 36 5.3 使用資源の指定(l(エル)オプション) 37 5.3.1 シングルジョブ 38 5.3.2 SMP並列ジョブ 38 5.3.3 GPUジョブ 38 5.3.4 MPIジョブ 38 5.3.5 同時実行ジョブ 39 5.3.6 ノード配置 39 5.3.7 大規模並列 39 5.3.8 ハイブリット並列 40 5.4 予約(Hキューの利用) 41 5.5 メモリサイズの指定 41 5.6 アレイジョブ(パラメータサーベイ) 42 5.7 ジョブ関連情報の指定 42 5.7.1 ジョブ名 42 5.7.2 TSUBAMEグループ 43 5.7.3 実行時間 43 5.7.4 メール 43 5.7.5 標準出力ファイル 43 5.7.6 標準エラー出力ファイル 43 5.7.7 出力ファイルの結合 43 5.8 プレミアオプション 43 5.8.1 時間延長 44 5.8.2 プライオリティ 44 5.8.3 課金係数 44 5.9 SSH直接ログイン 44 5.9.1 ジョブスクリプトの準備 44 5.9.2 ノードの確認 45 5.9.3 ログイン 45 6. プログラミングと環境 46 6.1 コンパイラ 46 6.1.1 利用できるコンパイラ 46 6.1.2 数学ライブラリ 46 6.1.3 コンパイラのオプション 47 6.1.4 コンパイラ利用に当たっての注意 47 6.1.5 違うバージョンのコンパイラ 47 6.1.6 コンパイラのマニュアル 48 6.2 SMP並列 48 6.3 MPI並列 49 6.4 ハイブリッド並列 50 6.5 GPU 51 6.5.1 CUDA 51 6.5.2 CULAライブラリ 51 6.5.3 PGIコンパイラ 52 6.5.4 コンパイラ・ライブラリのバージョン 52 6.5.5 MPI+cudaによるコンパイル 53 6.6 性能解析ツール 53 6.6.1 プロファイラ(シングル) 53 6.6.2 プロファイラ(並列) 54 6.6.3 デバッカ(シングル) 54 6.6.4 デバッカ(並列) 55 6.6.5 デバッカ(GPU) 56 6.6.6 パフォーマンスアナライザー 57 6.6.7 PAPIによる性能評価 59 6.7 エラーメッセージ 59 6.7.1 メモリ不足 59 6.7.2 配列外参照 60 6.7.3 配列外参照(MPIジョブ) 60 7. ISVアプリケーション 63 7.1 ANSYS FLUENT 63 7.2 Abaqus Standard/Explicit 64 7.3 Abaqus CAE 65 7.4 Patran 66 7.5 Nastran 66 7.6 Gaussian 09 67 7.7 Gauss View 68 7.8 AMBER 68 7.9 Materials Studio 70 7.10 Discovery Studio 70 7.11 SCIGRESS 70 7.12 Molpro 71 7.13 Mathematica 72 7.14 Maple 72 7.15 AVS/Express 73 7.16 AVS/Express PCE 73 7.17 EnSight 74 7.18 MATLAB 74 7.19 LS-DYNA 75 8. free アプリケーション 77 8.1 GROMACS 77 8.2 POV-Ray 77 8.3 Tinker 78 8.4 GAMESS 78 8.5 platex 79 8.6 Tgif 80 8.7 R 80 8.8 gnuplot 81 改版履歴 83 TSUBAME 2.0 利用の手引き TSUBAME 2.0 利用の手引き 1. はじめに 本書は,2010年11月から稼働を開始した「TSUBAME2」をご利用いただくための手引きとして作成しています. TSUBAME2は,HP 社製「 SL390s G7 」を中心とした, クラウド型グリーンスーパーコンピュータシステムです. このシステム は下記のような特徴を有しております. • 全体演算性能(ピーク性能)で 2.4 PFLOPS • 大規模ストレージサービスの実現 • 高バンド幅ネットワーク環境 TSUBAME2 で採用している,オペレーティングシステムは,LinuxおよびWindowsHPC になっております. 本書では,Linux( UNIX)による利用を説明しておりますので,UNIXの一般的な知識をお持ちのユーザを対象にしています. WindowsHPCに 関しては,別途手引が用意されています. 主な内容は下記の通りです. • TSUBAME2 の紹介/概要 • システム(リソース)の利用環境 • システム(リソース)の利用方法 これらのTSUBAME2を通して,利用者の研究活動に一層,寄与できるものと確信しております. 2010.10.29 NEC 1 2. TSUBAME2概要 2.1 全体概念 本システムでは,汎用CPUとGPU型アクセラレータによる2.4PFLOPSの演算性能を実現しております. TSUBAME2の全体 概念を以下に示します. 2.2計算ノード 計算ノードを構成するマシンは以下のとおりです. • Thin計算ノード • HP社製サーバ「HP SL390s G7」を1,408ノードで構成しています. • 各ノードは,Intel社製CPU「Xeon X5670」を2Socket(12Core)有しています. • 各ノードは,54GiBのメモリを有しています.一部96GiBのメモリを有しています. • NVIDIA社製「NVIDIA Tesla M2050」 を3GPU搭載しています. これによりThin計算ノードのピーク合算性能は,2,391.35TFLOPS,総主記憶容量は,80.55TBを有しています. • Medium(24ノード),Fat(10ノード)計算ノード • HP社製サーバ「HP DL580 G7」を合計34ノードで構成しています. • Intel社製CPU「Xeon 7550(Nehalem-EX)」を4Socket(32Core)を搭載しております. • 各ノードは128GiB、または256GiB、または512GiBのメモリを有しています. • NVIDIA社製GPU「Tesla S2070」または「Tesla S1070」 を1基接続しています(1基あたり4GPU搭載). TSUBAME2のマシンの基本スペックは次の通りです. タイプ ノード 数 CPU CPUcl ock コア/ スレ Memo ry TypeA 1367 Xeon 5670 2.93G Hz(※) 12/24 TypeB 41 Xeon 5670 2.93G Hz(※) TypeC 14 Xeon 7550 2.0GH z GPU 性能 GPUメ モリ net M205 0×3 515Gf lops× 3 3GB× 3 40Gb ps×2 Thin 240G B M205 0×3 515Gf lops× 3 3GB× 3 40Gb ps×2 Thin 480G B S107 0 345Gf lops 4GB× 4 40Gb ps Mediu m SSD GPU 54GiB 120G B 12/24 96GiB 32/64 128Gi B 備考 TypeD 10 Xeon 7550 2.0GH z 32/64 128Gi B 480G B S207 0 515Gf lops× 4 6GB× 4 40Gb ps Mediu m TypeE 8 Xeon 7550 2.0GH z 32/64 256Gi B 600G B S107 0 345Gf lops 4GB× 4 40Gb ps Fat TypeF 2 Xeon 7550 2.0GH z 32/64 512Gi B 600G B S107 0 345Gf lops 4GB× 4 40Gb ps Fat ※ Intel Turbo Boost Technology により3.196GHzで動作可能. 2.3 オペレーティングシステム構成 オペレーティングシステム(OS)は,下記の環境を有しています. OS構成は,サービス実行形態に応じて動的に変更されます. また,一部のノードでは,OSが仮想環境上で動作しています. • SUSE Linux Enterprise Server 11 SP1 • Windows HPC Server 2008 R2 2.4 ストレージ マルチペタバイト級ストレージは,Data Direct NETWORKS社製「DDN SFA10000」を中心として構成されております. 非フォー マット時で7.13PBの物理容量を有しています. ペタバイト級ストレージはLustreやGPFSを利用した「並列ファイルシステム領 域」,NFS,CIFS,iSCSIを備えた「ホーム領域」などから構成されております. data領域(/data0)はテープライブラリとGPFS ファイルシステムが連動した階層型ストレージとして構成されます. また,ローカルのSSD領域も利用可能です. 利用にあたっ ては, 4.6 ストレージの利用 も参照ください. ◎ストレージの特徴 様々な領域がありますが、/work0,1 を購入してジョブを実行するのが一般的です. • /home 環境設定やソースコード等重要なデータを保存する.ジョブの実行は極力避ける. • /nest2 Windows環境からエクスプローラでアクセスする.TSUBAME内からはインタラクティブノードからのみ アクセ ス可.低速なのでジョブの実行には向かない. • /data0 30TB以上の大容量の入出力結果を長期間保存する.高速な並列I/Oでジョブを実行する. ただし,Vキュー からは利用できない.(有料) • /gscr0 ジョブ実行中に生成される中間ファイルや一時ファイルを保存し、高速な並列I/Oでジョブを実行する. クオー タ制限が無いため,最大100TB程度までの容量を利用できるが,ジョブ実行の終了後に削除される. バッチノードか らのみアクセス可. • /work0,1 30TBまでの入出力結果を保存する.高速な並列I/Oでジョブを実行する.(有料) • /scr ジョブ実行中にノード内でしか利用できないが,高速かつ大量の細かいI/Oのジョブを実行する. • /tmp システムを動作させるのに必要なため,ジョブの実行に原則利用不可. ◎バックアップ、冗長性 • /home RAID-6構成,定時バックアップあり • /nest2 RAID-6構成,定時バックアップあり • /data0 RAID-6構成, バックアップなし • /gscr0 RAID-6構成,ジョブ終了後削除 • /work0,1 RAID-6構成, バックアップなし • /scr RAID-0構成,ジョブ終了後保障なし マルチペタバイト級ストレージ環境は以下の構成となっています. ○ホーム領域(1.2PB) 用途 マウント ファイルシステム 備考 homeディレクトリ /home GPFS+cNFS GridScaler 共有アプリケーション配備 /usr/apps GPFS+cNFS GridScaler 全学ストレージサービス \\nest2 , /nest2 CIFS , NFS BlueArc Mercury 100 教育用電子計算機システ ム \\nest2 CIFS BlueArc Mercury 100 iSCSI BlueArc Mercury 100 TSUBAMEホスティング ○並列ファイルシステム領域(大規模並列領域)(5.93PB) 用途 マウント ファイルシステム 大規模データ領域 /data0 ※ GPFS 共有スクラッチ領域 /gscr0 Lustre 大規模I/O領域 /work0 ,/work1 Lustre ※ただしVキューでは利用不可 ○ローカルスクラッチ領域(SSD) 用途 マウント ファイルシステム ローカル高速I/O /scr ext3 ※ノードによって異なります.詳しくは 4.6.5 ローカルスクラッチ を参照ください. 容量 ※注 ○テープ領域(4PB) 用途 /data0のマイグレーション システムのバックアップ 2.5 ネットワーク 各計算ノード間は,Voltaire社製InfiniBand装置「Grid Director 4700」を利用して, フルバイセクション・ノンブロッキングな 結合網を有しています. ThinノードはデュアルレールのQDR InfiniBandネットワークに接続しており,合計で最大80Gbpsの 通信性能を有しています. TSUBAME2のネットワーク相互関係図を以下に示します. 3. 利用環境 ユーザーが利用可能な環境イメージを以下に示します. 操作イメージは次の通りとなります. 1.TSUBAME2環境へのログイン ユーザ端末からインタラクティブノードにssh接続し,ログインを行います. インタラクティブノードではプログラム開発,デバッグ,ジョ ブの投入などを行います. GPUを利用するしないにかかわらずプログラムの開発,デバッグを行う場合は【login-t2.g.gsic.titech. ac.jp】に接続してください. 【重要】 学外から接続する場合は鍵認証のみ有効となっているため,TSUBAME2利用ポータルを利用して鍵のアップロードを 行っ てください.学内から接続する場合は鍵認証とID/Passwdが有効になっています. 2.プログラム開発/デバッグ プログラム開発環境として,IntelCompiler,PGI Compiler,GCCが利用可能です. またGPUプログラム開発環境として CUDAを利用することが可能です.開発環境の詳細に 関しては 3.2 利用環境 をご参照ください. 3.バッチジョブの投入 t2subコマンドを利用して,開発したプログラムをバッチシステムに投入します. バッチシステムには利用用途に合わせて複 数のキューをご用意しております. 利用できるリソース,キュー構成の詳細に関しては 3.1 利用できるリソース をご参照 ください. 4.バッチジョブの状況確認 t2statコマンドを利用して,バッチシステムに投入したプログラムの状況確認を行います. 詳細に関しては 4.5.4 ジョブの 状態確認 をご参照ください. 5.結果確認 ジョブが終了すると,実行結果ファイルが生成されますので,実行結果を確認します. 詳細に関しては 4.5.5 ジョブの結果 確認 をご参照ください. 6.その他 • プログラムが生成する一次ファイルの保存先として並列ファイルシステム領域とローカルディスク(SSD)が利用できます. 並列ファイルシステム領域の利用方法については 4.6.3 work をご参照ください. 共有スクラッチの利用方法については 4.6.4 共有スクラッチ , またローカルSSDの利用方法については 4.6.5 ローカルスクラッチ をご参照ください. • Sキューなどのノード占有系の場合,ノード確保している期間はそのユーザのみログイン可能です. • Hキューでは予約したTSUBAMEグループのメンバーがログイン可能になります. ※ システム利用の詳細に関しては 4. システムの利用 をご参照ください. 3.1 利用できるリソース TSUBAME2の資源は基本的に全て使用できますが,制限がいくつか存在します. 3.1.1 インタラクティブノード ログインマシンにリモートログインをすると,負荷分散されてインタラクティブ用の計算ノードのどれかに着地します. ここで,デ バック,ジョブの投入準備などを行います. 一般用マシン login-t2.g.gsic.titech.ac.jp ※GPUは全てのインタラクティブでご利用いただけます. また,障害によりログインできない場合は,次もお試しください. login-t2-1.g.gsic.titech.ac.jp login-t2-2.g.gsic.titech.ac.jp 3.1.2 インタラクティブノードでの制限 インタラクティブノードでは,以下の制限があります. 1. ユーザーあたりの利用メモリ 6GB 2. ユーザーあたりのプロセス数 4 3. ユーザーあたりのディスク使用量は /home=25GB, /work0,1 = 30TB/group , /data0 = 30TB/group 4. CPU連続利用時間は 30分 5. 1時間利用がない場合は接続を切断 3.1.3 バッチノード バッチノードとして,1382ノードが用意されています. 各キューは,利用目的に合わせて選択してご利用いただけます. 有料サー ビスを利用するためには,TSUBAMEグループの作成を行い, サービスを購入する必要があります. TSUBAMEグループの作 成,サービス購入に関しては TSUBAME2利用ポータル_利用の手引 を参照してください. サービス キュー名 用途 ノード/コア/ スレッド数 時間制限 メモリ制限 並列数上限 備考/マシン タイプ 無料 インタラクティ デバック,ジョ 20/240/4 ブノード ブ投入 80 30分 6GB 4 (※9)/Thin 従量課金 S 中規模並列 300/3600 /7200 (※ 13) 1~4日 1GB(※4)( 54GBまで) 7200 (※14)/Thi n 従量課金 S96 54GB以上 のメモリ 41/492/9 84 1~4日 1GB(※4)( 96GBまで) 984 (※5)/Thin 従量課金 L128 96GB以上 のメモリ 8/256/51 2 1~4日 1GB(※4)( 128GBまで) 512 (※6)/Medi um 従量課金 L128F 96GB以上 のメモリ/G PUあたり6 GBのメモリ 10/320/6 40 1~4日 1GB(※4)( 128GBまで) 640 (※6)/Medi um 従量課金 L256 128GB以 上のメモリ 8/256/51 2 1~4日 1GB(※4)( 256GBまで) 512 (※7)/Fat 従量課金 L512 256GB以 上のメモリ 2/64/128 1~4日 1GB(※4)( 512GBまで) 128 (※8)/Fat 従量課金 G GPU専用( ※15) 480/1920 /3840 1~4日 1GB(※4) 無制限 G側でコア 指定は不可 能/Thin 定額課金 V ノード内並 列 440/3520 /7040 1~4日 1GB(※4) 割当による( ※10) 仮想環境 定額課金 Vw WindowsH PC(※1) 40(※12) 1~4日 1GB(※4) 割当による( ※11) 仮想環境 定額課金 Sw WindowsH PC(※1) 8(※12) 1~4日 1GB(※4) 192 native/Thi n 予約 H(※3) 大規模並列 420/5040 /10080 pool(※2) 動的配置 107/1284 /2568 X(※14) Sキューの混 雑緩和 スロット時間 1GB(※4) 10080 ~23時間 予約期間は ssh接続可 能 (※14)/ Thin Hに予約が 無い時 表中の注釈(※番号)については次の通りですので,確認してください. 1. 事前の利用準備が必要です. 2. 利用状況に応じて動的に配置されます. 3. 利用するためには事前に予約システムでスロットの予約を行う必要があります. (最小ノード数:16ノード,最大スロット数 :7) 予約方法に関しては TSUBAME2利用ポータル_利用の手引 を参照してください. 4. 「mem」オプションで変更可能です.詳細は 5.5 メモリサイズの指定 を参照ください. 5. Sに対して1.2倍の課金がかかります(使用時間に1.2倍の係数がかかります). 6. Sに対して2倍の課金がかかります(使用時間に2倍の係数がかかります). 7. Sに対して4倍の課金がかかります(使用時間に4倍の係数がかかります). 8. Sに対して8倍の課金がかかります(使用時間に8倍の係数がかかります). 9. 経過時間ではなくプロセスごとのCPU時間が最大30分となります. 10. 1ユニットあたり64CPU(64並列または64本のシングルジョブ)となります. 11. 1ユニットあたり24CPU(24並列または24本のシングルジョブ)となります. 12. 別途用意されている TSUBAME2 windows環境利用の手引 をご参照ください. 13. ジョブの混雑状況に応じて割り当てが増える場合があります. 14. Sキューに投入されたジョブのうち,翌日8時までに終了するアレイ以外のジョブはXキューとして, Hキューの予約が無いマ シンに割当てます.(Xキューは通常は見えません) 3.1.7 Xキューの利用 を参照ください. 15. GキューでGPUを使用していないジョブは、削除する場合があります. ※ Sキューでは2ノード,10分まで,Vキューでは2並列,10分まで試験実行で使用することがてきます. ノードのユーザーへの割り当て方法によって,占有ノードと共有ノードの2種類に分けられます. 1. 占有ノード 各ノードは,1つのジョブによって占有されます.1つのジョブが複数のノードを使用することも可能です. S,L128,L1 28F,L256,L512,S96,Gキューおよび予約キューのノードが該当します. 2. 共有ノード 各ノード内で,リソースが許す範囲で不特定多数のユーザーによる複数のジョブが実行されることがあります. 1つ のジョブが複数のノードを使用することも可能です. Vキューのノードが該当します. 3.1.4 バッチキューでの制限 バッチキューでは,以下の制限があります. 1. ユーザーあたりの利用メモリ 2. ユーザーあたりのプロセス数 3. ユーザーあたりのディスク使用量は /home=25GB, /work0,1 = 30TB/group , /data0 = 30TB/group 4. CPU連続利用時間 5. ユーザーあたりのバッチのジョブ投入本数(キュー別) マシンの混雑状況により変更になる場合もありますが,目安は次の通りです. • 各キュー共 10000本 6. 同時実行数の制限 キューにより制限が設定されています. • Vキュー(定額課金) ------ 1ユニットあたり64CPU (課金グループあたり) • S/Gキュー(従量課金) ---- 30ジョブ(ジョブ本数:CPU数の制限はありません) • Hキュー(従量課金) ----- 制限はありません 7. ジョブの種類による制限 GキューはGPU専用のため、CPUのみのジョブ実行は禁止しております。 CPUのみのジョブを実行していた場合、 管理者が削除する事があります。 3.1.5 ノード内並列数 バッチキューのノード内で使用できるスレッド数はキューによって異なります. キュー名 コア数 仮想コア S 12 24 V 8 16 L(128-512) 32 64 備考 (仮想環境) ※仮想コアとは,ハイパースレッドを使用するという意味で表現しています. OpenMP等を使用した場合のノード内スレッド数の上限は仮想コア数になりますが, 最適なスレッド数は実コアと仮想コアの 間にあります.例えばVキューの場合は8から16です. 最も効果の高いスレッド数は,使用するアプリケーションの演算密度に 左右される為, 事前の試験計算で性能を検証してからスレッド数を決定することをお勧めします. 3.1.6 制限一覧 TSUBAME2.0を利用する際に発生する各種の制限を一覧にしました. 1.リソースの制限(バッチ構成) キュー名 メモリ ------ -node- ------ SSD GPU `` (GB)(※1) 数(※2) core threads (GB) S 53 300 12 24 50 3(M2050) V 31 440 8 16 10 ---- G 18 480 4 8 30 3(M2050) S96 94 41 12 24 160 3(M2050) L128 126 8 32 64 400 4(S1070) L128F 126 10 32 64 400 4(S2070) L256 252 8 32 64 500 4(S1070) L512 504 2 32 64 500 4(S1070) Vw 31 40 8 16 10 ---- Sw 53 8 12 24 50 3(M2050) H(X) 53 420 12 24 50 3(M2050) インタ(※3) 6 20 12 4 50 3(M2050) ※ 1 PBSで識別する最大値です. これより1GB程度少ない数字程度を利用の目安にしてください. ※ 2 障害等で減少している場合があります. 季節運用等で数が変化する場合もあります.センターニュースを確認ください. ※ 3 インタ(インタラクティブ)は4procs,連続実行 30分まで. 2.ストレージ デバイス 制限 /home および /nest2 各25GB /work0 30TB(ただし購入口数による) (最大容量 750TB) /work1 30TB(ただし購入口数による) (最大容量1400TB) /data0 30TB(ただし購入口数による) (最大容量 750TB) SSD 上記一覧参照(バッチ以外からのアクセス不可) /gscr0 制限なし(最大容量114TB) (バッチ以外からのアクセス不 可) 最大ファイルサイズ 2TB (ただし、stripe指定により拡大可能) 最大ファイル数 なし ファイル名等の制限 TSUBAMEで設定する制限はない(Linux(SLES11)準拠) 3.バッチ関連 項目 制限 アレイジョブの最大アレイ数 10000 ジョブの投入本数 10000 本 (Sの場合は加えて課金残高範囲内) 同時実行数 vキューはグループあたりの口数 : Sキュー/Gキューは 30 本(並列数ではなく、ジョブ本数) isv アプリ http://tsubame.gsic.titech.ac.jp/applications を参照 アカウント名 20文字(ポータルで自動処理) グループ名 20文字(t2gの接頭語を含む9~20文字) 3.1.7 Xキューの利用条件 XキューとはHキューにおいてその日予約の無かった計算ノードを集めて利用するキューです. ノードの利用率向上とSキュー の混雑緩和を目標としています。利用条件は次の通りです. • 課金方法や課金額はSキューと同等です. • Sキュー同様、実行中はノードを占有します. • ノード環境はHキュー(≒Sキュー)と同等です. • Xキューへのジョブ投入を明示的に指定することができません. • 以下をすべて満たしたジョブのみXキューで実行されます. • Sキューを指定すること. • 投入時にXキューに即実行を開始できるだけの十分なノード数が空いていること. • 投入時にジョブの実行時間(walltime)が翌午前9時までの時間より短い時間が指定されていること. • (例) 24時に投入する場合は,9時間より短い時間を指定. • アレイジョブ,ノードの直接の指定,依存ジョブ(-W dependを指定したジョブ)を利用していないこと. • 投入時刻が午前9時から午前10時の間以外であること. • 予約が無い状態が連続する場合でも,午9時をまたぐジョブは投入・実行されません. • 午前9時から午前10時の間はXキューを利用できません. • Xキューでジョブが実行されていても、t2stat画面ではSキューとして表示されます. 通常,Job idに「.t2zpbs05」が含 まれている場合Xキューで動作している事になります. • 1ジョブあたりの最大並列数はその時点でのSキューのサービスノード数となります. • 一度Sキューにキューイングされたジョブ(.t2zpbs01のリストに表示されたジョブ)は 自動では再度Xキューへ投入さ れませんので, うまくXキューで実行されなかった場合は時間を空けて再投入する事をおすすめします. 3.2 利用環境 3.2.1 開発環境 利用可能なコンパイラについては次の通りです. 1. コンパイラ Intelコンパイラ: ifort , icc PGIコンパイラ : pgf95 , pgcc GNUコンパイラ : gfortran , gcc 3.2.2 MPI環境 MPIの動作環境はキューによって異なります. • 従量課金 --- S,S96,G,L128,L128F,L256,L512,H IBに対応している,openmpi または mvapich2 を使用してください. • 定額課金 --- V IBが利用できない環境ですので,mpich2を使用してください. 利用可能なMPIライブラリは次の通りです. (※これらは,環境変数を使用するか,シェルスクリプトにより切り替えます.) 1. OpenMPI この環境は従量課金キューでMPIプログラムを実行する場合に使用します. • OpenMPI1.4.2+intel export PATH=/usr/apps/openmpi/1.4.2/intel/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/openmpi/1.4.2/intel/lib:$LD_LIBRARY_PATH • OpenMPI1.4.2+pgi export PATH=/usr/apps/openmpi/1.4.2/pgi/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/openmpi/1.4.2/pgi/lib:$LD_LIBRARY_PATH • OpenMPI1.4.2+gnu export PATH=/usr/apps/openmpi/1.4.2/gcc/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/openmpi/1.4.2/gcc/lib:$LD_LIBRARY_PATH ※デフォルトでは,OpenMPI1.4.2+intelにパスが設定されています. 2. MVAPICH2 この環境は従量課金キューでMPIプログラムを実行する場合に使用します. • MVAPICH1.5.1+intel export PATH=/usr/apps/mvapich2/1.5.1/intel/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/mvapich2/1.5.1/intel/lib:$LD_LIBRARY_PATH • MVAPICH1.5.1+pgi export PATH=/usr/apps/mvapich2/1.5.1/pgi/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/mvapich2/1.5.1/pgi/lib:$LD_LIBRARY_PATH • MVAPICH1.5.1+gnu export PATH=/usr/apps/mvapich2/1.5.1/gcc/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/mvapich2/1.5.1/gcc/lib:$LD_LIBRARY_PATH ※デフォルトでは,パスは設定されていませんので,利用者で設定してください. 【重要】 MVAPICH2をMulti-railで動作させる場合、次の環境変数を .bashrc に追加してください. export MV2_NUM_HCAS=2 とすることで通信性能を向上できます.(通信によっては変化しない場合もあります) ※各計算ノードに接続されているInfiniBandが複数用意されているネットワークをmulti-railと呼びます. (Thinノードは2本 づつ接続されています) 3. MPICH2 この環境は定額課金キュー(Vキュー)でMPIプログラムを実行する場合に使用します. • MPICH2+intel export PATH=/usr/apps/mpich2/1.3/intel/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/mpich2/1.3/intel/lib:$LD_LIBRARY_PATH • MPICH2+pgi export PATH=/usr/apps/mpich2/1.3/pgi/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/mpich2/1.3/pgi/lib:$LD_LIBRARY_PATH • MPICH2+gnu export PATH=/usr/apps/mpich2/1.3/gcc/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/mpich2/1.3/gcc/lib:$LD_LIBRARY_PATH ※デフォルトでは,パスは設定されていませんので,利用者で設定してください. 3.2.3 MPI環境の切り替え MPI環境ライブラリをopenmpiからmvapich2/mpich2ベースに変更することができます. 下記の例では,MVAPICH2+pgi に変更しています. あるいは,setmvp-pgi.sh コマンドを実施することにより,mpif90のパス環境を変更します. > > > > pgf90 mpif90 --> pgf90+mvapich2 export PATH=/usr/apps/mvapich2/1.5.1/pgi/bin:$PATH (デフォルト) export LD_LIBRARY_PATH=/usr/apps/mvapich2/1.5.1/pgi/lib:$LD_LIBRARY_PATH デフォルトに戻す場合は,setompi-intel.sh を実行します. 3.2.4 環境切り替えシェル 環境を切り替えるシェルは,/usr/apps/free/env 内に収められており, 既にパスが通っていますので,次のようにコマンドを 発行してください. > > > > > > > > > . . . . . . . . . setompi-intel.sh -setompi-pgi.sh -setompi-gcc.sh -setmvp-intel.sh -setmvp-pgi.sh -setmvp-gcc.sh -setmpch-intel.sh -setmpch-pgi.sh -setmpch-gcc.sh -- デフォルト(openmpi + intel) openmpi + pgi openmpi + gcc mvapich2 + intel mvapach2 + pgi mvapich2 + gcc mpich2 + intel mpich2 + pgi mpich2 + gcc ※パスが累積されていきますので,定期的にクリア(再ログイン等)してください. ※バージョン番号が付加された切り替えシェルは研究用です.通常利用は上記コマンドをご利用ください. 3.3 アプリケーション アプリケーションは,ISV (Independent Software Vendor)提供のソフトウェアと free で提供されているアプリケーションが利 用できます. ISVとして利用できるアプリケーションの一覧を 7. ISVアプリケーション に用意していますので参照ください.fre eの場合は 8. free アプリケーション を参照してください. また,バージョンの異なるアプリケーションもご利用いただけます。バージョンについては, 利用可能アプリケーション を参照して ください. 利用の切り替えなどの操作は、アプリケーション別の利用の手引きを参照ください。 3.3.1 ISV アプリケーション ご利用いただけるisvアプリケーションは次の通りです. アプリケーション名 バージョン GPU対応状況 概要 PGI CDK 13.2 OK コンパイラ,デバッガ,開発 支援ツール群 Intel Compiler 2013.0.079 no インテルコンパイラ(64/32 bit用) ABAQUS Standard/Expli cit 6.12-3 OK 有限要素法による汎用構造 解析プログラム ABAQUS/CAE 6.12-3 - ABAQUS モデリング/ビジュ アライゼーション環境 MD NASTRAN 2012.2 OK 有限要素法による構造解析 ソフトウェア PATRAN 2012.2.1 -- CAE環境統合プリ・ポストソ フトウェア Gaussian 09 C.01 -- 分子軌道計算プログラム GaussView 5.0.9 -- Gaussian のためのグラフィ カルユーザーインターフェー ス TCP-Linda(Gaussian 用) 8.2 -- 並列計算プログラミングツー ル Molpro 2010.1 Q3 非経験的分子軌道計算プ ログラム AMBER 12bugfix15 OK モデリングおよび分子力学 と動力学計算シミュレーショ ンプログラムのパッケージ Materials Studio 6.0SP1 -- 材料分野向け総合シミュレー ションソフトウェア Discovery Studio 3.5 -- タンパク質3次元モデリング・ 機能解析ソフトウェア Scigress 2.1 -- 材料開発を支援する,計算 化学の統合プラットフォーム AVS/Express 8.0 -- 汎用可視化ソフトウェア AVS/Express PCE 8.0B -- 大規模データのクラスタ対 応並列可視化ソフトウェア EnSight 10.0.2(g) -- 汎用科学技術計算結果可 視化ソフトウェア Mathematica 9.0.1 OK 数式処理機能とグラフィック 表示機能を融合した数式処 理システム Maple 16.02 OK 数式処理システム ANSYS FLUENT 14.5 OK 流体計算 MATLAB R2013a OK 数理処理 LS-DYNA Ver.971 R6 -- 構造解析 Total View Debugger 8.9.2-0 OK GUIベースのソースコード デバッガー ※GPU対応状況で日付が入っているものは,ISVベンダの予定であり,実際のリリースは異なる場合があります. 3.3.2 free アプリケーション ご利用いただけるfreeアプリケーション、デフォルトバージョンは次の通りです. 最新版を利用できる場合もありますので 8. fre e アプリケーション を参照ください. アプリケーション名 バージョン 概要 Platex ptetex3-20090610+tetex-3.0 日本語対応Tex/Latex環境 Tgif 4.2.2 free 2D ドローイングツール Tinker 5.1.08 分子力場計算プログラム GROMACS 4.0.7 分子動力学計算プログラム POV-Ray 3.6.1/3.50C 3DCG ソフト GAMESS 25 March 2010 非経験的分子軌道法プログラム ImageMagick 6.4.3.6 画像表示と画像処理 fftw 3.2.2 C 用のライブラリ R 2.11.1 オープンソースの統計解析システム GnuPlot 4.2.3 コマンドラインから使用する2D,3Dプ ロッタ 3.4 GPU利用環境 TSUBAME2では,GPUを利用しやすい環境が構築されています. 3.4.1 インタラクティブ 全てのインタラクティブノードでGPUを利用できます.次のようにログインします. ssh login-t2.g.gsic.titech.ac.jp -l USER-ID プログラムの開発に関しては, 6. プログラミングと環境 を参照ください. 3.4.2 バッチキューへのジョブ投入 GPUを利用できるキューとしては, S , S96, G ,L128, L128F, L256, L512, H, X を選択できます. (V, Vwキューでは利用で きません).各キューは次のような特徴があります. キュー ノード数 構成 S 300 標準Thinノードで12core+3GPU環 境です. L128F 10 GPU専用Mediumノードで 32core+ 4GPUで構成されています. G 480 GPU専用ノードで 4core+3GPUで構 成されています. H 420 標準Thinノードで構成されており,大 規模予約キューになります バッチキューの利用にあたりましては, 5. PBSによるジョブの投入 を参照ください. また,GPUはノード内に3セット(L128Fは4セット)用意されていますので,シングルジョブでも同時実行が可能です. 5.3.5 同時 実行ジョブ を参照ください. 3.4.3 GPUを使用した大規模並列 Gキューは480ノード用意されておりますのでGPUを使用した大規模並列には,こちらをご利用ください. Sキューとの比較を以下に示します. キュー 構成 メモリ ノード数 課金係数 S 12core+3GPU 54GB 300 1 G 4core+3GPU 22GB 480 0.5 3.4.4 対応アプリケーション 現在のGPU対応アプリケーションは次の通りです.(2013.4.2現在) • ABAQUS 6.12 --- ABAQUS利用の手引(別冊) を参照ください. • NASTRAN 2012 --- NASTRAN利用の手引(別冊) を参照ください. • ANSYS FLUENT 14.5 --- ANSYS FLUENT利用の手引(別冊) を参照ください. • AMBER 12 --- AMBER利用の手引(別冊) を参照ください. • Maple 16 --- Maple利用の手引(別冊) を参照ください. • Mathematica 9 -- Mathematica利用の手引(別冊) を参照ください. • MATLAB ---- MATLAB利用の手引(別冊) を参照ください. • GROMACS 4.5/4.6.1 -- 試験公開 • CULA -- 6.5.2 CULAライブラリ を参照ください. • totalview -- 6.6.5 デバッカ(GPU) を参照ください. 他のアプリケーションにつきましても,順次展開してまいります. 3.5 目的別環境の選択 3.5.1 大規模並列環境 並列環境としては,中規模並列キューとして,Sキューが300ノード用意されており300ノードまでの利用が可能です. (ジョブ の混雑状況によりノード数が増加する場合もあります) 1ノードあたり,12coreを実装していますので,3600並列(core)のジョ ブの実行が可能です. また,このcoreはハイパースレッドを実装していまので,演算密度があまり高くないジョブであれば, ハ イパースレッドを利用して並列数を倍化することも有効になります. スレッドの利用に関しては,事前に確認をお願いします. 300ノードを超える場合を含めて,大規模並列に関しては,Hキューをご利用ください. このキューは予約制ですので,事前の 手続きが必要となります. 予約期間の最小単位を「スロット」と呼びます.1スロットは朝10:00から翌日の朝9:00の23時間です.スロットは「YYYY-M M-DD」の形で表現されます. 「2012-01-10」のスロットを予約した場合は2012年1月10日10:00から2012年1月11日9: 00の23時間が利用できます. 毎日朝9:00から朝10:00の1時間はメンテナンスが行われ利用できませんが,一回の予約で連続したスロットを予約した場 合は途切れることなく, 最終スロットまで連続して利用する事が出来ます.例えば「2012-01-10」から「2012-01-12」を予 約した場合は,分割された23+23+23時間ではなく, 連続した71時間利用できます. 以下にHキューの特徴を表にしました. 項目 仕様 備考 予約操作 スロット開始1時間前まで 当日9時まで 予約キャンセル 開始の24時間前まで 前日のAM10時まで 連続予約日数 最大1週間 7スロット 並列数制限 最小並列16ノード 16ノード以下は予約できません. 障害時の補償(※) ポイント返却 システムが原因の場合 予約制限 実行中のスロット+予約可能範囲内 で,予約されている ノード日合計がT SUBAMEグループあたり600ノード 日まで 420ノード×14日=6160ノード日の1 0% キューの最大実行時間 1日 最大実行時間は予約した期間になり ます. 早期予約 8日~14日前 ※ Hキューでは保証のため無償で予備ノードが付きます. TSUBAMEポイントの消費が2倍 • 故障等による影響を最小にするため,ノード数に応じてあらかじめ予備ノードが確保されます. • 予約ノード数と予備ノード数の関係は以下の通りです.32台毎に2台ずつ増加します. 予約ノード数 予備ノード数 16~32 2 33~64 4 65~96 6 • 予約画面上では予備ノード数は確認できません. • 予備ノードは故障発生の有無にかかわらず利用することが可能です. • 予備ノード分,追加でTSUBAMEポイントが消費されることはありません. ・・・ ・・・ • システムが障害を検知できた場合,故障ノードは自動でt2subの対象から外されます.(検知は2時間おきに行われます) • システムが障害を検知できなかった場合,t2subで故障ノードへジョブがアサインされてしまうのでセンターへご連絡くだ さい.土日祝日、時間外等で対応できない場合は,以下の方法で障害ノードを一時的に利用できなくすることが可能です. • FAQ:予約マシンに障害が発生したのですが ? (特に夜間,休日の対応について) • t2subではなく直接ログインしプログラムを実行する場合は,手動で故障ノードを利用しないようにする必要 があ ります. • 予備ノード台数を超える障害が発生し,すぐに復旧ができなかった場合は,TSUBAMEポイントの補償を行います. 3.5.2 大容量メモリ 大きなメモリーが必要な場合は,L128,L256,L512キューをご利用ください. ノードあたりの利用可能メモリが段階的に大き くなり,最大で,512GBまで利用できます. 各キューのメモリサイズの割り当ては次の通りです. キュー 最大メモリサイズ ノード数 S 54GB 300 H 54GB 420 S96 96GB 41 L128 128GB 8 L128F 128GB 10 L256 256GB 8 L512 512GB 2 G 22GB 480 V 32GB 440 【重要】 PBSのメモリ識別は1GB=1024MBですので,指定できる最大の数字が若干小さくなります. 3.5.3 大容量ストレージ 大容量ストレージはグループで申請することにより利用可能となります. 利用にあたっては TSUBAME2利用ポータル利用の手 引 を参照ください. 申請すると1グループあたり最大30TBの大容量ストレージが利用可能です. 利用にはTSUBAMEポイン トが必要です.グループディスク課金の仕組みは以下の通りです. • 従量制オプションのTSUBAMEポイントによる支払い • 1TB単位,月単位でTSUBAME2.0利用ポータルより設定 • 実際に保存している容量や転送量ではなく,保存可能枠(ディスククオータ)に課金 • Lustre領域(/work0,1)とGPFS領域(/data0)でそれぞれ設定 • 前払いのみ(対象月開始時ではなく設定直後にTSUBAMEポイントを消費) • 翌月以降の設定値は事前にキャンセルが可能(返ポイント) 例:4月に「6月1TB」を購入した場合,4,5月中であればキャンセルしポイントに戻す事ができる. • 当月の設定値はキャンセル不可能(増やすのは可能) 例:4月に「6月1TB」を購入した場合,6月にそれをキャンセルできない. 例:4月に「6月1TB」を購入し,6月に6月分をさらに追加する事ができる. • 当月に利用が全くなくても返ポイントしない. • 月の切り替わり等に設定値が実容量を下回った場合の動作 • 利用者は対象ディレクトリにアクセス不能になる. • 保存可能枠を適切に購入する事で再度アクセス可能になる. • 一定期間アクセス不能状態が続いた場合,システム側で今後削除する事がある. (具体的な運用方法については 未定) • 初回利用時は設定した月になると,ディレクトリが自動的に作成される. • ディレクトリ名(Lustre) : /work0/グループ名 (または/work1) • ディレクトリ名(GPFS) : /data0/グループ名 • 1ファイルシステムあたり,1グループ最大30TBの制限 • 1ファイルシステムあたり,全グループ合計で750TB の制限 • GPFS領域において,テープ装置へ移動されたデータ分は使用量としてカウントされない. 例:GPFSのHDDに1.5TB,テープに3TBある場合は,2TB分購入しておけばデータを維持する事ができる. しかし,こ の状態ではHDD側を整理しないと,テープから500GB分しかHDDに取り出す事ができない. 例:ユーザのデータが4.5TBあった場合,GPFS上に2TB分だけ購入しておけば,2TB分GPFSのファイルシステム上に データを保持することができ,残りの2.5TBはテープライブラリ上に保持することができる. ファイルシステムからテー プライブラリ上へのデータの移動はGPFS側で透過的に行われる. • ディスククオータはgidを用いて判別するため,同じファイルシステム内であればどのディレクトリに存在しても使用量と カ ウントされる. 例:TSUBAMEグループ t2g-group1 と t2g-group2 に属しているユーザーが,/work0/t2g-group1 から /work 0/t2g-group2 に データを移動しても,データのgidが変更されない限りどちらのグループも使用量は増減しない. • /data0はVキューからアクセスすることができません. • グループディスクはバックアップを取得していません.重要なデータは複数の領域に保存するか,バックアップを 取得して いる /homeに保存してください. • 適切に購入しない状態でデータを長期間保存してはいけません。 たとえ読み書きを全くしていなくてもディスクは占有してお り、他の利用者がその分だけ利用できないことに変わりありません。 データを保存したいだけの場合でもディスクは購入して ください。 • アカウントが失効してもその方がグループディスクに作成したデータは削除されません。 作成したデータはTSUBAMEアカウントの期限 内に利用者の責任で適切に管理(移動、取り出し、削除、パーミッション変更)してください。 ※ 各ストレージの利用については, 4.6 ストレージの利用 を参照ください. 【重要】 3.5.4 並列環境とアプリケーション TSUBAME2におけるアプリケーションのキュー別の利用可否を一覧にまとめました. アプリ名 V以外(※1) V ノード内 ノード間 ノード内 ノード間 ABAQUS St/Ex ○ × ○ × ABAQUS/CAE ○ × × × MD NASTRAN ○ × ○ × PATRAN ○ × × × GaussView ○ × × × Gaussian ○ × ○ × Gaussian-Linda ○ ○ ○ × Molpro ○ ○ ○ × AMBER ○ ○ ○ × Materials Studio ○ × ○ × Discovery Studio × × × × Scigress × × ○ × AVS/Express ○ × × × AVS/Express PCE × × × × EnSight ○ × × × Mathematica ○ × ○ × Maple ○ × ○ × ANSYS FLUENT ○ × ○ × MATLAB ○ × ○ × LS-DYNA ○ × ○ × Total View Debg ○ × ○ × Tinker ○ × ○ × GROMACS ○ ○ ○ × POV-Ray ○ ○ ○ × GAMESS ○ ○ ○ ○ R ○ ○ ○ × openmpi ○ ○ × × mvapich2 ○ ○ × × ○ ○ mpich2(※2) ○ ○ ※1 S,S96,G,L128,L128F,L256,L512,H,X ※2 IBを使用しないため,通信性能は十分確認してご利用ください. 【注意】 Discovery Studio, AVS/Express PCE は別途用意したマシンを使用します. 7. ISVアプリケーション を参照ください. 3.6 WINDOWS HPC 別途,利用の手引が用意されています. 3.7 関連設備の利用 TSUBAME1.2で使用していた磁気テープ装置によるバックアップが接続されています. 3.8 Naregi連携 国立情報学研究所の進めているNaregiシステムからTSUBAME2の資源を利用できます. また,同様に,連携している拠点 の計算資源を利用できます. 詳細につきましては,現在,調整中です. 3.9 ストレージサービス(CIFS) スト―レジサービスによりWindows/Mac端末からオンラインストレージディスクを利用できます. ユーザあたり25GBまで利用 可能です. 利用方法につきましては, 4.9 ストレージサービス をご参照ください. 4. システムの利用 ユーザーからの利用イメージを以下に示します. ご利用のターミナルからTSUBAME2を利用する場合,次の手順で資源を使用します. • アカウントの取得 • 学内者(職員,学生)はTSUBAME2.0ポータルから操作 • 学外者は書類による申請 • ログインマシン UNIX用で,冗長化のため2台のログインマシンが用意されています. • インタラクティブ ログインマシンにリモートログインをすると,ここのマシンのどれかに着地します. ここで,デバック,ジョブの投入準備 などを行います. • PBSサーバー バッチキューを有効に利用するために,キューイングシステムとしてPBSが採用 されています.PBSサーバーから各 バッチにジョブがスケジューリングされます.PBSの利用に関しては PBSの利用方法を参照してください. • バッチ計算 投入されたジョブの要求に応じた資源に基づいて計算が実施されます. 4.1 アカウントの取得 TSUBAME2を利用する場合は,専用のアカウントが必要です. アカウント取得方法 に示す流れに沿って手続きをお願いいたし ます. 【重要】 学内ネットワークからTSUBAME2にログインする時は,鍵認証とパスワード認証が利用できますが 学外ネットワークからの ログイン時は鍵認証のみ になります. 鍵認証利用時は,TSUBAME2ポータルから認証鍵のアップロードを実施してください. 【重要】 初期パスワードを設定しないとTSUBAMEにログインできませんので必ず最初にパスワードを設定してください. 4.2 ログイン TSUBAME2の計算サービスを使うためにはまず初めにTSUBAME2へログインする必要があります. ログインにはsshという ソフトウェアをお使いください. sshとは遠隔のサーバに安全にログインするためのソフトウェアです. sshを用い,TSUBAMEへ ログインするために必要な情報は以下の通りです. ログインノード名 login-t2.g.gsic.titech.ac.jp ユーザ名(アカウント名)TSUBAMEアカウントの名前 パスワード TSUBAMEアカウントのパスワード 認証方式 学内からはパスワード、公開鍵方式共に許可。 学外からは公開鍵方式のみ許可 次のように接続してください. > ssh -Y login-t2.g.gsic.titech.ac.jp -l USER-ID ※ユーザーIDは -l (Lの小文字) を使用します. ログインノードへ接続すると、自動で実際に作業等を行ういずれかのインタラクティブノードへ転送されます。 インタラクティブノードとバッチノードは,共に同じディスクを共有していますので, /homeなどはマシンを意識することなく利用 できます. また,GPUは全てのインタラクティブで利用できます. インタラクティブノードやログインノードの障害が原因で, TSUBAMEに全くアクセスできなくなる事を防ぐため,ログインノード は2台用意されており、 転送されるインタラクティブノードも2つのグループに分けられています。 • 第1グループ (login-t2-1.g.gsic.titech.ac.jp) t2a006161 から t2a006170 の10台のいずれかに転送されます. • 第2グループ (login-t2-2.g.gsic.titech.ac.jp) t2a006171 から t2a006180 の10台のいずれかに転送されます. ※login-t2.g.gsic.titech.ac.jpにアクセスしようとすると実際にはDNSラウンドロビンによって login-t2-1.g.gsic.titech.ac.j p または login-t2-2.g.gsic.titech.ac.jp のいずれかのログインノードへ接続されます。 障害等でTSUBAMEへ接続できない 場合は、障害のでていないもう一方のログインノードを 以下のように直接指定する事で接続できる場合がありますのでお試し ください. > ssh -Y login-t2-1.g.gsic.titech.ac.jp -l USER-ID > ssh -Y login-t2-2.g.gsic.titech.ac.jp -l USER-ID 4.3 パスワード管理 パスワードの管理はユーザー責任になりますので,しっかり管理をお願いします. 次の手順で定期的にパスワードを変更して ください. • 課金システムの TSUBAMEポータルからパスワード変更 を選択 • 同一パスワードを2回繰り返し入力する • 一旦ログアウトして,新パスワードを確認する ※ユーザーが個人で変更したパスワートは管理者にも分りません. しっかり管理をお願いします. なお、パスワード設定後に 有効期間(168日) を経過すると、TSUBAMEへのssh接続時にパスワードの変更を求められますが、 ここでパスワードを変更することはできません.必ず TSUBAME2.0利用ポータルから変更 を行ってください. 4.4 インタラクティブ インタラクティブノードへのログインに成功すると次のような表示になります. jyoucyu-n-aa@t2a006168:~> (アカウント名@マシン名:~>) マシン名は,t2a006161~t2a006180 です. このノードでは,実行前のプログラムの作成,デバック等を行います. ここからPBSを使用してバッチキューへジョブを投入します. バッチキューへのジョブ投入方法詳細については 5. PBSによるジョブの投入 を御覧ください. 4.5 バッチジョブ 本システムでは,バッチ処理システムを利用することができます.通常のインタラクティブ処理(コマンドの実行)では,利用者が 各々のタイミングでアプリケーショ ンやコマンドを実行するため,計算機資源の利用において競合が発生する確率が高くなり ます. これに比べて,バッチ処理では,投入したジョブはシステムによってスケジューリングされるため, 他のアプリケーション, ジョブの影響を受けることなく,計算機資源を効率良く利用することができ ます. バッチ処理システムの利用手順は,以下のよ うになります. 1. ジョブの作成 2. ジョブの投入 3. ジョブの状態確認 4. ジョブの結果確認 これらについて,順に説明します.PBSに与えるオプションの説明は 5.2 PBSオプション をご参照ください. 4.5.1 ジョブの作成 ジョブは,バッチ処理で実行したいコマンドを記述したシェルスクリプトです. これ以降,ジョブスクリプトと呼びます. 以下にジョ ブスクリプトの例を示します. 例 ジョブスクリプトmyjob.sh の中身 #!/bin/sh # # sample jobscript # cd $HOME/test ./myprog < input_data ※ ディレクトリを無指定の場合は$HOMEが実行ディレクトリになります. 上の例 myjob.sh は,$HOME/test ディレクトリ($HOME は各ユーザのホームディレクトリ)に移動し, そのディレクトリ にあるプログラムmyprog を実行するジョブスクリプトです. このようなコマンドを羅列したファイルをまず作成します. ※ カレント(ジョブを投入した)ディレクトリで実行したい場合は,$HOMEの部分を次のように記述します. cd ${PBS_O_WORKDIR} (大文字の"オー"です) ※実行シェルには実行権が必要ですので事前に確認してください. ls -l test.sh -rwxr-xr-x 1 USER-ID users 225 2012-11-02 16:45 test.sh パーミッションのオーナー欄に"x"が表示されていることを確認してください.ない場合は chmod u+x test.sh あるいは chmod 755 test.sh などとして実行権を付与してください. ※ MPIジョブにつきまして,利用環境によりジョブスクリプトが若干違ってきますので, 5.1.4 MPIジョブ をご参照ください. 4.5.2 ジョブの投入 バッチ処理システムを利用するには,ジョブスクリプトをジョブとしてキューに投入します. 投入にはt2sub コマンド(PBSシステ ムをカスタマイズ)を使用します. このコマンドで投入するジョブをバッチジョブと呼びます. 標準出力,エラー出力はバッチジョ ブを投入したディレクトリに出力されますので, 出力を残したいディレクトリに移動します.ジョブ投入後,プロンプトが返ります . > t2sub -q S -W group_list=t2gxxxx -l select=8:ncpus=8:mpiprocs=8:mem=48gb -l place=scatter ./intel-open.sh 1118.t2zpbs01 ※コマンドオプションの簡単な説明 -q S : キューの指定(Sキューは従量課金キュー) -W group_list : 課金グループを指定 -l select=8:ncpus=8:mpiprocs=8:mem=48gb -l place=scatter : 8ノードを使用した64並列指定,ただし,メモリーはノード内(チャンクあたり)総量指定 資源の指定を省略すると cpus=1,mem=1gbが設定されます. ./intel-open.sh : 実行シェル ※チャンクは,並列ジョブの場合に示す意味が変化します.5章を参照してください. 4.5.3 ジョブID PBSで投入されたジョブはジョブIDによって管理されます.ジョブの情報を確認したり強制終了する 場合はジョブIDが必要と なります.投入されたジョブIDはt2subが正常に実行終了すると標準出力に表示されます. > t2sub -q -S -l select=1:ncpus=8 ./job.sh 1234.t2zpbs01 4.5.4 ジョブの状態確認 投入したジョブの状態を確認するには,t2stat コマンドを使用します. 通常は自ユーザアカウントの情報のみ表示されますが, -allオプションを付与することで自ユーザアカウント以外のジョブ情報も表示されるようになります. ジョブのキューへの溜まり 具合を確認する際などにご利用ください. > t2stat -a t2zpbs01: Job ID --------------1006.t2zpbs01 1078.t2zpbs01 1118.t2zpbs01 Username -------necse necse necse Queue -------S S S Req'd Req'd Elap Jobname SessID NDS TSK Memory Time S Time ---------- ------ --- --- ------ ----- - ----intel-samp -1 1 54gb 01:00 Q -OTHERS -1 1 54gb 01:00 Q -OTHERS 27781 8 8 424gb 01:00 R 00:23 t2zpbs03: Req'd Req'd Elap Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time --------------- -------- -------- ---------- ------ --- --- ------ ----- - ----147.t2zpbs03 necse G OTHERS 23383 1 1 1gb 01:00 Q -などと表示されます. S の列に表示される,「R」「Q」などの表示はジョブの状態です.各状態の意味はそれぞれ次に示す通りです. [ジョブの状態一覧] 状態 R Q T B X H E F 説明 実行中 待機状態 移行中(QからRに変化する最中など) ジョブアレイ 終了(ジョブアレイのサブジョブ) 保留状態 終了中(実行済み) 終了 キュー名を付与することで対象キューの情報のみを表示できます.また,終了したジョブの一覧を表示する場合は-Hオプション を使用します. 例えば,Gキューに投入した終了ジョブを確認する場合は,次のコマンドを実行します. > t2stat -H G t2zpbs03: Job ID --------------140.t2zpbs03 150.t2zpbs03 151.t2zpbs03 Username -------necse necse necse Queue -------G G G Req'd Req'd Elap Jobname SessID NDS TSK Memory Time S Time ---------- ------ --- --- ------ ----- - ----OTHERS 11855 -- --- 01:00 F 00:00 OTHERS 5416 -- --- 01:00 F 00:00 OTHERS 5464 -- --- 01:00 F 00:00 ジョブの詳細情報を確認する場合は,-fオプションを使用します. -xオプションを併用することで,ジョブがどの状態(実行中,実 行待ち,終了)であっても表示できるようになります. > t2stat -xf 139.t2zpbs03 Job Id: 139.t2zpbs03 Job_Name = OTHERS Job_Owner = nec@t2a010017 resources_used.cpupercent = 0 resources_used.cput = 00:00:00 resources_used.mem = 1500kb resources_used.ncpus = 1 resources_used.vmem = 11360kb resources_used.walltime = 00:00:00 job_state = F queue = G server = t2zpbs03 Checkpoint = u ctime = Thu Sep ...... 9 20:36:44 2010 [オプション一覧] オプション -help -all -J -t -p -x -a -H -i -r -u userlist -n -s -T -w -1 -Q -q -B -f -G -M --version 概 要 ヘルプメッセージを表示 全ユーザのジョブ情報を表示 ジョブアレイのみ表示 ジョブ,ジョブアレイオブジェクト,およびサブジョブの状態を表示 Percentage Completedのカラム付で表示 実行中,実行待ち,終了したジョブの状態を表示 実行中,待機中ジョブ一覧を表示 終了したすべてのジョブ一覧を表示 待機中の全てのジョブ一覧を表示 実行中の全てのジョブ一覧を表示 指定したユーザのジョブ一覧を表示 ジョブに割り当てられたホスト,仮想プロセッサを表示 ジョブコメントを表示 待ち状態ジョブの開始見積もり時刻を表示 横幅を広くして表示 1ジョブ毎に1行表示に整形.-s, -nのみ組み合わせ可能 キューの現在のジョブ実行状況を表示 キューに設定された制限を表示 PBSサーバの情報を表示 ジョブ,キュー,サーバの詳細情報を表示 サイズ表示をGBで表示 サイズ表示をメガワード(MW)単位で表示.1ワード=8バイト PBSバージョンを表示 4.5.5 ジョブの結果確認 ジョブが終了すると,そのジョブの実行結果ファイルが得られます. デフォルトの実行結果ファイ ル名は,「ジョブ名.o ジョブID」 です. ジョブID はPBSの キュー毎に割り当てられる一意の識別 子です. このファイルには,標準出力(.o*)の内容と標準エラー 出力(.e*)の内容が出力されます. ファイルの標準的な出力先は,ジョブを投入したディレクトリです. $ ls OTHERS.e163 OTHERS.o163 などとなります.出力ファイル名を任意の名前にする場合は,-Nオプションを使用します. 4.5.6 ジョブ実行情報・課金情報 ジョブ実行情報および課金情報は標準エラー出力の末尾に,ジョブの出力内容に追加の形で出力されます. ジョブが使用リ ソースおよび課金係数,消費時間などが出力されます. ================================================ [Your accounting ID] group id : t2gsample -----------------------------------------------[Job informations] job id : 1597.t2zpbs01 queue : L128 num of used node(s) : 4 used node(s) list : t2m010167 t2m010168 t2m010169 t2m010170 used cpu(s) : 32 walltime : 00:00:00 (0 sec) used memory : 2088kb job exit status : 0 -----------------------------------------------[Accounting factors] x 1.0 by group x 2.0 by queue x 1.0 by job priority x 1.0 by job walltime extension = 2.0 is the total accounting factor -----------------------------------------------[Expense informations] total consumed walltime : 0 sec consumed budgets with this job : 0 yen ================================================ 【重要】 • MPIジョブ等は,ランク = 0 が動作したノードの情報を表示します. • ここで表示される金額は該当ジョブの利用目安です.精算は使用時間で行なわれます. • 標準エラー出力の終了コード(job exit status)がマイナスの場合は課金されません. 4.5.7 ジョブの削除 投入したジョブを,終了を待たず削除するには t2del コマンドを使用します. > t2del 147.t2zpbs03 実行状態のジョブを削除する場合は,-W forceオプションを追加します.キュー待ち状態のジョブも削除可能です. > t2sub -q -S -l select=1:ncpus=8 ./job.sh 1234.t2zpbs01 > t2del -W force 1234.t2zpbs01 4.5.8 sshログイン ノード占有系のサービスに対しては,ジョブが確保した計算ノードに対して直接sshログインを行うことができます. 5.9 SSH直接ログイン を参照ください. 4.5.9 課金グループでの実行状況確認 バッチキューに投入されている同一課金グループのジョブを表示することができます. > t2group -g t2gxxxxxxx (TSUBAMEグループを指定します) Req'd Req'd Group Job ID Username Queue Jobname NDS TSK Mem Time S --------- ------------------ -------- ------- --------- ----- ----- ------- ----- -------- --t2gxxxxxx 3637xx.t2zpbs03 xxxxx1 G OTHERS 1 1 1gb 02:00:00 R t2gxxxxxx 3637xx.t2zpbs03 xxxxx2 G OTHERS 8 64 64gb 0 Q Elap Time -------00:12:18 また,オプション無しでコマンドを発行すると課金グループの利用状況を表示することができます. > t2group Groups users restrict_apps t2gxxxx t2gxxxx-Rsv 2 of User xxxxxx -------------Group-------------|-------FixedQueue-------|-------MeasuredRateQueue------Name Condition | Factor Condition units | Factor Condition sec t2gxxxx used | 1.0 used 2 | 1.0 used 5561124 t2gxxxx-RsvTst used | 1.0 stopped 0 | 1.0 used 1080000 4.6 ストレージの利用 TSUBAME2では,homeの利用以外にもdata領域としてGPFS, work領域としてLustreなどの様々な並列ファイルシステムを 利用することができます.data領域はテープライブラリシステムと連動した階層型ファイルシステムを構成しているため, 数十 ~数百TB規模のデータの保存や大規模データ処理アプリケーションでの利用に向いているのに対し, work領域はHPCシミュ レーションなど大規模並列アプリケーションでも高いスループット性能が必要なアプリケーションでの 利用に向いております . 4.6.1 home ユーザーあたり 25GBを利用できます.利用状況の確認は t2quota コマンドを使用します. > t2quota 4.6.2 data data領域(/data0)はテープライブラリとGPFSファイルシステムが連動した階層型ストレージとして構成され, グループあたり 最大30TB のファイルシステム領域を利用できます.ただし,テープライブラリへマイグレーションされた ファイルはQuotaの制 限対象にはなりません. • マイグレーション data領域に作成したファイルは定期的にテープライブラリへマイグレーションされます. マイグレーションされる条 件は以下のとおりです. • 4週間アクセスがない4Mbytes以上のファイル • ファイル名の拡張子が.archiveでかつ4Mbytes以上のファイル • アクセスの有無は関係しません. また、上記の条件を満たすファイルにおいても以下のファイルはテープライブラリへマイグレーションされません. • ファイル名の拡張子が.noarchiveであるファイル マイグレーションされたファイルのinode情報はファイルシステム内に残るためテープライブラリへ マイグレーショ ンされたファイルもアクセス可能です. • リコール テープライブラリへマイグレーションされたファイルをファイルシステムへリコールするために特別操作は必要あ りません.マイグレーションされたファイルであってもファイルシステムシステム上のPATHおよびファイル名で 透過 的にアクセスすることができます.しかし,テープライブラリからファイルシステムへファイルがリコール されるので ,ファイルシステム上に存在するファイルよりも読み込みに多くの時間を要します. data領域はVキューからはアクセスできません のでご注意ください. 4.6.3 work work領域はLustreファイルシステムで構成され、グループあたり最大30TBを利用できます. Lustreは,ディレクトリ単位でそ の設定を変更することが出来ます.以下にその方法を以下に記します. [設定方法] /usr/bin/lfs コマンドのサブコマンドsetstripeで設定,getstripeで設定の確認ができます. setstripe,getstripeの使用方法は下記になります. $ lfs help setstripe setstripe: Create a new file with a specific striping pattern or set the default striping pattern on an existing directory or delete the default striping pattern from an existing directory usage: setstripe <filename|dirname> <stripe size=""> <stripe start=""> <stripe count=""> or setstripe -d <dirname> (to delete default striping) stripe size: Number of bytes on each OST (0 filesystem default) stripe start: OST index of first stripe (-1 filesystem default) stripe count: Number of OSTs to stripe over (0 default, -1 all) $ lfs help getstripe getstripe: To list the striping info for a given filename or files in a directory or recursively for all files in a directory tree. usage: getstripe [--obd|-O <uuid>] [--quiet | -q] [--verbose | -v] [--recursive | -r] <dir|file> ... 4.6.4 共有スクラッチ 並列ファイルシステム(Lustre)で構成された共有スクラッチ領域を利用できます. 利用する際には,$TMPDIRに共有スクラッ チ領域のパスが設定されます. ジョブスクリプトの中で,作業領域のパスを指定することにより参照可能です. [例] #/bin/sh ./output_prog > $TMPDIR/output.dat ※共有スクラッチに中間ファイルを出力 ./input_prog < $TMPDIR/output.dat ※共有スクラッチから中間ファイルを入力 Gaussianで共有スクラッチ領域を利用する方法は 7.6 Gaussian を参照してください. 4.6.5 ローカルスクラッチ SSDを高速スクラッチとして使用することができます. 使用する計算ノードが1ノードの場合は,PBSのstagein/stageoutが使 用できます. (複数ノードはPBSが対応していません) 1.シェルの準備 以下のように,SSDに展開するディレクトリを記述します. > cat stg.sh #!/bin/bash cd /scr/input ./calc01 < in.dat # この例では,stageinするのはcalc01(プログラム) と in.dat(入力データ)です. 2.展開ディレクトリの準備 SSDに展開するディレクトリを準備します. > pwd /home/usr2/tokou-t-aa/input > ls -l -rwxr-xr-x 1 tokou-t-aa users 266177 2010-11-30 12:05 calc01 -rw-r--r-- 1 tokou-t-aa users 5 2010-11-30 12:05 in.dat ディレクトリinput に収めてSSDにstageinします. 3.ジョブの投入 この時のディレクトリは次のようになっています. > ls -l drwxr-xr-x 3 tokou-t-aa users 32768 2010-11-30 14:04 input -rwxr-xr-x 1 tokou-t-aa users 69 2010-11-30 14:02 stg.sh ジョブを投入します. t2sub -q S -l select=1:mem=20gb -W stagein=/scr@t2a006161:/home/usr2/tokou-t-aa/input -W stageout=/scr/input@t2a006161:/home/usr2/tokou-t-aa/output ./stg.sh (記述の都合で分割していますが継続した1行です) 次の点に注意してください. • この記述では、/scrにinputというディレクトリを展開します. • 実行シェルのcd とディレクトリを合わせてください. • @t2a006161の部分はジョブを投入するホスト(インタラクティブ)を記述してください. 4.結果の回収 計算結果はstageoutで指定したディレクトリに置かれます. > ls -l -rw------- 1 tokou-t-aa users 445 2010-11-30 14:04 OTHERS.e6296 -rw------- 1 tokou-t-aa users 91 2010-11-30 14:04 OTHERS.o6296 drwxr-xr-x 2 tokou-t-aa users 32768 2010-11-30 14:04 output > cd output > ls -l -rwxr-xr-x 1 tokou-t-aa users 266177 2010-11-30 12:05 calc01 -rw------- 1 tokou-t-aa users 360 2010-11-30 14:04 fort.12 -rw------- 1 tokou-t-aa users 480000008 2010-11-30 14:04 fort.14 -rw------- 1 tokou-t-aa users 480000008 2010-11-30 14:04 fort.18 -rw-r--r-- 1 tokou-t-aa users 5 2010-11-30 12:05 in.dat stageoutで指定したディレクトリに内容が戻ります. 5.注意点 • Gaussian等の大きなファイルを使用するアプリケーションでは共有スクラッチ(Lustre)をご利用ください. • SSDで使用できる容量は50GB前後ですがマシンによって異なります.目安は次の通りです. S/H V G S96 L128 L256/L512 50GB 10GB(共有のため利用は推奨できない) 30GB 160GB 400GB 500GB • stagein/outはPBSが転送処理を行いますので,ファイル数が多い場合やファイルサイズが大きい場合などは 転送 に時間がかかる場合があります.ご使用になるプログラムの処理をご考慮の上,ご利用ください. • 研究目的等で,ノード上のSSDを直接使うことが可能になっています. この場合,ジョブ終了時にSSD上のファイル は消去願います.これを実施しない場合は 他のユーザによって参照される可能性がありますのでご注意ください. • /scrのパーミッションは 777 に設定されています.不要なファイルは事前に削除可能です. 4.6.6 MPIプログラムでのSSDの使用 プログラムの準備は,FAQ MPIプログラムでの分散ファイルの作成方法を教えてください を 参照してください. 以下の手順で ジョブを投入します. 1.実行シェルを準備します. このシェルは最下層で実行させるシェルです. > cat mpi_go_opn #!/bin/bash #-------------------------- 実行環境の記述 export PATH=/usr/apps/openmpi/1.4.2/intel/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/openmpi/1.4.2/intel/lib:$LD_LIBRARY_PATH #-------------------------- /scr に移動 cd /scr #-------------------------- プロセス作業域を作成(この前で rm *しても良い) if [ ! -d $OMPI_COMM_WORLD_RANK ] ; then mkdir $OMPI_COMM_WORLD_RANK fi #-------------------------- 作業域に入ります cd $OMPI_COMM_WORLD_RANK #-------------------------- MPIプログラムを実行(フルパスで記述) /home/usr2/toukou-a-jj/tune/sample20 < /home/usr2/toukou-a-jj/tune/in.dat #-------------------------- 欲しいファイルをコピーします cp out.* /home/usr2/toukou-a-jj/tune #-------------------------- 作業域を消去します cd ../ rm -fr $OMPI_COMM_WORLD_RANK # ◎ /scrで作成したファイルは必ず消去してください. ◎ この例は、openMPI+intel です. • 使用するMPIに合わせた実行環境を記述してください. • MPIに mvapich2 を使用する場合,$OMPI_COMM_WORLD_RANK → $PMI_ID と書き換えてご利用ください. • mpich2 の場合は, $PMI_RANK と書き換えて使用してください. • コンパイラが違う場合は,環境指定の記述を修正してください. 2. PBSでジョブを投入するシェルを用意します. (通常のジョブ投入シェルと構成は同じで大丈夫です) > cat mpi_go #!/bin/bash export PATH=/usr/apps/openmpi/1.4.2/intel/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/openmpi/1.4.2/intel/lib:$LD_LIBRARY_PATH cd ${PBS_O_WORKDIR} mpirun -n 4 -hostfile $PBS_NODEFILE ./mpi_go_opn # 先に用意したシェル,mpi_go_opnの実行シェルをMPI環境下で実行させます. 3.ジョブを投入します. 2番で用意したmpi_goシェルを指定してジョブを投入します. > t2sub -q S -W group_list=t2gxxxx -l select=4:mpiprocs=1:mem=10gb -l place=scatter ./mpi_go 【注意】 PBSでは,いきなりmpi_go_opnを指定してもRANK=0を含まないノードに 環境引き渡しが行なわれないため,MPIジョブ として全てのシェルを実行させます. 4.6.7 ストレージの制限 各ストレージの利用には制限が存在しています. 1. /home は 25GB 2. /work , /data はグループでの利用が購入量まで となっております. 利用状況の確認は,"t2quota"コマンドで実施します. 以下に使用例を示します. > t2quota Disk Quota for User A2400xxx of Filesystem /home ------------------------ Block Limits -----------------------------------|(後半省略) USER KB quota limit in_doubt grace | A2400xxx 10125920 0 26214400 0 none | > t2quota -g Disk Utilization (/work0): ------------------------ Block Limits -----------------------------------| GROUP KB quota limit grace | t2g-xxxx-new 28889808 1063004405 1073741824 - | Disk Utilization (/work1): ------------------------ Block Limits -----------------------------------| GROUP KB quota limit grace | t2g-xxxx-new 31421828* 1 1 - | Disk Utilization (/data0): ------------------------ Block Limits -----------------------------------| GROUP KB quota limit in_doubt grace | この例の場合、 • /work0は1TBの制限値以下でまだ余裕があります. • /work1はquotaが1になっていますので,利用購入していないためご利用いただけません. (この状態の場合は,1T Bを購入すればご利用いただけます. ) • /data0は購入実績がありません. 通常、最初のディレクトリにはSGID(セット・グループID)が設定されているため、 生成されるファイル,ディレクトリはTSUBAME グループのgidが継承されますが、 以下のような場合"users"のファイル,ディレクトリが生成されます. • TSUBAMEグループを指定しないバッチでのジョブ実行したとき(テスト実行時) • SGIDを外したディレクトリにバッチ以外で読み書きをしたとき. • 既存のファイル,ディレクトリをgidを手動で変更したとき. • グループディスク外からrsyncで-aオプション等でgid情報を保持するようコピーした場合 これらに該当している場合, "Disk quota exceeded" のメッセージが表示されて 書き込みに失敗いたします. このような場合、 ディレクトリにSGIDをセットしていただくのが 確実ですが,次のような方法で回避することができます. > newgrp t2g-xxxx-sample 4.6.8 I/O 専用ノードの利用 TSUBAMEと大量のファイルを転送していると、 インタラクティブノードの時間制限にかかり途中で失敗する場合があります. このような場合,I/O専用ノードをご利用ください. ホスト名 io-t2.g.gsic.titech.ac.jp プロトコル SSH/SFTP/SCP 以下に接続例を示します. $ ssh -Y io-t2.g.gsic.titech.ac.jp -l <user-ID> $ sftp <user-ID>@io-t2.g.gsic.titech.ac.jp WinSCPやCyberDuckといったフリーソフトを利用する事も可能です. これらのソフトウエアの使い方はそれぞれのマニュアル をご覧ください. I/O専用ノードは学外/学内からのアクセスを問わず公開鍵認証が要求されます. TSUBAME2.0利用ポータルから鍵登録を してください. 公開鍵が正しく用意されていないと "Permission denied (publickey,hostbased)" 等と表示されて接続が拒否されます. なお,I/O専用ノードから新たに他の計算ノードや学内,学外のサーバへ接続する事はできません. また,ジョブの実行や投入 もできません. 4.7 WINDOWS HPC 別途,利用手引を用意しておりますので, こちら を参照ください. 4.8 Naregi 別途,naregi用利用の手引を用意しておりますので, こちら を参照ください. 4.9 ストレージサービス(CIFS) TSUBAME2では,ストレージサービスを提供しており,学内のWindows/Mac端末からCIFSによるアクセスが可能です. TS UBAME2からもアクセスできるようになっております.(2011年4月から) ストレージサービスは,ユーザあたり25GBを利用できます.(TSUBAME2の/homeとは別の領域です) 4.9.1 Windowsからの利用 Windows 端末から,全学ストレージにアクセスする方法を記載いたします. ※ 画面はWindows 7 のものですが,XP,Vista でも利用は可能ですので,適宜ご自身の環境に合わせて読み替えてください. 1.エクスプローラの起動 左下のスタートメニューをクリックし,[すべてのプログラム]→[アクセサリ]→[エクスプローラ]の順に選択します. 2. パスの入力 右上の部分をクリックするとパスの入力が可能となります. この欄に以下のように入力します. \\nest2.g.gsic.titech.ac.jp\home0 3. ログイン要求 初めてアクセスする時は,以下のような画面が表示され,ユーザー名とパスワードの入力を求められます. 入力する項目は下記の通りとなります. ユーザー名 パスワード G\ "TSUBAMEアカウント名" "TSUBAMEアカウントのパスワード" 4. 割り当てディレクトリへのアクセス ログインに成功すると,以下の画面のようなディレクトリの一覧が表示されますので,ご自身の割り当てディレクトリにアクセスします. 割り当てディレクトリは,TSUBAME内のホームディレクトリに対応しております. 例えば,ホームディレクトリが /home/usr9/A000 00001 の場合は,[usr9]→[A00000001]の順にアクセスすることで,割り当てディレクトリへのアクセスが可能です. 5. ストレージの利用 割り当てディレクトリ内であれば,ファイルの保存が可能となっております. 4.9.2 Macからの利用 Macから,全学ストレージにアクセスする方法を記載いたします.(※Mac OS X10.6の例です) 1.Finderの起動 Finderを選択してメニューから,[移動]→[サーバへ接続]の順に選択します. 2. 接続 接続先を要求してきますので例のように cifs://nest2.g.gsic.titech.ac.jp とします.続けて,登録区分とユーザーIDとパスワードを入力します. マウントボリュームを聞いてきますが,home0が表示されるのでそのままOKしてください. (※認証されない場合はユーザー 名の前に g\ をつけてみてください) 3.割り当てディレクトリへのアクセス ログインに成功すると,以下の画面のようなディレクトリの一覧が表示されますので,ご自身の割り当てディレクトリにアクセスします. 割り当てディレクトリは,TSUBAME内のホームディレクトリに対応しております. 例えば,ホームディレクトリが /home/usr9/A000 00001 の場合は,[usr9]→[A00000001]の順にアクセスすることで,割り当てディレクトリへのアクセスが可能です. 4. ストレージの利用 割り当てディレクトリ内であれば,ファイルの保存が可能となっております. 4.9.3 TSUBAME2からの利用 TSUBAME2から全学ストレージへのアクセスは次の通りです. 1. 自分のディレクトリの確認 TSUBAME2での自分のディレクトリを確認してください. > cd > pwd /home/usr3/toukou-t-aa 表示されたディレクトリの"/home"を"/nest2"に読み替えたディレクトリが 全学ストレージの対象ディレクトリの場所にな ります.この場合は /nest2/usr3/toukou-t-aa となります. 2. データのコピー 次のようなコマンドを発行してデータのコピーを確認してください. > ls /nest2/usr3/toukou-t-aa aa.txt sample.f90 > cp /nest2/usr3/toukou-t-aa/aa.txt . > ls aa.txt ※ファイルが無い場合は表示されません. 5. PBSによるジョブの投入 PBSの基本コマンドは,一般的には「qsub」というコマンドが使用されますが,TSUBAME2では,運用上の都合で, 「t2sub」 というコマンドを使用します.利用方法は,一般的なPBSで使用されているqsubとほぼ同じですが, 一部の オプションがTSU BAME2用にカスタマイズされています. 5.1 ジョブスクリプト t2subコマンドを使用してジョブを投入する場合,t2subコマンドで指定する実行モジュールは,スクリプトを指定してください. こ のジョブスクリプトの中から,実行モジュールを起動します.また,PBSコマンドをシェル内に記述する方法がありますが, TSU BAME2では,使用する資源等の管理のために,t2subというコマンドからジョブを投入します.シェル内に記述した コマンドは 無効の扱いになるものもありますので, t2subコマンド発行時にオプションを指定する ようにお願いいたします. 5.1.1 シングルジョブ シングルジョブは実行モジュール名を記述してください.以下に例を示します. #!/bin/sh # # sample jobscript # cd ${PBS_O_WORKDIR} ./myprog < input_data 【重要】実行するディレクトリは必ず指定してください.無指定の場合は,homeが使用されます. この例の場合は,ジョブを投入したディレクトリで実行されます.(/work0または/work1をご利用ください) 5.1.2 SMP並列ジョブ SMP並列ジョブ,同時実行ジョブにつきましては,シングルジョブと同様に,実行するモジュール名を指定してください. また, 使用するスレッド数につきましては,明示的に指定するようにお願いします. #!/bin/sh # # sample jobscript export OMP_NUM_THREADS=2 export NCPUS=2 # cd ${PBS_O_WORKDIR} ./myprog < input_data 【重要】 MPIを使用したSMP(ハイブリット)並列の場合は注意が必要です. 5.3.8 ハイブリット並列 を参照ください. 5.1.3 GPUジョブ GPUを使用するジョブも,シングルジョブと同様に実行するモジュール名をジョブスクリプト内で指定してください. ただし,MP Iを使用したGPUジョブにつきましては,次項のMPIジョブを参照ください. 5.1.4 MPIジョブ MPIジョブにつきましては,使用するMPI環境により使い分けをお願いします. 1. 利用にあたっての注意 MPI環境は使用する課金キューで使い分けをお願いします. • 従量課金 --- S,S96,G,L128,L128F,L256,L512,H IBに対応している,openmpi または mvapich2 を使用してください. • 定額課金 --- V IBが利用できない環境ですので,mpich2を使用してください. 2. openmpi デフォルト(無指定)でのMPI環境は, openmpi + intel コンパイラの環境が設定されています. openmpi + pgi を 使用した場合は,環境をスクリプト内に記述してください. #!/bin/sh # # sample jobscript export PATH=/usr/apps/openmpi/1.4.2/pgi/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/openmpi/1.4.2/pgi/lib:$LD_LIBRARY_PATH # cd ${PBS_O_WORKDIR} mpirun -n 4 -hostfile $PBS_NODEFILE ./myprog < input_data 【重要】 実行する場合に,必ず 'mpirun -n ' を記述してください. 並列数はPBSから入力される値とイコールである必要が あります. $PBS_NODEFILE にPBSシステムから使用するノード情報が入ります. 3. mvapich2 mvapich2 を使用した場合は,必ず環境指定を記述してください. #!/bin/sh # # sample jobscript export PATH=/usr/apps/mvapich2/1.5.1/intel/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/mvapich2/1.5.1/intel/lib:$LD_LIBRARY_PATH # cd ${PBS_O_WORKDIR} mpirun -n 4 -hostfile $PBS_NODEFILE ./myprog < input_data 【重要】 実行する場合に,必ず 'mpirun -n ' を記述してください. 並列数はPBSから入力される値とイコールである必要が あります. $PBS_NODEFILE にPBSシステムから使用するノード情報が入ります. 4. mpich2 mpich2 を使用した場合は,必ず環境指定を記述してください. #!/bin/sh # # sample jobscript export PATH=/usr/apps/mpich2/1.3/intel/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/mpich2/1.3/intel/lib:$LD_LIBRARY_PATH # cd ${PBS_O_WORKDIR} mpirun -n 4 -hostfile $PBS_NODEFILE ./myprog < input_data 【重要】 実行する場合に,必ず 'mpirun -n ' を記述してください. 並列数はPBSから入力される値とイコールである必要があり ます. $PBS_NODEFILE にPBSシステムから使用するノード情報が入ります. 5.2 ジョブの投入 ジョブを投入するバッチキューを選択して,投入コマンド "t2sub" によりバッチキューへジョブを投入します. 5.2.1 バッチキューの選択 使用できるバッチキューは 3.1.3 バッチノード で紹介されていますが, 利用目的に合わせての各キューの特徴を紹介します. 1.プログラムの実行チェック この場合は,SキューまたはVキューの確認機能をお使いください. t2sub -q S ./test.sh この例は,シングルジョブの確認ですが,指定するオプションは,-q S または -q V だけです. 並列ジョブの実行確認はsel ect文などにより指定が必要です. ※ Sキューでは2ノード,10分まで,Vキューでは2並列,10分まで使用することがてきます. 2.短時間ジョブ 数時間で計算が終了することが判明している場合,Xキューを利用すると計算が早く終了します. 以下の要件を確認してジョブを投入します. • Cloud Service Utilization に"X"の表示がある (使いたい数以上の空きがある) • 朝の10時以降である • 翌日の朝9時までに終了する計算 • アレイジョブ,依存ジョブでない この条件に当てはまる場合 t2sub -q S -W group_list=xxxxx ./test.sh とするとXキューにジョブが投入されます. 【重要】 計算時間が判明している場合,できるだけ正確に時間指定をしておくと, 混雑時などでは、ジョブの実行が早まる場合 があります.(無指定時は 1時間に設定されます) 3.パラメータサーベイ この場合は,アレイジョブ,または,GXPを使用してください. アレイジョブのサイズなど色々な要素がありますが,Vキュー での実行の場合は1件あたりのアレイサイズを 購入した利用口数で制限される同時実行数を上限として考慮ください. GXPのご利用は別途ご案内いたします. 4.GPUジョブ GPUを使用するジョブはGキューをご利用ください.料金がお得に設定されています. 5.大規模ジョブ 並列数が大きなジョブでも,GPUジョブは Gキューをご利用ください. 通常のCPUを使用する大規模ジョブは H (予約)キューをご利用ください. 5.2.2 PBSオプション t2sub に使用できるオプションを以下に示します. t2sub options: -e 標準エラー出力の出力先ファイル名を指定します. -et (0|1|2) ジョブ実行時間の延長レベルを指定します. -j (oe|eo|n) 標準出力,エラー出力を統合する場合に指定します. -J X-Y[:Z] パラメトリックケース(アレイジョブ)時に使用します. -l 使用する資源を指定します. -m n or (a|b|e) ジョブの終了を通知するメールを発行します. -M user[@host][,user[@host,],...] メールの送信先アドレスを記述します.(-mと連動します) -N ジョブ名を指定します. 無指定時は "OTHERS"となります. -o 標準出力のファイル名を指定します. -p (0|1|2) ジョブの実行優先度を指定します. -q キュー名を指定します.(必須オプション). -r (y|n) 障害等で中断時にジョブをリランします. -S ジョブスクリプトのインタプリタを指定します. -v var1=A[,var2=B,...] 環境変数等の設定をジョブに持たせる場合に使用します. -V ログイン環境の環境変数を全て設定した状態でジョブを実行します. -W attr1=value1[,attr2=value2,...] ジョブの情報(アカウントなど)を入れます. -z ジョブ投入時にジョブIDを表示しません. -help コマンドラインのヘルプメッセージを表示します. -verify コマンド列の文法チェックをします. t2sub で使用できないPBSオプションを以下に示します. -C ジョブスクリプトの指示行を指定します. -a [[[[CC]YY]MM]DD]hhmm[.SS] ジョブの実行開始時間を指定 -A account_string ジョブのAccount_Name属性に指定する文字列を指定 -h ジョブをhold状態に設定 -I インタラクティブ実行 -k (e|o|eo|oe|n) 標準出力・標準エラー出力ファイルを実行ホストに保持する -u user_list 実行ユーザーを指定 ※コマンドの最後に指定 コマンドを標準入力から取得 各オプションの利用については,これ以降で説明していますが,やりたいことと、参照場所の概略を以下に示します. 項 目 参 照 先 マシンを何台も使用したい 5.3 使用資源の指定(l(エル)オプション) メモリーを大きくとりたい 5.5 メモリサイズの指定 ジョブ名を付けて識別したい 5.7.1 ジョブ名 課金グループでジョブを投げる 5.7.2 TSUBAMEグループ 1時間以上のジョブを投げたい 5.7.3 実行時間 開始、終了の連絡を受けたい 5.7.4 メール リスト出力をまとめたい 5.7.5 標準出力ファイル 1日以上のジョブを投げたい 5.8 プレミアオプション 会話型処理をしたい 5.9 SSH直接ログイン 大規模な並列計算をしたい 5.4 予約(Hキューの利用) 5.3 使用資源の指定(l(エル)オプション) lオプションは,CPU数の使用方法に応じて指定します.以下に,ケース別に説明します. lオプションで指定できる項目は以下 があります. select チャンク数を指定します(シングル,SMP並列時は=1に固定です.以下を参照してください) ncpus ノード内で使用するcore数(スレッド数)を指定します mpiprocs ノード内で動作させるプロセス数を指定します(ただし,placeオプションと連動します) gpus ノード内で使用するGPU数を指定します ※Thinノードに搭載されているGPU Tesla M2050のメモリに対して,ECC on/off切り替える機能を予定しています. • チャンク select=xx: で記述される ":" 以後の記述内容を1つのチャンク(塊り)と見なします. • select=1 この場合は,":"以後がありませんからシングルジョブです. • select=4 この場合は ":"以後がありませんからCPUを4つ使うジョブとして1ノードを割り当てます. • select=2:mpiprocs=12 この場合は mpiprocs=12の塊りを二つとなりますので,Sキューでは1ノードになります. • select=2:mpiprocs=12:mem=40gb この場合は,mpiprocs=12の塊りを二つですが,40gbのメモリを使えるのは1ノードだけですから2ノードを 確保します. • select=2:mpiprocs=12 -l place=scatter この場合は2ノードの割り当てになります. シングルジョブと並列ジョブの指定方法は,t2subコマンドの「-l」(小文字のエル)オプションの使い方で変化します.以下に, 実際の例を示しますので,自分のジョブに合わせて修正してお使いください. 5.3.1 シングルジョブ 通常のシングルジョブは以下の例のようにselect=1の指定でご利用ください. t2sub -q S -l select=1 ./job.sh 5.3.2 SMP並列ジョブ openMP/自動並列/Pthreadによる並列実行で,ノード内並列の例になります. t2sub -q S -l select=1:ncpus=12 ./job.sh ※指定できる並列数はS/Hキューでは24,Vキューでは16となっています. 5.3.3 GPUジョブ GPUを使用する場合,ノードあたり使用するgpu数を指定します. t2sub -q G -W group_list=xxxxx -l select=1:ncpus=1:gpus=1 ./gpujob.sh t2sub -q G -W group_list=xxxxx -l select=1:ncpus=3:gpus=3:mem=10gb ./gpujob.sh ※GPU数はノード内で3まで指定できます.3GPU以上を使用する場合はノード間MPIを併用してください. 5.3.4 MPIジョブ MPIのみで構成されたジョブとSMP並列も使用したハイブリッド並列が利用できます. ※課金キューを使用する場合、" -W group_list=xxxxx "は必須となります。 以下の例では、説明したい部分のみフォーカスし ていることにご注意ください。 • MPIジョブ MPIを使用したジョブの流し方は幾通りかあります.(MPIのみの例) ノード内並列(2並列) t2sub -q S -l select=1:ncpus=2:mpiprocs=2 ./mpitest.sh t2sub -q G -l select=1:ncpus=2:mpiprocs=2:gpus=2 ./mpigpu.sh ノード間並列(2並列) t2sub -q S -l select=2 -l place=scatter ./mpitest.sh t2sub -q G -l select=2:mpiprocs=1:ncpus=1:gpus=1:mem=20gb -l place=scatter ./mpigpu.sh ノード間並列(4ノードでの16並列) t2sub -q S -l select=4:ncpus=4:mpiprocs=4 -l place=scatter ./mpitest.sh • MPI+SMP並列ジョブ 以下の例は,MPIは40並列で,ノード内SMP12並列の投入です. t2sub -q S -l select=40:mpiprocs=1:ncpus=12 -l place=scatter ./mpitest.sh • MPI+GPUジョブ 以下の例はノード内で3GPUを使用した4ノードでの12並列の投入です. t2sub -q G -l select=4:ncpus=3:mpiprocs=3:gpus=3:mem=10gb -l place=scatter ./mpigpu.sh ※MPIジョブの投入に当たっては, 5.3.6 ノード配置 も合わせて参照してください. • ncpusとmpiprocsの関係 PBSでは,資源の使用にncpusの値を使っています.並列計算時の資源指定は次のようにお願いします. ncpus = mpiprocs --- MPIのみの並列と解釈 ncpus > mpiprocs --- ハイブリット並列と解釈(※) ncpus < mpiprocs --- 場合によって資源を過少評価します.この関係にならないように指定してください.(※) ※ 5.3.8 ハイブリット並列 を参照ください. • 注意 PBSでは,ncpusの資源情報が実行シェルに引き渡されますが,rank=0でのみ有効なためrank=1以降のプロセスでは デフォルト値のスレッド数で実行されます. 5.3.8 ハイブリット並列 を参照ください. 5.3.5 同時実行ジョブ この方法は,シングルジョブを同一ノード内で同時に実行させる方法です. 指定するオプションとしては,ノード内並列と同様の指定になります. ++++ job.sh ここから #!/bin/bash for n in 1 2 3 4 5 6 7 8; do ./a.out < input$n > output$n & done wait ++++ job.sh ここまで このようなシェルを用意して,並列の扱いでジョブを投入します. t2sub -q S -l select=1:ncpus=8 ./job.sh t2sub -q G -l select=1:ncpus=3:gpus=3 ./gpujob.sh (GPUの時は3以下を指定) 【重要】 Gキューでは3基のGPUが利用可能ですが,cudaSetDevice() 関数による明示的な指定が無い場合, GPUの利用状況 にかかわらず常に1台目のGPUが使用されます. 複数のGPUを同一プログラムで利用する方法につきましては, 以下の ディレクトリに存在するCUDA SDKのサンプル simpleMultiGPU 等を参考にしてください. /usr/apps/free/NVIDIA_GPU_Computing_SDK/3.2/C/src/simpleMultiGPU 5.3.6 ノード配置 • l placeオプション ジョブのノードへの割り当て方法を指定します. -l place=free (デフォルト) 複数のノードを利用して割り当てを行います.可能であれば複数のチャンクをまとめてノード内に配置します. t2sub t2sub t2sub t2sub -q -q -q -q S S S S -l -l -l -l select=4:ncpus=1:mem=1gb -l place=free ./job.sh (1ノード4並列) select=4:mpiprocs=4:mem=1gb -l place=free ./job.sh (1ノード4並列) select=8:mpiprocs=8:mem=1gb -l place=free ./job.sh (1ノード8並列) select=64:mem=1gb -l place=free ./job.sh (3ノード64並列:24+24+16) ※S/Hキューでは24,Vキューでは16,Gキューでは8となっています. -l place=scatter 複数のノードを利用して割り当てを行います. 一つのチャンクが必ず一つのノードに割り当てられます. 以下の例ではselect数ノード使用されます. t2sub -q S -l select=4:ncpus=1:mem=1gb -l place=scatter ./job.sh (4ノード4並列) t2sub -q S -l select=8:mpiprocs=8:mem=1gb -l place=scatter ./job.sh (8ノード64並列) t2sub -q S -l select=8:mpiprocs=1:ncpus=12:mem=1gb -l place=scatter ./job.sh (8ノードハイブリッド並列) -l place=pack ノードを一つだけ使用します. t2sub -q S -l select=4:ncpus=1:mem=1gb -l place=pack ./job.sh (1ノード4並列) t2sub -q S -l select=8:mpiprocs=8:mem=1gb -l place=pack ./job.sh (1ノード8並列) t2sub -q S -l select=24:mem=1gb -l place=pack ./job.sh (1ノード24並列) 5.3.7 大規模並列 並列環境としては,中規模並列キューとして,Sキューで,上限300ノードまでの利用が可能です. 1ノードあたり,12coreを実 装していますので,3600並列までのジョブが実行可能です. また,このcoreはハイパースレッドを実装していまので,演算密 度があまり高くないジョブであれば, ハイパースレッドを利用して並列数を倍化することも有効になります. スレッドの利用に 関しては,事前に確認をお願いします. GPUを使用した大規模並列では,Gキューがご利用いただけます.1ノードあたり3GPUを利用できますので, 最大で1440の GPUを使用できます.また,GキューはSキューに比べて課金係数が0.5に設定されていますので ご利用し易くなっています. 300ノードを超える場合などの大規模並列に関しては,Hキューをご利用ください. • ノード間並列 以下の例は,100ノードを使用した1200並列の投入です. t2sub -q S -l select=100:ncpus=12:mpiprocs=12 -l place=scatter ./mpitest.sh • ノード間並列GPUジョブ 以下の例は,100ノードを使用した300並列のGPUジョブ投入です. t2sub -q G -l select=100:ncpus=3:gpus=3:mpiprocs=3 -l place=scatter ./mpigpu.sh • ハイブリッド並列 以下の例は,MPIは400並列で,ノード内SMP12並列の投入です. t2sub -q S -l select=400:mpiprocs=1:ncpus=12 -l place=scatter ./mpitest.sh ※予約キューへの投入の場合は次節を参照してください.(特にキューの指定方法) 5.3.8 ハイブリット並列 ハイブリット並列の場合は実行シェル内で使用されるMPIによって環境変数の操作が異なってくるため PBSの資源指定でジョ ブをコントロールします. MPIの環境変数設定シェルを使って例を示します. #!/bin/sh # # sample jobscript # cd ${PBS_O_WORKDIR} #openmpi . setompi-pgi.sh mpirun -n 4 -hostfile $PBS_NODEFILE -x OMP_NUM_THREADS=$OMP_NUM_THREADS ./myprog #mvapich2 . setmvp-pgi.sh mpirun -n 4 -hostfile $PBS_NODEFILE VIADEV_USE_AFFINITY=0 OMP_NUM_THREADS=$OMP_NUM_THREADS ./myprog #mpich2 . setmpch-pgi.sh mpirun -n 4 -hostfile $PBS_NODEFILE -env OMP_NUM_THREADS=$OMP_NUM_THREADS ./myprog ※ ご利用するMPI環境部分のみお使いください. Pthreadプログラムの場合は,"OMP_NUM_THREADS"部分を"NCPUS"としてください. この場合、PBSからのジョブは t2sub -q S -l select=4:ncpus=4:mpiprocs=1:mem=48gb -l place=scatter ./job.sh t2sub -q S -l select=4:ncpus=8:mpiprocs=1:mem=48gb -l place=scatter ./job.sh t2sub -q S -l select=2:ncpus=4:mpiprocs=2:mem=48gb -l place=scatter ./job.sh などと任意のスレッド数のジョブが投入できます.ただし,MPIのプロセス総数はPBSからは変更できません. • 【ノート】 次の様なシェルコマンドを入れ込むことによりプロセス数をコントロールできます. MPI_PROCS=`wc -l $PBS_NODEFILE | awk '{print $1}'` mpirun -n $MPI_PROCS -hostfile $PBS_NODEFILE ..... とします. ただし,この方法はPBS情報からプロセス数を編集していますので予定通りのデータが渡ることを必ず 事前に確認してご利用ください. SMP並列部分で,オーバーヘッドが大きくなりスレッド数を大きく取れない場合はノード内でMPIプロセスを増やす ことなどが 考えられます.この場合の記述が上記例の3番目に該当します. この例では,mpiプロセスが出すスレッドの数がncpusになり ますので,ノード内には合計8coreが使用されます. 【重要】 SMP並列オプション付きでコンパイルされた実行モジュールを使用する場合でSMPを使用しない場合 t2sub -q S -l select=1:ncpus=1:mpiprocs=4:mem=48gb -l place=scatter ./job.sh などとncpusの指定を"1"としてください. 5.4 予約(Hキューの利用) マシンを予約することにより,10000並列を超える大規模計算が可能です. 以下の手順でご利用ください. Hキューの仕組みは 3.5.1 大規模並列環境 を参照ください. 1.予約 別途 TSUBAME2利用ポータル_利用の手引 に従ってキューを予約してください. 2.ノードとキューの確認 1と同様にキューが予約されていることを確認してください. ノード予約画面で,「予約キュー名」に「R123」などと表示されますので,こ のキューの名前を使用します. また,TSUBAME にログインし,t2rstat コマンドを実行することでも,予約したキューの情報を確認できます. > t2rstat JobId Queue Group ReserveState ReserveStart / ReserveDuration / ReserveEnd NDS --------------------------------------------------------------------------------------------------------------R123.t2zpbs05 R123 t2gxxxx RESV_CONFIRMED Tue Jan 1 09:45:00 2013 / 83700 / Wed Jan 2 09:00:00 2013 400 3.バッチによる使用 予約時間になりましたら,予約者のアカウントでジョブの投入ができるようになります. 次のようにキュー名を指定して投入 します. t2sub -q R123 -W group_list=t2gxxxx -l select=400:ncpus=12:mpiprocs=1:mem=40gb .... などとします.予約したノード数以内でのご利用であれば自由にジョブを投入できます. 5.5 メモリサイズの指定 メモリサイズの指定は,MPI,SMPにかかわらず,チャンク内で使用されるメモリ量の合計値を指定してください. • 指定できるメモリサイズ S/Hキューで使用されているマシンはメモリとして54GiBを実装しています.PBSでメモリ量を指定する場合は, mem=53 gbが上限になります.mbで指定した場合は,mem=54400mb と指定できます. これは,1gb=1024mbで変換してい るためです. どちらの指定方法でも可能ですが,システムが使用しているメモリもありますので, 実際に ユーザーが利用 できるメモリは52GB程度を目安 に考慮してください. MPIを使用する場合 は,通信バッファにメモリが使用されますの で, ユーザーが指定するメモリサイズは 50GB以下を目安 としてください. • SMP並列 t2sub -q -S -l select=1:ncpus=8:mem=40gb ./job.sh ※この場合,チャンクは1ですので,ノード内で使用するメモリ量を記述します. • MPI並列 t2sub -q S -l select=4:ncpus=4:mpiprocs=4:mem=40gb -l place=scatter ./mpitest.sh ※この場合はノード内4プロセスが使用するメモリが40gbとして解釈されます. t2sub -q S96 -l select=4:ncpus=4:mpiprocs=4:mem=40gb ./mpitest.sh ※この場合,上と同じですが,キュー内に40gbのチャンクを二つとれるので,2ノードで実行になります. ただし,scatterをいれると4ノードでの実行になります. メモリの単位としてgb,mb,kb,bが指定可能です.1gb=1024mb, 1mb=1024kb, 1kb=1024bとなります.指定がない場合 は b(バイト) が指定されたものとして扱われます.また,小数点は使用できません.したがって,1.5GBのメモリを指定したい場 合は,「mem=1536mb」と指定します. 5.6 アレイジョブ(パラメータサーベイ) プログラム内のパラメータ感度解析などを実施する場合,パラメータの数字を具体的に変化させて結果の変化を調査します. プログラムよっては,多くのパラメータを持つため,膨大な計算が発生したりします. このような場合に威力を発揮するのがア レイジョブです. (パラメトリックスタディジョブと呼ぶ場合もあります). 以下,順に説明します. 1. 投入シェルを作成 > cat jikken.sh #!/bin/bash ./sample << EndOfFile $PBS_ARRAY_INDEX EndOfFile # $PBS_ARRAY_INDEX がパラメータ値になります. この例では,プログラム内で要求するパラメータ値をヒアドキュメントの 形でプログラムに入力しています. アレイサイズの最大値は各キューの最大投入本数になっています. 2. ジョブの投入 用意したシェルを次のように投入します. > t2sub -J 100-150 ./jikken.sh Checking accounting informations... Checking requested resources... Submitting a job to PBS... 6090926[].t2zpbs01 投入オプションは -J 開始値-終了値:増分 として指定します. 上記例( -J 100-150)とした場合,パラメータの開始値が100, 増分1,終了値150 として 解釈(:1の場合は省略可)されます. パラメータ値は $PBS_ARRAY_INDEX という環境変数に 設定されますので,この環境変数をプログラムにヒアドキュメントの形で入力してやります. 同時実行もありますので,ファイ ルの形にする場合は上書きに注意する必要があります. 3. 実行状況 アレイジョブは次のように表示されます. > t2stat -u nectest Job id Name User ------------------------------- ---------------6090926[].t2zpbs01 OTHERS nectest Time Use S Queue -------- - ----00:00:10 B S 4. 結果 計算結果はジョブ名の後ろにパラメータ数が付いてリストされます. > ls OTHER* OTHERS.o6090926.100 OTHERS.o6090926.101 OTHERS.o6090926.102 OTHERS.o6090926.103 OTHERS.o6090926.104 OTHERS.o6090926.113 OTHERS.o6090926.114 OTHERS.o6090926.115 OTHERS.o6090926.116 OTHERS.o6090926.117 OTHERS.o6090926.126 OTHERS.o6090926.127 OTHERS.o6090926.128 OTHERS.o6090926.129 OTHERS.o6090926.130 5. PBSの他のオプションとの組み合わせ 特に制限,不具合は報告されていません. 5.7 ジョブ関連情報の指定 ジョブ実行にあたって使用する主な関連オプションを説明します. 5.7.1 ジョブ名 • Nオプション これは,ジョブ名を指定(15文字以下)します. t2sub -N sample-J -l select=1 ./jpb.sh 無指定の場合は,「OTHERS」がつきます. 5.7.2 TSUBAMEグループ • W group_listオプション TSUBAMEグループを指定します. t2sub -W group_list=xxxxx -q S -l select=1 ./job.sh 下記のコマンドを実行することにより,所属しているグループの確認ができます. t2group 5.7.3 実行時間 • l walltimeオプション 実行時間を -l walltime=hh:mm:ssの形式で指定します.指定した実行時間に達すると実行中のジョブは強制終了 さ れますので,ジョブの実行に十分な時間を指定してください.指定がない場合は1時間(01:00:00)が指定された もの として扱われます. t2sub -l walltime=10:00:00 -W group_list=xxxxx -q S -l select=1 ./job.sh 5.7.4 メール • m,Mオプション ジョブの開始,終了時に利用者宛にメールを出すことができます. t2sub -m abe -M user@host -q S -l select=1 ./job.sh 上記の例では,ジョブの実行開始・終了時および異常終了が発生した場合にuser@host宛てに通知メールが送信され ます.オプション内の指定は,次の通りです. n a b e : : : : no mails are sent (default) a mail is sent when the job is aborted. a mail is sent when the job is started. a mail is sent when the job finishes. -m be と記述すると,開始,終了時にメールが出ます. また,-m e と記述すると終了時のみメールが出ます. 5.7.5 標準出力ファイル 標準出力ファイルは-oオプションでの指定をしない場合,以下の名称で出力されます. (ジョブ名).o(ジョブID数値) -oオプションを使用することにより,標準出力ファイルのパスを指定できます. t2sub -q S -l select=1 -o /work0/group-name/user_id/output.txt ./job.sh 5.7.6 標準エラー出力ファイル 標準エラー出力ファイルは-eオプションでの指定をしない場合,以下の名称で出力されます. (ジョブ名).e(ジョブID数値) -eオプションを使用することにより,標準エラー出力ファイルのパスを指定できます. t2sub -q S -l select=1 -e /work0/group-name/user_id/output_err.txt ./job.sh 5.7.7 出力ファイルの結合 標準出力と標準エラー出力を一つにまとめたい場合は-jオプションを使用します. -j oeを指定すると,標準出力ファイルに標準エラー出力の内容が追加されます. t2sub -q S -l select=1 -j oe ./job.sh 5.8 プレミアオプション プレミアオプションとして,次の二つのオプションが利用可能です. -et (0|1|2) ジョブ実行時間の延長レベルを指定します. 1,2を指定すると通常よりも高い課金係数が適用されます. -p (0|1|2) ジョブの実行優先度を指定します. 1,2を指定すると通常よりも高い課金係数が適用されます. 5.8.1 時間延長 • etオプション 標準での指定可能な実行時間の上限値は1日(24:00:00)となっていますが,-etオプションの指定により 最長4日 (96:00:00)まで指定可能です. 0 : ジョブ実行時間の最大値は1日(24:00:00)となります. (デフォルト) 1 : ジョブ実行時間の最大値は2日(48:00:00)となります. 2 : ジョブ実行時間の最大値は4日(96:00:00)となります. ただし延長時は,S/Gキューでは追加の課金係数が適用され,Vキューでは,同時実行数が減少します. t2sub -l walltime=72:00:00 -et 2 -W group_list=xxxxx -q S -l select=1 ./job.sh 5.8.2 プライオリティ • pオプション ジョブの実行優先順位を上げることで,ジョブをキュー待ち状態から実行されやすくします. 0 : 標準の実行優先度です. (デフォルト) 1 : 実行優先度は0より高く,2より低くなります. 2 : 最高の実行優先度となります. 0,1,2のパラメータが有効で,1,2を指定することにより通常より高い優先順位となります. ただし,S/Gキューでは 追加の課金係数が適用され,Vキューでは,同時実行数が減少します. t2sub -p 1 -q S -l select=1 ./job.sh 5.8.3 課金係数 プレミアオプションを使用した場合に適用される課金係数は以下のとおりです. p 0(優先は普通) p 1(やや高め) p 2(高め) et 0(実行時間:標準) 1 2 4 et 1(2倍に延長) 2 4 8 et 2(4倍に延長) 4 8 16 S/Gキューでの課金係数の適用はご利用になった計算時間(walltime)に係数をかけることによって実施しています. 課金表 示は,標準エラー出力(.e)の最後に出力されています. また,Vキューでの適用は同時実行数の減少として実施され,課金係数が2倍のとき同時実行数は1/2となります. 5.9 SSH直接ログイン 予約したノード,S,S96,L128,L128F, L256,L512,Hキューで確保したノードには自由にsshでログインすることができます . S,S96,L128,L256,L512キューはノードを確保したユーザのみが, Hサービスはノードを確保したグループに属するユー ザが直接ログインすることができます. sshログインは次のような用途に応用可能です. • 長時間のGUIアプリケーションの実行を行う用途(PBSではGUIアプリケーションの実行が出来ないため) 5.9.1 ジョブスクリプトの準備 ジョブスクリプトを作成します. sshログインして作業を行うためのノード確保を目的とする場合は, 次のようにsleepのみを実 行するスクリプトを作成します. #!/bin/sh sleep 3600 ← sleep の引数に秒数(この場合は3600秒=1時間)を指定 ジョブスクリプトを作成後,t2sub コマンドによりジョブを投入します. 5.9.2 ノードの確認 以下の手順により,ジョブが確保したノードが分かります. ①.Sキューのとき t2statに-n1オプションを指定して確認します. > t2stat -n1 t2zpbs01: Req'd Req'd Elap Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time --------------- -------- -------- ---------- ------ --- --- ------ ----- - ----2997.t2zpbs01 necse S OTHERS -2 8 1gb 01:00 R -- t2a000077/0*4+t2a000078/0*4 ノード名1/J1(*P1)+ノード名2/J2(*P2)++...+ノード名N/JN(*PN) の形式でノード一覧が表示されます. 上の例ではノードはt2a00 0077とt2a000078になります. ②.予約キューのとき t2rstatに-Fオプションと予約したキュー名を指定して実行します. > t2rstat -F R123 Name: R443.t2zpbs05 ... resv_nodes = (t2a004101:ncpus=24:mpiprocs=24:mem=55574528kb:gpus=3)+ (t2a004102:ncpus=24:mpiprocs=24:mem=55574528kb:gpus=3) resv_nodes に(ノード名1:...)+(ノード名2:...)+...+(ノード名N:...)の形式でノード一覧が表示されます. 上の例ではノードは t2a004101とt2a004102になります. 5.9.3 ログイン 該当ノードの一覧で表示されたマシンのどれかをインタラクティブとして ssh -Y t2a010113 (例です:ノードリストから選択してください) などとログインしてください. ノード一覧をホストファイルとして,自由にご利用いただけます. mpirun -np 2048 -hostfile ./nodelist ./mpiprog mpi環境は通常のインタラクティブと同様に openmpi + intel になっていますので, 他の環境で利用する場合は切り替えて ご利用ください. なお,作業完了後に t2del コマンドにより ジョブを削除することを忘れないようにしてください. 6. プログラミングと環境 TSUBAME2で使用できるコンパイラは,gcc,pgi,intelの3種類がインストールされています. 各コンパイラともに利用可能で す. ※ CUDA(nvcc)については 6.5 GPU を参照ください. 6.1 コンパイラ 基本になる3種類のコンパイラについては,パスが通してありますので特別な処理なして利用可能です. 6.1.1 利用できるコンパイラ 各コンパイラの使用例を以下に示します. 1.pgi > pgf95 -V pgf95 13.2-0 64-bit target on x86-64 Linux -tp nehalem Copyright 1989-2000, The Portland Group, Inc. All Rights Reserved. Copyright 2000-2013, STMicroelectronics, Inc. All Rights Reserved. (pgf90も同じく表示されます) > pgcc -V pgcc 13.2-0 64-bit target on x86-64 Linux -tp nehalem Copyright 1989-2000, The Portland Group, Inc. All Rights Reserved. Copyright 2000-2013, STMicroelectronics, Inc. All Rights Reserved. 2.gnu > gfortran --version GNU Fortran (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Copyright (C) 2008 Free Software Foundation, Inc. : > gcc --version gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Copyright (C) 2008 Free Software Foundation, Inc : 3.intel > ifort -V Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 13.0.1.072 Build 20120731 Copyright (C) 1985-2012 Intel Corporation. All rights reserved. > icc -V Intel(R) C Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 13.0.1.072 Build 20120731 Copyright (C) 1985-2012 Intel Corporation. All rights reserved. 4.コンパイル例 fortranプログラムとcで記述された時計ルーチンをコンパイルします. gnu gfortran -o sample -Wall sample.f wclock.c pgi pgf95 -fastsse -o sample -Minfo=all sample.f wclock.c intel icc -c wclock.c ifort -fast -o sample -report sample.f wclock.o 6.1.2 数学ライブラリ TSUBAME2では,ベンダー提供のコンパイラに付属する数学ライブラリもインストールされています. 1.PGI ライブラリにパスが通っていますので,リンクオプションの指定により利用できます. pgf95 -o sample -fastsse sample10.f wclock.c -lacml ライブラリの格納場所は /usr/apps/isv/pgi/13.2/linux86-64/13.2/lib になっています. 2.INTEL math_kernel_libraryがインストールされています. ifort -o sample -mkl=sequential sample10.f wclock.o -lmkl_lapack95_lp64 \ -L/usr/apps/isv/intel/2013.0.079/composer_xe_2013.0.079/mkl/lib/intel64 ライブラリの格納場所は /usr/apps/isv/intel/2013.0.079/composer_xe_2013.0.079/mkl/lib/intel64 になっ ています. 6.1.3 コンパイラのオプション 各コンパイラ共に多くのオプションが用意されています.使用される機会の多いオプションを表にしました. コンパイラ名称 gnu pgi intel FORTRAN gfortran pgf95 ifort c/c++ gcc/g++ pgcc/pgCC icc/icpc MPI利用 ○ ○ ◎(※1) OpenMP -fopenmp -mp -openmp 自動並列 × -Mconcur -parallel 高速化オプション -- -fastsse -fast リスト出力 -Wall -Minfo=all -report ドキュメント(※2) man コマンド pgi/13.2/linux86-64/1 3.2/doc intel/2013.0.079/comp oser_xe_2013.0.079/D ocumentation/ ※1.mpif90利用の場合は、バージョンに注意が必要,※2./usr/apps/isv内 6.1.4 コンパイラ利用に当たっての注意 利用にあたっては,以下の点についてご注意ください. 1.32bitコード TSUBAMEでの動作は,基本的には64bitで実行されますが,ユーザー様所有のライブラリが 32bit版しかない場合,コ ンパイルオプションの「-tp」を使用して実行モジュールを作成ください. pgf95 -tp k8-32 sample.f90 -L/home/user-ID/lib -labc 2.最適化 最近のバージョンでは,最適化が強化されております.プログラムを高速処理するために,一部に書き換えを実施する 場 合があります.特に -fast/-fastsse をご利用のユーザー様には,事前に動作を確認いただきますようお願いいたします. ※ 結果が変化したという報告はいただいておりませんが,念のためにお願いいたします. 3.コンパイラのMPIオプションについて pgi,intelコンパイラでは,独自にサポートしているmpiオプションがありますが,TSUBAME2ではサポート対象外です. 6.1.5 違うバージョンのコンパイラ TSUBAME2では,バージョンの異なるコンパイラも用意しています. 次の手順でコンパイラのパスを切り替えてご利用くださ い. PGI Compiler の場合. > . /usr/apps/isv/pgi/pgiset13.7.sh (13.7部分でバージョンを指定) > pgf95 -V pgf95 13.7-0 64-bit target on x86-64 Linux -tp nehalem Intel Compiler Cluster Studio XE 12.1.0.233 の場合. > . /usr/apps/isv/intel/xe2012/bin/iccvars.sh intel64 > icc -V Intel(R) C Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 12.1.0.233 Build 20110811 Copyright (C) 1985-2011 Intel Corporation. All rights reserved. > . /usr/apps/isv/intel/xe2012/bin/ifortvars.sh intel64 > ifort -V Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 12.1.0.233 Build 20110811 Copyright (C) 1985-2011 Intel Corporation. All rights reserved. Intel Compiler Ver.11.1.072 の場合. > . /usr/apps/isv/intel/11.1.072/bin/iccvars.sh intel64 > icc -V Intel(R) C Intel(R) 64 Compiler Professional for applications running on Intel(R) 64, Version 11.1 Copyright (C) 1985-2010 Intel Corporation. All rights reserved. Build 20100414 Package ID: l_cproc_p_11.1.072 > . /usr/apps/isv/intel/11.1.072/bin/ifortvars.sh intel64 > ifort -V Intel(R) Fortran Intel(R) 64 Compiler Professional for applications running on Intel(R) 64, Version 11.1 Copyright (C) 1985-2010 Intel Corporation. All rights reserved. Build 20100414 Package ID: l_cprof_p_11.1.072 【重要】 • MPIライブラリの利用において,不整合が発生する場合があります. 必ず動作確認を実施してください.詳細について は 6.3 MPI並列 を参照ください. • 2013年8月現在で,PGI(Ver.11.0,11.7,11.9,12.2,12.3,12.4,12,5,12.8,12.9,12.10,13.2,13.3,13.4,13.5,13.7), Intel(Ver.11.1.072, Cluster Studio XE 12.1.0.233, Ver.2013.0.079)です. • CUDAについては 6.5 GPU を参照ください. • PGIを元に戻す場合は 13.2 を指定してください 【注意】 pgi 12.9-13.4では,openacc用のプログラムのコンパイルに高いレベルの最適化オプション(-fastなど)を 付けるとフリー ズする場合があります.この場合,最適化レベルを下げるとコンパイルが通ります.(13.5では修正されました) 6.1.6 コンパイラのマニュアル PGI,INTELコンパイラおよびCUDAにはマニュアルが用意されています. 1.PGIコンパイラ 次の操作によりTSUBAME上で参照することができます. evince /usr/apps/isv/pgi/13.2/linux86-64/13.2/doc/pgi13ug.pdf firefox /usr/apps/isv/pgi/13.2/linux86-64/13.2/doc/index.htm man pgf95 (pgcc) 2.INTELコンパイラ 次の操作によりTSUBAME上で参照することができます. firefox /usr/apps/isv/intel/2013.0.079/composer_xe_2013.0.079/Documentation/en_US/get_started_lf.htm man ifort (icc) ※日本語で読みたい場合は以下をご利用ください evince /usr/apps/isv/intel/11.1.072/Documentation/ja_JP/getting_started_c.pdf 3.CUDA 次の操作によりTSUBAME上で参照することができます. firefox /opt/cuda/5.0/doc/html/index.html cd /opt/cuda/5.0/doc/ evince (沢山のドキュメントがありますので該当を選択) man nvcc 6.2 SMP並列 1.openMPを使用した並列コンパイル openMPによる並列処理が可能なfortranプログラムとcで記述された時計ルーチンをコンパイルします. gnu gfortran -O3 -o sampleOMP -fopenmp -Wall sampleOMP.f wclock.c pgi pgf95 -fastsse -o sampleOMP -mp -Minfo=all sampleOMP.f wclock.c intel icc -c wclock.c ifort -fast -o sampleOMP -openmp -openmp-report2 sampleOMP.f wclock.o 2.自動並列コンパイル この機能は,コンパイラがプログラムを解析して自動的に並列化するものです. gnu 自動並列はありません. pgi pgf95 -fastsse -o sampleAUTO -Mconcur -Minfo=all sampleAUTO.f wclock.c intel icc -c wclock.c ifort -fast -o sampleAUTO -parallel -par-report2 sampleAUTO.f wclock.o 注).コンパイルオプションはコンパイラによって異なります. ここで付加しているオプションは機能的に同様なものを指定しています. 6.3 MPI並列 MPI環境は,コンパイラとMPIドライバの組み合わせで幾種類かを選択して利用することが可能です. 以下に利用方法を示しま す. (コンパイラのバージョンに注意) 1.MPI標準環境(openMPI + intel) > mpif90 -V Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 13.0.0.079 Build 20120731 Copyright (C) 1985-2012 Intel Corporation. All rights reserved. 2.openMPI + pgi環境 > . /usr/apps/isv/pgi/pgiset10.6.sh > export PATH=/usr/apps/openmpi/1.4.2/pgi/bin:$PATH > export LD_LIBRARY_PATH=/usr/apps/openmpi/1.4.2/pgi/lib:$LD_LIBRARY_PATH > mpif90 -V pgf95 10.6-0 64-bit target on x86-64 Linux -tp nehalem-64 Copyright 1989-2000, The Portland Group, Inc. All Rights Reserved. Copyright 2000-2010, STMicroelectronics, Inc. All Rights Reserved. 3.openMPI + gnu(gfortran)環境 > export PATH=/usr/apps/openmpi/1.4.2/gcc/bin:$PATH > export LD_LIBRARY_PATH=/usr/apps/openmpi/1.4.2/gcc/lib:$LD_LIBRARY_PATH > mpif90 --version GNU Fortran (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Copyright (C) 2008 Free Software Foundation, Inc. 4.mvapich2 + intel環境 > export PATH=/usr/apps/mvapich2/1.5.1/intel/bin:$PATH > export LD_LIBRARY_PATH=/usr/apps/mvapich2/1.5.1/intel/lib:$LD_LIBRARY_PATH > mpif90 -V Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 13.0.0.079 Build 20120731 Copyright (C) 1985-2012 Intel Corporation. All rights reserved. ※ 表示に main.c:(.text+0x38): undefined reference to `MAIN__' あるいは f90main.c:(.text+0x3a): undefined reference to `MAIN_' などと出る場合がありますが、mpiのバージョン表示時のオプション配置の問題ですので、動作には影響ありません。 (mpich 2でも同様に表示される場合があります) 5.mvapich2 + pgi環境 > > > > . /usr/apps/isv/pgi/pgiset10.6.sh export PATH=/usr/apps/mvapich2/1.5.1/pgi/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/mvapich2/1.5.1/pgi/lib:$LD_LIBRARY_PATH mpif90 -V pgf95 10.6-0 64-bit target on x86-64 Linux -tp nehalem-64 Copyright 1989-2000, The Portland Group, Inc. All Rights Reserved. Copyright 2000-2010, STMicroelectronics, Inc. All Rights Reserved. 6.mvapich2 + gnu環境 > export PATH=/usr/apps/mvapich2/1.5.1/gcc/bin:$PATH > export LD_LIBRARY_PATH=/usr/apps/mvapich2/1.5.1/gcc/lib:$LD_LIBRARY_PATH > mpif90 -version GNU Fortran (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Copyright (C) 2008 Free Software Foundation, Inc. 7.mpich2 + intel環境 > export PATH=/usr/apps/mpich2/1.3/intel/bin:$PATH > export LD_LIBRARY_PATH=/usr/apps/mpich2/1.3/intel/lib:$LD_LIBRARY_PATH > mpif90 -V Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 13.0.0.079 Build 20120731 Copyright (C) 1985-2012 Intel Corporation. All rights reserved. 8.mpich2 + pgi環境 > . /usr/apps/isv/pgi/pgiset10.6.sh > export PATH=/usr/apps/mpich2/1.3/pgi/bin:$PATH > export LD_LIBRARY_PATH=/usr/apps/mpich2/1.3/pgi/lib:$LD_LIBRARY_PATH > mpif90 -V pgf95 10.6-0 64-bit target on x86-64 Linux -tp nehalem-64 Copyright 1989-2000, The Portland Group, Inc. All Rights Reserved. Copyright 2000-2010, STMicroelectronics, Inc. All Rights Reserved. 9.mpich2 + gnu環境 > export PATH=/usr/apps/mpich2/1.3/gcc/bin:$PATH > export LD_LIBRARY_PATH=/usr/apps/mpich2/1.3/gcc/lib:$LD_LIBRARY_PATH > mpif90 -version GNU Fortran (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Copyright (C) 2008 Free Software Foundation, Inc. 6.4 ハイブリッド並列 ここで言うハイブリッド並列とは,ノード間並列をMPIで,ノード内はSMPを使用した並列のことを表します. 次の手順でプログ ラムを作成,実行します. 1.コンパイル icc -c wclock.c mpif90 -O3 -o hybrid -openmp -openmp-report2 hybrid.f wclock.o 2.動作確認 export mpirun mpirun export mpirun OMP_NUM_THREADS=1 -np 1 ./hybrid -np 2 ./hybrid OMP_NUM_THREADS=2 -np 2 ./hybrid 3.バッチへの投入 t2sub -l select=4:mpiprocs=1:ncpus=8:mem=3gb -l place=scatter sample.sh この投入例の場合,ノード内8並列で、4ノードを使用した32並列になります. ※ シェルの作成、投入については 5.3.8 ハイブリット並列 も参照ください. 6.5 GPU 全てのインタラクティブノードでGPUをご利用いただけます. ssh -Y login-t2.g.gsic.titech.ac.jp -l USER-ID インタラクティブノードマシン t2a006161 - t2a006180 であることを確認してください. ただし,インタラクティブノードはコンパイル,デバッグ,バッチへの投入などの作業用としてお使いください. バッチキューの利用 にあたりましては, 5. PBSによるジョブの投入 を参照ください. 6.5.1 CUDA CUDAコンパイラ,ドライバを初めとしたCUDAツールキットが利用可能となっています. ソースファイル名がsample1.cuの場 合,以下のコマンドを実行すると実行形式a.outが生成されます. $ nvcc sample1.cu ソースファイル名の拡張子は「 .CU 」としてください.実行形式ファイル名を指定する場合は-oオプションで指定します. cudaは活発に開発が行なわれているため,バージョンの更新も比較的短いサイクルで行われます. nvccのバージョンを調べ る場合は次のようにしてください. > nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2012 NVIDIA Corporation Built on Fri_Sep_21_17:28:58_PDT_2012 Cuda compilation tools, release 5.0, V0.2.1221 > デフォルトと異なるバージョンのcudaを使用したい場合は,次の手順で切り替えてください. > cd /opt/cuda > ls 3.0 3.1 3.2 4.0 > cd 4.0 > . ./cuda.sh 4.1 5.0 これによりバージョンを切り替えることができます. 以下の例では実行ファイルsample1が生成されます.その他のオプションについては,-hオプションで参照可能です. ドキュメン トを参照したい場合は 6.1.6 コンパイラのマニュアル を参照ください. $ nvcc -o sample1 sample1.cu 実行モジュールが作成てきたら,動作させてみます. $ ./a.out 動作するようでしたら,ジョブスクリプトを作成して,バッチキュー(G)に投入します. $ t2sub -q G -l select=1 -W group_list=xxx ./job.sh 6.5.2 CULAライブラリ 線形代数ライブラリ「LAPACK」をCUDA対応GPUに最適化、実装した「CULA」をご利用いただけます. 同梱のサンプルをコンパイルしてみます.以下の手順でお試しください. $ cp -r /usr/apps/isv/CULA/examples . $ cd examples/fortran $ vi Makefile (パスを修正) : CULA_ROOT=/usr/apps/isv/CULA INCLUDES=-I/usr/apps/isv/CULA/include LIBPATH64=-L/usr/apps/isv/CULA/lib64 $ make build64 $ export LD_LIBRARY_PATH=/usr/apps/isv/CULA/lib64:$LD_LIBRARY_PATH $ ./geqrf Initializing CULA Calling CULA_SGEQRF Shutting down CULA $ ドキュメントは /usr/apps/isv/CULA/doc から参照することができます. CUDA 5.0 対応版をご利用の場合は,/usr/apps/isv/CULA/R16a/をご利用ください. ライブラリとCUDAのバージョンの整 合は 6.5.4 コンパイラ・ライブラリのバージョン を参照ください. 6.5.3 PGIコンパイラ PGIコンパイラでは,指示行によりGPUに対応した実行モジュールを生成することができます. 1.指示行 対象となる計算部分(配列計算部分)を挟んで,以下のような指示行を挿入します. !$acc region DO k=1,100 DO J = 1,600 DO I = 1,5000 c(j,i) = c(j,i) + A(I,J) * B(J,I) ENDDO ENDDO ENDDO !$acc end region 2.コンパイル コンパイルオプションにCUDA用のオプション「-ta=nvidia」を付加します.同時に,使用するcuda Toolkitの バージョンも 指定(,cudax.x)するようにしてください.バージョンの対応については 6.5.4 コンパイラ・ライブラリのバージョン を参照し てください. また,cuda用のコンパイルをしたことを確認するために-Minfo=all でコンパイルメッセージを確認してくださ い. > . /usr/apps/isv/pgi/pgiset13.5.sh > pgf95 -Minfo=all -fastsse -o tesla -ta=nvidia,cuda5.0 cuda.f wclock.c : 17, Generating present_or_copy(c(:,:)) Generating present_or_copyin(a(:,:)) Generating present_or_copyin(b(:,:)) Generating NVIDIA code Generating compute capability 1.3 binary : 3.実行 実行モジュールができたら,インタラクティブで実行を確認します. ./tesla 動作するようでしたら,ジョブスクリプトを作成して,バッチキュー(G)に投入します. t2sub -q G -l select=1 -W group_list=xxx ./job.sh 6.5.4 コンパイラ・ライブラリのバージョン cuda対応のコンパイラ,ライブラリの相互関係は以下の状況です. cuda CULA pgi -----------+---------+--------3.0 10.6 3.1/3.2 R10 11.0 3.1/3.2/4.0 R12 11.7 3.1/3.2/4.0 R12 11.9 4.0/4.1 R12 12.2 4.0/4.1 4.1/4.2 5.0 R12 R16 12.3-8 12.9-10 13.2- cudaのドライバは上位側で互換性がありますので,3.1で作成したアプリを4.0で使う事は可能です. 対応バージョンの異なるルーチンをリンクした場合に実行エラーの可能性がありますので,ご注意ください. 6.5.5 MPI+cudaによるコンパイル TSUBAMEのMPI環境は,コンパイラとMPIドライバの組み合わせで幾種類かを選択して利用することが可能です. 詳細は 6.3 MPI並列 を参照ください. 基本的な利用としては,各環境時のcコンパイラをnvccに置き換えます. ここでは,例としてopenmpi+gcc環境をベースにし て実施する例を示します. 始めにMPI環境を指定します. export PATH=/usr/apps/openmpi/1.4.2/gcc/bin:$PATH export LD_LIBRARY_PATH=/usr/apps/openmpi/1.4.2/gcc/lib:$LD_LIBRARY_PATH 続いて、コンパイルしますが nvcc を使用する際に明示的に mpi.h にパスを通すようにして, nvcc -c xx.cu -I/usr/apps/openmpi/1.4.2/gcc/include などと指定します.これにより *.o が生成されますのでこれらをリンクします. mpicc -o gpumpi xx.o gpufunc.o -L/opt/cuda/5.0/lib64 -lcudart となります.リンク時は,cudaのライブラリを明示的に指定してください. 最初に *.oを作成し,後にリンクという手順となります . 6.6 性能解析ツール TSUBAME2では各種のツールを用意しております. 6.6.1 プロファイラ(シングル) PGIのプロファイラを使ってみましょう. 最初に,コスト分析する実行モジュールを作成します. pgf95 -Mprof=func -o sample10 sample10.f wclock.c ここでは,-Mprof=func のオプションを付加します. sample10という名前の実行モジュールが出来ているはずですから, ./sample10 として実行します.終了すると pgprof.out というファイルが作成されています. このファイルを確認できたら pgprof -nocheckjvm -jarg,-Xmx4G これにより,以下のような画面が表示されます. 【注意】 起動できない場合は, 5.9 SSH直接ログイン のようにマシンを確保して実行ください. 6.6.2 プロファイラ(並列) MPI並列プログラムもプロファイラを使用できます.以下の手順で実施してください. > pgf95 -o s22 -Mprof=mpich1,func sample10mpi.f wclock.c > Hostname <-- 現在のホスト名を調査(毎回違います) t2a006165 > vi host <-- ホストファイルを作成 > cat host t2a006165 t2a006165 t2a006165 t2a006165 > /usr/apps/isv/pgi/linux86-64/10.6/mpi/mpich/bin/mpirun -np 4 -machinefile host ./s22 > ls pgprof.out pgprof1.out pgprof2.out pgprof3.out > pgprof -nocheckjvm -jarg,-Xmx4G これにより,以下のような起動画面が表示されます. 例のように"OK"の後,プロファイラのウインドウのFileメニューから「New Profilong Session」を選択します. 以下の①部分の ようなファイル名指定ウインドウが表示されてきますので,順に情報をいれるとプロファイラ画面が 表示されてきます. 6.6.3 デバッカ(シングル) TSUBAME2に用意されているTotalViewを使ってみましょう. 最初に,デバックする実行モジュールを作成します. gfortran -g -o sampleOMP sampleOMP.f wclock.c ここでは,-gのオプションを付加します. sampleOMPという名前の実行モジュールが出来ているはずですから, totalview sampleOMP これにより,以下のような起動画面が表示されます.(プログラムを指定していないと選択画面が出ます) ここでOKを選択すれば,いよいよ作業画面になります.それでは,デバック開始です. 利用詳細については,利用の手引を参照ください. 6.6.4 デバッカ(並列) totalviewはMPI並列プログラムも扱うことができます. デバックする実行モジュールを作成します. mpif90 -g sample11a.f wclock.c ここでは,-gのオプションを付加します. a.outという名前の実行モジュールが出来ているはずですから, totalview a.out これにより,以下のような起動画面が表示されますので,mpi環境と並列数を入力します. シングルの時と同じような画面が表示されてきますので,プログラムを調査したい部分のライン番号をクリック してマーキング します.赤くSTOPと表示されたらメニューから「Go」を選択して実行します. 暫らくまっていると指定のポイントで停止しますので,このときの変数の値を右上のウインドウからチェックします. この操作を 順次繰り返してデバックを進めてください. 6.6.5 デバッカ(GPU) totalviewはGPUプログラムも扱うことができます. デバックする実行モジュールを作成します. gfortan -g samplegpu.f ここでは,-gのオプションを付加します. a.outという名前の実行モジュールが出来ているはずですから, /usr/apps/isv/TotalView/8.9.0-2/toolworks/totalview.8.9.0-2/bin/totalview ./a.out これにより,以下のような起動画面が表示されますので,CUDA環境を選択します. 以後の利用方法は 6.6.3と同じです. 6.6.6 パフォーマンスアナライザー TSUBAME2にはパフォーマンスアナライザーとして,VTune Amplifier XEがインストールされています. デバックする実行モジュールを作成します.: gfortran -g sample.f 次に VTune を起動します. $ . /usr/apps/isv/intel/vtune/vtune_amplifier_xe_2011/amplxe-vars.sh Copyright (C) 2009-2011 Intel Corporation. All rights reserved. Intel(R) VTune(TM) Amplifier XE 2011 (build 139491) $ amplxe-gui これにより,以下のような起動画面が表示されます. New Projectボタンを押すと,Create a Projectウインドウが立ち上がり ます. Project name欄を入力してCreate Projectボタンをクリックします. Application欄に作成したa.outを入力し,OKボタンをクリックします. 次にNew Analysisボタンをクリックします. すると次の画面が立ち上がります. Analysis Type から分析したい内容を選択し,右側の Start ボタンをクリックすると分析が始まります. 6.6.7 PAPIによる性能評価 プログラムの準備は,サンプルプログラムを参照してください.(/work0/soudan/tune/papi_t.c) 1.プログラムをコンパイルします. . /usr/apps/free/papi/421/papi.sh gcc papi_t.c -I/usr/apps/free/papi/421/include -lpapi -L/usr/apps/free/papi/421/lib 2.実行します. ./a.out x=49.500000 Real_time: 0.000009 Proc_time: 0.000002 Total flpins: 305 MFLOPS: 138.903839 ライブラリが見えない場合は,以下を実施してから,実行してください. export LD_LIBRARY_PATH=/usr/apps/free/papi/421/lib:$LD_LIBRARY_PATH 6.7 エラーメッセージ 一番多いエラーメッセージと対応を示します. 6.7.1 メモリ不足 メモリ不足の場合は,コンパイラによってメッセージが異なりますが,バッチの場合はPBS側のエラーが表示されます. 1. GNU Operating system error: Cannot allocate memory Out of memory 2. PGI 0: ALLOCATE: 1920000000 bytes requested; not enough memory 3. intel forrtl: severe (41): insufficient virtual memory Image PC Routine ch 0000000000476B5D Unknown ch 0000000000475665 Unknown ch 0000000000450360 Unknown ch 000000000043DFCF Unknown ch 0000000000415765 Unknown ch 0000000000404462 Unknown Line Unknown Unknown Unknown Unknown Unknown Unknown Source Unknown Unknown Unknown Unknown Unknown Unknown ch libc.so.6 ch 0000000000402C7C 00002BA16D91DBC6 0000000000402B79 Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown 4. PBS =>> PBS: job killed: mem 32050216kb exceeded limit 31457280kb ================================================ 5. 対策 使用するメモリ量が指定したもの(あるいは実装)より多いために発生しています.次のような処置をお願いします. • バッチジョブ 指定するメモリ量を多く指定してください.Sキューで不足の場合はS96など実装メモリの大きなキューをお使いください. • インタラクティブ インタラクティブでは,6GBの上限が設定されていますのでバッチキューをご利用ください. コンパイルなどもバッチ を使って実行できます. 5.9 SSH直接ログイン なども参照ください. 6.7.2 配列外参照 エラーメッセージは次のように表示されます. 1. GNU /var/spool/PBS/mom_priv/jobs/757.t2zpbs03.SC: line 5: 28740 Segmentation fault ================================================ ./outck 2. PGI /var/spool/PBS/mom_priv/jobs/756.t2zpbs03.SC: line 5: 28674 Segmentation fault ================================================ ./outck 3. intel forrtl: severe (174): SIGSEGV, segmentation fault occurred Image PC Routine Line outck 0000000000402D72 Unknown Unknown outck 0000000000402C7C Unknown Unknown libc.so.6 00002AB0F39E9BC6 Unknown Unknown outck 0000000000402B79 Unknown Unknown ================================================ Source Unknown Unknown Unknown Unknown 6.7.3 配列外参照(MPIジョブ) バッチでもほぼ同じですがMPIプロセスはこの「Segmentation fault」が発生するとシグナル"11" や "-5" としてMPI処理を 終了します. 1. GNU+openmpi [t2a006176:27110] *** Process received signal *** [t2a006176:27110] Signal: Segmentation fault (11) [t2a006176:27110] Signal code: Address not mapped (1) [t2a006176:27110] Failing at address: 0x17cb2c00 [t2a006176:27111] *** Process received signal *** [t2a006176:27111] Signal: Segmentation fault (11) [t2a006176:27111] Signal code: Address not mapped (1) [t2a006176:27111] Failing at address: 0x17cb2c00 [t2a006176:27110] [ 0] /lib64/libpthread.so.0(+0xf5d0) [0x2b08b38195d0] [t2a006176:27110] [ 1] /usr/lib64/libgfortran.so.3(+0xb5def) [0x2b08b3177def] [t2a006176:27110] [ 2] /usr/lib64/libgfortran.so.3(+0xb6ec2) [0x2b08b3178ec2] [t2a006176:27110] [ 3] /usr/lib64/libgfortran.so.3(+0xb78de) [0x2b08b31798de] -------------------------------------------------------------------------orterun noticed that process rank 1 with PID 27111 on node t2a006176 exited on signal 11 (Segmentation fault). -------------------------------------------------------------------------- 2. PGI+openmpi [t2a006176:23516] *** Process received signal *** [t2a006176:23516] Signal: Segmentation fault (11) [t2a006176:23516] Signal code: Address not mapped (1) [t2a006176:23516] Failing at address: 0x1e18ab2c0 [t2a006176:23517] *** Process received signal *** [t2a006176:23517] Signal: Segmentation fault (11) [t2a006176:23517] Signal code: Address not mapped (1) [t2a006176:23517] Failing at address: 0xffffffff9eadf440 [t2a006176:23516] *** End of error message *** [t2a006176:23517] *** End of error message *** -------------------------------------------------------------------------orterun noticed that process rank 1 with PID 23517 on node t2a006176 exited on signal 11 (Segmentation fault). -------------------------------------------------------------------------- 3. intel+openmpi forrtl: severe (174): SIGSEGV, segmentation fault occurred Image PC Routine Line Source ck 000000000040861A Unknown Unknown Unknown ck 000000000040843C Unknown Unknown Unknown libc.so.6 00002B244C2A2BC6 Unknown Unknown Unknown ck 0000000000408339 Unknown Unknown Unknown -------------------------------------------------------------------------orterun has exited due to process rank 1 with PID 22812 on node t2a006176 exiting without calling "finalize". This may have caused other processes in the application to be terminated by signals sent by orterun (as reported here). -------------------------------------------------------------------------4. GNU+mvapich2 MPI process (rank: 1) terminated unexpectedly on t2a004094 Exit code -5 signaled from t2a004094 5. PGI+mvapich2 MPI process (rank: 0) terminated unexpectedly on t2a004091 Exit code -5 signaled from t2a004091 MPI process (rank: 1) terminated unexpectedly on t2a004094 6. intel+mvapich2 forrtl: severe (174): SIGSEGV, segmentation fault occurred Image PC Routine Line ck 00000000004049AA Unknown Unknown ck 00000000004047CC Unknown Unknown libc.so.6 00002B929D1AABC6 Unknown Unknown ck 00000000004046C9 Unknown Unknown forrtl: severe (174): SIGSEGV, segmentation fault occurred Image PC Routine Line ck 00000000004049AA Unknown Unknown ck 00000000004047CC Unknown Unknown libc.so.6 00002B126C998BC6 Unknown Unknown ck 00000000004046C9 Unknown Unknown MPI process (rank: 1) terminated unexpectedly on t2a006176 Exit code -5 signaled from t2a006176 Source Unknown Unknown Unknown Unknown Source Unknown Unknown Unknown Unknown 7. 対策 宣言した配列のインデックスの範囲外の添え字が使用されている場合に発生します. 初期値の設定漏れなどで発生する場 合が多いようです.PGIコンパイラでは「-C」のオプションを 使用して次のようにして調査できます. > pgf95 -o check -C sample7lk.f wclock.c > ./check 0: Subscript out of range for array a1 (sample7lk.f: 21) subscript=40000, lower bound=-1946283772, upper bound=32767, dimension=1 > これはプログラムの21行目で配列名A1の範囲外を参照したというメッセージです. MPIジョブの終了は,終了シグナルを親プロセスが受け取り,全プロセスに終了を配信して処理を終了するため, この手 順で終了しない場合,終了を受け取らないプロセスがゾンビとなってしまう場合があります. そうならないために,添え字 の範囲チェックを実施して,範囲外が発生した場合は,MPI-Abortルーチンをコールして終了するようにしてください. 7. ISVアプリケーション 本章では,「TSUBAME2」で利用できるアプリケーションの基本操作について説明します.詳細な取扱いにつきましては,個別 の利用手引を参照してください. • FLUENT • ABAQUS Standard/Explicit • ABAQUS CAE • NASTRAN • PATRAN • Gaussian • AMBER • Materials Studio • Discovery Studio • SCIGRESS • Molpro • mathematica • maple • AVS/Express • AVS/Express PCE • EnSight • MATLAB • LS-DYNA 7.1 ANSYS FLUENT バージョン14.5を使用できます. 1.[インタラクティブ実行] $ fluent 3ddp <fluent オプション> 2.[PBSジョブ投入] PBSの仕様上,GUIを使用できないため,コマンドラインモード(fluent の -g オプション)で起動します. また,予め次のような ジャーナルファイルをjournalという名で用意しておき処理を自動化することをお勧めします. /file/read-case "sample.cas" /solve/iterate 10 exit (1).シングルジョブ (a).投入シェル準備 $ cat test_fluent.sh #!/bin/sh cd ${PBS_O_WORKDIR} fluent 3ddp -g -i journal <fluent オプション> -----------------------------------$ chmod +x test_fluent.sh (b).ジョブ投入 $ t2sub <グループ,キュー等指定> test_fluent.sh (2).MPIジョブ投入 MPIジョブはノード内並列のみ対応しています. (a).投入シェル準備 $ cat test_fluent.sh #!/bin/sh cd ${PBS_O_WORKDIR} fluent 3ddp -mpi=openmpi -pib -t<CPU数> -g -i journal <fluent オプション> -----------------------------------$ chmod +x test_fluent.sh (注意) V キューを投入先とする場合は,スクリプト中の「-mpi=openmpi -pib」の指定方法を変更する必要があります. 次 のようなスクリプトを用意してください. ○V12.1 の場合 #!/bin/sh cd ${PBS_O_WORKDIR} fluent 3ddp -mpi=intel -t<CPU数> -g -i journal <fluent オプション> ○V13, 14, 14.5 の場合 #!/bin/sh cd ${PBS_O_WORKDIR} fluent 3ddp -mpi=openmpi -t<CPU数> -g -i journal <fluent オプション> (b).ジョブ投入 ノード内並列で実行します. $ t2sub -l select=1:ncpus=<CPUS数> <グループ,キュー等指定> test_fluent.sh 7.2 Abaqus Standard/Explicit バージョン6.12-3を使用できます. 1.[インタラクティブ実行] $ abaqus job=<入力ファイル> <Abaqus オプション> 2.[PBSジョブ投入] (1).シングルジョブ (a).投入シェル準備 $ cat test_abaqus.sh #!/bin/sh cd ${PBS_O_WORKDIR} abaqus job=<入力ファイル> <Abaqus オプション> -----------------------------------$ chmod +x test_abaqus.sh (b).ジョブ投入 $ t2sub <グループ,キュー等指定> test_abaqus.sh (2).MPIジョブ投入 MPIジョブはノード内並列のみ対応しています. (a).投入シェル準備 $ cat test_abaqus.sh #!/bin/sh cd ${PBS_O_WORKDIR} abaqus job=<入力ファイル> cpus=<CPU数> mp_mode=mpi <Abaqus オプション> -----------------------------------$ chmod +x test_abaqus.sh (注意) V キューを投入先とする場合は,スクリプト中の「mp_mode=mpi」の指定方法を変更する必要があります. 次の ようなスクリプトを用意してください. #!/bin/sh cd ${PBS_O_WORKDIR} abaqus job=<入力ファイル> cpus=<CPU数> mp_mode=threads <Abaqus オプション> (b).ジョブ投入 ノード内並列のみです. $ t2sub -l select=1:ncpus=<CPUS数> <グループ,キュー等指定> test_abaqus.sh 7.3 Abaqus CAE バージョン6.12-3を使用できます. 1.[起動方法] 次のコマンドで起動します. $ abaqus cae 終了は,メニューバーから「File」を選択し「Exit」をクリックします. 7.4 Patran バージョン2012.2.1を使用できます. 1.[起動方法] 次のコマンドで起動します. $ patran 終了は,メニューバーから「File」を選択し「Quit」をクリックします. 7.5 Nastran バージョン2012.2を使用できます. 1.[インタラクティブ実行] $ nast20122 <入力ファイル> <Nastran オプション> 2.[PBSジョブ投入] (1).シングルジョブ (a).投入シェル準備 $ cat test_nastran.sh #!/bin/sh cd ${PBS_O_WORKDIR} nast20122 <入力ファイル> <Nastran オプション> -----------------------------------$ chmod +x test_nastran.sh (b).ジョブ投入 $ t2sub <グループ,キュー等指定> test_nastran.sh (2).MPIジョブ投入 MPIジョブはノード内並列のみ対応しています. (a).投入シェル準備 $ cat test_nastran.sh #!/bin/sh cd ${PBS_O_WORKDIR} nast20122 <入力ファイル> parallel=<CPU数> <Nastran オプション> -----------------------------------$ chmod +x test_nastran.sh (b).ジョブ投入 ノード内並列のみです. $ t2sub -l select=1:ncpus=<CPUS数> <グループ,キュー等指定> test_nastran.sh 7.6 Gaussian 09 Revision C.01を使用できます. 1.[インタラクティブ実行] $ g09 test000.com 2.[PBSジョブ投入] 大きなサイズのスクラッチが出力される場合があります. シェルスクリプトで「export GAUSS_SCRDIR=$TMPDIR」の指定 を行い, 共有スクラッチ領域を使用することをおすすめします. (1).シングルジョブ (a).投入シェル準備 $ cat test_g09.sh #!/bin/sh cd ${PBS_O_WORKDIR} export GAUSS_SCRDIR=$TMPDIR g09 test000.com -----------------------------------$ chmod +x test_g09.sh (b).ジョブ投入 $ t2sub <グループ,キュー等指定> test_g09.sh (2).SMP並列ジョブ (a).投入シェル準備 $ cat test_g09smp.sh #!/bin/sh cd ${PBS_O_WORKDIR} export GAUSS_SCRDIR=$TMPDIR unset NCPUS unset OMP_NUM_THREADS g09 test000.com -----------------------------------$ chmod +x test_g09smp.sh (b).入力ファイルにSMP並列数指定 入力ファイルの先頭に(マルチステップジョブではステップ毎に),SMP並列オプション指定 $ cat test000.com %NprocShared=<CPU数> : (c).ジョブ投入 $ t2sub -l select=1:ncpus=<CPUS数> <グループ,キュー等指定> test_g09smp.sh (3).Lindaジョブ投入 (a).投入シェル準備 $ cat test_g09linda.sh #!/bin/sh cd ${PBS_O_WORKDIR} export GAUSS_SCRDIR=$TMPDIR export g09root=/usr/apps/isv/gaussian_linda/gaussian09.C01 source $g09root/g09/bsd/g09.profile export GAUSS_LFLAGS="-opt "Tsnet.Node.lindarsharg:ssh" -nodelist '`cat $PBS_NODEFILE | tr "\n" " "`' -mp 2" g09 test000.com -----------------------------------$ chmod +x test_g09linda.sh (b).入力ファイル編集 入力ファイルの先頭に(マルチステップジョブではステップ毎に),LINDA/SMP並列オプション指定 $ cat test000.com %NprocLinda=<ノード数) %NprocShared=<CPU数> : (c).ジョブ投入 $ t2sub -l select=<ノード数>:ncpus=<各ノードのCPU数> -l place=scatter <グループ,キュー等指定> \ test_g09linda.sh 7.7 Gauss View バージョン5.0.9を使用できます. 1.[起動方法] 次のコマンドで起動します. $ gview 終了は,メニューバーから「File」を選択し「Exit」をクリックします. 7.8 AMBER バージョン12(bugfix15)を使用できます. 1.[インタラクティブ実行] $ sander [-O|A] -i mdin -o mdout -p prmtop -c inpcrd -r restrt <sander オプション> 2.[PBSジョブ投入] 備考 Vキューを投入先とする場合の注意点 V キューを投入先とする場合は,次のように V キュー専用の AMBER を使用するための環境変数設定をジョブスクリプト に記述してください. V キュー以外を投入先とする場合は,この設定は必要ありません. この環境変数設定が無い場合,一部コマンドはエラーとなり正常に計算できません. ○バージョン 11(Bugfix 20)を使用する場合 <bash 系の場合> $ export AMBERHOME="/usr/apps/isv/amber/amber11_bugfix20_V/amber11" $ export PATH="${AMBERHOME}/bin/:${PATH}" <csh 系の場合> % setenv AMBERHOME "/usr/apps/isv/amber/amber11_bugfix20_V/amber11" % setenv PATH "${AMBERHOME}/bin/:${PATH}" ○バージョン 12(Bugfix 7)を使用する場合 <bash 系の場合> $ export AMBERHOME="/usr/apps/isv/amber/amber12_bugfix7_V/amber12" $ export PATH="${AMBERHOME}/bin/:${PATH}" <csh 系の場合> % setenv AMBERHOME "/usr/apps/isv/amber/amber12_bugfix7_V/amber12" % setenv PATH "${AMBERHOME}/bin/:${PATH}" ○バージョン 12(Bugfix 15)を使用する場合 <bash 系の場合> $ export AMBERHOME="/usr/apps/isv/amber/amber12_bugfix15_V/amber12" $ export PATH="${AMBERHOME}/bin/:${PATH}" <csh 系の場合> % setenv AMBERHOME "/usr/apps/isv/amber/amber12_bugfix15_V/amber12" % setenv PATH "${AMBERHOME}/bin/:${PATH}" ○MPI 実行する場合(バージョン11, 12 共通) <bash 系の場合> $ export PATH="/usr/apps/mpich2/1.3/intel/bin:${PATH}" $ export LD_LIBRARY_PATH="/usr/apps/mpich2/1.3/intel/lib:${LD_LIBRARY_PATH}" <csh 系の場合> % setenv PATH "/usr/apps/mpich2/1.3/intel/bin:${PATH}" % setenv LD_LIBRARY_PATH "/usr/apps/mpich2/1.3/intel/lib:${LD_LIBRARY_PATH}" (1).シングルジョブ (a).投入シェル準備 $ cat test_sander.sh #!/bin/sh cd ${PBS_O_WORKDIR} sander [-O|A] -i mdin -o mdout -p prmtop -c inpcrd -r restrt <sander オプション> -----------------------------------$ chmod +x test_sander.sh (b).ジョブ投入 $ t2sub <グループ,キュー等指定> test_sander.sh (2).GPU(pmemd.cuda)ジョブ投入 (a). 投入シェル準備 $ cat test_pmemd.cuda.sh #!/bin/sh cd ${PBS_O_WORKDIR} pmemd.cuda [-O] -i mdin -o mdout -p prmtop -c inpcrd -r restrt <pmemd.cuda オプション> -----------------------------------$ chmod +x test_pmemd.cuda.sh (b). ジョブ投入 $ t2sub <グループ,キュー等指定> test_pmemd.cuda.sh 詳細は「AMBER 利用の手引き 7. GPU による高速化」を参照してください. (3).MPIジョブ投入 (a).投入シェル準備 $ cat test_sander.sh #!/bin/sh cd ${PBS_O_WORKDIR} mpirun -np <CPU数> -hostfile $PBS_NODEFILE \ sander.MPI [-O|A] -i mdin -o mdout -p prmtop -c inpcrd -r restrt <sander オプション> -----------------------------------$ chmod +x test_sander.sh (b).ジョブ投入 • ノード内並列 $ t2sub -l select=1:ncpus=<CPU数>:mpiprocs=<CPU数> <グループ,キュー等指定> test_sander.sh • ノード間並列 $ t2sub -l select=<ノード数>:ncpus=<各ノードのCPU数>:mpiprocs=<各ノードのCPU数> -l place=scatter \ <グループ,キュー等指定> test_sander.sh 7.9 Materials Studio バージョン6.0 SP1を使用できます. Windows にて,「スタートメニュー」→「すべてのプログラム」からMaterials Studioを起動します. 7.10 Discovery Studio バージョン3.5を使用できます. Windows にて,「スタートメニュー」→「すべてのプログラム」からDiscovery Studioを起動します. 7.11 SCIGRESS バージョン2.1を使用できます. Windows にて,「スタートメニュー」→「すべてのプログラム」からSCIGRESSを起動します. 計算サーバの指定は,メニューバー から「プロシージャ」→「計算方法の選択と計算の実行」を選択し, 「サーバの選択」で以下を設定します. 172.17.230.55:8080 7.12 Molpro バージョン2010.1を使用できます. 1.[インタラクティブ実行] $ molpro <molpro オプション> <入力ファイル> 2.[PBSジョブ投入] (1).シングルジョブ (a).投入シェル準備 $ cat test_molpro.sh #!/bin/sh cd ${PBS_O_WORKDIR} molpro <molpro オプション> <入力ファイル> -----------------------------------$ chmod +x test_molpro.sh (b).ジョブ投入 $ t2sub <グループ,キュー等指定> test_molpro.sh (2).MPIジョブ投入 (a).投入シェル準備 $ cat test_molpro.sh #!/bin/sh cd ${PBS_O_WORKDIR} mpirun -np <CPU数> -hostfile $PBS_NODEFILE molprop_2010_1_Linux_x86_64_i8.exe <molpro オプション> <入力ファイル> -----------------------------------$ chmod +x test_molpro.sh (b).ジョブ投入 • ノード内並列 $ t2sub -l select=1:ncpus=<CPU数>:mpiprocs=<CPU数> <グループ,キュー等指定> test_molpro.sh • ノード間並列 $ t2sub -l select=<ノード数>:ncpus=<各ノードのCPU数>:mpiprocs=<各ノードのCPU数> -l place=scatter \ <グループ,キュー等指定> test_molpro.sh 7.13 Mathematica バージョン9.0.1を使用できます. 1.[起動方法] 次のコマンドで起動します. <グラフィックユーザインタフェース> $ Mathematica 画面左部の「Notebook >>」をクリックすることで,ノートブックが起動します. 終了は,メニューバーから「File」を選択し「Qu it」をクリックします. <コマンドラインインタフェース> $ math Mathematica 9.0 for Linux x86 (64-bit) Copyright 1988-2013 Wolfram Research, Inc. In[1]:= (終了する場合はQuitを入力します) 7.14 Maple バージョン16.02を使用できます. 1.[起動方法] 次のコマンドで起動します. <グラフィックユーザインタフェース> $ xmaple 終了は,メニューバーから「File」を選択し「Exit」をクリックします. <コマンドラインインタフェース> > maple |\^/| Maple 16 (X86 64 LINUX) ._|\| |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 2012 \ MAPLE / All rights reserved. Maple is a trademark of <____ ____> Waterloo Maple Inc. | Type ? for help. > (終了する場合はquitを入力します) 7.15 AVS/Express バージョン8.0を使用できます. 1.[起動方法] 次のコマンドで起動します. $ xp 終了は,メニューバーから「File」を選択し「Exit」をクリックします. 7.16 AVS/Express PCE バージョン8.0 Rev.Bを使用できます. 1.次のコマンドを入力し,AVS/Express PCE 専用サーバにログインします. $ ssh -Y 172.17.230.55 -l USER-ID 2.次のコマンドにより,起動します. $ para_start <コア数> 7.17 EnSight バージョン10.0.2(g)を使用できます. 1.[起動方法] 次のコマンドで起動します. $ ensight100 終了は,メニューバーから「File」を選択し「Quit」をクリックします. 7.18 MATLAB バージョンR2013aを使用できます. 1.[起動方法] 次のコマンドで起動します. <グラフィックユーザインタフェース> $ matlab 終了する場合は,[File]-[Exit]を選択してください. <コマンドラインインタフェース> $ matlab -nodisplay < M A T L A B (R) > Copyright 1984-2013 The MathWorks, Inc. R2013a (8.1.0.604) 64-bit (glnxa64) February 15, 2013 To get started, type one of these: helpwin, helpdesk, or demo. For product information, visit www.mathworks.com. >> (終了する場合はexitを入力します) 7.19 LS-DYNA バージョン971 R6を使用できます. 1.[インタラクティブ実行] $ smpdynas i=<入力ファイル> 2.[PBSジョブ投入] (1).シングルジョブ (a).投入シェル準備 $ cat test_smpdynas.sh #!/bin/bash cd ${PBS_O_WORKDIR} smpdynas i=<入力ファイル> -----------------------------------$ chmod +x test_smpdynas.sh (b).ジョブ投入 $ t2sub <グループ,キュー等指定> test_smpdynas.sh (2).MPIジョブ投入 MPIジョブはノード内並列のみ対応しています. (a).投入シェル準備 $ cat test_mppdynas.sh #!/bin/bash cd ${PBS_O_WORKDIR} mpirun -np <CPU数> mppdynas i=<入力ファイル> -----------------------------------$ chmod +x test_mppdynas.sh (b).ジョブ投入 ノード内並列のみです. $ t2sub -l select=1:ncpus=<CPUS数> <グループ,キュー等指定> test_mppdynas.sh 8. free アプリケーション 本章は,2010年11月から稼働を開始した「TSUBAME2」に用意されているフリーアプリケーションの手引きとして作成して います. • GROMACS • povray • thinker • GAMESS • platex • Tgif •R • gnuplot 利用にあたっては,開発元の提供している情報を確認してください. 8.1 GROMACS GROMACS はバージョン4.0.7を使用できます.GCC,PGIコンパイラ,INTELコンパイラで 作成されたバージョンが使えます. 実行する前に以下のように環境変数をセットします. $ source /usr/apps/free/env/gromas_p-vars.sh PGI版利用時 $ source /usr/apps/free/env/gromas_g-vars.sh GCC版利用時 $ source /usr/apps/free/env/gromas_i-vars.sh INTEL版利用時 Grompp での処理終了後,mdrunで計算を行います. 1.[インタラクティブ実行] (1). シングル実行 $ mdrun-s -s XX.tpr -o XX.trr -c XX.gro -v -g ログファイル (2). MPI実行 $ mpirun -np CPU 数 mdrun -s XX.tpr -o XX.trr -c XX.gro -v -g ログファイル 2.[PBSジョブ投入] (1).シングルジョブ (a).投入シェル準備 $ cat testgro.sh #!/bin/sh source /usr/apps/free/env/gromas_p-vars.sh mdrun-s -s XX.tpr -o XX.trr -c XX.gro -v $ chmod +x testgro.sh (b).ジョブ投入 $ t2sub <グループ,キュー等指定> testgro.sh (2).MPIジョブ投入 (a).投入シェル準備 $ cat testgro.sh #!/bin/sh source /usr/apps/free/env/gromas_p-vars.sh mpirun -np CPU数 -hostfile $PBS_NODEFILE mdrun -s XX.tpr -o XX.trr -c XX.gro -v $ chmod +x testgro.sh (b)ジョブ投入 $ t2sub <グループ,キュー等指定> -l select=4 testgro.sh 8.2 POV-Ray 1.[インタラクティブノードでの実行] (1).1CPU 利用時 $ povray [オプション] 入力ファイル [オプション] ※新しい版(3.7.0rc7)も利用できます. /usr/apps/free/povray/3.7.0rc7/bin/povray [オプション] 入力ファイル [オプション] (2).複数 CPU 利用時 $ source /usr/apps/free/envsetompi-gcc.sh $ mpirun -mpi CPU 数 povray [オプション] 入力ファイル [オプション] 2.[PBSジョブ投入] (1).1CPU 利用時 $ cat > testpov.sh #!/bin/sh povray [オプション] 入力ファイル [オプション] $ chmod +x testpov.sh $ t2sub <グループ指定等> testpov.sh (2).複数 CPU 利用時 $ cat testpov.sh #!/bin/sh source /usr/apps/free/envsetompi-gcc.sh mpirun -np CPU数 -hostfile $PBS_NODEFILE povray [オプション] 入力ファイル [オプション] $ chmod +x testpov.sh $ t2sub <グループ指定等> testpov.sh ※複数CPU 利用時,並列出力が正常に出力されないため,並列版は3.5C 版が起動します. 8.3 Tinker 1.[インタラクティブノードでの実行] $ timer Coordinate_file Repetitions Hessian_Evaluations 2.[PBS ジョブ投入] $ cat testtinker.sh #!/bin/sh timer Coordinate_file Repetitions Hessian_Evaluations $ chmod +x testtinker.sh $ t2sub <キュー等指定> testtinker.sh 3.新しいバージョン 6.2.01を使用することができます.フルパスでご指定ください. /usr/apps/free/tinker/6.2.01_g/bin/timer 6.2.01_i_2013.0.079/bin/timer 6.2.01_i_2013.0.079_V/bin/timer 6.2.01_p_13.2/bin/timer (Vキュー専用) 8.4 GAMESS バージョン25 Mar 2010を使用できます. 現在フル機能を利用出来るバージョンとしてintel版をデフォルトとしています. 1.インタラクティブノードでの実行 (a).シングル $ export SCR=/work0/group-ID/USER-ID/scr $ rm $SCR/* $ rungms exam01 00 1 > exam01.log (b).4並列実行 $ rungms exam01 00 4 > exam01.log ※インタラクティブノードでの実行はノード内4並列までです.必ずスクラッチディレクトリの設定をしてください. 無指定の 場合は $HOME/scrに自動的に作成されます. /home は指定しないようにお願いいたします. 2.PBS ジョブ (a).シェルの作成 $ cat > testgamess.sh #!/bin/sh cd ${PBS_O_WORKDIR} export SCR=$TMPDIR/scr rungms exam01 00 4 > exam01.log # (b).ジョブの投入 $ chmod +x testgamess.sh $ t2sub <キュー等指定> -l select=2:mpiprocs=2 testgamess.sh ※ シェル内の指定並列数とt2sub指定の総プロセス数が同じ場合のみ実行します. ※ GNU版を使用する場合は、実行シェル内でフルパスで指定してください. /usr/apps/free/gamess/25Mar2010_g/rungms exam01 00 8 > exam01.log などとなります. 3.違う版を使用する場合 現在、最新版として、25Oct2012 版もインストールされています. デフォルト版以外、例えば01 Oct 2010を使用する場 合は、フルパスで記述すれば使用できます. $ cat > testgamess.sh #!/bin/sh cd ${PBS_O_WORKDIR} export SCR=$TMPDIR/scr /usr/apps/free/gamess/01Oct2010_g/rungms exam01 00 4 > exam01.log # などとなります.利用できるのは以下になります. 25Mar2010_g gnu版 25Mar2010_i intel版(デフォルト) 01Oct2010_g gnu版 01Oct2010_i intel版 25Oct2012_g gcc版 25Oct2012_i_2013.0.079 intel版 25Oct2012_p_13.2 pgi版 8.5 platex 簡単な文書を作成してみましょう.始めにドキュメントを確認します. ファイル名を test.tex として,以下のように記述しました. nkf -w test.tex \documentclass{jarticle} \begin{document} 日本語TeXの練習をしています. 特に力を入れているのは \begin{itemize} \item きれいな文章 \item 判りやすい表現 \end{itemize} などです.それでは練習に入りましょう. \\それでは,長い文章を入力してみましょう.これは,どんな長さの文章でもtexが 調整してくれる事を確認するために行ないます.結構長くなりました.どんなもん でしょうか. \\\today \LaTeX \end{document} 早速 make してみます. platex test.tex これにより,test.dviというファイルができますので, xdvi test.dvi 画面が表示されました.続いて, dvips test.dvi とコマンドをたたくと,test.psというポストスクリプトファイルが生成されます. gv test.ps 作成したポストスクリプトファイルを見ることができます. TSUBAMEから直接接続したプリンターはありませんので,直接の印刷はできません. 8.6 Tgif このアプリは[フォアグラウンド] でのみ実行します.また, GUIアプリなので,X環境が必要です.日本語入力をする場合には, 日本語表示をするためにX環境に必要な日本語フォントを設定するが必要があります. 起動シェルは,localeは日本語環境設定の場合に,日本語メニューを 表示しますが,localeは日本語以外の場合は英語版を 起動します. 日本語を使用する場合は,次の環境変数を設定します. $ export LANG=ja_JP.eucjp アプリ本体を起動します.先の環境変数によって英語版,日本語版版が起動します. $ tgif 8.7 R Rは使い方により,実行方法が違いますので,以下から利用方法に合わせて選択してください. 1.single (1).対話式 $ R R version 2.11.1 (2010-05-31) : > 1+2 [1] 3 >q() Save workspace image? [y/n/c]:n (2).バッチ式 $ R CMD BATCH test.R (3).PBSジョブ $ cat > testR.sh #!/bin/sh R CMD BATCH test.R $ chmod +x testR.sh $ t2sub <specifying group, queue, etc.> testR.sh 2.ノード内並列 始めにパスを通します. $ source /usr/apps/free/env/setompi-pgi.sh (1).対話式 $ R R version 2.11.1 (2010-05-31) : > library(snow) > library(pvclust) > cl <- makeCluster(2,"MPI") : q() (2).バッチ式 $ R CMD BATCH testmpi.R 3.ノード間並列ジョブ (1).シェルを準備 $ cat test.sh #!/bin/sh source /usr/apps/free/env/Rvars_pgi.sh RMPISNOW CMD BATCH test.R $ cat testpbs.sh #!/bin/sh source /usr/apps/free/env/Rvars_pgi.sh mpirun -np <CPUs> -hostfile $PBS_NODEFILE RMPISNOW CMD BATCH test.R (2).実行 (a).会話型実行 $ mpirun -np 4 ./test.sh (b).PBSバッチ投入例: $ t2sub -l select=4 -l:place=scatter ./testpbs.sh ※ここのtest.R中にgetclusterで指定MPI並列数で実行 4.最新版の利用 gcc版のみですが、3.0.0がインストールされています.フルパスで指定してください. > /usr/apps/free/R/3.0.0_g/bin/R R version 3.0.0 (2013-04-03) -- "Masked Marvel" : 8.8 gnuplot gnuplotはX-windowを使用していますので,必ずssh -Y で接続してください. では,早速使ってみましょう. $ gnuplot G N U P L O T Version 4.2 patchlevel 3 last modified Mar 2008 System: Linux 2.6.16.60-0.21-smp Copyright (C) 1986 - 1993, 1998, 2004, 2007, 2008 Thomas Williams, Colin Kelley and many others Type `help` to access the on-line reference manual. The gnuplot FAQ is available from http://www.gnuplot.info/faq/ Send bug reports and suggestions to <http://sourceforge.net/projects/gnuplot> Terminal type set to 'x11' gnuplot> plot sin(x) 終了する場合は gnuplot> quit としてください. 改版履歴 版数 日付 項目 内容 version 1.0 2010年 10月 29日 -- 初版作成 version 1.1 2010年 11月 10日 5.3.2 加筆・修正(スレッドの扱い) version 1.1 2010年 11月 19日 6.3/7.8/8.7 誤記修正(サンプル修正) version 1.2 2010年 11月 25日 MPI/Vキュー/6.7 加筆・修正(Vキュー環境の 追記) version 1.2 2010年 11月 30日 3.5.3/SSD/5.6/誤表記 加筆・修正(Vキュー環境の 追記) version 1.2 2010年 12月 2日 4.6.4 サンプルの修正 version 1.2 2010年 12月 6日 4.9.2 macからの利用を追記 version 1.2 2010年 12月 17日 5.5/3章 誤記修正/Windowsの記 述修正 version 1.2 2010年 12月 21日 6.1.2/6.6.1-4 ライブラリ/プロファイラ/デ バッカ version 1.2 2010年 12月 28日 2.2/5.5 誤記修正/メモリサイズの記 述修正 version 1.2 2011年 1月 11日 4.5.6/6.1.5 注意点の追記/PGI11の追 記 version 1.2 2011年 1月 17日 3章 メモリ制限6G/Sキューの増 加注釈 version 1.2 2011年 1月 27日 3.1.3 S96/L128係数の修正 version 1.2 2011年 1月 28日 5.6/5.9 誤記修正/SSH直接ログイ ン記述修正 version 1.2 2011年 2月 15日 2.2.1 Turbo Boost追記 version 1.2 2011年 2月 28日 4.6.4 SSD利用の注意を加筆 version 1.2 2011年 3月 8日 3.4/5.1/5.3 GPUジョブの記述を修正・ 追加 version 1.3 2011年 4月 1日 2章/3章/5章/7章 キューの追加/アプリバージョ ンアップ version 1.3 2011年 5月 6日 6.5.2/6.6.5/8.4 CULA/totalview/gamess version 1.3 2011年 5月20日 3.1.5/4.6.2/6.6.6 ノード内並列/GPFS/vtune の項目追加 version 1.3 2011年 6月23日 3.1.6 制限一覧の追加 version 1.3 2011年 7月12日 3.1/4.2 ログイン方法の修正 version 1.3 2011年 7月28日 3.4/6.5/6.1.6 ログイン方法の修正/ドキュ メント閲覧 version 1.3 2011年 7月29日 6.1.6 ドキュメント閲覧 version 1.3 2011年 8月15日 6.5/3.3.1/5.2 GPU/マシンタイプ/ジョブ 投入 version 1.3 2011年 8月23日 6.1/6.2 MPIジョブ投入の資源指定 version 1.3 2011年10月28日 6.1.5/6.5.5 MPI+cudaでのコンパイル version 1.3 2011年11月14日 6.5.3/6.5.4 PGI cudaコンパイラ version 1.3 2011年12月20日 4.5.9/6.1.5 課金グループ/pgiの戻し version 1.3 2012年1月5日 3.2.2 MVAPICH2環境変数の追 記 version 1.3 2012年1月16日 2章/3.4 記述更新/ABAQUSのGPU 対応 version 1.3 2012年1月20日 2/3/4章 記述更新 version 1.3 2012年2月1日 3/4章 他のドキュメントを取り込み 記載 version 1.3 2012年2月3日 4.6.5 ローカルスクラッチ version 1.3 2012年2月17日 4.6.6 ローカルスクラッチ(MPI) version 1.3 2012年2月23日 6.6.7 papiの使用 version 1.3 2012年2月29日 6 pgi12.2の使用 version 1.4 2012年4月2日 isvバージョン isvアプリのアップデート version 1.4 2012年4月5日 /work1 /work1の利用および制限 version 1.4 2012年4月10日 /6 pgi 12.3 の使用 version 1.4 2012年4月20日 2.4 ストレージの特徴 version 1.4 2012年5月10日 6.1.5 pgi 12.4 追記 version 1.4 2012年5月21日 3.5 誤記修正(mpi) version 1.4 2012年5月30日 5.7.4 mail 詳細を追記 version 1.4 2012年6月29日 2/3/4 英語版と同期 version 1.4 2012年7月20日 6.1.5 pgi 12.5 追記 version 1.4 2012年7月24日 6.1.5 intel compiler Cluster St udio XE 12.1.0.233 追記 version 1.4 2012年8月17日 4.6.7 ストレージの注意点 追記 version 1.4 2012年8月21日 6.1.5 pgi 12.8 追記 version 1.4 2012年9月26日 6.1.5 pgi 12.9 追記, intel comp iler 2013.0.079 追記 version 1.4 2012年10月1日 3.1.3/3.1.6/3.5.2 L128ノード数 更新 version 1.4 2012年10月25日 4.6.8 I/Oノード追記 version 1.4 2012年10月31日 5.3.6 誤記修正 version 1.4 2012年11月1日 6.1.5 pgi 12.10 追記 version 1.4 2012年11月9日 4.5.1 実行権追記 version 1.4 2012年11月21日 3.1.3/3.1.4 Gキューの注意書 version 1.4 2012年11月30日 7.8 AMBER Vキューを投入先と する場合の環境変数設定 方法 追記 version 1.4 2012年12月3日 3.1.4 G キューのジョブ本数制限 version 1.4 2012年12月10日 5.3.8 ハイブリット並列 version 1.4 2012年12月19日 3.5.1 予約キューの利用 version 1.4 2013年1月28日 5.4 予約(Hキューの利用) t2rst at コマンド 追記 version 1.4 2013年2月1日 3.1.7/5.2.1 Xキューの利用時間 version 1.4 2013年2月4日 2/3/4/6章 記述更新(制限など) version 1.4 2013年2月14日 5.2.2 PBSオプション version 1.5 2013年4月2日 3、6章 isvバージョン version 1.5 2013年4月12日 6.3 mpiコンパイラ(pgi) version 1.5 2013年4月17日 3.5.3 ストレージサービス追記 version 1.5 2013年4月22日 6.1.5 pgi13.4追記 version 1.5 2013年5月9日 6.6 pgprof修正 version 1.5 2013年5月13日 6.1.5 pgi13.5 version 1.5 2013年5月14日 6.5 nvcc のパーション表示 version 1.5 2013年6月20日 8章 free apps のパーションアッ プ version 1.5 2013年7月2日 5,6 PDF表示の修正 version 1.5 2013年8月1日 6.1.5 pgi13.7追記
© Copyright 2025 Paperzz