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

Similar documents
Microsoft PowerPoint - CCS学際共同boku-08b.ppt

Microsoft Word - SCnews-Vol10No6-yoshihiro_1118.doc


VXPRO R1400® ご提案資料

untitled

スーパーコンピューティングニュース特集号 原稿

untitled

I I / 47

Microsoft Word ●MPI性能検証_志田_ _更新__ doc

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

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

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

マルチコアPCクラスタ環境におけるBDD法のハイブリッド並列実装

Microsoft Word - Dolphin Expressによる10Gbpソケット通信.docx

HPC (pay-as-you-go) HPC Web 2

nakayama15icm01_l7filter.pptx

PowerPoint プレゼンテーション

CPU Levels in the memory hierarchy Level 1 Level 2... Increasing distance from the CPU in access time Level n Size of the memory at each level 1: 2.2

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

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

openmp1_Yaguchi_version_170530

Microsoft PowerPoint - ★13_日立_清水.ppt

PassMark PerformanceTest ™

PowerPoint プレゼンテーション

スライド 1

Itanium2ベンチマーク

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

PowerPoint プレゼンテーション

システムソリューションのご紹介

,4) 1 P% P%P=2.5 5%!%! (1) = (2) l l Figure 1 A compilation flow of the proposing sampling based architecture simulation

メモリ階層構造を考慮した大規模グラフ処理の高速化

名称 : 日本 GPU コンピューティングパートナーシップ (G-DEP) 所在 : 東京都文京区本郷 7 丁目 3 番 1 号東京大学アントレプレナープラザ, 他工場 URL アライアンスパートナー コアテクノロジーパートナー NVIDIA JAPAN ソリュ

hpc141_shirahata.pdf

Microsoft PowerPoint - KN-RIMS2010.pptx

演習準備


<4D F736F F F696E74202D2091E63489F15F436F6D C982E682E992B48D8291AC92B489B F090CD2888F38DFC E B8CDD8

M SRAM 1 25 ns ,000 DRAM ns ms 5,000,

supercomputer2010.ppt

HPC可視化_小野2.pptx

untitled

Microsoft PowerPoint ppt

演習1: 演習準備

(速報) Xeon E 系モデル 新プロセッサ性能について

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

Images per Second Images per Second VOLTA: ディープラーニングにおける大きな飛躍 ResNet-50 トレーニング 2.4x faster ResNet-50 推論 TensorRT - 7ms レイテンシ 3.7x faster P100 V100 P10

23 Fig. 2: hwmodulev2 3. Reconfigurable HPC 3.1 hw/sw hw/sw hw/sw FPGA PC FPGA PC FPGA HPC FPGA FPGA hw/sw hw/sw hw- Module FPGA hwmodule hw/sw FPGA h

CTA 82: CTA A A B B A B A, C A A A D A B Max-Planck-Inst. fuer Phys. C D

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

大規模共有メモリーシステムでのGAMESSの利点

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

1重谷.PDF

2. CABAC CABAC CABAC 1 1 CABAC Figure 1 Overview of CABAC 2 DCT 2 0/ /1 CABAC [3] 3. 2 値化部 コンテキスト計算部 2 値算術符号化部 CABAC CABAC

スライド 1

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

Microsoft PowerPoint - GPU_computing_2013_01.pptx

about MPI

strtok-count.eps

第3回戦略シンポジウム緑川公開用

橡3_2石川.PDF

Microsoft PowerPoint - DNS_BoF_SCS_ pptx

( 4 ) GeoFEM ( 5 ) MDTEST ( 6 ) IOR 2 Oakleaf-FX 3 Oakleaf-FX 4 Oakleaf-FX Oakleaf-FX Oakleaf-FX 1 Oakleaf-FX 1 Oakleaf- FX SR11000/J2 HA8000 T

120802_MPI.ppt

資料3 今後のHPC技術に関する研究開発の方向性について(日立製作所提供資料)

