内容 イントロダクション スカラチューニング OpenMPによる並列化 最近のHPC分野の動向 まとめ

Size: px
Start display at page:

Download "内容 イントロダクション スカラチューニング OpenMPによる並列化 最近のHPC分野の動向 まとめ"

Transcription

1 スカラチューニングと OpenMPによるコードの高速化 松本洋介 千葉大学 謝辞 C言語への対応 簑島敬 JAMSTEC 宇宙磁気流体 プラズマシミュレーションサマースクール 2013年8月6日 千葉大学統合情報センター

2 内容 イントロダクション スカラチューニング OpenMPによる並列化 最近のHPC分野の動向 まとめ

3 イントロダクション

4 CPUの作り \ Fujitsu SPARC64TM VIIIfx

5 命令実行の流れ 1.命令による実行 ② ③ 実行にかかる時間は主に による 2.データの入出力 ① ④

6 メモリの階層構造 京の場合 register : 1 cycle L1$: 32 kb,? GB/s L2$: 6MB, >180 GB/s Memory: 16GB, 64GB/s

7 私のスパコン利用暦 2000 vpp800 (Fujitsu) vpp5000 (Fujitsu) 2009 FX1 (Fujitsu) FX10 (Fujitsu) 京 (Fujitsu) sx6 (NEC) sx9 (NEC) XT4 (Cray) XC30 (Cray)

8 私のスパコン利用暦 ベクトル計算機時代 2000 vpp800 (Fujitsu) vpp5000 (Fujitsu) 2009 FX1 (Fujitsu) FX10 (Fujitsu) 京 (Fujitsu) sx6 (NEC) sx9 (NEC) XT4 (Cray) XC30 (Cray)

9 私のスパコン利用暦 ベクトル計算機時代 2000 vpp800 (Fujitsu) vpp5000 (Fujitsu) スカラ計算機時代 2009 FX1 (Fujitsu) FX10 (Fujitsu) 京 (Fujitsu) sx6 (NEC) sx9 (NEC) XT4 (Cray) XC30 (Cray)

10 スカラ ベクトル スカラ 同じ車を何台も作る 作業に例えると ベクトル 演算のパイプライン処理 サイクル 2台目 3台目 do k=1,100 do j=1,100 do i=1,100 a(i,j,k) = c*b(i,j,k)+d(i,j,k)

11 近年の演算処理の高速化のしくみ サイクル時間 1/周波数 の短縮 周波数 3GHzで頭打ち ベクトル化 パイプライン処理 SIMD 複数演算器 メモリ構造の階層化 並列化 マルチコア

12 近年の演算処理の高速化のしくみ サイクル時間 1/周波数 の短縮 周波数 3GHzで頭打ち ベクトル化 パイプライン処理 SIMD 複数演算器 メモリ構造の階層化 並列化 マルチコア

13 近年の演算処理の高速化のしくみ サイクル時間 1/周波数 の短縮 周波数 3GHzで頭打ち ベクトル化 パイプライン処理 SIMD 複数演算器 メモリ構造の階層化 並列化 マルチコア ユーザから見たら同じ

14 近年の演算処理の高速化のしくみ サイクル時間 1/周波数 の短縮 周波数 3GHzで頭打ち ベクトル化 パイプライン処理 SIMD 複数演算器 ユーザから見たら同じ メモリ構造の階層化 並列化 マルチコア 近年の計算機では SIMD化 キャッシュヒット率の向 上 マルチコアによる並列化が高速化のポイント

15 スカラチューニング

16 対象 宇宙磁気流体プラズマシミュレーションにかか わること すなわち 差分法 磁気流体 MHD ブラソフシミュレー ション 粒子法 電磁粒子 PIC シミュレーション 行列の演算 例 LU分解など は対象外 Fortran, C

17 注意 一般に チューニングすると可読性が損なわれ ます まずは読みやすいコードを書き 充分テ ストしてバグを除いてからチューニングを行い ましょう

18 チューニングが必要 無理にしなくて良いです 好きでもしんどい 最先端 大規模 シミュレーション研究では必 須 なぜなら 1ランで数週間 2倍の速度向上で10日単位の短縮 京 などの大規模計算申請書類では 実行効 率 並列化率などの情報が求められる 実行効率10%以上あれば 計算機資源の獲得にお いて 他分野との競争力になる

19 チューニングの手順 編集 コンパイル コンパイルリスト 最適化されているか Yes 実行 プロファイラ 一番重いルーチンは No

20 コンパイルリスト 最適化情報の詳細を出力 インライン展開等の最適化 SIMD化 並列化 コンパイルオプション gcc/gfortran: N/A icc/ifort: -opt-report, -vec-report, -par-report

21 プロファイラの利用 各サブルーチンの経過時間を計測 ホットスポット 一番処理が重いサブルーチン から最適化 商用コンパイラ intel, PGI, スパコン等 では 詳細情報 キャッシュミス率 FLOPS が得られる GNUでは gprof gprofの使い方 gfortran (gcc) -pg test.f90 ifort (icc) -p test.f90./a.out gprof./a.out gmon.out > output.txt output.txt

22 スカラチューニングのポイント コンパイラ 人 にやさしいプログラム構造 ループ内で分岐は使わない if文の代わりにmin, max, sign で goto文は不可 ループ内処理を単純にする SIMD化促進 外部関数のインライン展開 データの局所化を高める 使用するデータはなるべくひとまとめにして キャッ シュに乗るようにする データの再利用 連続アクセス ポインタは使わない Fortran

23 基本的なtips 原因不明で異常終了したら unlimitコマンド スタック領 域 静的変数 のサイズの制限を開放 割り算を掛け算に a(i) = b(i)/c c = 1.0/c ; a(i) = b(i)*c べき乗表記はなるべく使わない a(i) = b(i)**2 a(i) = b(i)*b(i) a(i) = b(i)**0.5 a(i) = sqrt(b(i)) 因数分解をして演算数を削減 y=a*x*x*x*x+b*x*x*x+c*x*x+d*x y=x*(d+x*(c+x*(b+x*(a)))) 演算回数13 7 一時変数は出来る限り再利用 レジスタの節約

24 分岐処理の回避1 Fortran: do i=1,nx if(a /= 0.0)then b(i) = c(i)/a else b(i) = c(i) endif if(a == 0.0) a=1.0 a = 1.0/a do i=1,nx b(i) = c(i)*a

25 分岐処理の回避2 minmod関数 Fortran: do i=1,nx if(a(i)*b(i) < 0.0)then c(i) = 0 else c(i) = sign(1.0,a(i)) & *min(abs(a(i)),abs(b(i))) endif do i=1,nx c(i) = sign(1.0,a(i)) *max(0.0, min(abs(a(i)), sign(1.0,a(i))*b(i)) ) & & & &

