OpenACCによる並列化

Size: px
Start display at page:

Download "OpenACCによる並列化"

Transcription

1 実習 OpenACC による ICCG ソルバーの並列化 1

2 ログイン Reedbush へのログイン $ ssh reedbush.cc.u-tokyo.ac.jp l txxxxx Module のロード $ module load pgi/17.3 cuda ログインするたびに必要です! ワークディレクトリに移動 $ cdw ターゲットプログラム <$O-L3>/srcx OpenACC 用のディレクトリの作成 $ cd (C or F)/L3 $ cp r srcx srcx_acc $ cd srcx_acc $ make clean 2

3 Makefile for OpenACC OpenACC 用の Makefile の作成 C/L3/srcx_acc/Makefile CC = icc OPTFLAGS= -O3 -qopenmp -ipo -xcore-avx2 -align TARGET =../run/l3-solx F/L3/srcx_acc/Makefile F90 = ifort F90OPTFLAGS= -O3 -qopenmp -ipo -xcore-avx2 - align array32byte TARGET =../run/l3-solx CC = pgcc OPTFLAGS= -O3 -acc -Minfo=accel -ta=tesla:cc60 TARGET =../run/l3-solx-acc F90 = pgfortran F90OPTFLAGS= -O3 -acc -Minfo=accel -ta=tesla:cc60 TARGET =../run/l3-solx-acc -Minfo=accel でコンパイラメッセージの出力 OpenACC ではコンパイラメッセージの確認が極めて重要保守的に並列化しないことがあるため 並列化されているかどうかの確認や どのループがどのレベル (gang, worker, vector) で並列化されたのか知るため 3

4 ジョブスクリプト for OpenACC $ cd../run $ cp gor.sh gor-acc.sh or $ cp go.sh gor-acc.sh gor-acc.sh の編集 C/L3/run/gor-acc.sh F/L3/run/gor-acc.sh PGI_ACC_TIME=1 で GPU 実行情報のサマリを標準エラーに出力 #PBS -q u-lecture #PBS -N test #PBS -l select=1:ncpus=18 #PBS -Wgroup_list=gt00 #PBS -l walltime=00:10:00 #PBS -e test2.err #PBS -o test2.lst cd $PBS_O_WORKDIR. /etc/profile.d/modules.sh export OMP_NUM_THREADS=18 export KMP_AFFINITY=granularity=fine,compact,1,0 numactl./l3-rsol0 numactl./l3-rsol0 numactl./l3-rsol0 #PBS -q h-lecture #PBS -N test #PBS -l select=1 #PBS -Wgroup_list=gt00 #PBS -l walltime=00:10:00 #PBS -e test2.err #PBS -o test2.lst cd $PBS_O_WORKDIR. /etc/profile.d/modules.sh module load pgi/17.3 cuda export PGI_ACC_TIME=1 numactl./l3-solx-acc numactl./l3-solx-acc numactl./l3-solx-acc 4

5 GPU 用のインプットファイルの作成 INPUT.dat の編集 C/L3/run/INPUT.dat F/L3/run/INPUT.dat NX/NY/NZ 1.00e e e0 DX/DY/DZ 1.0e-08 OMEGA, EPSICCG 18 PEsmpTOT -30 NCOLORtot NX/NY/NZ 1.00e e e0 DX/DY/DZ 1.0e-08 OMEGA, EPSICCG 1 PEsmpTOT -30 NCOLORtot 0 GPU のスレッド数は数百万に及ぶので スレッド数を PEsmpTOT で制御するのは現実的ではない 5

6 CPU 版の結果の取得 結果の正しさを検証するために 1 CPU コアで実行した結果を取っておく 下の結果は 1CPU コアで実行した際のもの PGI コンパイラ使用 (OpenACC なし ) NCOLORtot = -30 # INPUT.dat 自分で実行してみてください C/L3/run/gor-acc.sh.oXXXXX ### CMRCM ### FINAL COLOR NUMBER e-01 sec. (assemble) e e e e e-09 N= e+01 sec. (solver) Quick check Is the number of iteration same as baseline? F/L3/run/gor-acc.sh.oXXXXX ### CM-RCM ### FINAL COLOR NUMBER E-01 sec. (assemble) E E E E E E E+00 N= E+01 sec. (solver) 6

7 OpenACC での並列化戦略 OpenACC ではどのループを並列化するべきか C/L3/srcx_acc/solver_ICCG_mc.c #pragma omp parallel private (ic, ip1, ip2, i, WVAL, j) for(ic=0; ic<ncolortot; ic++) { ip1 = ic * PEsmpTOT; PEsmpTOT = 1 ip1 = ic ip2 = ic * PEsmpTOT + PEsmpTOT; ip2 = ic+1 #pragma omp for for(i=smpindex[ip1]; i<smpindex[ip2]; i++) { VAL = D[i]; for(j=indexl[i]; j<indexl[i+1]; j++) { VAL = VAL - AL[j]*AL[j] * W[DD][itemL[j] - 1]; W[DD][i] = 1.0 / VAL; OpenACC でのターゲットループ F/L3/srcx_acc/solver_ICCG_mc.f!$omp parallel private(ic,ip1,ip2,i,val,k) do ic= 1, NCOLORtot ip1= SMPindex((ic-1)*PEsmpTOT) + 1 ip2= SMPindex((ic-1)*PEsmpTOT + PEsmpTOT)!$omp do do i= ip1, ip2 VAL= D(i) do k= indexl(i-1)+1, indexl(i) VAL= VAL - (AL(k)**2) * W(itemL(k),DD) enddo W(i,DD)= 1.d0/VAL enddo enddo!$omp end parallel ここで同期が必要! 前の色が終わったところで同期が必要となる OpenMPでは暗黙的に同期が入る OpenACCでは同期を取るためにカーネルを閉じるしかない! 7

8 OpenACC 指示文の挿入 C/L3/srcx_acc/solver_ICCG_mc.c #pragma omp parallel for private (i) for(i=0; i<n; i++) { X[i] = 0.0; W[1][i] = 0.0; W[2][i] = 0.0; W[3][i] = 0.0; F/L3/srcx_acc/solver_ICCG_mc.f!$omp parallel do private(i) do i= 1, N X(i) = 0.d0 W(i,2)= 0.0D0 W(i,3)= 0.0D0 W(i,4)= 0.0D0 W(i,R)= B(i) enddo #pragma omp parallel for private (i) #pragma acc kernels copyout(x[0:n],w[1:3][0:n]) for(i=0; i<n; i++) { X[i] = 0.0; W[1][i] = 0.0; W[2][i] = 0.0; W[3][i] = 0.0; C では配列のサイズ情報必須!!$omp parallel do private(i)!$acc kernels copyout(x,w) copyin(b) do i= 1, N X(i) = 0.d0 W(i,2)= 0.0D0 W(i,3)= 0.0D0 W(i,4)= 0.0D0 W(i,R)= B(i) enddo!$acc end kernels Fortran では配列がサイズ情報も持っているため必要ない 8

9 PGI コンパイラのメッセージ確認 C/L3/srcx_acc/ $make F/L3/srcx_acc/ $ make solve_iccg_mc: 34, Generating copyout(x[:n],w[1:3][:n]) 35, Complex loop carried dependence of X-> prevents parallelization Loop carried dependence of W->-> prevents parallelization Loop carried backward dependence of W->-> prevents vectorization Accelerator scalar kernel generated Accelerator kernel generated Generating Tesla code 35, #pragma acc loop seq solve_iccg_mc: 53, Generating copyout(w(:,:),x(:)) Generating copyin(b(:)) 54, Loop is parallelizable Accelerator kernel generated Generating Tesla code 54,!$acc loop gang, vector(128)! blockidx%x threadidx%x 並列化されていない! X と W が alias を持ってる可能性があるため コンパイラは並列化をしない 並列化されてる! gang, vector レベルで並列化されている 9

10 !$acc loop independent C/L3/srcx_acc/solver_ICCG_mc.c F/L3/srcx_acc/solver_ICCG_mc.f #pragma omp parallel for private (i) #pragma acc kernels copyout(x[0:n],w[1:3][0:n]) for(i=0; i<n; i++) { X[i] = 0.0; W[1][i] = 0.0; W[2][i] = 0.0; W[3][i] = 0.0; nothing to do #pragma omp parallel for private (i) #pragma acc kernels copyout(x[0:n],w[1:3][0:n]) #pragma acc loop independent for(i=0; i<n; i++) { X[i] = 0.0; W[1][i] = 0.0; W[2][i] = 0.0; W[3][i] = 0.0; C では loop independent が必要になる! 10

11 PGI コンパイラのメッセージ確認 C/L3/srcx_acc/ $make F/L3/srcx_acc/ $ make solve_iccg_mc: 34, Generating copyout(x[:n],w[1:3][:n]) 36, Loop is parallelizable Accelerator kernel generated Generating Tesla code 36, #pragma acc loop gang, vector(128) /* blockidx.x threadidx.x */ nothing to do ようやく並列化 11