スライド 1

0130_FrontISTR研究会_V3

MPI usage

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

untitled

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

ProLiant ML115 Generation 1 システム構成図

R pdf

PowerPoint プレゼンテーション

Agenda GRAPE-MPの紹介と性能評価 GRAPE-MPの概要 OpenCLによる四倍精度演算 (preliminary) 4倍精度演算用SIM 加速ボード 6 processor elem with 128 bit logic Peak: 1.2Gflops

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

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

Microsoft Word ●書式付IO性能_杉崎_ _更新__ doc

OPA134/2134/4134('98.03)

最新の並列計算事情とCAE

GPGPUクラスタの性能評価

DRAM SRAM SDRAM (Synchronous DRAM) DDR SDRAM (Double Data Rate SDRAM) DRAM 4 C Wikipedia 1.8 SRAM DRAM DRAM SRAM DRAM SRAM (256M 1G bit) (32 64M bit)

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

EGunGPU

Microsoft Word - WatchUsbManager for Web リソースモニター結果.docx

テストコスト抑制のための技術課題-DFTとATEの観点から

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

<4D F736F F F696E74202D20834B F C8FEE95F A7793C195CA8D758B E348C8E3893FA816A202D E >

[4] ACP (Advanced Communication Primitives) [1] ACP ACP [2] ACP Tofu UDP [3] HPC InfiniBand InfiniBand ACP 2 ACP, 3 InfiniBand ACP 4 5 ACP 2. ACP ACP

NUMAの構成

FabHetero FabHetero FabHetero FabCache FabCache SPEC2000INT IPC FabCache 0.076%

はじめに

16.16%

Microsoft PowerPoint - SWoPP2010_Shirahata

4.1 % 7.5 %

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

RIITフォーラム2016-inoue提出用

TTC_AR-1081_IB共通_2_110622

Microsoft PowerPoint - OpenMP入門.pptx

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

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

Transcription:

STREAM 1 Quad Opteron: ccnuma Arch. AMD Quad Opteron 2.3GHz Quad のソケット 4 1 ノード (16コア ) 各ソケットがローカルにメモリを持っている NUMA:Non-Uniform Access ローカルのメモリをアクセスして計算するようなプログラミング, データ配置, 実行時制御 (numactl) が必要 cc: cache-coherent キャッシュ同期 :Thread 並列

STREAM 2 ccnuma Architecture コア ソケット Socket ノード Node

STREAM 3 numactl >$ numactl -show policy: default preferred node: current physcpubind: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cpubind: 0 1 2 3 nodebind: 0 1 2 3 membind: 0 1 2 3 コアソケットソケットメモリ #0 NUMA(Non Uniform Access) 向けのメ モリ割付のためのコマンドライン :Linux でサポート 使うコアとメモリの関係指定 : ローカルなメモリ上のデータを使うのが得策 Socket t#0 Socket t#1 0 1 2 3 #1 4 5 6 7 8 9 10 11 12 13 14 15 #2 #3 Socket #2 Socket #3

STREAM 4 numactl の影響 T2K, 有限要素法アプリケーション,Strong Scaling,Flat MPI 128コア :1コアあたりの問題サイズは 512コアの 4 倍 メモリへの負担大 Policy=0: 何も指定しない場合 相対性能 : 大きいほど良いー 128 ノードで影響大 Relativ ve Performa ance 1.50 1.00 0.50 0.00 128cores 512cores 0 1 2 3 4 5 numactl policy #@$-r HID-org #@$-q h08nkl32 #@$-N 24 #@$-J T16 #@$-e err #@$-o x384-40-1-a.lst #@$-lm 27GB #@$-le 03:00:00 #@$-s /bin/sh #@$ cd $PBS_O_WORKDIR mpirun./numarun.sh./sol exit

STREAM 5 numarun.sh の中身 Relativ ve Performa ance 1.50 1.00 0.50 128cores 512cores Policy:1 #!/bin/bash MYRANK=$MXMPI_ID MPIのプロセス番号 MYVAL=$(expr $MYRANK / 4) SOCKET=$(expr $MYVAL % 4) numactl --cpunodebind=$socket --interleave=all $@ Policy:2 #!/bin/bash MYRANK=$MXMPI _ ID MYVAL=$(expr $MYRANK / 4) SOCKET=$(expr $MYVAL % 4) numactl --cpunodebind=$socket --interleave=$socket $@ 0.00 0 1 2 3 4 5 numactl policy Socket #0 Socket #1 Policy:3 #!/bin/bash MYRANK=$MXMPI_ID MYVAL=$(expr $MYRANK / 4) SOCKET=$(expr $MYVAL % 4) numactl --cpunodebind=$socket --membind=$socket $@ #0 0 1 2 3 #1 4 5 6 7 Policy:4 #!/bin/bash MYRANK=$MXMPI_ID MYVAL=$(expr $MYRANK / 4) SOCKET=$(expr $MYVAL % 4) numactl --cpunodebind=$socket --localalloc $@ 8 9 10 11 12 13 14 15 #2 #3 Socket #2 Socket #3 Policy:5 #!/bin/bash MYRANK=$MXMPI_ ID MYVAL=$(expr $MYRANK / 4) SOCKET=$(expr $MYVAL % 4) numactl --localalloc $@

STREAM 6 Policy-3 の割り当て Socket #0 Socket #1 #0 #1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #2 #3 Socket #2 Socket #3 Policy:3 #!/bin/bash MYRANK=$MXMPI_ID MYVAL=$(expr $MYRANK / 4) SOCKET=$(expr $MYVAL % 4) numactl --cpunodebind=$socket --membind=$socket $@ MPI process Socket 0 0 0 1 0 0 2 0 0 3 0 0 4 1 1 5 1 1 6 1 1 7 1 1 8 2 2 9 2 2 10 2 2 11 2 2 12 3 3 13 3 3 14 3 3 15 3 3

STREAM 7 Cyclic な割り付けも可能 Socket #0 Socket #1 #0 #1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #2 #3 Socket #2 Socket #3 #!/bin/bash MYRANK=$MXMPI_ID SOCKET=$(expr $MYRANK % 4) numactl --cpunodebind=$socket --membind=$socket $@ MPI process Socket 0 0 0 1 1 1 2 2 2 3 3 3 4 0 0 5 1 1 6 2 2 7 3 3 8 0 0 9 1 1 10 2 2 11 3 3 12 0 0 13 1 1 14 2 2 15 3 3

STREAM 8 コアを指定することもできる Socket #0 Socket #1 #0 #1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #2 #3 Socket #2 Socket #3 #!/bin/bash MYRANK=$MXMPI_ID MYVAL=$(expr $MYRANK / 4) SOCKET=$(expr $MYVAL % 4) CORE=$(expr $MYRANK % 16) numactl --physcpubind=$core --membind=$socket $@ MPI process Socket 0 0 0 1 0 1 2 0 2 3 0 3 4 1 4 5 1 5 6 1 6 7 1 7 8 2 8 9 2 9 10 2 10 11 2 11 12 3 12 13 3 13 14 3 14 15 3 15

STREAM 9 8 コア使う場合はどうする? Socket #0 Socket #1 #0 #1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #2 #3 Socket #2 Socket #3 MPI process Socket 0 0 0 1 0 2 2 1 4 3 1 6 4 2 8 5 2 10 6 3 12 7 3 14 MPI process Socket MPI process Socket 0 0 0 0 0 0 1 0 1 1 0 1 2 0 2 2 1 4 3 0 3 3 1 5 4 1 4 4 2 8 5 1 5 5 2 9 6 1 6 6 3 12 7 1 7 7 3 13

STREAM 10 STREAM ベンチマーク http://www.streambench.org/ メモリバンド幅を測定するベンチマーク Copy, Scale, Add, Triad(DAXPY と同じ ) ---------------------------------------------- Double precision appears to have 16 digits of accuracy Assuming 8 bytes per DOUBLE PRECISION word ---------------------------------------------- Number of processors = 16 Array size = 2000000 Offset = 0 The total memory requirement is 732.4 MB ( 45.8MB/task) You are running each test 10 times -- The *best* time for each test is used *EXCLUDING* the first and last iterations ---------------------------------------------------- ---------------------------------------------------- Function Rate (MB/s) Avg time Min time Max time Copy: 18334.1898 0.0280 0.0279 0.0280 Scale: 18035.16901690 0.02840284 0.02840284 0.02850285 Add: 18649.4455 0.0412 0.0412 0.0413 Triad: 19603.8455 0.0394 0.0392 0.0398

STREAM 11 ファイル : 今回は FORTRANのみ >$ cd <$FVM>/stream >$ mpif90 Oss noparallel stream.f o stream 今回は MPI 版だが,OpenMP 版もある

STREAM 12 set-a0.sh:policy-5 相当 プロセスが割り当てられたソケットのローカルメモリを使う ソケット番号は基本的にサイクリックク (round-robin d 的 ) に割り当てられるが, 異なる場合もある ( 実行ごとに性能が変動 ) #@$-r stream #@$-q lecture #0 #1 #@$-N 1 #@$-J T16 #@$-e err #@$-o a0-16-1.lst #@$-lm 28GB #@$-lt 00:05:00 #@$ cd $PBS_O_WORKDIR Socket #0 Socket #1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 mpirun numactl --localalloc./stream exit #2 #3 Socket #2 Socket #3

STREAM 13 set-b1/b2.sh:policy-3,4 相当 各プロセスをソケット0 番から順番に埋まるように割り当て, 各ソケットのローカルメモリを使う b1 と b2 ではあまり差は無い set-b1.sh b1.sh:policy-3 相当 #@$-r stream #@$-q lecture #@$-N 1 #@$-J T8 #@$-e err #@$-o b1-08-1.lst #@$-lm 28GB #@$-lt 00:05:00 #@$ cd $PBS_O_WORKDIR #!/bin/bash MYRANK=$MXMPI_ID MYVAL=$(expr $MYRANK / 4) SOCKET=$(expr $MYVAL % 4) numactl --cpunodebind=$socket --membind=$socket $@ b2.sh:policy-4 相当 #!/bin/bash MYRANK=$MXMPI_ID MYVAL=$(expr $MYRANK / 4) SOCKET=$(expr $MYVAL % 4) numactl --cpunodebind=$socket --localalloc $@ mpirun./b1.sh./stream exit

STREAM 14 set-x.sh 各プロセスが割り当てられたソケットのメモリを使う T2:0,1,T4:0,1,2,3 01 T4 0123 T8:0,0,1,1,2,2,3,3 T16:0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3 #@$-r stream #@$-q lecture #@$-N 1 #@$-J T16 #@$-e err #@$-o x1-16-1.lst #@$-lm 28GB #@$-lt 00:05:00 #@$ cd $PBS_O_WORKDIR mpirun numactl --cpunodebind=0,1,2,3 --localalloc./stream exit

STREAM 15 Triadの結果 :Policy-5@T1y @ の性能を1.00 Policy-5: set-a0,policy-4: set-b2 0,1,2,3: set-x 16コア使った場合, メモリの性能は 5 倍強にしかなっていない Relativ ve Bandwidt th 6 5 4 3 2 1 Policy-5 Policy-4 0,1,2,3 0 1 2 4 8 16 #

STREAM 16 Triad の性能 :T2 Policy-4 1 コアのときの 2 倍までは行かないが性能は向上 2コアで 1つのメモリを共 2 有するため, 多少の競合 1 が生じている Band dwidth Relative 6 5 4 3 0 Policy-4 0,1,2,3 1 2 4 8 16 # 0,1,2,3 ほぼ 100% 近い性能向上 各コアでローカルメモリを 占有 Policy-4 0,1,2,3

STREAM 17 Triad の性能 :T4 Policy-4 T2 のときとほとんど変わらない, つまり1コア当たりのメモリ性能は半分に落ちている 飽和状態 Relative Band dwidth 6 5 4 3 2 1 0 Policy-4 0,1,2,3 1 2 4 8 16 # 0,1,2,3 T1の4 倍までは行かないが順調にスケール Cache-Coherency 通信の影響もあり Policy-4 0,1,2,3

STREAM 18 Triad の性能 :T8,T16 Policy-4 T8 T16 T4 の約 2 倍弱 T8 の約 2 倍弱 Relative Band dwidth 6 5 4 3 2 1 Policy-4 0,1,2,3 0,1,2,3 T8 T16 T4 の約 2 倍弱 T8とほぼ同じ Policy-4におけるT2 T4と同じ 0 1 2 4 8 16 # Policy-4 0,1,2,3

STREAM 19 T2K の性能 実は余りノード内の性能について細かく測定したことは無い 1 ノードが最低単位 メモリの性能 ( の悪さ ) に充分注意する必要がある Strong Scaling( 同じ問題をコア数を変えて解く ) の場合, 基準を1ノードあるいは1ソケット (Policy-2,3,4のようにする) にする

STREAM 20 疎行列ソルバーの性能 : 三次元弾性問題 ICCG 法,T2K SR11000 1ノード : メモリバンド幅が効く Hitachi SR11000/J2 T2K/Tokyo Power 5+ 2.3GHz x 16 Opteron 2.3GHz x 16 147.2 GFLOPS/node 147.2 GFLOPS/node 100 GB/s for STREAM/Triad 20 GB/s for STREAM/Triad cache: 18MB/core cache: 0.5MB/core Perform mance Rat tio (%) 20.0 20.0 15.0 10.0 5.0 Flat MPI. HB 4x4 HB 8x2 HB 16x1 0.0 1.E+04 1.E+05 1.E+06 1.E+07 DOF tio (%) Perform mance Ra 15.0 10.0 5.0 Flat MPI. HB 4x4 HB 8x2 HB 16x1 0.0 1.E+04 1.E+05 1.E+06 1.E+07 DOF

STREAM 21 Hitachi SR11000/J2 IBM POWER5+ 2.3GHz (9.2GFLOPS) Dual 4 MCM(Multi Module) 22 1node(16cores) based on NUMA architectures, but small latency of memory, huge cache 青木, 中村, 助川, 齋藤, 深川, 中川, 五百木 (2005) スーパーテクニカルサーバー SR11000 モデルJ1のノードアーキテクチュアと性能評価情報処理学会論文誌 : コンピューティングシステム 45-SIG12(ACS11),27-36 27 より作成 L2 L2 L2 L2 L2 L2 L2 L2 CPU

STREAM 22 台形積分 :T2K( 東大 ) における並列効果 :N=10 6, :10 7, :10 9 1.00E+02 ideal 47.64 N=10^6 -: 理想値 29.92 N=10^7 15.68 1コアにおける計測結果 1.00E+01 N=10^9 797 7.97 (sec.) からそれぞれ算出 3.99 #@$-r test #@$-q lecture #@$-N 1 #@$-J T4 #@$-e err #@$-o hello.lst #@$-lm 28GB #@$-lt 00:05:00 #@$ cd $PBS_O_WORKDIR mpirun numactl --localalloc./a.out Speed-Up 1.00E+00 1.00E-01 1.00 2.00 64.02 1 10 100 # 赤字部分の影響 1 ノードより多いと変動あり メモリに負担のかからない計算