26 SIMD: Single Instruction Multiple Data ユーザレベルではベクトル化と同 じ ただし ベクトル長は2 4 と ベクトル計算機のそれ 256 に比べてずっと短い 最内側ループに対してベクトル化 最近ではループ内にIF文が入って いてもSIMD化してくれる マス ク付きSIMD化 真率が高けれ ば効果的 コンパイルオプションで最適化 gcc/gfortran: -m{avx, sse4} icc/ifort: -x{avx,sse4} from K computer manual from K computer manual

27 SIMD化の阻害例 SIMD化されない 書き方の工夫 SIMD化される 例1: ループ番号間に依存性がある場合 a(1) = dx do i=2,nx a(i) = a(i-1)+dx do i=1,nx a(i) = i*dx 例2: ループ番号によって処理が異なる場合 do i=1,nx if(a(i) < 0)then b(i-1) = c*a(i) else b(i+1) = c*a(i) endif do i=1,nx w1 = 0.5*(1.0-sign(1.0,a(i))) w2 = 0.5*(1.0+sign(1.0,a(i))) b(i-1) = c*w1*a(i) b(i+1) = c*w2*a(i)

28 配列の宣言とメモリ空間1 (Fortran) dimension a(nx,ny) 配列aのメモリ空間上での配置は a(i-1,j-1) a(i,j-1) a(i+1,j-1)... a(i-1,j) nx do i=1,nx do j=1,ny a(i,j) = i+j 間隔nxで飛び飛びにアドレスにア クセスすることになるので メモ リへの書き込みが非常に遅い a(i,j) a(i+1,j)... a(i-1,j+1) a(i,j+1) a(i+1,j+1) nx do j=1,ny do i=1,nx a(i,j) = i+j アドレスに連続アクセスするの で メモリへの書き込みが速い

29 配列の宣言とメモリ空間1 (C/C++) float a[ny][nx]; 配列aのメモリ空間上での配置は a[j-1][i-1] a[j-1][i] a[j-1][i+1]... a[j][i-1] nx for(i=0;i<nx;i++){ for(j=0;j<ny;j++){ a[j][i] = i+j; } } 間隔nxで飛び飛びにアドレスにア クセスすることになるので メモ リへの書き込みが非常に遅い a[j][i] a[j][i+1]... a[j+1][i-1] a[j+1][i] a[j+1][i+1] nx for(j=0;j<ny;j++){ for(i=0;i<nx;i++){ a[j][i] = i+j; } } アドレスに連続アクセスするの で メモリへの書き込みが速い

30 配列の宣言とメモリ空間2 連続の式 rn+1 = f(rn,vxn,vyn) 次のステップに進むためには 自分自身 r の他に速度 場が必要 dimension rho(nx,ny), vx(nx,ny), vy(nx,ny),... と変数を個別に用意する代わりに dimension f(8,nx,ny)! 1:rho, 2:p, 3-5:v, 6-8:B のように 一つの変数にまとめて配列を用意する このよ うにすると 必要となる各物理量がメモリ空間上の近い位 置に配置される キャッシュラインにのりやすい シ ステム方程式を解くための工夫

31 配列の宣言とメモリ空間2 続き TypeA: f(nx,nx,nz,8) TypeB: f(8,nx,nx,nz) 近年のキャッシュ重視型のスパコンにおいて効果的 Fukazawa et al., IEEE Trans. Plasma Sci., 2010.

32 配列の宣言とメモリ空間3 C言語 C言語で静的に配列を宣言する場合は float a[ny][nx]; とするが 領域分割の並列計算では動的に mallocで 配列 を確保する場合が多く 上記の宣言では難しい 2次元配列 を1次元配列として宣言する方が メモリ空間上で連続的に 領域を確保できる double *a; a=(double*)malloc(sizeof(double)*nx*ny); for (j=0;j<ny;j++){ for (i=0;i<nx;i++){ a[nx*j+i] = i+j; } }

33 キャッシュと配列ブロック 2次キャッシュ容量 数MB 倍精度で100x100x100グリッド分程度 MHD計算の1ノードあたりの配列数としては まだ ちょっと足りない PIC計算では セル内の粒子が必要なグリッド上の場 のデータがキャッシュに乗らない 配列ブロック 必要なデータだけをキャッシュに収まる程度の別の小 さな配列に事前に格納 PIC法で(i,j,k)セルに属する粒子が必要な場の情報をあ らかじめパック tmp(1:6,-1:1,-1:1,-1:1) = f(1:6,i-1:i+1,j-1:j+1,k-1:k+1)

34 インライン展開 外部 ユーザー定義 関数はプログラムの可読性向上に一 役 しかし do i=1,nx a(i) = myfunc(b(i)) のように ループ内で繰り返し呼び出す場合 呼び出しの オーバーヘッドが大きい 関数内の手続きが短い場合は 内容をその場所に展開する インライン展開 コンパイル時に指定 同一ファイル内に定義される関数 gcc/gfortran: -O3 もしくは -finline-functions icc: -O{2,3}, ifort: -finline コンパイル時に指定 別ファイル内に定義される関数 icc/ifort: -fast もしくは -ipo

35 OpenMPによるコードの並列化

36 アムダールの法則 全処理=1 並列数=1 逐次処理 (1-p) 並列化可能部分 (p) 並列数=2 p/2... 並列数=n Amdahl s Law p/n Parallel Portion 50% 75% 90% 95% 性能向上率 = 1 p (1 p)+ n 少なくも並列化率p>0.95である必要あり Number of Processors

37 スレッド並列とプロセス並列 スレッド並列 プロセス並列 プロセス スレッド1 スレッド2 プライベー ト変数 プライベー ト変数 スレッド3 プライベー ト変数 グローバル変数 メモリ空間 プロセス1 プロセス2 プロセス3 メモリ空間 メモリ空間 メモリ空間 プロセス4 プロセス5 プロセス6 メモリ空間 メモリ空間 メモリ空間 スレッドn プライベー ト変数

38 ハイブリッド並列 プロセス1-3 プロセス4-6 プロセス7 thrd1 thrd2 thrd3 thrd4 プロセス7-9 メモリ空間 プロセス10-12 プロセス13-15 プロセス16-18 この例では全72並列 プロセス間はMPIによる通信 各プロセスに4スレッド スレッド数分プロセス数を削減 MPIによる通信 同期待ちの オーバヘッドを軽減 出力ファイル数の削減

39 スレッド並列計算を行うためのAPI コンパイルオプションで有効 gcc/gfortran: -fopenmp icc/ifort: -openmp プログラムに指示行を挿入 オプション無効時はコメント 行と見なされる C言語は警告される場合も 自動並列化に比べて柔軟に最適化が可能 標準規格なため マシン コンパイラに依らずポータブル 2013年8月現在 OpenMP 4.0 SIMD化の指示行 アクセ ラレータ 後述 への対応

40 スレッド数の設定 基本的にはシェルの環境変数 $OMP_NUM_THREADS でスレッド数を指定する setenv OMP_NUM_THREADS 8 指定しなければ システムの全コア数 プログラム内部で関数で設定 omp_lib/omp.hをインク ルードする必要あり Fortran: C:!$use omp_lib integer, parameter :: nthrd = 8 #include <omp.h> int nthrd=8; call omp_set_num_threads(nthrd) omp_set_num_threads(nthrd);