12 OpenACC 指示文の挿入 C/L3/srcx_acc/solver_ICCG_mc.c #pragma omp parallel private (ic, ip1, ip2, i, WVAL, j) for(ic=0; ic<ncolortot; ic++) { ip1 = ic * PEsmpTOT; PEsmpTOT = 1 ip1 = ic ip2 = ic * PEsmpTOT + PEsmpTOT; ip2 = ic+1 #pragma omp for #pragma acc kernels copyin(d[0:n], indexl[0:n+1], AL[0:NPL], iteml[0:npl], SMPindex[0:NCOLORtot*PEsmpTOT] ) copy(w[0:4][0:n]) #pragma acc loop independent for(i=smpindex[ip1]; i<smpindex[ip2]; i++) { VAL = D[i]; #pramga acc loop seq for(j=indexl[i]; j<indexl[i+1]; j++) { VAL = VAL - AL[j]*AL[j] * W[DD][itemL[j] - 1]; W[DD][i] = 1.0 / VAL; 配列の確保は poi_gen.c でなされている AL, iteml の長さ NPL はこのソースからは見えない! F/L3/srcx_acc/solver_ICCG_mc.f!$omp parallel private(ic,ip1,ip2,i,val,k) do ic= 1, NCOLORtot ip1= SMPindex((ic-1)*PEsmpTOT) + 1 ip2= SMPindex((ic-1)*PEsmpTOT + PEsmpTOT)!$omp do!$acc kernels copyin(d,indexl,al,iteml) copy(w)!$acc loop independent do i= ip1, ip2 VAL= D(i)!$acc loop seq do k= indexl(i-1)+1, indexl(i) このループは短いので逐次計算 ( 長さ 3 or 6) VAL= VAL - (AL(k)**2) * W(itemL(k),DD) enddo W(i,DD)= 1.d0/VAL enddo!$acc end kernels enddo!$omp end parallel 配列のサイズ情報を書く必要はない 12

13 関数の引数の書き換え C/L3/srcx_acc/solver_ICCG_mc.c solve_iccg_mc(int N, int NL, int NU, int *indexl, int *iteml, int *indexu, int *itemu, double *D, double *B, double *X, double *AL, double *AU, int NCOLORtot, int PEsmpTOT, int *SMPindex, int *SMPindexG, double EPS, int *ITR, int *IER) F/L3/srcx_acc/solver_ICCG_mc.f nothing to do solve_iccg_mc(int N, int NL, int NU, int NPL, int NPU, int *indexl, int *iteml, int *indexu, int *itemu, double *D, double *B, double *X, double *AL, double *AU, int NCOLORtot, int PEsmpTOT, int *SMPindex, int *SMPindexG, double EPS, int *ITR, int *IER) 以下の書き換えも必要 : C/L3/srcx_acc/solver_ICCG_mc.h C/L3/srcx_acc/main.c 13

