1. TSUBAME2.0 通 常 実 行 まで 1.1. 環 境 設 定 (MPI ライブラリ&コンパイラ) 最 新 の Open MPI と Intel コンパイラを 使 用 するため,${HOME}/.bashrc 等 で 環 境 変 数 (パス 等 )を 設 定 します. ~ 設 定 例 ~



Similar documents
1. TSUBAME2.0 通常実行まで 1.1. 環境設定 (MPI ライブラリ & コンパイラ ) 最新の Open MPI と Intel コンパイラを使用するため,${HOME}/.bashrc 等で環境変数 ( パス等 ) を設定します. ~ 設定例 ~ export SELECT_MPI

1. TSUBAME2.5 通常実行まで 1.1. 環境設定 (MPI ライブラリ & コンパイラ ) まずは para-tcci で使用する環境変数を.bashrc に定義します. 後述の Scalasca で OpenMPI を使用するため, ここでも最新の OpenMPI と Intel コン

(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)

01_07_01 データのインポート_エクスポート_1

スライド 1

ファイルサーバー(NFS) 構築ガイド

以 下 に 手 順 の 流 れを 記 載 します 3ページ 以 降 で 各 項 目 の 手 順 を 説 明 します ( をクリックすると 該 当 ページにジャンプします ) また 4ページに 汎 用 データ 受 入 に 関 するよくあるお 問 い 合 わせをご 紹 介 しています Step (3ペー

<4D F736F F D B796EC8CA7835C F815B E646F63>

電子納品チェックシステム利用マニュアル

ユーザーガイド

POWER EGG V2.01 ユーザーズマニュアル ファイル管理編

以 下 に 手 順 の 流 れを 記 載 します 3ページ 以 降 で 各 項 目 の 手 順 を 説 明 します ( をクリックすると 該 当 ページにジャンプします ) また 15ページに 汎 用 データ 受 入 に 関 する よくあるお 問 い 合 わせをご 紹 介 しています Step1 (

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

03_主要処理画面.xlsx

購買ポータルサイトyOASIS簡易説明書 b

目 次 1.はじめに 1-1. はじめに 2. 操 作 2-1. 概 要 2-2. 操 作 方 法 ( 調 査 依 頼 の 確 認 ) 2-3. 操 作 方 法 ( 回 答 登 録 ) 2-4. 操 作 方 法 (ワークシート 出 力 ) 2-5. 操 作 方 法 (ワークシート 取 込 ) 3.

「給与・年金の方」からの確定申告書作成編

事前チェック提出用現況報告書作成ツール入力マニュアル(法人用)

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

R4財務対応障害一覧

目 次 1. Web メールのご 利 用 について Web メール 画 面 のフロー 図 Web メールへのアクセス ログイン 画 面 ログイン 後 (メール 一 覧 画 面 ) 画 面 共 通 項 目

5-2 一 般 ユーザー 用 :メール 2 送 信 者 のリンクをクリックすると 受 信 メールの 内 容 を 見 ることができます 受 信 メール 内 容 画 面 項 目 送 信 者 宛 先 CC 本 文 (テキスト) 本 文 (HTML) メールアドレスのリンクをクリックするとアドレス 帳 へ

XML形式の電子報告書作成に当たっての留意事項

預 金 を 確 保 しつつ 資 金 調 達 手 段 も 確 保 する 収 益 性 を 示 す 指 標 として 営 業 利 益 率 を 採 用 し 営 業 利 益 率 の 目 安 となる 数 値 を 公 表 する 株 主 の 皆 様 への 還 元 については 持 続 的 な 成 長 による 配 当 可

2 出 願 資 格 審 査 前 記 1の 出 願 資 格 (5) 又 は(6) により 出 願 を 希 望 する 者 には, 出 願 に 先 立 ち 出 願 資 格 審 査 を 行 いますので, 次 の 書 類 を 以 下 の 期 間 に 岡 山 大 学 大 学 院 自 然 科 学 研 究 科 等

目 次 1. 大 学 情 報 データベースシステムの 使 用 方 法 について EXCEL 一 括 登 録 EXCEL ダウンロード 検 索 条 件 の 指 定 プレビュー EXCEL ダウンロード(データ 抽 出 あ

4 応 募 者 向 けメニュー 画 面 が 表 示 されます 応 募 者 向 けメニュー 画 面 で [ 交 付 内 定 時 の 手 続 を 行 う] [ 交 付 決 定 後 の 手 続 を 行 う]をクリックします 10

研究者情報データベース

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

返還同意書作成支援 操作説明書

資料 H3ロケットへの移行に関する課題と対応

SchITコモンズ【活用編】

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

5-2.操作説明書(支店連携)_xlsx

HDC-EDI BaseのAny変換における閏年の取り扱いに関する重要なお知らせ

1 はじめに 1.1 アドインの 機 能 このツールは Microsoft Excel 用 のアドインです 本 アドインには 下 記 の 機 能 があります スペルと 文 章 のチェック 機 能 Microsoft Word の スペルチェックと 文 章 校 正 の 機 能 を 使 用 して Exc

JTCCM製品認証審査要綱

Transcription:

プロファイルツール 実 行 例 アプリ GT5D 2013 年 8 月 26 日 日 本 電 気 株 式 会 社 0. はじめに 本 ドキュメントでは,アプリ GT5D におけるプロファイルツール 連 携 の 作 業 履 歴 を 記 載 します. 目 次 1. TSUBAME2.0 通 常 実 行 まで... 2 1.1. 環 境 設 定 (MPI ライブラリ&コンパイラ)... 2 1.2. コンパイルとソース 修 正... 2 1.2.1. Makefile の 修 正... 2 1.2.2. OpenMP 指 示 行 の 修 正... 3 1.3. バッチジョブ 実 行... 5 1.4. 実 行 結 果 の 確 認... 6 2. TSUBAME2.0 Scalasca 連 携 実 行... 7 2.1. Scalasca 環 境 設 定... 7 2.2. Scalasca 連 携 コンパイル... 7 2.2.1. コンパイラの 設 定... 7 2.2.2. MAIN プログラムの 書 式... 8 2.2.3. プリプロセスの 分 離... 9 2.2.4. OpenMP 指 示 行 中 のプリプロセッサ 命 令... 10 2.2.5. OpenMP 指 示 行 ( 継 続 行 )の 誤 認 識... 11 2.3. Scalasca 連 携 プログラム 実 行... 12 2.4. Scalasca 連 携 実 行 結 果 の 表 示 ( 可 視 化 )... 13 2.5. その 他 ( 未 完 了 項 目 )... 14-1 -

1. TSUBAME2.0 通 常 実 行 まで 1.1. 環 境 設 定 (MPI ライブラリ&コンパイラ) 最 新 の Open MPI と Intel コンパイラを 使 用 するため,${HOME}/.bashrc 等 で 環 境 変 数 (パス 等 )を 設 定 します. ~ 設 定 例 ~ export SELECT_MPI=/usr/apps/openmpi/1.6.3/intel export PATH=${SELECT_MPI}/bin:$PATH export LD_LIBRARY_PATH=${SELECT_MPI}/lib:$LD_LIBRARY_PATH 2013 年 8 月 現 在,デフォルトの Intel コンパイラの ver.は 13.0 です. 1.2. コンパイルとソース 修 正 TSUBAME2.0 環 境 におけるプログラム 移 植 のための 修 正 を 記 載 します. 1.2.1. Makefile の 修 正 TSUBAME2.0 環 境 に 合 わせて,コンパイラおよびオプションの 修 正 を 行 います.ソースコード 環 境 に 含 まれている Makefile.intel の 内 容 を 参 考 にして, Makefile を 作 成 しました. ~ 修 正 後 :Makefile~.SUFFIXES:.f.o fc = mpif90 cflag = -openmp -O3 -xhost -r8 -ipo -shared-intel -mcmodel=large -fpp -DMPI2=0 -DFFT_MKL -DBX -DFLATDIR -I$(MKLROOT)/include libs = -mkl=parallel.f.o: $(fc) $(cflag) -c $< obj = main.o init.o cip.o col.o bvector.o fem.o src.o diag.o tool.o time.o asrc.o all: mkl_dfti $(obj) $(fc) $(cflag) -o GT5D $(obj) $(libs) mkl_dfti: ifort -c $(MKLROOT)/include/mkl_dfti.f90 clean:: rm -f./*.o./*.mod core GT5D MKL の include ディレクトリに 含 まれているモジュールを, 準 備 しておく 必 要 があります. - 2 -

1.2.2. OpenMP 指 示 行 の 修 正 TSUBAME2.0(Intel コンパイラ) 環 境 では, 一 部 の OpenMP 指 示 行 が 原 因 で 結 果 不 正 が 発 生 してい ました.エラー 発 生 箇 所 を 調 査 した 結 果, 以 下 の 2 つの 問 題 点 が 見 つかりました. PRIVATE 属 性 の 追 加 漏 れ 不 要 な REDUCTION 節 の 記 述 ~ 修 正 前 :diag.f(140 行 目 付 近 )~!$OMP PARALLEL DO PRIVATE(j,i)!FRT 最 内 側 のループ 変 数 kの 指 定 が 必 要 do i = 1,nx do j = 1,ny do k = 1,nz dwk(i,j,k,1) = phd(i,j,k) vxa(j,i)=vxa(j,i)+vx1(k,j,i)/dble(nz) vya(j,i)=vya(j,i)+vy1(k,j,i)/dble(nz) enddo enddo enddo!fj>!$omp PARALLEL DO DEFAULT(NONE)!$OMP&REDUCTION(+:wk) iループで 並 列 化 する 場 合,wkはREDCTION 処 理 にならない!$OMP& PRIVATE(i,j,k,l,dzz,vp,v,hk,ff,vx,vy)!$OMP& SHARED(bbs,vx1,vy1,vxa,vya,bb,dww,vy0,vx0,f,w)!fj< do i = 1,nx dzz=dv*dww*2*pi*ami/b0**2 do j = 1,ny vp = dsqrt(bb(i,j)/b0)*w do k = 1,nz do l = 1,nv v = (l-nv/2-0.5d0)*dv hk = 0.5*ami*(v**2+vp**2) ff = f(l,k,j,i) wk(i,j,k,2) = wk(i,j,k,2)+ff*dzz*bbs(i,j,l) wk(i,j,k,3) = wk(i,j,k,3)+ff*dzz*bbs(i,j,l)*v wk(i,j,k,4) = wk(i,j,k,4)+ff*dzz*bbs(i,j,l)*hk - 3 -

~ 修 正 後 :diag.f(140 行 目 付 近 )~!$OMP PARALLEL DO PRIVATE(k,j,i)!FRT do i = 1,nx do j = 1,ny do k = 1,nz dwk(i,j,k,1) = phd(i,j,k) vxa(j,i)=vxa(j,i)+vx1(k,j,i)/dble(nz) vya(j,i)=vya(j,i)+vy1(k,j,i)/dble(nz) enddo enddo enddo!fj>!$omp PARALLEL DO DEFAULT(NONE)!$OMP& PRIVATE(i,j,k,l,dzz,vp,v,hk,ff,vx,vy)!$OMP& SHARED(bbs,vx1,vy1,vxa,vya,bb,dww,vy0,vx0,f,w,wk)!fj< do i = 1,nx dzz=dv*dww*2*pi*ami/b0**2 do j = 1,ny vp = dsqrt(bb(i,j)/b0)*w do k = 1,nz do l = 1,nv v = (l-nv/2-0.5d0)*dv hk = 0.5*ami*(v**2+vp**2) ff = f(l,k,j,i) wk(i,j,k,2) = wk(i,j,k,2)+ff*dzz*bbs(i,j,l) wk(i,j,k,3) = wk(i,j,k,3)+ff*dzz*bbs(i,j,l)*v wk(i,j,k,4) = wk(i,j,k,4)+ff*dzz*bbs(i,j,l)*hk - 4 -

1.3. バッチジョブ 実 行 コンパイルして 作 成 した 実 行 モジュール GT5D と, 配 布 されたデータ 一 式 を 使 用 して,バッチ ジョブを 実 行 します. 問 題 サイズは 以 下 の 通 りで, 性 能 計 測 モード(ifdbg=1)で 実 行 しました. ~ 使 用 ケース~ 問 題 サイズ 並 列 数 分 割 設 定 ステップ 数 (nnx,nny,nnz,nnv,npw)=(120,120,32,64,4) 32ノード(MPI 64プロセス OpenMP 6スレッド (npx,npy,npw)=(4,4,4) nt=100 ~バッチジョブスクリプト(go.sh)~ #!/bin/bash cd ${PBS_O_WORKDIR} export OMP_NUM_THREADS=6 mpirun -np 64 --report-bindings -bysocket -cpus-per-proc 6 -bind-to-core -x OMP_NUM_THREADS -hostfile ${PBS_NODEFILE}./GT5D >&./log.mpi 作 業 ディレクトリと 同 じパス(PBS_O_WORKDIR)に 移 動 し,mpirun を 実 行 します. 環 境 変 数 OMP_NUM_THREADS は,mpirun の -x オプションで 全 プロセスに 渡 します. TSUBAME2.0(westmere)は,6 コア*2 ソケットの 計 12 個 の 物 理 的 CPU 構 成 となっています. bind に 関 する 記 述 は Open MPI のオプションであり,ハイブリッド 実 行 時 の 各 プロセスをソ ケット 毎 に 割 り 当 てる 設 定 となります. その 他,バッチジョブの 詳 細 については 省 略 します( 詳 細 はマニュアルにて) ~バッチジョブ 投 入 方 法 ~ % t2sub -q S -W group_list=t2g-hp120261 -l walltime=01:00:00 -l select=32:ncpus=6:mpiprocs= 2:mem=50gb -l place=scatter./go.sh -q でキュー 名, -W group_list でグループ 名 を 指 定 します(ワークショップ 用 リソー ス,およびアプリ FS の 課 題 番 号 の 情 報 に 基 づいて 設 定 します) -l select=32:ncpus=6:mpiprocs=2:mem=50gb -l place=scatter で,2 プロセス&50GB のチャンクを 32 個 分 確 保 します. 結 果 的 に,32 ノード,MPI 64 プロセスの 実 行 の 設 定 と なります. 使 用 時 間 ( 上 限 )は, -l walltime で 設 定 します. その 他,バッチジョブの 詳 細 については 省 略 します( 詳 細 はマニュアルにて) - 5 -

1.4. 実 行 結 果 の 確 認 バッチジョブのログ(OTHERS.e*,OTHERS.o*)と mpirun の 実 行 ログ(log.mpi)を 確 認 し,プログラ ムが 問 題 なく 動 作 していることを 確 認 しました. ~ 実 行 ログ(log.mpi) 抜 粋 ~ : subroutine costs(msec) init 7202.70068359375 dn 2.22922119140625 field 29.0511230468750 drift 4.64650878906250 l4d_nl 19.8482055664062 l4d_l 230.803220214844 rk 498.912287597656 bc 159.725722656250 col 153.361323242187 asrc 0.104199218750000 out 1.391601562500000E-004 1step 1098.68195068359 end 0.000000000000000E+000 communication costs(msec) total 1098.68195068359 calc 941.514101028442 comm 157.167849655151 : - 6 -

2. TSUBAME2.0 Scalasca 連 携 実 行 2.1. Scalasca 環 境 設 定 Scalasca は,アプリ FS 共 用 にインストールしたパッケージを 使 用 します. 節 1.1 の 環 境 設 定 に 加 えて,${HOME}/.bashrc 等 で 環 境 変 数 (パス 等 )を 設 定 します. ~ 設 定 例 ~ export PATH=/work1/t2g-hp120261/fs_share_tool/scalasca-1.4.3/bin:${PATH} export PAPI_ROOT=/work0/GSIC/apps/papi-5.0.0 export PATH=${PATH}:${PAPI_ROOT}/bin export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PAPI_ROOT}/lib export LIBRARY_PATH=${LIBRARY_PATH}:${PAPI_ROOT}/lib export FPATH=${FPATH}:${PAPI_ROOT}/include export CPATH=${CPATH}:${PAPI_ROOT}/include export MANPATH=${MANPATH}:${PAPI_ROOT}/man 2013 年 8 月 現 在,Scalasca は ver.1.4.3 がインストールされています. HW カウンタの 情 報 は,PAPI を 利 用 して 採 取 しています.PAPI の 環 境 設 定 は 不 要 ですが, 異 なる PAPI の ver.を 設 定 している 場 合 には, 削 除 する 必 要 があります. 2.2. Scalasca 連 携 コンパイル 2.2.1. コンパイラの 設 定 Scalasca を 利 用 したコンパイルは, 基 本 的 には mpif90 等 コンパイラのコマンドの 前 に scalasca -instrument (もしくは 短 縮 形 skin )を 追 加 するのみです.Makefile の 該 当 部 分 を 修 正 しました. ~ 修 正 前 :Makefile~.SUFFIXES:.f.o fc = mpif90 cflag = -openmp -O3 -xhost -r8 -ipo -shared-intel -mcmodel=large -fpp -DMPI2=0 -DFFT_MKL -DBX -DFLATDIR -I$(MKLROOT)/include : ~ 修 正 後 :Makefile~.SUFFIXES:.f.o fc = skin mpif90 cflag = -openmp -O3 -xhost -r8 -ipo -shared-intel -mcmodel=large -fpp -DMPI2=0 -DFFT_MKL -DBX -DFLATDIR -I$(MKLROOT)/include : - 7 -

2.2.2. MAIN プログラムの 書 式 MAIN プログラムをコンパイル 時,Scalasca が 行 うソースコードの 変 換 によってコンパイルエラ ーが 発 生 します(メッセージ 中 に,pomp や opari といったキーワードが 含 まれる).Scalasca の 字 句 解 析 を 妨 げる 要 因 として,MAIN プログラム 中 に 以 下 の 2 つの 問 題 点 が 見 つかりました. 先 頭 に PROGRAM ~ の 記 述 がない 最 後 の END の 直 前 ( 正 常 終 了 時 )に STOP 文 が 存 在 する ~ 修 正 前 :main.f~ #ifdef HDF5 use hdf5 #endif implicit real*8 (a-h,o-z) include "paramlist.f" include "mpif.h" dimension : 中 略 call mpi_finalize(ierr) stop end ~ 修 正 後 :main.f~ program fs_gt5d #ifdef HDF5 use hdf5 #endif implicit real*8 (a-h,o-z) include "paramlist.f" include "mpif.h" dimension : 中 略 C call mpi_finalize(ierr) stop end - 8 -

2.2.3. プリプロセスの 分 離 コンパイルと 同 時 にプリプロセス(cpp,fpp 等 )を 行 うプログラムでは,Scalasca 連 携 のコンパ イルが 正 常 に 動 作 しない 場 合 に,プリプロセスとコンパイルを 分 離 して 再 実 行 します. アプリ GT5D では,Makefile に 以 下 の 変 更 を 加 えることで,プリプロセスの 分 離 を 実 現 しま した. コマンドおよびオプションを, 各 々プリプロセス 用 とコンパイル 用 に 分 類 する オブジェクト(*.o) 作 成 部 分 を 2 段 階 (プリプロセス コンパイル)に 処 理 する ~ 修 正 後 :Makefile~.SUFFIXES:.f.o fc = skin mpif90 cflag1 = -openmp -O3 -xhost -r8 -ipo -shared-intel -mcmodel=large -I$(MKLROOT)/include cflag2 = -P -C -traditional -DMPI2=0 -DFFT_MKL -DBX -DFLATDIR libs = -mkl=parallel.f.o: cpp $(cflag2) $*.f > $*.fsapp.f $(fc) $(cflag1) -o $*.o -c $*.fsapp.f obj = main.o init.o cip.o col.o bvector.o fem.o src.o diag.o tool.o time.o asrc.o all: mkl_dfti $(obj) $(fc) $(cflag1) -o GT5D $(obj) $(libs) mkl_dfti: ifort -c $(MKLROOT)/include/mkl_dfti.f90 clean:: rm -f./*.o./*.mod core GT5D *.fsapp.f - 9 -

2.2.4. OpenMP 指 示 行 中 のプリプロセッサ 命 令 Scalasca の 字 句 解 析 を 妨 げる 要 因 として,OpenMP 指 示 行 の 中 にプリプロセッサ 命 令 (ifdef)が 存 在 する 箇 所 がありました.Scalasca を 使 用 する 場 合 にはエラーとなるため, 当 該 部 分 の 条 件 文 の 真 偽 に 従 って,プリプロセッサ 命 令 の 削 除 を 行 いました. ~ 修 正 前 :cip.f(1353 行 目 付 近 )~!$OMP PARALLEL DO DEFAULT(NONE)!$OMP& REDUCTION(+:df2,dfc)!$OMP& PRIVATE(i,j,k,l,b0s)!$OMP& PRIVATE(vxl,vxr,vyl,vyr,vzl,vzr,vvl,vvr)!$OMP& PRIVATE(vxl2,vxr2,vyl2,vyr2,vzl2,vzr2,vvl2,vvr2)!$OMP& PRIVATE(fxl,fxr,fyl,fyr,fzl,fzr,fvl,fvr)!$OMP& PRIVATE(fxl2,fxr2,fyl2,fyr2,fzl2,fzr2,fvl2,fvr2)!$OMP& PRIVATE(flx,fly,flz,flv)!$OMP& PRIVATE(flx2,fly2,flz2,flv2)!$OMP& PRIVATE(flow)!$OMP& PRIVATE(dxi,dzi)!$OMP& PRIVATE(dx2i,dz2i) #ifdef FX1!$OMP& PRIVATE(fl_wk) #endif!$omp& SHARED(if5d,bbs,rg,vx,vy,vz,vv,f,df,fc,adt,ca)!$OMP& SHARED(dx2,dy2,dz2,dv2)!$OMP& SHARED(cxi,dyi,czi,dvi)!$OMP& SHARED(cx2i,dy2i,cz2i,dv2i)!$OMP& SHARED(cc1,cc2)!$OMP& SCHEDULE(static,1) do i = 1,nx ~ 修 正 後 :cip.f(1353 行 目 付 近 )~!$OMP PARALLEL DO DEFAULT(NONE)!$OMP& REDUCTION(+:df2,dfc)!$OMP& PRIVATE(i,j,k,l,b0s)!$OMP& PRIVATE(vxl,vxr,vyl,vyr,vzl,vzr,vvl,vvr)!$OMP& PRIVATE(vxl2,vxr2,vyl2,vyr2,vzl2,vzr2,vvl2,vvr2)!$OMP& PRIVATE(fxl,fxr,fyl,fyr,fzl,fzr,fvl,fvr)!$OMP& PRIVATE(fxl2,fxr2,fyl2,fyr2,fzl2,fzr2,fvl2,fvr2)!$OMP& PRIVATE(flx,fly,flz,flv)!$OMP& PRIVATE(flx2,fly2,flz2,flv2)!$OMP& PRIVATE(flow)!$OMP& PRIVATE(dxi,dzi)!$OMP& PRIVATE(dx2i,dz2i)!$OMP& SHARED(if5d,bbs,rg,vx,vy,vz,vv,f,df,fc,adt,ca)!$OMP& SHARED(dx2,dy2,dz2,dv2)!$OMP& SHARED(cxi,dyi,czi,dvi)!$OMP& SHARED(cx2i,dy2i,cz2i,dv2i)!$OMP& SHARED(cc1,cc2)!$OMP& SCHEDULE(static,1) do i = 1,nx - 10 -

2.2.5. OpenMP 指 示 行 ( 継 続 行 )の 誤 認 識 Scalasca の 字 句 解 析 では,OpenMP 指 示 行 の 継 続 行 の 内, 以 下 の 条 件 を 満 たすものについて,エ ラーが 発 生 していました. 適 宜,スペースを 追 加 してエラーが 回 避 できることを 確 認 しました. 継 続 行!$OMP& の 後 にスペースが 無 い 継 続 行 が FIRSTPRIVATE 節,または LASTPRIVATE 節 である. ~ 修 正 前 :src.f(133 行 目 付 近 )~!$OMP PARALLEL DO FIRSTPRIVATE(jl,il,i)!FRT!$OMP&LASTPRIVATE(jl,il,i,j,j0,i0,jj,ii)!FRT!$OMP& SCHEDULE(static,1) do jj=0,nncy+1 do ii=0,nncx+1 i0=imat(1,ii,jj) j0=imat(2,ii,jj) do j=-jmax,jmax do i=-imax,imax ~ 修 正 後 :src.f(133 行 目 付 近 )~!$OMP PARALLEL DO FIRSTPRIVATE(jl,il,i)!FRT!$OMP& LASTPRIVATE(jl,il,i,j,j0,i0,jj,ii)!FRT!$OMP& SCHEDULE(static,1) do jj=0,nncy+1 do ii=0,nncx+1 i0=imat(1,ii,jj) j0=imat(2,ii,jj) do j=-jmax,jmax do i=-imax,imax その 他,src.f,asrc.f に 複 数, 同 様 の 箇 所 があります. 尚,このエラーが 発 生 している 箇 所 では,FIRSTPRIVATE や LASTPRIVATE で 指 定 された 変 数 の 値 は, 並 列 化 ループ 内 でローカルに 使 用 しているため, 通 常 の PRIVATE 属 性 に 修 正 しています. - 11 -

2.3. Scalasca 連 携 プログラム 実 行 コンパイルして 作 成 した 実 行 モジュール GT5D と, 配 布 されたデータ 一 式 を 使 用 して,バッチ ジョブを 実 行 します. 使 用 するケースとジョブの 投 入 方 法 は, 節 1.3 の 通 常 実 行 と 同 じです( 性 能 計 測 モードにて 実 行 ). Scalasca を 利 用 したプログラム 実 行 は, 実 行 モジュール( 逐 次 )や mpirun(mpi 並 列 )コマンドの 前 に scalasca -analyze (もしくは 短 縮 形 scan )を 追 加 して 行 います. TSUBAME2.0 のバッチジョブでの 実 行 では,Scalasca と mpirun のオプションが 正 しく 識 別 できな いため,mpirun のオプションを (ダブルクォーテーション) で 囲 う 必 要 があります. 混 同 を 避 け るため,Scalasca 側 のオプションを 指 定 する 場 合 は, 設 定 ファイル(EPIK.CONF)に 書 くことをお 勧 め します. ~バッチジョブスクリプト(go.sh)~ #!/bin/bash cd ${PBS_O_WORKDIR} export OMP_NUM_THREADS=6 scan mpirun -np 64 "--report-bindings" "-bysocket -cpus-per-proc 6 -bind-to-core" "-x OMP_N UM_THREADS" "-hostfile ${PBS_NODEFILE}"./GT5D >&./log.mpi ~ 設 定 ファイル(EPIK.CONF)の 例 ~ EPK_TITLE=fs_gt5d アーカイブ 名 EPK_METRICS=PAPI_SP_OPS:PAPI_DP_OPS:PAPI_VEC_SP メトリックの 指 定 (PAPIプリセットイベント) ESD_BUFFER_SIZE=100000000 バッファサイズの 指 定 - 12 -

2.4. Scalasca 連 携 実 行 結 果 の 表 示 ( 可 視 化 ) X-window が 使 用 できるターミナルを 立 ち 上 げて, 出 力 されたアーカイブ(epik_*)に 対 して. scalasca -examine (もしくは 短 縮 形 square )を 実 行 します. ~コマンド 実 行 例 ~ % square epik_fs_gt5d ~ 表 示 画 面 ~ - 13 -

2.5. その 他 ( 未 完 了 項 目 ) ワークショップでは,TSUBAME/Scalasca がターゲットだが,VampirTrace および 京 &FX10 の 場 合 に ついても 同 様 に 執 筆 のつもり? 本 ドキュメントもしくは wiki で 追 加 検 討 ( 汎 用 的 な 部 分 は Tips として wiki 掲 載 を 励 行 ) 代 表 的 な Scalasca のオプションやパラメータ(コンパイル 時 実 行 時 ) PAPI プリセットイベント(papi_avail 参 照 ) ユーザー 区 間 指 定 ( 手 動 )の 例 PAPI のイベント 指 定 は 変 更 する 可 能 性 アリ ( 東 工 大 様 への 依 頼 分 ) 各 種 結 果 からの 分 析 方 法,Vampir サーバーの 使 い 方, - 14 -