41 全体の流れ fork-join モデル Fortran: 逐次処理 fork 並列処理 join 逐次処理 C: #include <stdio.h> #include <omp.h> int main(void) { puts( serial region ); #pragma omp parallel { puts( parallel region ); } puts( serial region ); return 0; }

42 ループの並列化 i=1-100を *$OMP_SCHEDULE SCHEDULE句で 分担方法変更可 各スレッドが!$OMP PARALLEL DO #pragma omp parallel for do i=1,100 均等に分担 for (i=0;i<100;i++){ b(i) = c*a(i) スレッドの立ち上げはb[i]=c*a[i]; }!$OMP END PARALLEL DO なるべくまとめて mysub(b); call mysub(b) #pragma omp parallel!$omp PARALLEL {!$OMP DO #pragma omp for do i=1,100 for (i=0;i<100;i++){ d(i) = c*b(i) d[i]=c*b[i]; } pragma omp for の!$OMP END DO 直後のforループが並列#pragma omp for!$omp DO do i=1,100 処理される 間に { を for (i=0;i<100;i++){ e[i]=c*d[i]; e(i) = c*d(i) 入れてはならない } }!$OMP END DO!$OMP END PARALLEL

43 多重ループの並列化 スレッドの立ち上げ do j=1,100 が100回も行われ for (j=0;j<100;j++){!$omp PARALLEL DO オーバーヘッドが #pragma omp parallel for do i=1,100 for (i=0;i<100;i++){ 大きい b(i,j) = c*a(i,j) b[j][i]=c*a[j][i]; }!$OMP END PARALLEL DO } 最外ループを並列化 #pragma omp parallel!$omp PARALLEL DO & 内側ループのカウンタ {!$OMP PRIVATE(i) 変数 i はプライベート #pragma omp for private(i) do j=1,100 宣言が必要 for (j=0;j<100;j++){ do i=1,100 for (i=0;i<100;i++){ b(i,j) = c*a(i,j) b[j][i]=c*a[j][i]; } }!$OMP END PARALLEL DO }

44 多重ループの並列化 続き 多重ループでは最外ループを並列化するのが基本 ループ の内側に指示行を入れると 外側ループの回転数分スレッ ドのfork/joinが行われ オーバーヘッドが大きくなる 内側にあるループのカウンタ変数 i, j,.. はスレッド固有 の変数とする必要があるため PRIVATE宣言をする そう しないと スレッド間で上書きしてしまう

45 グローバル プライベート変数!$OMP PARALLEL DO do i=1,100 tmp = myfunc(i) a(i) = tmp!$omp END PARALLEL DO スレッド間でtmpを 上書きしまうので正 しい結果が得られな い #pragma omp parallel for for (i=0;i<100;i++){ tmp=myfunc(i); a[i]=tmp; } Cの場合はループ内 で変数宣言すれば問 題なし!$OMP PARALLEL DO &!$OMP PRIVATE(tmp) do i=1,100 tmp = myfunc(i) a(i) = tmp!$omp END PARALLEL DO #pragma omp parallel{ #pragma omp parallel for #pragma omp for private(tmp) for (i=0;i<100;i++){ for (i=0;i<100;i++){ double tmp; tmp=myfunc(i); tmp=myfunc(i); a[i]=tmp; a[i]=tmp; } } }

46 ループ内変数の演算 (REDUCTION) sum = 0.0!$OMP PARALLEL DO &!$OMP REDUCTION(+:sum) do i=1,10 sum = sum+i!$omp END PARALLEL DO sum=1.0; #pragma omp parallel for reduction(+:sum) for (i=0;i<10;i++){ sum+=i; } 実用上 総和 + 以外使う機会はあまりない

47 単スレッド処理 (SINGLE)!$OMP PARALLEL!$OMP DO do i=1,100 b(i) = c*a(i)!$omp END DO!$OMP SINGLE call output(b)!$omp END SINGLE!$OMP DO do i=1,100 d(i) = c*b(i)!$omp END DO!$OMP END PARALLEL スレッドの立ち上げ #pragma omp parallel を最初に一回だけ { #pragma omp for for (i=0;i<100;i++){ b[i]=c*a[i]; } 途中で逐次処理が入る #pragma omp single 場合はSINGLEで対処 { output(b); } #pragma omp for for (i=0;i<100;i++){ d[i]=c*b[i]; } } スレッドの立ち上げ回数はなるべく少なく データ入出力な ど 途中で逐次処理が必要な場合に使う

48 バリア同期の回避 (NOWAIT)!$OMP PARALLEL!$OMP DO do i=1,100 b(i) = c*a(i)!$omp END DO NOWAIT!$OMP DO do i=1,100 d(i) = c*b(i)!$omp END DO!$OMP DO do i=1,200 e(i) = c*d(i)!$omp END DO NOWAIT!$OMP END PARALLEL #pragma omp parallel ループの終わりで暗黙 { に行われるスレッド #pragma omp for nowait for (i=0;i<100;i++){ 間の同期待ちを b[i]=c*a[i]; NOWAITで回避 } #pragma omp for 次のループではスレッド for (i=0;i<100;i++){ に対する変数 d の割り当 d[i]=c*b[i]; } て範囲が変わるので 同期が必要 注意 #pragma omp for nowait for (i=0;i<100;i+=2){ e[i]=c*d[i]; } } スレッド数が大きい場合に高速化に寄与する

49 OpenMP実装上の注意点 ユーザが並列処理箇所を明示するため 並列計算に伴う 問題発生はプログラマが責任を負う 自動並列化との違 い 並列処理してはいけない箇所でも 明示したら並列化さ れてしまう スレッド内でグローバル/プライベート変数を間違えると 結果が不定 NOWAITで必要な同期を忘れると結果が不定 同じプログラムを数回は実行して 結果が変わらないこ との確認が必要 実装は簡単だけど デバッグに注意が必要

50 最近のHPC分野の動向

51 TOP500 (2013年6月現在 ペタFLOPS メガW時代

52 TOP500 (2013年6月現在 ペタFLOPS メガW時代

53 10 MW?

54 GREEN500 性能 消費電力 BGQ (IBM) 強し 専用CPUの躍進

55 GPGPU vs. MIC NVIDIA TESLA ゲーム用途のGPUをHPCに応用 GPGPU) CUDA/OpenACCによるプログラミング 基本C/C++ PGI Fortranでも可能 NVIDIAが買収 intel Xeon Phi x86互換のコプロセッサ ~ 60 core 既存のコードから容易に拡張可能 OpenMP 4.0で更に高機能に利用可能 これまでの講義内容をやっていれば さほ ど手間なくそこそこの性能が出るはず ともにアクセラレータ PCIe2.0で各ノード に付け加えられる

56 国内HPCIシステム

57 国内HPCIシステム GPGPU計算機

58 国内HPCIシステム GPGPU計算機 ベクトル計算機

59 エクサFLOPS メガW時代へ 電力消費量はこれ以上増やせないので 5年後には専用CPU と組み合わせたスパコンが国内でも増えてくる 汎用 専用CPU構成のヘテロジニアスなシステムへ ユーザのプログラム負担が増える可能性 シミュレーション研究者の宿命だが 5~10年くらいの周期で スパコンシステムのトレンドに振り回される ベクトル vs. スーパースカラ MPI vs. HPF (High Performance Fortran) 私は2009年に手持ちのコード MHD/PIC を再コーディ ング スパコン情勢に注意しつつ 研究を進めましょう

60 まとめ スカラチューニング OpenMPによるスレッド並列化 高速化のためのCPUの機能 SIMD をいかに使い倒すか キャッシュチューニング 指示行を最外ループの手前にいれるだけ 簡単 スレッド並列化によりプロセス数を減らし 通信のオー バーヘッドを軽減 ハイブリッド並列化 今後の展望 次世代の エクサ スパコンでは電力消費量問題が顕在化 汎用 専用CPUで構成されるヘテロジニアスシステムに ハイブリッド並列化はますます必須

61 参考資料 プロセッサを支える技術 Hisa Ando著 技術評 論社 各スパコンマニュアル

コードのチューニング

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

More information

演習1: 演習準備

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

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

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

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

(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

NUMAの構成

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

More information

AICS 村井均 RIKEN AICS HPC Summer School /6/2013 1

AICS 村井均 RIKEN AICS HPC Summer School /6/2013 1 AICS 村井均 RIKEN AICS HPC Summer School 2013 8/6/2013 1 背景 OpenMP とは OpenMP の基本 OpenMP プログラミングにおける注意点 やや高度な話題 2 共有メモリマルチプロセッサシステムの普及 共有メモリマルチプロセッサシステムのための並列化指示文を共通化する必要性 各社で仕様が異なり 移植性がない そして いまやマルチコア プロセッサが主流となり

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 - sales2.ppt

Microsoft PowerPoint - sales2.ppt 最適化とは何? CPU アーキテクチャに沿った形で最適な性能を抽出できるようにする技法 ( 性能向上技法 ) コンパイラによるプログラム最適化 コンパイラメーカの技量 経験量に依存 最適化ツールによるプログラム最適化 KAP (Kuck & Associates, Inc. ) 人によるプログラム最適化 アーキテクチャのボトルネックを知ること 3 使用コンパイラによる性能の違い MFLOPS 90

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

Microsoft Word ●IntelクアッドコアCPUでのベンチマーク_吉岡_ _更新__ doc

Microsoft Word ●IntelクアッドコアCPUでのベンチマーク_吉岡_ _更新__ doc 2.3. アプリ性能 2.3.1. Intel クアッドコア CPU でのベンチマーク 東京海洋大学吉岡諭 1. はじめにこの数年でマルチコア CPU の普及が進んできた x86 系の CPU でも Intel と AD がデュアルコア クアッドコアの CPU を次々と市場に送り出していて それらが PC クラスタの CPU として採用され HPC に活用されている ここでは Intel クアッドコア

More information

enshu5_4.key

enshu5_4.key http://www.mmsonline.com/articles/parallel-processing-speeds-toolpath-calculations TA : 菅 新 菅沼智史 水曜 新行紗弓 馬淵隼 木曜 情報知能工学演習V (前半第4週) 政田洋平 システム情報学研究科計算科学専攻 演習 V( 前半 ) の内容 第 1 週 : 高性能計算 (High Performance Computing

More information

スライド 1

スライド 1 知能制御システム学 画像処理の高速化 OpenCV による基礎的な例 東北大学大学院情報科学研究科鏡慎吾 swk(at)ic.is.tohoku.ac.jp 2007.07.03 リアルタイム処理と高速化 リアルタイム = 高速 ではない 目標となる時間制約が定められているのがリアルタイム処理である.34 ms かかった処理が 33 ms に縮んだだけでも, それによって与えられた時間制約が満たされるのであれば,

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2017/04/25 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタの続き 引数の値渡しと参照渡し 構造体 2 ポインタで指されるメモリへのアクセス double **R; 型 R[i] と *(R+i) は同じ意味 意味 R double ** ポインタの配列 ( の先頭 ) へのポインタ R[i]

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション OpenMP 並列解説 1 人が共同作業を行うわけ 田植えの例 重いものを持ち上げる 田おこし 代かき 苗の準備 植付 共同作業する理由 1. 短時間で作業を行うため 2. 一人ではできない作業を行うため 3. 得意分野が異なる人が協力し合うため ポイント 1. 全員が最大限働く 2. タイミングよく 3. 作業順序に注意 4. オーバーヘッドをなくす 2 倍率 効率 並列化率と並列加速率 並列化効率の関係

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

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

<4D F736F F D20332E322E332E819C97AC91CC89F090CD82A982E78CA982E9466F E393082CC8D5C91A291CC90AB945C955D89BF5F8D8296D85F F8D F5F E646F63>

<4D F736F F D20332E322E332E819C97AC91CC89F090CD82A982E78CA982E9466F E393082CC8D5C91A291CC90AB945C955D89BF5F8D8296D85F F8D F5F E646F63> 3.2.3. 流体解析から見る Fortran90 の構造体性能評価 宇宙航空研究開発機構 高木亮治 1. はじめに Fortran90 では 構造体 動的配列 ポインターなど様々な便利な機能が追加され ユーザーがプログラムを作成する際に選択の幅が広がりより便利になった 一方で 実際のアプリケーションプログラムを開発する際には 解析対象となる物理現象を記述する数学モデルやそれらを解析するための計算手法が内包する階層構造を反映したプログラムを作成できるかどうかは一つの重要な観点であると考えられる

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2016/04/26 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタ malloc 構造体 2 ポインタ あるメモリ領域 ( アドレス ) を代入できる変数 型は一致している必要がある 定義時には値は不定 ( 何も指していない ) 実際にはどこかのメモリを指しているので, #include

More information

HPC143

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

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

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

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

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

スパコンに通じる並列プログラミングの基礎 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

<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

1.overview

1.overview 村井均 ( 理研 ) 2 はじめに 規模シミュレーションなどの計算を うためには クラスタのような分散メモリシステムの利 が 般的 並列プログラミングの現状 半は MPI (Message Passing Interface) を利 MPI はプログラミングコストが きい 標 性能と 産性を兼ね備えた並列プログラミング 語の開発 3 並列プログラミング 語 XcalableMP 次世代並列プログラミング

More information

enshu5_6.key

enshu5_6.key 情報知能工学演習V (前半第6週) 政田洋平 システム情報学研究科計算科学専攻 TA : 菅 新 菅沼智史 水曜 新行紗弓 馬淵隼 木曜 演習 V( 前半 ) の内容 第 1 週 : 高性能計算 (High Performance Computing = HPC) 向けプログラミングの基礎 第 2 週 : シミュレーションの基礎 第 3 週 : 波の移流方程式のシミュレーション 第 4,5 週 :

More information

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

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

More information

ÊÂÎó·×»»¤È¤Ï/OpenMP¤Î½éÊâ¡Ê£±¡Ë

ÊÂÎó·×»»¤È¤Ï/OpenMP¤Î½éÊâ¡Ê£±¡Ë 2015 5 21 OpenMP Hello World Do (omp do) Fortran (omp workshare) CPU Richardson s Forecast Factory 64,000 L.F. Richardson, Weather Prediction by Numerical Process, Cambridge, University Press (1922) Drawing

More information

Microsoft PowerPoint - GPUシンポジウム _d公開版.ppt [互換モード]

Microsoft PowerPoint - GPUシンポジウム _d公開版.ppt [互換モード] 200/0/9 数値流体解析の並列効率とその GPU による高速化の試み 清水建設 ( 株 ) 技術研究所 PHAM VAN PHUC ( ファムバンフック ) 流体計算時間短縮と GPU の活用の試み 現 CPUとの比較によりGPU 活用の可能性 現 CPU の最大利用 ノード内の最大計算資源の利用 すべてCPUコアの利用 適切なアルゴリズムの利用 CPU コア性能の何倍? GPU の利用の試み

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

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

スライド 1

スライド 1 計算科学が拓く世界スーパーコンピュータは何故スーパーか 学術情報メディアセンター中島浩 http://www.para.media.kyoto-u.ac.jp/jp/ username=super password=computer 講義の概要 目的 計算科学に不可欠の道具スーパーコンピュータが どういうものか なぜスーパーなのか どう使うとスーパーなのかについて雰囲気をつかむ 内容 スーパーコンピュータの歴史を概観しつつ

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 各種計算機アプリケーション性能比較 目次. はじめに. 行列積計算.QDR 積計算 4.N 体問題計算 5. 多次元積分計算 5. 次元積分計算 5. 次元積分計算 5. 4 次元積分計算 5.4 5 次元積分計算 5.5 6 次元積分計算 平成 6 年度第 四半期 . はじめに 今までと少し性質の異なるグラフィックボードが使用できる様になったので従来のアプリケーションで性能比較を実施しました 主に使用した計算機は以下のものです

More information

Microsoft Word - 2.2_takaki.doc

Microsoft Word - 2.2_takaki.doc 2.2 三次元圧縮性流体解析プログラム UPACS の性能評価 宇宙航空研究開発機構高木亮治 1. はじめに 宇宙航空研究開発機構 (JAXA) で開発された CFD プログラム UPACS について 富士通 PRIMEPOWER HPC2500 上で性能評価を行ったのでその結果を報告する 2. プログラム概要 UPACS は中核となる解析ソルバである UPACS ソルバと 解析の前後処理を行う各種ツール

More information

プログラミング実習I

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

More information

memo

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

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

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

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

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

More information

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - 09.pptx 情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源

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

プログラミングI第10回

プログラミングI第10回 プログラミング 1 第 10 回 構造体 (3) 応用 リスト操作 この資料にあるサンプルプログラムは /home/course/prog1/public_html/2007/hw/lec/sources/ 下に置いてありますから 各自自分のディレクトリにコピーして コンパイル 実行してみてください Prog1 2007 Lec 101 Programming1 Group 19992007 データ構造

More information

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

Microsoft PowerPoint - ARCEMB08HayashiSlides.ppt [互換モード] 演算 / メモリ性能バランスを考慮した CMP 向けオンチップ メモリ貸与法の提案 九州大学 林徹生今里賢一井上弘士村上和彰 1 発表手順 背景 目的 演算 / メモリ性能バランシング 概要 アクセスレイテンシの削減とオーバーヘッド 提案手法の実現方法 着目する命令 (Cell プロセッサへの ) 実装 性能評価 姫野ベンチマーク Susan@MiBench おわりに 2 チップマルチプロセッサ (CMP)

More information

cp-7. 配列

cp-7. 配列 cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標

More information

Microsoft Word - HOKUSAI_system_overview_ja.docx

Microsoft Word - HOKUSAI_system_overview_ja.docx HOKUSAI システムの概要 1.1 システム構成 HOKUSAI システムは 超並列演算システム (GWMPC BWMPC) アプリケーション演算サーバ群 ( 大容量メモリ演算サーバ GPU 演算サーバ ) と システムの利用入口となるフロントエンドサーバ 用途の異なる 2 つのストレージ ( オンライン ストレージ 階層型ストレージ ) から構成されるシステムです 図 0-1 システム構成図

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

スライド 0

スライド 0 2012/7/11 OpeMP を用いた Fortra コードの並列化基礎セミナー 株式会社計算力学研究センター 技術 1 部三又秀行 mimata@rccm.co.jp 目次 高速化 並列化事例 PARDISO について (XLsoft 黒澤様 ) 並列化 並列化について 並列化作業の流れ 並列化の手段 OpeMP デモ OpeMP で並列計算する 円周率 p の計算 (private reductio)

More information

Microsoft PowerPoint - 阪大CMSI pptx

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

More information

N08

N08 CPU のキモチ C.John 自己紹介 英語きらい 絵かけない 人の話を素直に信じない CPUにキモチなんてない お詫び 予告ではCとC# とありましたがやる気と時間の都合上 C++のみを対象とします 今日のネタ元 MSDN マガジン 2010 年 10 月号 http://msdn.microsoft.com/ja-jp/magazine/cc850829.aspx Windows と C++

More information

GPGPUクラスタの性能評価

GPGPUクラスタの性能評価 2008 年度理研 HPC シンポジウム第 3 世代 PC クラスタ GPGPU クラスタの性能評価 2009 年 3 月 12 日 富士通研究所成瀬彰 発表の概要 背景 GPGPU による高速化 CUDA の概要 GPU のメモリアクセス特性調査 姫野 BMT の高速化 GPGPU クラスタによる高速化 GPU Host 間のデータ転送 GPU-to-GPU の通信性能 GPGPU クラスタ上での姫野

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 講座準備 講座資料は次の URL から DL 可能 https://goo.gl/jnrfth 1 ポインタ講座 2017/01/06,09 fumi 2 はじめに ポインタはC 言語において理解が難しいとされる そのポインタを理解することを目的とする 講座は1 日で行うので 詳しいことは調べること 3 はじめに みなさん復習はしましたか? 4 & 演算子 & 演算子を使うと 変数のアドレスが得られる

More information

Microsoft PowerPoint - sales2.ppt

Microsoft PowerPoint - sales2.ppt 並列化の基礎 ( 言葉の意味 ) 並列実行には 複数のタスク実行主体が必要 共有メモリ型システム (SMP) での並列 プロセスを使用した並列化 スレッドとは? スレッドを使用した並列化 分散メモリ型システムでの並列 メッセージパッシングによる並列化 並列アーキテクチャ関連の言葉を押さえよう 21 プロセスを使用した並列処理 並列処理を行うためには複数のプロセスの生成必要プロセスとは プログラム実行のための能動実態メモリ空間親プロセス子プロセス

More information

演習準備

演習準備 演習準備 2014 年 3 月 5 日神戸大学大学院システム情報学研究科森下浩二 1 演習準備の内容 神戸大 FX10(π-Computer) 利用準備 システム概要 ログイン方法 コンパイルとジョブ実行方法 MPI 復習 1. MPIプログラムの基本構成 2. 並列実行 3. 1 対 1 通信 集団通信 4. データ 処理分割 5. 計算時間計測 2 神戸大 FX10(π-Computer) 利用準備

More information

並列プログラミング入門(OpenMP編)

並列プログラミング入門(OpenMP編) 登録施設利用促進機関 / 文科省委託事業 HPCI の運営 代表機関一般財団法人高度情報科学技術研究機構 (RIST) 1 並列プログラミング入門 (OpenMP 編 ) 2019 年 1 月 17 日 高度情報科学技術研究機構 (RIST) 山本秀喜 RIST 主催の講習会等 2 HPC プログラミングセミナー 一般 初心者向け : チューニング 並列化 (OpenMP MPI) 京 初中級者向け講習会

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 応用数理概論 準備 端末上で cd ~/ mkdir cppwork cd cppwork wget http://271.jp/gairon/main.cpp wget http://271.jp/gairon/matrix.hpp とコマンドを記入. ls とコマンドをうち,main.cppとmatrix.hppがダウンロードされていることを確認. 1 準備 コンパイル c++ -I. -std=c++0x

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

計算機アーキテクチャ

計算機アーキテクチャ 計算機アーキテクチャ 第 11 回命令実行の流れ 2014 年 6 月 20 日 電気情報工学科 田島孝治 1 授業スケジュール ( 前期 ) 2 回日付タイトル 1 4/7 コンピュータ技術の歴史と コンピュータアーキテクチャ 2 4/14 ノイマン型コンピュータ 3 4/21 コンピュータのハードウェア 4 4/28 数と文字の表現 5 5/12 固定小数点数と浮動小数点表現 6 5/19 計算アーキテクチャ

More information

Microsoft PowerPoint - ca ppt [互換モード]

Microsoft PowerPoint - ca ppt [互換モード] 大阪電気通信大学情報通信工学部光システム工学科 2 年次配当科目 コンピュータアルゴリズム 良いアルゴリズムとは 第 2 講 : 平成 20 年 10 月 10 日 ( 金 ) 4 限 E252 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ 第 1 講の復習

More information

生物情報実験法 (オンライン, 4/20)

生物情報実験法 (オンライン, 4/20) 生物情報実験法 (7/23) 笠原雅弘 (mkasa@cb.k.u-tokyo.ac.jp) Table of Contents スレッドの使い方 OpenMP プログラミング Deadline The deadline is Aug 5 23:59 Your e-mail must have reached my e-mail box at the deadline time. It may take

More information

VXPRO R1400® ご提案資料

VXPRO R1400® ご提案資料 Intel Core i7 プロセッサ 920 Preliminary Performance Report ノード性能評価 ノード性能の評価 NAS Parallel Benchmark Class B OpenMP 版での性能評価 実行スレッド数を 4 で固定 ( デュアルソケットでは各プロセッサに 2 スレッド ) 全て 2.66GHz のコアとなるため コアあたりのピーク性能は同じ 評価システム

More information

about MPI

about MPI 本日 (4/16) の内容 1 並列計算の概要 並列化計算の目的 並列コンピュータ環境 並列プログラミングの方法 MPI を用いた並列プログラミング 並列化効率 2 並列計算の実行方法 Hello world モンテカルロ法による円周率計算 並列計算のはじまり 並列計算の最初の構想を イギリスの科学者リチャードソンが 1922 年に発表 < リチャードソンの夢 > 64000 人を円形の劇場に集めて

More information

GPU GPU CPU CPU CPU GPU GPU N N CPU ( ) 1 GPU CPU GPU 2D 3D CPU GPU GPU GPGPU GPGPU 2 nvidia GPU CUDA 3 GPU 3.1 GPU Core 1

GPU GPU CPU CPU CPU GPU GPU N N CPU ( ) 1 GPU CPU GPU 2D 3D CPU GPU GPU GPGPU GPGPU 2 nvidia GPU CUDA 3 GPU 3.1 GPU Core 1 GPU 4 2010 8 28 1 GPU CPU CPU CPU GPU GPU N N CPU ( ) 1 GPU CPU GPU 2D 3D CPU GPU GPU GPGPU GPGPU 2 nvidia GPU CUDA 3 GPU 3.1 GPU Core 1 Register & Shared Memory ( ) CPU CPU(Intel Core i7 965) GPU(Tesla

More information

Fortran 勉強会 第 5 回 辻野智紀

Fortran 勉強会 第 5 回 辻野智紀 Fortran 勉強会 第 5 回 辻野智紀 今回のお品書き サブルーチンの分割コンパイル ライブラリ 静的ライブラリ 動的ライブラリ モジュール その前に 以下の URL から STPK ライブラリをインストールしておいて下さい. http://www.gfd-dennou.org/library/davis/stpk 前回参加された方はインストール済みのはず. サブルーチンの分割コンパイル サブルーチンの独立化

More information

Microsoft PowerPoint - 高速化WS富山.pptx

Microsoft PowerPoint - 高速化WS富山.pptx 京 における 高速化ワークショップ 性能分析 チューニングの手順について 登録施設利用促進機関 一般財団法人高度情報科学技術研究機構富山栄治 一般財団法人高度情報科学技術研究機構 2 性能分析 チューニング手順 どの程度の並列数が実現可能か把握する インバランスの懸念があるか把握する タイムステップループ I/O 処理など注目すべき箇所を把握する 並列数 並列化率などの目標を設定し チューニング時の指針とする

More information

Microsoft PowerPoint - OS07.pptx

Microsoft PowerPoint - OS07.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 主記憶管理 主記憶管理基礎 パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 OS

More information

2. OpenMP OpenMP OpenMP OpenMP #pragma#pragma omp #pragma omp parallel #pragma omp single #pragma omp master #pragma omp for #pragma omp critica

2. OpenMP OpenMP OpenMP OpenMP #pragma#pragma omp #pragma omp parallel #pragma omp single #pragma omp master #pragma omp for #pragma omp critica C OpenMP 1. OpenMP OpenMP Architecture Review BoardARB OpenMP OpenMP OpenMP OpenMP OpenMP Version 2.0 Version 2.0 OpenMP Fortran C/C++ C C++ 1997 10 OpenMP Fortran API 1.0 1998 10 OpenMP C/C++ API 1.0

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション みんなの ベクトル計算 たけおか @takeoka PC クラスタ コンソーシアム理事でもある 2011/FEB/20 ベクトル計算が新しい と 2008 年末に言いました Intelに入ってる! (2008 年から見た 近未来? ) GPU 計算が新しい (2008 年当時 ) Intel AVX (Advanced Vector Extension) SIMD 命令を進めて ベクトル機構をつける

More information

hpc141_shirahata.pdf

hpc141_shirahata.pdf GPU アクセラレータと不揮発性メモリ を考慮した I/O 性能の予備評価 白幡晃一 1,2 佐藤仁 1,2 松岡聡 1 1: 東京工業大学 2: JST CREST 1 GPU と不揮発性メモリを用いた 大規模データ処理 大規模データ処理 センサーネットワーク 遺伝子情報 SNS など ペタ ヨッタバイト級 高速処理が必要 スーパーコンピュータ上での大規模データ処理 GPU 高性能 高バンド幅 例

More information

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

情報処理概論(第二日目) 情報処理概論 工学部物質科学工学科応用化学コース機能物質化学クラス 第 8 回 2005 年 6 月 9 日 前回の演習の解答例 多項式の計算 ( 前半 ): program poly implicit none integer, parameter :: number = 5 real(8), dimension(0:number) :: a real(8) :: x, total integer

More information

スライド 1

スライド 1 知能制御システム学 画像処理の高速化 東北大学大学院情報科学研究科鏡慎吾 swk(at)ic.is.tohoku.ac.jp 2008.07.22 今日の内容 ビジュアルサーボのようなリアルタイム応用を考える場合, 画像処理を高速に実装することも重要となる いくつかの基本的な知識を押さえておかないと, 同じアルゴリズムを実行しているのに性能が上がらないということがしばしば生じる 今日は, あくまで普通の

More information

Microsoft PowerPoint - KHPCSS pptx

Microsoft PowerPoint - KHPCSS pptx KOBE HPC サマースクール 2018( 初級 ) 9. 1 対 1 通信関数, 集団通信関数 2018/8/8 KOBE HPC サマースクール 2018 1 2018/8/8 KOBE HPC サマースクール 2018 2 MPI プログラム (M-2):1 対 1 通信関数 問題 1 から 100 までの整数の和を 2 並列で求めなさい. プログラムの方針 プロセス0: 1から50までの和を求める.

More information

連載講座 : 高生産並列言語を使いこなす (5) 分子動力学シミュレーション 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 問題の定義 17 2 逐次プログラム 分子 ( 粒子 ) セル 系の状態 ステップ 18

連載講座 : 高生産並列言語を使いこなす (5) 分子動力学シミュレーション 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 問題の定義 17 2 逐次プログラム 分子 ( 粒子 ) セル 系の状態 ステップ 18 連載講座 : 高生産並列言語を使いこなす (5) 分子動力学シミュレーション 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 問題の定義 17 2 逐次プログラム 17 2.1 分子 ( 粒子 ) 17 2.2 セル 17 2.3 系の状態 18 2.4 1ステップ 18 2.5 力の計算 19 2.6 速度と位置の更新 20 2.7 セル間の分子の移動 21 3 OpenMP

More information

Microsoft PowerPoint - compsys2-06.ppt

Microsoft PowerPoint - compsys2-06.ppt 情報基盤センター天野浩文 前回のおさらい (1) 並列処理のやり方 何と何を並列に行うのか コントロール並列プログラミング 同時に実行できる多数の処理を, 多数のノードに分配して同時に処理させる しかし, 同時に実行できる多数の処理 を見つけるのは難しい データ並列プログラミング 大量のデータを多数の演算ノードに分配して, それらに同じ演算を同時に適用する コントロール並列よりも, 多数の演算ノードを利用しやすい

More information

スライド 1

スライド 1 本日 (4/25) の内容 1 並列計算の概要 並列化計算の目的 並列コンピュータ環境 並列プログラミングの方法 MPI を用いた並列プログラミング 並列化効率 2 並列計算の実行方法 Hello world モンテカルロ法による円周率計算 並列計算のはじまり 並列計算の最初の構想を イギリスの科学者リチャードソンが 1922 年に発表 < リチャードソンの夢 > 64000 人を円形の劇場に集めて

More information

CCS HPCサマーセミナー 並列数値計算アルゴリズム

CCS HPCサマーセミナー 並列数値計算アルゴリズム 大規模系での高速フーリエ変換 2 高橋大介 daisuke@cs.tsukuba.ac.jp 筑波大学計算科学研究センター 2016/6/2 計算科学技術特論 B 1 講義内容 並列三次元 FFT における自動チューニング 二次元分割を用いた並列三次元 FFT アルゴリズム GPU クラスタにおける並列三次元 FFT 2016/6/2 計算科学技術特論 B 2 並列三次元 FFT における 自動チューニング

More information

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n を入力してもらい その後 1 から n までの全ての整数の合計 sum を計算し 最後にその sum

More information

Microsoft PowerPoint - GPGPU実践基礎工学(web).pptx

Microsoft PowerPoint - GPGPU実践基礎工学(web).pptx 並列計算の概念 ( プロセスとスレッド ) 長岡技術科学大学電気電子情報工学専攻出川智啓 今回の内容 並列計算の分類 並列アーキテクチャ 並列計算機システム 並列処理 プロセスとスレッド スレッド並列化 OpenMP プロセス並列化 MPI 249 CPU の性能の変化 動作クロックを向上させることで性能を向上 http://pc.watch.impress.co.jp/docs/2003/0227/kaigai01.htm

More information

gengo1-11

gengo1-11 関数の再帰定義 自然数 n の階乗 n! を計算する関数を定義してみる 引数は整数 返却値も整数 n! = 1*2*3*... * (n 1)*n である ただし 0! = 1 とする int factorial(int n) int i, tmp=1; if( n>0 ) for(i=1; i

More information

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - lec10.ppt 今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ

More information

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

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£²¡Ë 2013 5 30 (schedule) (omp sections) (omp single, omp master) (barrier, critical, atomic) program pi i m p l i c i t none integer, parameter : : SP = kind ( 1. 0 ) integer, parameter : : DP = selected real

More information

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a MATLAB コードを使用した C コードの生成クイックスタートガイド (R2016a) 最初のスタンドアロン C コードの生成 スタンドアロン C コードを生成するには [ ビルド ] を [ ソースコード ] [ スタティックライブラリ ] [ ダイナミックライブラリ ] または [ 実行ファイル ] のいずれかに切り替えます MATLAB Coder を使用することで MATLAB コードから

More information

演習1

演習1 神戸市立工業高等専門学校電気工学科 / 電子工学科専門科目 数値解析 2019.5.10 演習 1 山浦剛 (tyamaura@riken.jp) 講義資料ページ http://r-ccs-climate.riken.jp/members/yamaura/numerical_analysis.html Fortran とは? Fortran(= FORmula TRANslation ) は 1950

More information

UNIX 初級講習会 (第一日目)

UNIX 初級講習会 (第一日目) 情報処理概論 工学部物質科学工学科応用化学コース機能物質化学クラス 第 3 回 2005 年 4 月 28 日 計算機に関する基礎知識 Fortranプログラムの基本構造 文字や数値を画面に表示する コンパイル時のエラーへの対処 ハードウェアとソフトウェア ハードウェア 計算, 記憶等を行う機械 ソフトウェア ハードウェアに対する命令 データ ソフトウェア ( 命令 ) がないとハードウェアは動かない

More information

Microsoft PowerPoint 知る集い(京都)最終.ppt

Microsoft PowerPoint 知る集い(京都)最終.ppt 次世代スパコンについて知る集い 配布資料 世界最高性能を目指すシステム開発について ー次世代スパコンのシステム構成と施設の概要 - 平成 22 年 1 月 28 日 理化学研究所次世代スーパーコンピュータ開発実施本部横川三津夫 高性能かつ大規模システムの課題と対応 演算性能の向上 CPU のマルチコア化,SIMD( ベクトル化 ) 機構 主記憶へのアクセス頻度の削減 - CPU 性能とメモリアクセス性能のギャップ

More information

Microsoft PowerPoint - å®�æ−•è©¦é¨fi3ㆮ対ç�Œ.pptx

Microsoft PowerPoint - å®�æ−•è©¦é¨fi3ㆮ対ç�Œ.pptx C言語の繰り返し処理 for文と while文と do文 臼杵 潤 0) 準備 変数の加減算 int a, b=10; // a= a = 0; a = a+1; // a= a += 1; // a= // a= a ++; a = a + b; // a= a += b; // a= // a= a --; 下を1行ずつ実行すると それぞれ aの値はどう変わるか 0 1 2 3 13 23 22

More information

コードのチューニング

コードのチューニング ハイブリッド並列 八木学 ( 理化学研究所計算科学研究機構 ) 謝辞 松本洋介氏 ( 千葉大学 ) KOBE HPC Spring School 2017 2017 年 3 月 14 日神戸大学計算科学教育センター MPI とは Message Passing Interface 分散メモリのプロセス間の通信規格(API) SPMD(Single Program Multi Data) が基本 -

More information

Microsoft PowerPoint - 11Web.pptx

Microsoft PowerPoint - 11Web.pptx 計算機システムの基礎 ( 第 10 回配布 ) 第 7 章 2 節コンピュータの性能の推移 (1) コンピュータの歴史 (2) コンピュータの性能 (3) 集積回路の進歩 (4) アーキテクチャ 第 4 章プロセッサ (1) プロセッサの基本機能 (2) プロセッサの構成回路 (3) コンピュータアーキテクチャ 第 5 章メモリアーキテクチャ 1. コンピュータの世代 計算する機械 解析機関 by

More information

<4D F736F F F696E74202D2091E63489F15F436F6D C982E682E992B48D8291AC92B489B F090CD2888F38DFC E B8CDD8

<4D F736F F F696E74202D2091E63489F15F436F6D C982E682E992B48D8291AC92B489B F090CD2888F38DFC E B8CDD8 Web キャンパス資料 超音波シミュレーションの基礎 ~ 第 4 回 ComWAVEによる超高速超音波解析 ~ 科学システム開発部 Copyright (c)2006 ITOCHU Techno-Solutions Corporation 本日の説明内容 ComWAVEの概要および特徴 GPGPUとは GPGPUによる解析事例 CAE POWER 超音波研究会開催 (10 月 3 日 ) のご紹介

More information

生成された C コードの理解 コメント元になった MATLAB コードを C コード内にコメントとして追加しておくと その C コードの由来をより簡単に理解できることがよくありま [ 詳細設定 ] [ コード外観 ] を選択 C コードのカスタマイズ より効率的な C コードを生成するベストプラクテ

生成された C コードの理解 コメント元になった MATLAB コードを C コード内にコメントとして追加しておくと その C コードの由来をより簡単に理解できることがよくありま [ 詳細設定 ] [ コード外観 ] を選択 C コードのカスタマイズ より効率的な C コードを生成するベストプラクテ MATLAB コードを使用した C コードの生成クイックスタートガイド (R2012a) 最初のスタンドアロン C コードの生成 スタンドアロン C コードを生成するには MATLAB Coder のペインを [ ビルド ] に切り替えて [C/C++ スタティックライブラリ ] [C/C++ ダイナミックライブラリ ] または [C/C++ 実行ファイル ] のいずれかを選択しま MATLAB Coder

More information

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作ります FORTRAN の場合 OPEN 文でファイルを開いた後 標準入力の場合と同様に READ 文でデータを読みこみます

More information

<4D F736F F F696E74202D F A282BD94BD959C89F A4C E682528D652E707074>

<4D F736F F F696E74202D F A282BD94BD959C89F A4C E682528D652E707074> 発表の流れ SSE を用いた反復解法ライブラリ Lis 4 倍精度版の高速化 小武守恒 (JST 東京大学 ) 藤井昭宏 ( 工学院大学 ) 長谷川秀彦 ( 筑波大学 ) 西田晃 ( 中央大学 JST) はじめに 4 倍精度演算について Lisへの実装 SSEによる高速化 性能評価 スピード 収束 まとめ はじめに クリロフ部分空間法たとえば CG 法は, 理論的には高々 n 回 (n は係数行列の次元数

More information

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx 3 次元 DRAM プロセッサ積層実装を 対象としたオンチップ メモリ アーキテクチャの提案と評価 橋口慎哉 小野貴継 ( 現 ) 井上弘士 村上和彰 九州大学大学院システム情報科学府 九州大学大学院システム情報科学研究院 発表手順 研究背景 研究目的 ハイブリッド キャッシュ アーキテクチャ 評価実験 まとめと今後の課題 2 3 次元実装技術 研究背景 グローバル配線長の削減 チップ面積縮小 異なるプロセスを経て製造されたダイ同士の積層

More information

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

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

More information

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の 計算機システム Ⅱ 演習問題学科学籍番号氏名 1. 以下の分の空白を埋めなさい. CPUは, 命令フェッチ (F), 命令デコード (D), 実行 (E), 計算結果の書き戻し (W), の異なるステージの処理を反復実行するが, ある命令の計算結果の書き戻しをするまで, 次の命令のフェッチをしない場合, ( 単位時間当たりに実行できる命令数 ) が低くなる. これを解決するために考案されたのがパイプライン処理である.

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

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 高性能計算基盤 第 7 回 CA1003: 主記憶共有型システム http://arch.naist.jp/htdocs-arch3/ppt/ca1003/ca1003j.pdf Copyright 2019 奈良先端大中島康彦 1 2 3 4 マルチスレッディングとマルチコア 5 6 7 主記憶空間の数が 複数 か 1 つ か 8 ただしプログラムは容易 9 1 つの主記憶空間を共有する場合 10

More information

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){ ソフトゼミ A 第 6 回 関数 プログラムは関数の組み合わせでできています 今までのゼミAでも printf や scanf など様々な関数を使ってきましたが なんと関数は自分で作ることもできるのです!! 今日は自作関数を中心に扱っていきます ゲーム制作でも自作関数は避けては通れないので頑張りましょう そもそもまず 関数とは 基本的には 受け取った値に関数によって定められた操作をして その結果の値を返す

More information