14 main.c のトラップ C/L3/srcx_acc/main.c F/L3/srcx_acc/main.f int main() { double *WK; int NPL, NPU; int ISET, ITR, IER; int icel, ic0, i; double xn, xl, xu; double Stime, Etime; nothing to do 偽物 NPL, NPU は poi_gen.h で宣言されているものが本物 以下の関数呼び出しの引数として本物を使うため 使われてない偽物はコメントアウト int main() { double *WK; // int NPL, NPU; int ISET, ITR, IER; int icel, ic0, i; double xn, xl, xu; double Stime, Etime; 14

15 OpenACC 版の結果チェック C/L3/run/gor-acc.sh.oXXXXX ### CMRCM ### FINAL COLOR NUMBER 30 F/L3/run/gor-acc.sh.oXXXXX ### CM-RCM ### FINAL COLOR NUMBER e-01 sec. (assemble) e e e e e-09 N= e+01 sec. (solver) C/L3/run/gor-acc.sh.eXXXXX ベースラインと一致! この時点では CPU より遅いが 気にしない Accelerator Kernel Timing data /lustre/gt25/z30108/c/l3/srcx/solver_iccg_mc.c solve_iccg_mc NVIDIA devicenum=0 time(us): 586,647 34: compute region reached 1 time 36: kernel launched 1 time grid: [16384] block: [128] device time(us): total=114 max=114 min=114 avg=114 elapsed time(us): total=138 max=138 min=138 avg=138 34: data region reached 2 times 34: kernel launched 3 times grid: [1] block: [128] device time(us): total=8 max=4 min=2 avg=2 elapsed time(us): total=499 max=430 min=32 avg= E-01 sec. (assemble) E E E E E E E+00 N= E+01 sec. (solver) 標準エラー出力側に PGI_ACC_TIME によるサマリが出力される (Fortran 版も同様 ) grid の値が gang( スレッドブロック ) 数 block の値が gang あたりの vector( スレッド ) 数 15

16 データ転送の最適化 C/L3/srcx_acc/solver_ICCG_mc.c #pragma acc data copyin(d[:n], indexl[:n+1], AL[:NPL], iteml[:npl]) copyin(smpindex[0:ncolortot*pesmptot]) copyout(x[:n], W[:4][:N]) { #pragma omp parallel for private (i) #pragma acc kernels copyout(x[0:n],w[1:3][0:n]) #pragma acc loop independent for(i=0; i<n; i++) { X[i] = 0.0; W[1][i] = 0.0; W[2][i] = 0.0; W[3][i] = 0.0; #pragma omp parallel private (ic, ip1, ip2, i, WVAL, j) for(ic=0; ic<ncolortot; ic++) { ip1 = ic * PEsmpTOT; ip2 = ic * PEsmpTOT + PEsmpTOT; #pragma omp for #pragma acc kernels copyin(d[0:n], indexl[0:n+1], AL[0:NPL], iteml[0:npl], SMPindex[0:NCOLORtot*PEsmpTOT]) copy(w[0:4][0:n]) #pragma acc loop independent for(i=smpindex[ip1]; i<smpindex[ip2]; i++) { VAL = D[i]; #pragma acc loop seq for(j=indexl[i]; j<indexl[i+1]; j++) { VAL = VAL - AL[j]*AL[j] * W[DD][itemL[j] - 1]; W[DD][i] = 1.0 / VAL; F/L3/srcx_acc/solver_ICCG_mc.f!$acc data copyin(b,d,indexl,al,iteml) copyout(x,w)!$omp parallel do private(i)!$acc kernels copyin(b) copyout(x,w) do i= 1, N X(i) = 0.d0 W(i,2)= 0.0D0 W(i,3)= 0.0D0 W(i,4)= 0.0D0 W(i,R)= B(i) enddo!$acc end kernels!$acc data 指示文で確保済みの配列に対して それより内側で copy 指示子を適用しても無視される 冗長な転送を除去!!$omp parallel private(ic,ip1,ip2,i,val,k) do ic= 1, NCOLORtot ip1= SMPindex((ic-1)*PEsmpTOT) + 1 ip2= SMPindex((ic-1)*PEsmpTOT + PEsmpTOT)!$omp do!$acc kernels copyin(d,indexl,al,iteml) copy(w)!$acc loop independent do i= ip1, ip2 VAL= D(i)!$acc loop seq do k= indexl(i-1)+1, indexl(i) VAL= VAL - (AL(k)**2) * W(itemL(k),DD) enddo W(i,DD)= 1.d0/VAL enddo!$acc end kernels enddo!$omp end parallel!$acc end data 16

17 データ転送最適化のイメージ (1/2) 初期実装 Compute r (0) = b-[a]x (0) for i= 1, 2, solve [M]z (i-1) = r (i-1) r i-1 = r (i-1) z (i-1) if i=1 p (1) = z (0) else b i-1 = r i-1 /r i-2 p (i) = z (i-1) + b i-1 p (i-1) endif q (i) = [A]p (i) a i = r i-1 /p (i) q (i) x (i) = x (i-1) + a i p (i) r (i) = r (i-1) - a i q (i) check convergence r end Host Device Data transfer 17

18 データ転送最適化のイメージ (2/2) 最適化実装 Compute r (0) = b-[a]x (0) for i= 1, 2, solve [M]z (i-1) = r (i-1) r i-1 = r (i-1) z (i-1) if i=1 p (1) = z (0) else b i-1 = r i-1 /r i-2 p (i) = z (i-1) + b i-1 p (i-1) endif q (i) = [A]p (i) a i = r i-1 /p (i) q (i) x (i) = x (i-1) + a i p (i) r (i) = r (i-1) - a i q (i) check convergence r end Host Device Data transfer 18

19 実習 EX1:Makefile ジョブスクリプト INPUT.dat を編集し CPU 実行時の出力を得てください EX2: 全並列化ループ (OMP DO で並列化されているところ ) を OpenACC で並列化してください コンパイラメッセージに注意! 常に CPU での結果と突き合わせ! 計算順序が変わるため 必ずしも一致しない この時点で遅くても気にしない! EX3: データ転送を最適化してください EX4:INPUT.dat の色数 (NCOLORtot) を変更し 速度への影響をみてください PGI_ACC_TIME は若干速度に影響を与えるので 計測時は PGI_ACC_TIME=0 ( ジョブスクリプト ) としてください マルチコア メニィコア並列プログラミング入門 19

20 参考 :Reedbush での nvvp の使い方 NVVP:NVIDIA Visual Profiler ( ) ログインして module をロード $ ssh -Y reedbush.cc.u-tokyo.ac.jp -l txxxxx $ module load cuda pgi/17.3 # cuda module が必須 サンプルプログラムのコピー $ cp /lustre/gt00h/share/openacc_samples.tar.gz. $ tar zxvf OpenACC_samples.tar.gz nvprof コマンドを使ってデータを収集 ジョブスクリプトの中に書く nvvp.sh 参照 nvvp の起動 $ nvvp GPU プログラミング入門 20

21 1File をクリック GPU プログラミング入門 21

22 2Import をクリック 3 Nvprof を選択 4 Next GPU プログラミング入門 22

23 5 Multiple processes に変更 7 Browse 6 Next GPU プログラミング入門 23

24 8 ファイル選択画面が開くので nvvp で作成したプロファイリングデータを選択し OK ファイルシステム 上の 場所 欄に /lustre/gt00h/ ユーザー名 /OpenACC_samples/ とするのが速いか? 9 diffusion.nvp を選択できたら Finish GPU プログラミング入門 24

25 ここで拡大 この辺がメインの計算部分 GPU プログラミング入門 25

26 計算部分をクリックすると カーネルの情報が得られる ここをクリックするとプロファイラがヒントをくれる GPU プログラミング入門 26

27 まとめ GPUとOpenACCの基礎について ICCGソルバーを題材とし OpenACC 化を行なった ICCGソルバーのOpenACC 化を通じ 以下を実習した kernels 指示文による並列化 コンパイラメッセージの見方 PGI_ACC_TIMEの出力 データ転送の最適化 さらなる最適化 NVVPを使ったプロファイリング Async 指示子 カーネルフュージョン マルチコア メニィコア並列プログラミング入門 27

28 Q & A アカウントは1ヶ月有効です ぜひご自分のアプリで試してください 資料のPDF 版はWEBページにございます アンケートへの協力をお願いします GPU プログラミング入門 28

OpenACC

OpenACC 109 OpenMP/OpenACC, hoshino @ cc.u-tokyo.ac.jp nakajima @ cc.u-tokyo.ac.jp 1 n Reedbush n $ ssh -Y reedbush.cc.u-tokyo.ac.jp l txxxxx n module n $ module load pgi/18.7 # n n $ cdw n OpenACC_samples n $

More information

OpenMP/OpenACC によるマルチコア メニィコア並列プログラミング入門 Fortran 編第 Ⅳ 部 :OpenMP による並列化 + 演習 中島研吾 東京大学情報基盤センター

OpenMP/OpenACC によるマルチコア メニィコア並列プログラミング入門 Fortran 編第 Ⅳ 部 :OpenMP による並列化 + 演習 中島研吾 東京大学情報基盤センター OpenMP/OpenACC によるマルチコア メニィコア並列プログラミング入門 Fortran 編第 Ⅳ 部 :OpenMP による並列化 + 演習 中島研吾 東京大学情報基盤センター OMP-3 1 OpenMP 並列化 L2-sol を OpenMP によって並列化する 並列化にあたってはスレッド数を PEsmpTOT によってプログラム内で調節できる方法を適用する 基本方針 同じ 色 ( または

More information

概要 OpenACC とは OpenACC について OpenMP, CUDA との違い OpenACC の指示文 並列化領域指定指示文 (kernels/parallel) データ移動指示文 ループ指示文 OpenACC の実用例 実習 コンパイラメッセージの見方 OpenACC プログラムの実装

概要 OpenACC とは OpenACC について OpenMP, CUDA との違い OpenACC の指示文 並列化領域指定指示文 (kernels/parallel) データ移動指示文 ループ指示文 OpenACC の実用例 実習 コンパイラメッセージの見方 OpenACC プログラムの実装 第 74 回お試しアカウント付き 並列プログラミング講習会 GPU プログラミング入門 in 名古屋 星野哲也 ( 助教 ) hoshino@cc.u-tokyo.ac.jp 大島聡史 ( 助教 ) ohshima@cc.u-tokyo.ac.jp 2016 年 3 月 14 日 ( 火 ) 東京大学情報基盤センター 概要 OpenACC とは OpenACC について OpenMP, CUDA との違い

More information

CUDA 連携とライブラリの活用 2

CUDA 連携とライブラリの活用 2 1 09:30-10:00 受付 10:00-12:00 Reedbush-H ログイン GPU 入門 13:30-15:00 OpenACC 入門 15:15-16:45 OpenACC 最適化入門と演習 17:00-18:00 OpenACC の活用 (CUDA 連携とライブラリの活用 ) CUDA 連携とライブラリの活用 2 3 OpenACC 簡単にGPUプログラムが作成できる それなりの性能が得られる

More information

コードのチューニング

コードのチューニング OpenMP による並列化実装 八木学 ( 理化学研究所計算科学研究センター ) KOBE HPC Spring School 2019 2019 年 3 月 14 日 スレッド並列とプロセス並列 スレッド並列 OpenMP 自動並列化 プロセス並列 MPI プロセス プロセス プロセス スレッドスレッドスレッドスレッド メモリ メモリ プロセス間通信 Private Private Private

More information

Microsoft PowerPoint - GTC2012-SofTek.pptx

Microsoft PowerPoint - GTC2012-SofTek.pptx GTC Japan 2012 PGI Accelerator Compiler 実践! PGI OpenACC ディレクティブを使用したポーティング 2012 年 7 月 加藤努株式会社ソフテック 本日の話 OpenACC によるポーティングの実際 OpenACC ディレクティブ概略説明 Accelerator Programming Model Fortran プログラムによるポーティング ステップ三つのディレクティブの利用性能チューニング

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 1 サンプルソースコードは ITO の /home/tmp/gpu 以下に置いてあります 実質的に 演習の答え となるものもあるので注意 PGI compiler 19.4 で実行した場合の出力に準拠 18.10 でも 19.4 でも基本的には同じであるが 18.10 では出力されていた Accelerator kernel generated ( 並列実行カーネルが作成できた旨 ) が出力されなくなったことを反映

More information

OpenMP/OpenACC によるマルチコア メニィコア並列プログラミング入門 Fortran 編第 Ⅱ 部 :OpenMP 中島研吾 東京大学情報基盤センター

OpenMP/OpenACC によるマルチコア メニィコア並列プログラミング入門 Fortran 編第 Ⅱ 部 :OpenMP 中島研吾 東京大学情報基盤センター OpenMP/OpenACC によるマルチコア メニィコア並列プログラミング入門 Fortran 編第 Ⅱ 部 :OpenMP 中島研吾 東京大学情報基盤センター 2 OpenMP Login to Reedbush-U Parallel Version of the Code by OpenMP STREAM Data Dependency 3 Hybrid 並列プログラミング スレッド並列 +

More information

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments 計算機アーキテクチャ第 11 回 マルチプロセッサ 本資料は授業用です 無断で転載することを禁じます 名古屋大学 大学院情報科学研究科 准教授加藤真平 デスクトップ ジョブレベル並列性 スーパーコンピュータ 並列処理プログラム プログラムの並列化 for (i = 0; i < N; i++) { x[i] = a[i] + b[i]; } プログラムの並列化 x[0] = a[0] + b[0];

More information

TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日

TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日 TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日 目次 1. TSUBAMEのGPU 環境 2. プログラム作成 3. プログラム実行 4. 性能解析 デバッグ サンプルコードは /work0/gsic/seminars/gpu- 2011-09- 28 からコピー可能です 1.

More information

第12回講義(2019年7月17日)

第12回講義(2019年7月17日) スパコンプログラミング (1)(Ⅰ) 1 OpenACC の紹介 Reedbush-H お試し 東京大学情報基盤センター准教授塙敏博 2019 年 7 月 17 日 ( 水 )10:25 12:10 2019/7/16 スパコンプログラミング (1) (Ⅰ) 講義日程 ( 工学部共通科目 ) 1. 4 月 9 日 : ガイダンス 2. 4 月 16 日 l 並列数値処理の基本演算 ( 座学 ) 3.

More information

OpenACC入門

OpenACC入門 第 87 回 OpenMP/OpenACC による マルチコア メニィコア並列プログラミング 入門 星野哲也 (hoshino@cc.u-tokyo.ac.jp) 東京大学情報基盤センター 2017/11/1 ( 水 ) スケジュール (11 月 1 日 ) 13:00 14:30 GPUについて GPUのアーキテクチャ GPUプログラミングで気をつけるべきこと OpenACC OpenMPとOpenACCの違い

More information

GPU チュートリアル :OpenACC 篇 Himeno benchmark を例題として 高エネルギー加速器研究機構 (KEK) 松古栄夫 (Hideo Matsufuru) 1 December 2018 HPC-Phys 理化学研究所 共通コードプロジェクト

GPU チュートリアル :OpenACC 篇 Himeno benchmark を例題として 高エネルギー加速器研究機構 (KEK) 松古栄夫 (Hideo Matsufuru) 1 December 2018 HPC-Phys 理化学研究所 共通コードプロジェクト GPU チュートリアル :OpenACC 篇 Himeno benchmark を例題として 高エネルギー加速器研究機構 (KEK) 松古栄夫 (Hideo Matsufuru) 1 December 2018 HPC-Phys 勉強会 @ 理化学研究所 共通コードプロジェクト Contents Hands On 環境について Introduction to GPU computing Introduction

More information

スライド 1

スライド 1 GTC Japan 2013 PGI Accelerator Compiler 新 OpenACC 2.0 の機能と PGI アクセラレータコンパイラ 2013 年 7 月 加藤努株式会社ソフテック 本日の話 OpenACC ディレクティブで出来ることを改めて知ろう! OpenACC 1.0 の復習 ディレクティブ操作で出来ることを再確認 OpenACC 2.0 の新機能 プログラミングの自由度の向上へ

More information

演習1: 演習準備

演習1: 演習準備 演習 1: 演習準備 2013 年 8 月 6 日神戸大学大学院システム情報学研究科森下浩二 1 演習 1 の内容 神戸大 X10(π-omputer) について システム概要 ログイン方法 コンパイルとジョブ実行方法 OpenMP の演習 ( 入門編 ) 1. parallel 構文 実行時ライブラリ関数 2. ループ構文 3. shared 節 private 節 4. reduction 節

More information

Microsoft Word - openmp-txt.doc

Microsoft Word - openmp-txt.doc ( 付録 A) OpenMP チュートリアル OepnMP は 共有メモリマルチプロセッサ上のマルチスレッドプログラミングのための API です 本稿では OpenMP の簡単な解説とともにプログラム例をつかって説明します 詳しくは OpenMP の規約を決めている OpenMP ARB の http://www.openmp.org/ にある仕様書を参照してください 日本語訳は http://www.hpcc.jp/omni/spec.ja/

More information

01_OpenMP_osx.indd

01_OpenMP_osx.indd OpenMP* / 1 1... 2 2... 3 3... 5 4... 7 5... 9 5.1... 9 5.2 OpenMP* API... 13 6... 17 7... 19 / 4 1 2 C/C++ OpenMP* 3 Fortran OpenMP* 4 PC 1 1 9.0 Linux* Windows* Xeon Itanium OS 1 2 2 WEB OS OS OS 1 OS

More information

Microsoft PowerPoint - omp-03.ppt [互換モード]

Microsoft PowerPoint - omp-03.ppt [互換モード] Parallel Programming for Multicore Processors using OpenMP Part III: Parallel Version + Exercise Kengo Nakajima Information Technology enter Programming for Parallel omputing (616-2057) Seminar on Advanced

More information

Vol.214-HPC-145 No /7/3 C #pragma acc directive-name [clause [[,] clause] ] new-line structured block Fortran!$acc directive-name [clause [[,] c

Vol.214-HPC-145 No /7/3 C #pragma acc directive-name [clause [[,] clause] ] new-line structured block Fortran!$acc directive-name [clause [[,] c Vol.214-HPC-145 No.45 214/7/3 OpenACC 1 3,1,2 1,2 GPU CUDA OpenCL OpenACC OpenACC High-level OpenACC CPU Intex Xeon Phi K2X GPU Intel Xeon Phi 27% K2X GPU 24% 1. TSUBAME2.5 CPU GPU CUDA OpenCL CPU OpenMP

More information

Reedbush 利用の手引き 2 ノートパソコンの設定 : 公開鍵の生成 登録 ネットワーク環境に接続してから行ってください

Reedbush 利用の手引き 2 ノートパソコンの設定 : 公開鍵の生成 登録 ネットワーク環境に接続してから行ってください Reedbush 利用の手引き 1 お試しアカウント付き 並列プログラミング講習会 Reedbush 利用の手引き 東京大学情報基盤センター Reedbush 利用の手引き 2 ノートパソコンの設定 : 公開鍵の生成 登録 ネットワーク環境に接続してから行ってください Reedbush 利用の手引き 3 鍵の作成 1. ターミナルを起動する 2. 以下を入力する $ ssh- keygen t rsa

More information

Microsoft PowerPoint - OpenMP入門.pptx

Microsoft PowerPoint - OpenMP入門.pptx OpenMP 入門 須田礼仁 2009/10/30 初版 OpenMP 共有メモリ並列処理の標準化 API http://openmp.org/ 最新版は 30 3.0 バージョンによる違いはあまり大きくない サポートしているバージョンはともかく csp で動きます gcc も対応しています やっぱり SPMD Single Program Multiple Data プログラム #pragma omp

More information

Microsoft PowerPoint - GDEP-GPG_softek_May24-2.pptx

Microsoft PowerPoint - GDEP-GPG_softek_May24-2.pptx G-DEP 第 3 回セミナー PGI OpenACC Compiler PGIコンパイラ使用の実際 新しい OpenACC によるプログラミング 2012 年 5 月 加藤努株式会社ソフテック OpenACC によるプログラミング GPU / Accelerator Computing Model のデファクト スタンダードへ OpenACC Standard 概略説明 Accelerator Programming

More information

Slide 1

Slide 1 CUDA プログラミングの基本 パート II - カーネル CUDA の基本の概要 パート I CUDAのソフトウェアスタックとコンパイル GPUのメモリ管理 パート II カーネルの起動 GPUコードの具体像 注 : 取り上げているのは基本事項のみです そのほか多数の API 関数についてはプログラミングガイドを ご覧ください GPU 上でのコードの実行 カーネルは C 関数 + 多少の制約 ホストメモリはアクセスできない戻り値型は

More information

GPU CUDA CUDA 2010/06/28 1

GPU CUDA CUDA 2010/06/28 1 GPU CUDA CUDA 2010/06/28 1 GPU NVIDIA Mark Harris, Optimizing Parallel Reduction in CUDA http://developer.download.nvidia.com/ compute/cuda/1_1/website/data- Parallel_Algorithms.html#reduction CUDA SDK

More information

Microsoft PowerPoint - 03_What is OpenMP 4.0 other_Jan18

Microsoft PowerPoint - 03_What is OpenMP 4.0 other_Jan18 OpenMP* 4.x における拡張 OpenMP 4.0 と 4.5 の機能拡張 内容 OpenMP* 3.1 から 4.0 への拡張 OpenMP* 4.0 から 4.5 への拡張 2 追加された機能 (3.1 -> 4.0) C/C++ 配列シンタックスの拡張 SIMD と SIMD 対応関数 デバイスオフロード task 構 の依存性 taskgroup 構 cancel 句と cancellation

More information

HPC143

HPC143 研究背景 GPUクラスタ 高性能 高いエネルギー効率 低価格 様々なHPCアプリケーションで用いられている TCA (Tightly Coupled Accelerators) 密結合並列演算加速機構 筑波大学HA-PACSクラスタ アクセラレータ GPU 間の直接通信 低レイテンシ 今後のHPCアプリは強スケーリングも重要 TCAとアクセラレータを搭載したシステムに おけるプログラミングモデル 例

More information

スライド 1

スライド 1 ver. 2018/4/13 プログラミング 計算機利用上の Tips 補足資料 分類 項目 ページ 計算機利用 ホスト計算機への接続方法 Unix (Linux) の基本的なコマンド容量制限についてターミナルで文字を大きくする方法 xtermで文字を大きくする方法 Fortran プログラミングについて最近あった事例 : コンパイル 実行時のエラーコンパイルオプションプログラムは正しそうなのに エラーが出る場合データファイルは正しそうなのに

More information

Microsoft Word - appli_SMASH_tutorial_2.docx

Microsoft Word - appli_SMASH_tutorial_2.docx チュートリアル SMASH version 2.2.0 (Linux 64 ビット版 ) 本チュートリアルでは 量子化学計算ソフトウェア SMASH バージョン 2.2.0 について ソフトウェアの入手 / 実行モジュール作成 / 計算実行 / 可視化処理までを例示します 1. ソフトウェアの入手以下の URL よりダウンロードします https://sourceforge.net/projects/smash-qc/files/smash-2.2.0.tgz/download

More information

PGIコンパイラ導入手順

PGIコンパイラ導入手順 1 注意この資料は PGI compiler 18.10 が最新であるときに作成した資料を元にしています PGI compiler 19.4 がリリースされましたが インストール手順や利用手順は 18.10 と変わりません 資料中の 1810 を 194 に 18.10 を 19.4 に読み替えてください 2019 年 6 月版 2 大きく分けて以下の 3 つの方法が利用可能 1. 手元のウェブブラウザでダウンロードして

More information

I I / 47

I I / 47 1 2013.07.18 1 I 2013 3 I 2013.07.18 1 / 47 A Flat MPI B 1 2 C: 2 I 2013.07.18 2 / 47 I 2013.07.18 3 / 47 #PJM -L "rscgrp=small" π-computer small: 12 large: 84 school: 24 84 16 = 1344 small school small

More information

<4D F736F F F696E74202D D F95C097F D834F E F93FC96E5284D F96E291E85F8DE391E52E >

<4D F736F F F696E74202D D F95C097F D834F E F93FC96E5284D F96E291E85F8DE391E52E > SX-ACE 並列プログラミング入門 (MPI) ( 演習補足資料 ) 大阪大学サイバーメディアセンター日本電気株式会社 演習問題の構成 ディレクトリ構成 MPI/ -- practice_1 演習問題 1 -- practice_2 演習問題 2 -- practice_3 演習問題 3 -- practice_4 演習問題 4 -- practice_5 演習問題 5 -- practice_6

More information

NUMAの構成

NUMAの構成 共有メモリを使ったデータ交換と同期 慶應義塾大学理工学部 天野英晴 hunga@am.ics.keio.ac.jp 同期の必要性 あるプロセッサが共有メモリに書いても 別のプロセッサにはそのことが分からない 同時に同じ共有変数に書き込みすると 結果がどうなるか分からない そもそも共有メモリって結構危険な代物 多くのプロセッサが並列に動くには何かの制御機構が要る 不可分命令 同期用メモリ バリア同期機構

More information

内容に関するご質問は まで お願いします [Oakforest-PACS(OFP) 編 ] 第 85 回お試しアカウント付き並列プログラミング講習会 ライブラリ利用 : 科学技術計算の効率化入門 スパコンへのログイン テストプログラム起動 東京大学情報基盤セ

内容に関するご質問は まで お願いします [Oakforest-PACS(OFP) 編 ] 第 85 回お試しアカウント付き並列プログラミング講習会 ライブラリ利用 : 科学技術計算の効率化入門 スパコンへのログイン テストプログラム起動 東京大学情報基盤セ 内容に関するご質問は ida@cc.u-tokyo.ac.jp まで お願いします [Oakforest-PACS(OFP) 編 ] 第 85 回お試しアカウント付き並列プログラミング講習会 ライブラリ利用 : 科学技術計算の効率化入門 スパコンへのログイン テストプログラム起動 東京大学情報基盤センター特任准教授伊田明弘 1 講習会 : ライブラリ利用 [FX10] スパコンへのログイン ファイル転送

More information

課題 S1 解説 Fortran 編 中島研吾 東京大学情報基盤センター

課題 S1 解説 Fortran 編 中島研吾 東京大学情報基盤センター 課題 S1 解説 Fortran 編 中島研吾 東京大学情報基盤センター 内容 課題 S1 /a1.0~a1.3, /a2.0~a2.3 から局所ベクトル情報を読み込み, 全体ベクトルのノルム ( x ) を求めるプログラムを作成する (S1-1) file.f,file2.f をそれぞれ参考にする 下記の数値積分の結果を台形公式によって求めるプログラムを作成する

More information

Microsoft Word - appli_OpenMX_install.docx

Microsoft Word - appli_OpenMX_install.docx OpenMX version 3.8.3 インストール手順書 (Linux 64 ビット版 ) 目次 1. アプリケーション概要... 1 2. システム環境... 1 3. アプリケーションのインストール... 1 4. 動作確認の実施... 4 本手順書は OpenMX の入手からインストールまでを説明した資料です 2018/3/7 1. アプリケーション概要 本手順書が対象としているアプリケーションは以下の通りです

More information

HPC146

HPC146 2 3 4 5 6 int array[16]; #pragma xmp nodes p(4) #pragma xmp template t(0:15) #pragma xmp distribute t(block) on p #pragma xmp align array[i] with t(i) array[16] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Node

More information

Microsoft Word - 計算科学演習第1回3.doc

Microsoft Word - 計算科学演習第1回3.doc スーパーコンピュータの基本的操作方法 2009 年 9 月 10 日高橋康人 1. スーパーコンピュータへのログイン方法 本演習では,X 端末ソフト Exceed on Demand を使用するが, 必要に応じて SSH クライアント putty,ftp クライアント WinSCP や FileZilla を使用して構わない Exceed on Demand を起動し, 以下のとおり設定 ( 各自のユーザ

More information

$ cmake --version $ make --version $ gcc --version 環境が無いあるいはバージョンが古い場合は yum などを用いて導入 最新化を行う 4. 圧縮ファイルを解凍する $ tar xzvf gromacs tar.gz 5. cmake を用

$ cmake --version $ make --version $ gcc --version 環境が無いあるいはバージョンが古い場合は yum などを用いて導入 最新化を行う 4. 圧縮ファイルを解凍する $ tar xzvf gromacs tar.gz 5. cmake を用 本マニュアルの目的 Linux サーバー版 Gromacs インストールマニュアル 2015/10/28 本マニュアルでは 単独ユーザが独占的に Linux サーバー (CentOS 6.6) を使用して Gromacs ジョブを実行するための環境構築方法と Winmostar のリモートジョブ機能による計算手順を示しています つまり複数ユーザが共同使用する計算サーバー等は対象外です そのため計算環境は全てユーザのホームディレクトリ配下で行う構築することを想定しています

More information

情報処理概論(第二日目)

情報処理概論(第二日目) 実習資料 Linux 入門講習会 九州大学情報基盤研究開発センター 注意 : この内容は wisdom.cc.kyushu-u.ac.jp の任意の ID で利用できますが, ファイルの削除等を含んでいるので各コマンドの意味を理解するまでは講習会用 ID で利用することをお勧めします. 1 実習 1 ログイン ファイル操作 ディレクトリの作成 ファイルの移動, コピー, 削除 ログアウト 2 ログイン

More information

OpenMPプログラミング

OpenMPプログラミング OpenMP 基礎 岩下武史 ( 学術情報メディアセンター ) 1 2013/9/13 並列処理とは 逐次処理 CPU1 並列処理 CPU1 CPU2 CPU3 CPU4 処理 1 処理 1 処理 2 処理 3 処理 4 処理 2 処理 3 処理 4 時間 2 2 種類の並列処理方法 プロセス並列 スレッド並列 並列プログラム 並列プログラム プロセス プロセス 0 プロセス 1 プロセス間通信 スレッド

More information

Maser - User Operation Manual

Maser - User Operation Manual Maser 3 Cell Innovation User Operation Manual 2013.4.1 1 目次 1. はじめに... 3 1.1. 推奨動作環境... 3 2. データの登録... 4 2.1. プロジェクトの作成... 4 2.2. Projectへのデータのアップロード... 8 2.2.1. HTTPSでのアップロード... 8 2.2.2. SFTPでのアップロード...

More information

並列・高速化を実現するための 高速化サービスの概要と事例紹介

並列・高速化を実現するための 高速化サービスの概要と事例紹介 第 4 回 AVS 可視化フォーラム 2019 並列 高速化を実現するための 高速化サービスの概要と事例紹介 株式会社アーク情報システム営業部仮野亮ソリューション技術部佐々木竜一 2019.08.30 はじめに アーク情報システムの紹介 高速化サービスとは? 事例紹介 コンサルティングサービスについて アーク情報システムの紹介 設立 資本金 :1987 年 10 月 :3 億 600 万円 従業員数

More information

XcalableMP入門

XcalableMP入門 XcalableMP 1 HPC-Phys@, 2018 8 22 XcalableMP XMP XMP Lattice QCD!2 XMP MPI MPI!3 XMP 1/2 PCXMP MPI Fortran CCoarray C++ MPIMPI XMP OpenMP http://xcalablemp.org!4 XMP 2/2 SPMD (Single Program Multiple Data)

More information

OpenMP (1) 1, 12 1 UNIX (FUJITSU GP7000F model 900), 13 1 (COMPAQ GS320) FUJITSU VPP5000/64 1 (a) (b) 1: ( 1(a))

OpenMP (1) 1, 12 1 UNIX (FUJITSU GP7000F model 900), 13 1 (COMPAQ GS320) FUJITSU VPP5000/64 1 (a) (b) 1: ( 1(a)) OpenMP (1) 1, 12 1 UNIX (FUJITSU GP7000F model 900), 13 1 (COMPAQ GS320) FUJITSU VPP5000/64 1 (a) (b) 1: ( 1(a)) E-mail: {nanri,amano}@cc.kyushu-u.ac.jp 1 ( ) 1. VPP Fortran[6] HPF[3] VPP Fortran 2. MPI[5]

More information

XACCの概要

XACCの概要 2 global void kernel(int a[max], int llimit, int ulimit) {... } : int main(int argc, char *argv[]){ MPI_Int(&argc, &argc); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); dx

More information

第8回講義(2016年12月6日)

第8回講義(2016年12月6日) 2016/12/6 スパコンプログラミング (1) (Ⅰ) 1 行列 - 行列積 (2) 東京大学情報基盤センター准教授塙敏博 2016 年 12 月 6 日 ( 火 ) 10:25-12:10 2016/11/29 講義日程 ( 工学部共通科目 ) 1. 9 月 27 日 ( 今日 ): ガイダンス 2. 10 月 4 日 l 並列数値処理の基本演算 ( 座学 ) 3. 10 月 11 日 : スパコン利用開始

More information

インテル(R) Visual Fortran コンパイラ 10.0

インテル(R) Visual Fortran コンパイラ 10.0 インテル (R) Visual Fortran コンパイラー 10.0 日本語版スペシャル エディション 入門ガイド 目次 概要インテル (R) Visual Fortran コンパイラーの設定はじめに検証用ソースファイル適切なインストールの確認コンパイラーの起動 ( コマンドライン ) コンパイル ( 最適化オプションなし ) 実行 / プログラムの検証コンパイル ( 最適化オプションあり ) 実行

More information

分割コンパイル (2018 年度 ) 担当 : 笹倉 佐藤 分割コンパイルとは 一つのプログラムのソースを複数のソースファイルに分けてコンパイルすること ある程度大きなプログラムの場合ソースファイルをいくつかに分割して開発するのが普通 1

分割コンパイル (2018 年度 ) 担当 : 笹倉 佐藤 分割コンパイルとは 一つのプログラムのソースを複数のソースファイルに分けてコンパイルすること ある程度大きなプログラムの場合ソースファイルをいくつかに分割して開発するのが普通 1 分割コンパイル (2018 年度 ) 担当 : 笹倉 佐藤 2018.12.20 分割コンパイルとは 一つのプログラムのソースを複数のソースファイルに分けてコンパイルすること ある程度大きなプログラムの場合ソースファイルをいくつかに分割して開発するのが普通 1 なぜ分割コンパイルするのか 1. コンパイル時間を短縮するため 2. ソースコードを見やすくするため 3. ソースコードを再利用しやすくするため

More information

1. GPU コンピューティング GPU コンピューティング GPUによる 汎用コンピューティング GPU = Graphics Processing Unit CUDA Compute Unified Device Architecture NVIDIA の GPU コンピューティング環境 Lin

1. GPU コンピューティング GPU コンピューティング GPUによる 汎用コンピューティング GPU = Graphics Processing Unit CUDA Compute Unified Device Architecture NVIDIA の GPU コンピューティング環境 Lin Windows で始める CUDA 入門 GTC 2013 チュートリアル エヌビディアジャパン CUDA エンジニア森野慎也 1. GPU コンピューティング GPU コンピューティング GPUによる 汎用コンピューティング GPU = Graphics Processing Unit CUDA Compute Unified Device Architecture NVIDIA の GPU コンピューティング環境

More information

研究背景 大規模な演算を行うためには 分散メモリ型システムの利用が必須 Message Passing Interface MPI 並列プログラムの大半はMPIを利用 様々な実装 OpenMPI, MPICH, MVAPICH, MPI.NET プログラミングコストが高いため 生産性が悪い 新しい並

研究背景 大規模な演算を行うためには 分散メモリ型システムの利用が必須 Message Passing Interface MPI 並列プログラムの大半はMPIを利用 様々な実装 OpenMPI, MPICH, MVAPICH, MPI.NET プログラミングコストが高いため 生産性が悪い 新しい並 XcalableMPによる NAS Parallel Benchmarksの実装と評価 中尾 昌広 李 珍泌 朴 泰祐 佐藤 三久 筑波大学 計算科学研究センター 筑波大学大学院 システム情報工学研究科 研究背景 大規模な演算を行うためには 分散メモリ型システムの利用が必須 Message Passing Interface MPI 並列プログラムの大半はMPIを利用 様々な実装 OpenMPI,

More information

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl NUCLEO-F401RE の TrueSTUDIO プロジェクト構築方法 V001 2014/09/24 Atollic TrueSTUDIO for ARM Lite を使用して NUCLEO-F401RE のプロジェクトを新規に作成する方法について説明します また ビルドとデバッグについても説明しています 目次 1. 新規プロジェクト作成の準備... 2 2. 新規プロジェクトの作成... 3

More information

Slide 1

Slide 1 OpenACC CUDA による GPU コンピューティング Akira Naruse, 19 th Jul. 2018 成瀬彰 (Naruse, Akira) 自己紹介 2013 年 ~: NVIDIA シニア デベローパーテクノロジー エンジニア 1996~2013 年 : 富士通研究所 研究員など 専門 興味 : 並列処理 性能最適化 スパコン HPC GPU コンピューティング DeepLearning

More information

課題 S1 解説 C 言語編 中島研吾 東京大学情報基盤センター

課題 S1 解説 C 言語編 中島研吾 東京大学情報基盤センター 課題 S1 解説 C 言語編 中島研吾 東京大学情報基盤センター 内容 課題 S1 /a1.0~a1.3, /a2.0~a2.3 から局所ベクトル情報を読み込み, 全体ベクトルのノルム ( x ) を求めるプログラムを作成する (S1-1) file.f,file2.f をそれぞれ参考にする 下記の数値積分の結果を台形公式によって求めるプログラムを作成する

More information

ポインタ変数

ポインタ変数 プログラミング及び実習 7 馬青 1 文字列処理 文字列 文字列は " ( ダブルクォーテーション ) で囲んで表現される 文字列というデータ型が存在しないので 文字列は文字の配列 あるいはポインタ変数として扱われる また 文字の配列あるいはポインタ変数を宣言するときのデータ型は char を用いる 従って char s[]="ryukoku Uni."; あるいは char *s="ryukoku

More information

( CUDA CUDA CUDA CUDA ( NVIDIA CUDA I

(    CUDA CUDA CUDA CUDA (  NVIDIA CUDA I GPGPU (II) GPGPU CUDA 1 GPGPU CUDA(CUDA Unified Device Architecture) CUDA NVIDIA GPU *1 C/C++ (nvcc) CUDA NVIDIA GPU GPU CUDA CUDA 1 CUDA CUDA 2 CUDA NVIDIA GPU PC Windows Linux MaxOSX CUDA GPU CUDA NVIDIA

More information

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë 2011 5 26 scalar Open MP Hello World Do (omp do) (omp workshare) (shared, private) π (reduction) scalar magny-cours, 48 scalar scalar 1 % scp. ssh / authorized keys 133. 30. 112. 246 2 48 % ssh 133.30.112.246

More information

NUMAの構成

NUMAの構成 GPU のプログラム 天野 アクセラレータとは? 特定の性質のプログラムを高速化するプロセッサ 典型的なアクセラレータ GPU(Graphic Processing Unit) Xeon Phi FPGA(Field Programmable Gate Array) 最近出て来た Deep Learning 用ニューロチップなど Domain Specific Architecture 1GPGPU:General

More information

openmp1_Yaguchi_version_170530

openmp1_Yaguchi_version_170530 並列計算とは /OpenMP の初歩 (1) 今 の内容 なぜ並列計算が必要か? スーパーコンピュータの性能動向 1ExaFLOPS 次世代スハ コン 京 1PFLOPS 性能 1TFLOPS 1GFLOPS スカラー機ベクトル機ベクトル並列機並列機 X-MP ncube2 CRAY-1 S-810 SR8000 VPP500 CM-5 ASCI-5 ASCI-4 S3800 T3E-900 SR2201

More information

1 return main() { main main C 1 戻り値の型 関数名 引数 関数ブロックをあらわす中括弧 main() 関数の定義 int main(void){ printf("hello World!!\n"); return 0; 戻り値 1: main() 2.2 C main

1 return main() { main main C 1 戻り値の型 関数名 引数 関数ブロックをあらわす中括弧 main() 関数の定義 int main(void){ printf(hello World!!\n); return 0; 戻り値 1: main() 2.2 C main C 2007 5 29 C 1 11 2 2.1 main() 1 FORTRAN C main() main main() main() 1 return 1 1 return main() { main main C 1 戻り値の型 関数名 引数 関数ブロックをあらわす中括弧 main() 関数の定義 int main(void){ printf("hello World!!\n"); return

More information

0130_FrontISTR研究会_V3

0130_FrontISTR研究会_V3 Intel Xeon Phi (Knights Landing) のパフォーマンス評価の 例 東京 学 学院 新領域創成科学研究科 松 和, 森 直樹, 奥 洋司 2017 年 1 30 第 33 回 FrontISTR 研究会 2017/1/30 FrontISTR 研究会 1 次 背景と 的 KNLのアーキテクチャ メモリモードとクラスタモード STREAM triadによる性能評価 FrontISTRによる性能評価

More information

hotspot の特定と最適化

hotspot の特定と最適化 1 1? 1 1 2 1. hotspot : hotspot hotspot Parallel Amplifier 1? 2. hotspot : (1 ) Parallel Composer 1 Microsoft* Ticker Tape Smoke 1.0 PiSolver 66 / 64 / 2.76 ** 84 / 27% ** 75 / 17% ** 1.46 89% Microsoft*

More information

appli_HPhi_install

appli_HPhi_install 2018/3/7 HΦ version 3.0.0 インストール手順書 (Linux 64 ビット版 ) 目次 1. アプリケーション概要...- 1-2. システム環境...- 1-3. 必要なツール ライブラリのインストール...- 1-1 cmake...- 2-2 numpy...- 3-4. アプリケーションのインストール...- 4-5. 動作確認の実施...- 5 - 本手順書は HΦ

More information

2012年度HPCサマーセミナー_多田野.pptx

2012年度HPCサマーセミナー_多田野.pptx ! CCS HPC! I " tadano@cs.tsukuba.ac.jp" " 1 " " " " " " " 2 3 " " Ax = b" " " 4 Ax = b" A = a 11 a 12... a 1n a 21 a 22... a 2n...... a n1 a n2... a nn, x = x 1 x 2. x n, b = b 1 b 2. b n " " 5 Gauss LU

More information

TSUBAME2.0におけるGPUの 活用方法

TSUBAME2.0におけるGPUの 活用方法 GPU プログラミング 基礎編 東京工業大学学術国際情報センター 1. GPU コンピューティングと TSUBAME2.0 スーパーコンピュータ GPU コンピューティングとは グラフィックプロセッサ (GPU) は グラフィック ゲームの画像計算のために 進化を続けてきた 現在 CPU のコア数は 2~12 個に対し GPU 中には数百コア その GPU を一般アプリケーションの高速化に利用! GPGPU

More information

ストリームを用いたコンカレントカーネルプログラミングと最適化 エヌビディアジャパン CUDAエンジニア森野慎也 GTC Japan 2014

ストリームを用いたコンカレントカーネルプログラミングと最適化 エヌビディアジャパン CUDAエンジニア森野慎也 GTC Japan 2014 ストリームを用いたコンカレントカーネルプログラミングと最適化 エヌビディアジャパン CUDAエンジニア森野慎也 GTC Japan 2014 コンカレントな処理の実行 システム内部の複数の処理を 平行に実行する CPU GPU メモリ転送 カーネル実行 複数のカーネル間 ストリーム GPU 上の処理キュー カーネル実行 メモリ転送の並列性 実行順序 DEFAULT STREAM Stream : GPU

More information

IPSJ SIG Technical Report Vol.2013-HPC-138 No /2/21 GPU CRS 1,a) 2,b) SpMV GPU CRS SpMV GPU NVIDIA Kepler CUDA5.0 Fermi GPU Kepler Kepler Tesla

IPSJ SIG Technical Report Vol.2013-HPC-138 No /2/21 GPU CRS 1,a) 2,b) SpMV GPU CRS SpMV GPU NVIDIA Kepler CUDA5.0 Fermi GPU Kepler Kepler Tesla GPU CRS 1,a),b) SpMV GPU CRS SpMV GPU NVIDIA Kepler CUDA5.0 Fermi GPU Kepler Kepler Tesla K0 CUDA5.0 cusparse CRS SpMV 00 1.86 177 1. SpMV SpMV CRS Compressed Row Storage *1 SpMV GPU GPU NVIDIA Kepler

More information

Oakforest-PACS 利用の手引き 2 ノートパソコンの設定 : 公開鍵の生成 登録

Oakforest-PACS 利用の手引き 2 ノートパソコンの設定 : 公開鍵の生成 登録 Oakforest-PACS 利用の手引き 1 お試しアカウント付き 並列プログラミング講習会 Oakforest-PACS 利用の手引き 東京大学情報基盤センター Oakforest-PACS 利用の手引き 2 ノートパソコンの設定 : 公開鍵の生成 登録 Oakforest-PACS 利用の手引き 3 鍵の作成 1. ターミナルを起動する 2. 以下を入力する $ ssh-keygen t rsa

More information

Intel® Compilers Professional Editions

Intel® Compilers Professional Editions 2007 6 10.0 * 10.0 6 5 Software &Solutions group 10.0 (SV) C++ Fortran OpenMP* OpenMP API / : 200 C/C++ Fortran : OpenMP : : : $ cat -n main.cpp 1 #include 2 int foo(const char *); 3 int main()

More information

(Microsoft PowerPoint \215u\213`4\201i\221\272\210\344\201j.pptx)

(Microsoft PowerPoint \215u\213`4\201i\221\272\210\344\201j.pptx) AICS 村井均 RIKEN AICS HPC Summer School 2012 8/7/2012 1 背景 OpenMP とは OpenMP の基本 OpenMP プログラミングにおける注意点 やや高度な話題 2 共有メモリマルチプロセッサシステムの普及 共有メモリマルチプロセッサシステムのための並列化指示文を共通化する必要性 各社で仕様が異なり 移植性がない そして いまやマルチコア プロセッサが主流となり

More information

スパコンに通じる並列プログラミングの基礎

スパコンに通じる並列プログラミングの基礎 2018.09.10 furihata@cmc.osaka-u.ac.jp ( ) 2018.09.10 1 / 59 furihata@cmc.osaka-u.ac.jp ( ) 2018.09.10 2 / 59 Windows, Mac Unix 0444-J furihata@cmc.osaka-u.ac.jp ( ) 2018.09.10 3 / 59 Part I Unix GUI CUI:

More information

スパコンに通じる並列プログラミングの基礎

スパコンに通じる並列プログラミングの基礎 2018.06.04 2018.06.04 1 / 62 2018.06.04 2 / 62 Windows, Mac Unix 0444-J 2018.06.04 3 / 62 Part I Unix GUI CUI: Unix, Windows, Mac OS Part II 2018.06.04 4 / 62 0444-J ( : ) 6 4 ( ) 6 5 * 6 19 SX-ACE * 6

More information

黒板作成 連携ツールの概要 黒板作成 連携ツールは 事前に撮影する工事写真用の黒板を作成するツールです 本書では EX-TREND 武蔵の写真管理 黒板作成 連携ツール ios アプリ 現場 DE カメラ土木版 の連携について 説明します 写真管理 EX-TREND 武蔵の写真管理で作成した 工種分

黒板作成 連携ツールの概要 黒板作成 連携ツールは 事前に撮影する工事写真用の黒板を作成するツールです 本書では EX-TREND 武蔵の写真管理 黒板作成 連携ツール ios アプリ 現場 DE カメラ土木版 の連携について 説明します 写真管理 EX-TREND 武蔵の写真管理で作成した 工種分 黒板作成 連携ツール ( 現場 DE カメラ土木版 ) 黒板作成 連携ツールの概要 写真管理で工種分類 豆図を出力 黒板データの作成 6 黒板データを現場 DE カメラ土木版へ転送 0 現場 DE カメラ土木版で黒板を使用して撮影 6 現場 DE カメラ土木版の写真を PC へ転送 6 7 写真の取り込み 7 黒板作成 連携ツールの概要 黒板作成 連携ツールは 事前に撮影する工事写真用の黒板を作成するツールです

More information

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë 2012 5 24 scalar Open MP Hello World Do (omp do) (omp workshare) (shared, private) π (reduction) PU PU PU 2 16 OpenMP FORTRAN/C/C++ MPI OpenMP 1997 FORTRAN Ver. 1.0 API 1998 C/C++ Ver. 1.0 API 2000 FORTRAN

More information

スライド 1

スライド 1 GPU クラスタによる格子 QCD 計算 広大理尾崎裕介 石川健一 1.1 Introduction Graphic Processing Units 1 チップに数百個の演算器 多数の演算器による並列計算 ~TFLOPS ( 単精度 ) CPU 数十 GFLOPS バンド幅 ~100GB/s コストパフォーマンス ~$400 GPU の開発環境 NVIDIA CUDA http://www.nvidia.co.jp/object/cuda_home_new_jp.html

More information

Microsoft PowerPoint - 演習1:並列化と評価.pptx

Microsoft PowerPoint - 演習1:並列化と評価.pptx 講義 2& 演習 1 プログラム並列化と性能評価 神戸大学大学院システム情報学研究科横川三津夫 yokokawa@port.kobe-u.ac.jp 2014/3/5 RIKEN AICS HPC Spring School 2014: プログラム並列化と性能評価 1 2014/3/5 RIKEN AICS HPC Spring School 2014: プログラム並列化と性能評価 2 2 次元温度分布の計算

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

memo

memo 数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int

More information

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード] if 文 (a と b の大きい方を表示 ) C 言語 Ⅰ の復習 条件判定 (if, 条件式 ) ループ (for[ 二重まで ], while, do) 配列 ( 次元 次元 ) トレース int a, b; printf( 整数 a: ); scanf( %d, &a); printf( 整数 b: ); scanf( %d, &b); //つのif 文で表現する場合間違えやすい どっちに =

More information

CUDA を用いた画像処理 画像処理を CUDA で並列化 基本的な並列化の考え方 目標 : 妥当な Naïve コードが書ける 最適化の初歩がわかる ブロックサイズ メモリアクセスパターン

CUDA を用いた画像処理 画像処理を CUDA で並列化 基本的な並列化の考え方 目標 : 妥当な Naïve コードが書ける 最適化の初歩がわかる ブロックサイズ メモリアクセスパターン CUDA 画像処理入門 エヌビディアジャパン CUDA エンジニア森野慎也 GTC Japan 2014 CUDA を用いた画像処理 画像処理を CUDA で並列化 基本的な並列化の考え方 目標 : 妥当な Naïve コードが書ける 最適化の初歩がわかる ブロックサイズ メモリアクセスパターン RGB Y( 輝度 ) 変換 カラー画像から グレイスケールへの変換 Y = 0.299 R + 0.587

More information

GeoFEM開発の経験から

GeoFEM開発の経験から FrontISTR における並列計算のしくみ < 領域分割に基づく並列 FEM> メッシュ分割 領域分割 領域分割 ( パーティショニングツール ) 全体制御 解析制御 メッシュ hecmw_ctrl.dat 境界条件 材料物性 計算制御パラメータ 可視化パラメータ 領域分割ツール 逐次計算 並列計算 Front ISTR FEM の主な演算 FrontISTR における並列計算のしくみ < 領域分割に基づく並列

More information

02_C-C++_osx.indd

02_C-C++_osx.indd C/C++ OpenMP* / 2 C/C++ OpenMP* OpenMP* 9.0 1... 2 2... 3 3OpenMP*... 5 3.1... 5 3.2 OpenMP*... 6 3.3 OpenMP*... 8 4OpenMP*... 9 4.1... 9 4.2 OpenMP*... 9 4.3 OpenMP*... 10 4.4... 10 5OpenMP*... 11 5.1

More information

ポインタ変数

ポインタ変数 プログラミング及び実習 5 馬青 1 文字処理 数値処理 : 整数 浮動小数点数 単一の文字は と ( シングルクォーテーション ) で囲んで表現される 文字のデータ型は char または int である int を用いたほうが ライブラリの関数の引数の型と一致する 以下は全部 int の使用に統一する 従って int ch; で文字変数を宣言しておくと ch= A ; のように ch に文字 A

More information

NUMAの構成

NUMAの構成 メッセージパッシング プログラミング 天野 共有メモリ対メッセージパッシング 共有メモリモデル 共有変数を用いた単純な記述自動並列化コンパイラ簡単なディレクティブによる並列化 :OpenMP メッセージパッシング 形式検証が可能 ( ブロッキング ) 副作用がない ( 共有変数は副作用そのもの ) コストが小さい メッセージパッシングモデル 共有変数は使わない 共有メモリがないマシンでも実装可能 クラスタ

More information

1 OpenCL OpenCL 1 OpenCL GPU ( ) 1 OpenCL Compute Units Elements OpenCL OpenCL SPMD (Single-Program, Multiple-Data) SPMD OpenCL work-item work-group N

1 OpenCL OpenCL 1 OpenCL GPU ( ) 1 OpenCL Compute Units Elements OpenCL OpenCL SPMD (Single-Program, Multiple-Data) SPMD OpenCL work-item work-group N GPU 1 1 2 1, 3 2, 3 (Graphics Unit: GPU) GPU GPU GPU Evaluation of GPU Computing Based on An Automatic Program Generation Technology Makoto Sugawara, 1 Katsuto Sato, 1 Kazuhiko Komatsu, 2 Hiroyuki Takizawa

More information

Reedbush-Uアカウントの発行

Reedbush-Uアカウントの発行 計算科学概論 ( 第 2 回 ):4 月 16 日 ( 月 ) Reedbush スーパーコンピュータシステム の利用と MPI プログラムの実行 松本正晴 大学院情報理工学系研究科コンピュータ科学専攻 本日の講義資料 ITC-LMSの授業スライドにある 計算科学概論 0409.pdf ( 前回分の資料 ) と 計算科学概論 0416.pdf ( 今回の資料 ) を各自ダウンロードしてください https://itc-lms.ecc.u-tokyo.ac.jp/portal/login

More information

3次多項式パラメタ推定計算の CUDAを用いた実装 (CUDAプログラミングの練習として) Implementation of the Estimation of the parameters of 3rd-order-Polynomial with CUDA

3次多項式パラメタ推定計算の CUDAを用いた実装 (CUDAプログラミングの練習として)  Implementation of the Estimation of the parameters of 3rd-order-Polynomial with CUDA 3 次多項式パラメタ推定計算の CUDA を用いた実装 (CUDA プログラミングの練習として ) Estimating the Parameters of 3rd-order-Polynomial with CUDA ISS 09/11/12 問題の選択 目的 CUDA プログラミングを経験 ( 試行錯誤と習得 ) 実際に CPU のみの場合と比べて高速化されることを体験 問題 ( インプリメントする内容

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 m.imura@kwansei.ac.jp 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,

More information

Microsoft PowerPoint - 阪大CMSI pptx

Microsoft PowerPoint - 阪大CMSI pptx 内容に関する質問は katagiri@cc.u-tokyo.ac.jp まで 第 3 回 OpenMP の基礎 東京大学情報基盤センター 片桐孝洋 1 講義日程と内容について (1 学期 : 木曜 3 限 ) 第 1 回 : プログラム高速化の基礎 2015 年 4 月 9 日 イントロダクション ループアンローリング キャッシュブロック化 数値計算ライブラリの利用 その他第 2 回 :MPIの基礎

More information

情報処理概論(第二日目)

情報処理概論(第二日目) 実習資料 Linux 入門講習会 九州大学情報基盤研究開発センター 注意 : この内容は najima.cc.kyushu-u.ac.jp の任意の ID で利用できますが, ファイルの削除等を含んでいるので各コマンドの意味を理解するまでは講習会用 ID で利用することをお勧めします. 1 実習 1 ログイン ファイル操作 ディレクトリの作成 ファイルの移動, コピー, 削除 ログアウト 2 ログイン

More information

Total View Debugger 利用の手引 東京工業大学学術国際情報センター version 1.0

Total View Debugger 利用の手引 東京工業大学学術国際情報センター version 1.0 Total View Debugger 利用の手引 東京工業大学学術国際情報センター 2015.04 version 1.0 目次 Total View Debugger 利用の手引き 1 1. はじめに 1 1.1 利用できるバージョン 1 1.2 概要 1 1.3 マニュアル 1 2. TSUBAME での利用方法 2 2.1 Total View Debugger の起動 2 (1) TSUBAMEにログイン

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション Computer simulations create the future 2015 年度第 1 回 AICS 公開ソフト講習会 K MapReduce ハンズオン 滝澤真一朗松田元彦丸山直也 理化学研究所計算科学研究機構プログラム構成モデル研究チーム 1 RIKEN ADVANCED INSTITUTE FOR COMPUTATIONAL SCIENCE KMR の導入方法を学ぶ 目的 KMRRUN

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 計算機実習 Ⅰ FORTRAN 担当 2018.05.29 本日の課題 プログラムの基本ルールを理解し 以下が含まれるプログラムを作成する (1) 文法の基礎 ( フローチャートなど ) (2) 変数宣言 (3) 入出力 (4) 四則演算 (5) 組込関数 (6) 判定文 (7) リダイレクション PROGRAM MAIN INTEGER I, J, K REAL A, B, C CHARACTER

More information

Windows10 における Ac6 System Workbench for STM32 のダウンロードとインストール V /06/01 Windows10 の PC で Ac6 System Workbench for STM32 のダウンロードとインストールの方法について説明しま

Windows10 における Ac6 System Workbench for STM32 のダウンロードとインストール V /06/01 Windows10 の PC で Ac6 System Workbench for STM32 のダウンロードとインストールの方法について説明しま Windows10 における Ac6 System Workbench for STM32 のダウンロードとインストール V001 2016/06/01 Windows10 の PC で Ac6 System Workbench for STM32 のダウンロードとインストールの方法について説明します 目次 1. Ac6 System Workbench for STM32 のダウンロード... 2

More information

DO 時間積分 START 反変速度の計算 contravariant_velocity 移流項の計算 advection_adams_bashforth_2nd DO implicit loop( 陰解法 ) 速度勾配, 温度勾配の計算 gradient_cell_center_surface 速

DO 時間積分 START 反変速度の計算 contravariant_velocity 移流項の計算 advection_adams_bashforth_2nd DO implicit loop( 陰解法 ) 速度勾配, 温度勾配の計算 gradient_cell_center_surface 速 1 1, 2 1, 2 3 2, 3 4 GP LES ASUCA LES NVIDIA CUDA LES 1. Graphics Processing Unit GP General-Purpose SIMT Single Instruction Multiple Threads 1 2 3 4 1),2) LES Large Eddy Simulation 3) ASUCA 4) LES LES

More information

概要 目的 CUDA Fortran の利用に関する基本的なノウハウを提供する 本チュートリアル受講後は Web 上で公開されている資料等を参照しながら独力で CUDA Fortran が利用できることが目標 対象 CUDA Fortran の利用に興味を抱いている方 前提とする知識 Fortran

概要 目的 CUDA Fortran の利用に関する基本的なノウハウを提供する 本チュートリアル受講後は Web 上で公開されている資料等を参照しながら独力で CUDA Fortran が利用できることが目標 対象 CUDA Fortran の利用に興味を抱いている方 前提とする知識 Fortran CUDA Fortran チュートリアル 2010 年 9 月 29 日 NEC 概要 目的 CUDA Fortran の利用に関する基本的なノウハウを提供する 本チュートリアル受講後は Web 上で公開されている資料等を参照しながら独力で CUDA Fortran が利用できることが目標 対象 CUDA Fortran の利用に興味を抱いている方 前提とする知識 Fortran を用いた Linux

More information

XACC講習会

XACC講習会 www.xcalablemp.org 1 4, int array[max]; #pragma xmp nodes p(*) #pragma xmp template t(0:max-1) #pragma xmp distribute t(block) onto p #pragma xmp align array[i] with t(i) int array[max]; main(int argc,

More information

kiso2-03.key

kiso2-03.key 座席指定はありません Linux を起動して下さい 第3回 計算機基礎実習II 2018 のウェブページか ら 以下の課題に自力で取り組んで下さい 計算機基礎実習II 第2回の復習課題(rev02) 第3回の基本課題(base03) 第2回課題の回答例 ex02-2.c include int main { int l int v, s; /* 一辺の長さ */ /* 体積 v

More information

2 A I / 58

2 A I / 58 2 A 2018.07.12 I 2 2018.07.12 1 / 58 I 2 2018.07.12 2 / 58 π-computer gnuplot 5/31 1 π-computer -X ssh π-computer gnuplot I 2 2018.07.12 3 / 58 gnuplot> gnuplot> plot sin(x) I 2 2018.07.12 4 / 58 cp -r

More information

Spectrum Setup 画面が現れます Install Tab の各項目に マウス カーソルを合わせると 項目の詳細説明 が表示されます 通常はデフォルトの選択で問題ありませんが LabVIEW Driver Matlab Driver が必要な場合は 選択します 6. Install sel

Spectrum Setup 画面が現れます Install Tab の各項目に マウス カーソルを合わせると 項目の詳細説明 が表示されます 通常はデフォルトの選択で問題ありませんが LabVIEW Driver Matlab Driver が必要な場合は 選択します 6. Install sel NETBOX_ 最初にお読み下さい.docx NETBOX をご評価 ご購入頂きありがとうございます 本ドキュメントは Windows 環境での NETBOX の設置 LAN 接続 ドライバ ソフトウエア (Control Center, SBench6) インストール 動作確認まで順を追って説明する簡易版になります 説明内容は Windows7 環境の画面表示をベースとしておりますが Windows10

More information