スライド 1

Similar documents
スライド 1

スライド 1

スライド 1

スライド 1

openmp1_Yaguchi_version_170530

演習1: 演習準備

<4D F736F F D B B B835E895E97708A4A8E6E82C A98418C6782CC8E6E93AE2E646F63>

Microsoft Word - HOKUSAI_system_overview_ja.docx

並列計算導入.pptx

supercomputer2010.ppt

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

スライド 1

ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ PASCO CORPORATION 2015

about MPI

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

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

VXPRO R1400® ご提案資料

PowerPoint プレゼンテーション

TopSE並行システム はじめに

演習準備

Microsoft Word - koubo-H26.doc

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

hpc141_shirahata.pdf

サイバーメディアセンター 大規模計算機システムの利用

コードのチューニング

Microsoft PowerPoint - OpenMP入門.pptx

FX10利用準備

RICCについて

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

九州大学がスーパーコンピュータ「高性能アプリケーションサーバシステム」の本格稼働を開始

地球シミュレータ開発の現状 平成 14 年 2 月 22 日 横川三津夫 地球シミュレータ研究開発センター 1

PowerPoint プレゼンテーション

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

Hphi実行環境導入マニュアル_v1.1.1

untitled

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

NUMAの構成

1重谷.PDF

GPGPUクラスタの性能評価

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

Microsoft PowerPoint - OS07.pptx

PowerPoint プレゼンテーション

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

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

ガイダンス(2016年4月19日)-HP

Microsoft PowerPoint - 高速化WS富山.pptx

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

サイバーメディアセンター 大規模計算機システムの利用

最新の並列計算事情とCAE

GPU n Graphics Processing Unit CG CAD

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

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

untitled

Microsoft PowerPoint - 11Web.pptx

スライド 1

Microsoft PowerPoint ppt

本文ALL.indd

EnSightのご紹介

NUMAの構成

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

OS

appli_HPhi_install

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

Operating System 仮想記憶

Microsoft Word - openmp-txt.doc

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

<4D F736F F F696E74202D2091E63489F15F436F6D C982E682E992B48D8291AC92B489B F090CD2888F38DFC E B8CDD8

計算機アーキテクチャ

untitled

Microsoft PowerPoint - sales2.ppt

[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

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

PowerPoint プレゼンテーション

Microsoft PowerPoint PCクラスタワークショップin京都.ppt

平成 22 年度 革新的な三次元映像技術による超臨場感コミュニケーション技術研究開発 の開発成果について 1. 施策の目標 人体を収容できる大きさの 3 次元音響空間についてリアルタイムに音響レンダリングできるシステム ( シリコンコンサートホール ) を 2013 年までに開発する 具体的には,

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

HPC143

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

<4D F736F F D F B835E82CC8D8291AC8F88979D82F08FAC8C5E82A982C288C089BF82C88D5C90AC82C AC82B782E996A78C8B8D878C5E836E815B C695C097F18F88979D82F091678D8782B982BD8C768E5A8B

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

修士論文

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

チューニング講習会 初級編

Microsoft Word _Gmail利用マニュアル.doc

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

本仕様はプロダクトバージョン Ver 以降に準じています

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

GeoFEM開発の経験から

Microsoft Word - appli_SMASH_tutorial_2.docx

12 PowerEdge PowerEdge Xeon E PowerEdge 11 PowerEdge DIMM Xeon E PowerEdge DIMM DIMM 756GB 12 PowerEdge Xeon E5-

4 小川/小川

スライド 1

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows 日本語版 : インストール・ガイド

PowerPoint Presentation

プログラミング基礎

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

GPUコンピューティング講習会パート1

Transcription:

計算科学演習 スーパーコンピュータ & 並列計算 概論 学術情報メディアセンター 情報学研究科 システム科学専攻 中島浩

目次 科目概要 目標 スケジュール スタッフ 講義資料 課題 スーパーコンピュータ概論 一般のスーパーコンピュータ 京大のスーパーコンピュータ スーパーコンピュータの構造 並列計算概論 並列計算の類型 条件 Scaling & Scalability 問題分割 落し穴 プロセス並列 & スレッド並列 バリア同期 バッチジョブ

科目概要 目標 スケジュール スタッフ 講義資料 目標 拡散方程式の初期値求解問題を題材に MPI と OpenMP を用いた並列プログラムを作成して 並列プログラミングの基礎と ( やや高度な ) 応用を学ぶ スケジュール 第 1 日 : スパコン & 並列計算概論 ( 中島 )+リテラシ演習( 深沢 ) 第 2 日 : 拡散方程式 & 陽解法 ( 深沢 )+ 逐次 P 作成 ( 深沢 木村 ) 第 3 日 : OpenMP 基礎 ( 深沢 )+WS 型 P 作成 ( 深沢 木村 ) 第 4 日 : MPI 基礎 ( 中島 )+1D 分割 P 作成 ( 中島 木村 ) 第 5 日 : MPI 発展 ( 中島 )+2D 分割 P 作成 ( 中島 木村 ) 第 6 日 : OpenMP 発展 ( 深沢 )+SPMD 型 MT-P 作成 ( 深沢 木村 ) 第 7 日 : レポート課題の仕上げ ( 中島 深沢 木村 ) ( 第 8 日, 第 9 日,...: 9/30までは頑張れる ) 講義資料 http://ais.sys.i.kyoto-u.ac.jp/~fukazawa/cseb_2014/

科目概要課題 課題 = 拡散方程式の初期値求解 by 陽解法 C or Fortran + MPI / OpenMP 課題 1: 逐次プログラム 課題 2(1): MPI + 1 次元分割 課題 2(2): MPI + 2 次元分割 課題 3(1): OpenMP + Work Sharing 課題 3(2): OpenMP + MPI 提出物 提出先 期限 作成したプログラム5 種 ( 以上 ) のソースファイル 課題内容 手法説明 プログラム概要 結果考察のレポート (MS Word or PDF) h.nakashima@media.kyoto-u.ac.jp fukazawa@media.kyoto-u.ac.jp 9 月 30 日 ( 火 ) 17:00 必着

スーパーコンピュータ概論一般のスパコン : ベクトルマシン (1/2) 1976 年 : 最初のスパコン Cray-1 登場 動作周波数 =80MHz (< 携帯電話 ) 演算性能 =160MFlops (< 携帯電話 ) Flops: Floating-point Operation Per Second = 10 進 16 桁精度の数値 (10-308 ~10 308 ) の加減乗算回数 / 秒 160MFlops = 毎秒 1 億 6 千万回の加減乗算 消費電力 =115kW 大量の数値データ ( ベクトル ) に対する同種演算が得意 その後 1980 年代 : スパコン ベクトル ( 並列 ) マシンの時代 1990 年代 : スカラ並列マシン ( 後述 ) との激闘 2002 年 : 地球シミュレータが 7 年振りにベクトルで最速に 現在 :TOP500( 後述 ) にはランクせず

スーパーコンピュータ概論一般のスパコン : ベクトルマシン (2/2) 1.98m 1.37m 2.74m source: http://en.wikipedia.org/wiki/image:cray-1-p1010221.jpg

スーパーコンピュータ概論一般のスパコン : スカラ並列マシン 1980 年代に出現 Sequent Balance : 20 x NS32016 ( 84) Intel ipsc/1: 128 x i80286 ( 85) 多数のパソコン ( のようなもの ) の集合体 個々の部品 (CPU, メモリなど ) パソコン (& ゲーム機 ) 実際に TOP500( 後述 ) では... x86 = 457(91%) v.s. others = 43(9%) ただしメチャクチャに数が多い パソコン = 1~8 CPU 京大スパコン = 85,596 CPU 世界最高速スパコン = 3,120,000 CPU 世界最大規模スパコン = 3,120,000 CPU 同じような計算の集合体としての巨大計算が得意

#CPU ; GFLOPS 10 8 10 7 10 6 10 5 10 4 10 3 10 2 10 1 スーパーコンピュータ概論 一般のスパコン :TOP500 #1 of CM5 ベクトルマシンスカラーマシン XP/S140 NWT SR2201 CP-PACS VPP500 ASCI-R 巨大で (>100 万元 ) 密な連立一次方程式の求解性能に基づく世界中のスパコン順位表 1993.6から毎年 2 回発表 (6 月 &11 月 ) Rmax: 求解性能 / Rpeak: 理論最大性能 Peta=10 15 ASCI-W VPP800 Rpeak ES Rmax x419000/21 年 =x1.85/ 年 >Moore の法則 (x1.58) Roadrunner BGL HPC2500 #CPU HX600 93 94 95 96 97 98 99 00 01 02 03 04 05 06 08 08 09 10 11 12 13 14 Jaguar Tianhe K XE6+ GB8K Tera=10 12 source: http://www.top500.org/ BGQ Titan Tianhe2

京大のスーパーコンピュータ (1) Camphor XE6 6300 Abu Dhabi (16 core x 2 socket + 64 GB) x 940 node = 30,080 core + 58.75 TB 300.8 TFlops Magnolia XC30 Xeon Haswell (14 core x 2 socket + 64 GB) x 416 node = 11,648 core + 26 TB 428.6 TFlops Camellia XC30 Xeon Phi + Xeon ((60+10) core + (8+32 GB)) x 482 node = 33,740 core + 18.8 TB 583.6 TFlops InfiniBand FDR/QDR Laurel GB 8000 Xeon Sandy Bridge M2090 (8 core x 2 socket + 64 GB) x 601 node (64 w/ GPU) = 9,616 core + 37.56 TB 242.5 TFlops Cinnamon 2548X Xeon Sandy Bridge (8 core x 4 socket + 1.5TB) x 16 node = 512 core + 24 TB 10.6 TFlops SFA10000 5.0 PB + 3.0 PB 54 GB/sec + 24 GB/sec InfiniBand FDR

京大のスーパーコンピュータ (2) 日本で第 12&15&18&31 位 世界で第 101&162&190&495 位の性能 パソコンなどと比べると... 京大スパコンパソコン倍率 演算性能 1566 TFlops 10 GFlops x 156600 メモリ容量 165 TByte 2 GByte x 082500 通信性能 毎秒 1566 兆回の加減乗算 14.2 TByte/ 秒 100 MByte/ 秒 ( フレッツ光ネクスト隼 ) Peta = 10 15 = 1000 兆 Tera = 10 12 = 1 兆 Giga = 10 9 = 10 億 Mega = 10 6 = 100 万 x 142000 ディスク容量 8PByte 320 GByte x 025000

スーパーコンピュータ概論 : スパコンの構造共有メモリと分散メモリ 共有メモリ型 ( 論理的に )1つのメモリをプロセッサが共有 変数共有可能 あるプロセッサが代入した値を別のプロセッサが参照可能 一般に小規模 ( プロセッサ数 =10 0 ~10 2 のオーダー ) 分散メモリ型 別々のコンピュータをネットワークで繋いだもの プロセッサ間のデータのやり取りには陽に 通信 が必要 大規模な構成が比較的容易 (~10 5 のオーダー ) 共有 & 分散メモリ階層型 : 最近の主流 共有メモリ (SM) メモリ キャッシュ プロセッサ共有 & 分散メモリ階層型 分散メモリ (DM) 結合網

スーパーコンピュータの構造京大スパコンの構造 (Camphor=XE6) L1 16KB+32KB + + 16GB 16GB L2: 2MB L3: 8MB 16GB 16GB Abu Dhabi

スーパーコンピュータの構造京大スパコンの構造 (Laurel=GB8K) L2 L1 512KB 32KBx2 + + + + 32GB Sandybridge L3: 20MB 32GB

スーパーコンピュータの構造 京大スパコンの構造 (Magnolia=XC30) L2 L1 256KB 32KBx2 + + + + + + + + 16GB 16GB L3: 17.5MB 16GB 16GB Haswell

スーパーコンピュータの構造 京大スパコンの構造 (Camellia=XC30) L2 L1 256KB 32KBx2 + + + + 32GB Ivybridge L3: 25MB L2 L1 512KB 32KBx2 + + + + + + + + 8GB Knights Corner

並列計算概論並列計算の類型 スパコンを使って計算をする理由 = 高速計算 高速なプロセッサを使う =( 特に今後は ) 困難 多数のプロセッサを使う =( 昔も今後も ) 可能 問題 X の逐次実行時間 T(X,1) P 個のプロセッサでの並列実行時間 T(X,P) T(X,P) T(X,1)/P strong scaling X P =X の P 倍の規模 ( メモリ量 計算量など ) の問題 T(X P,P) T(X P,1)/P weak scaling X 1,..., X P =X の P 個のインスタンス T({X 1,...,X P },P) T(X,1) capacity computing

並列計算概論並列計算の条件 P 倍程度の性能を得るための必要条件 問題を計算量が 1/P 程度の部分問題に分割可能 部分問題の必要メモリ 問題の必要メモリの k/p (+α) ( 特に weak scaling で重要 ) 分割不能計算量 X seq 分割可能計算量 X para (strong scaling の一般的な限界 ) 部分問題について通信時間 / 計算時間 <O(1) P 並列計算時間の粗い見積 T(X,P) T(X seq,1) + T(X para,1)/p + 通信時間 通信時間 通信データ量 /B + 通信回数 L B : バンド幅 1~15GB/s L : 遅延 +オーバヘッド 1~50μs

並列計算概論 Scaling & Scalability 分割不能計算 strong scaling (P 問題 =) 分割可能計算 weak scaling (P 問題 ) 通信 分割不能 分割可能 スケールしない 通信量 P P=4 Amdahl 則 P=16

並列計算概論問題分割 (1/2) N N の 2 次元配列 ( 空間 ) 問題の P 分割法 block 境界長総和 cyclic block cyclic j N(P 1) j N(N 1) j b i i i N(N/b 1) 計算負荷が均一分布なら OK ( 不均一分布 負荷不均衡 ) 境界長総和 ( 通信量 ) は最小 2N( P 1) 計算負荷の不均一分布に強い境界長総和 ( 通信量 ) は最大 2N(N 1) 2N(N/b 1) block/cyclic の折衷負荷分布と境界長のトレードオフが必要なら有効

並列計算概論 問題分割 (2/2): 拡散方程式では... ϕ t 2 拡散方程式 ϕ = の初期値問題求解 by 陽解法 N N strong scaling weak scaling 1/k 1 k 4N/P 1/2 1 次元分割 2 次元分割 どちらも... 部分問題計算量 1/P 部分問題メモリ量 1/P ( 留意点後述 ) 分割不能計算量 0 ( 留意点後述 ) 計算 /step=o(n 2 /P) 通信 /step =O(N) or O(N/P 1/2 ) 通信 / 計算 <O(1)

並列計算概論拡散方程式プログラムの落し穴 部分問題メモリ量 1/P & 分割不能計算量 0? 初期化 (& 入力 ) 計算 誰かが全てをまとめて初期化 誰かが全てをまとめる 誰か のメモリ量 =N 2 N 2 /P 誰かが初期化 誰か の初期化時間 =O(N 2 ) O(N 2 /P) 分割可能計算量 N 3 結果出力 誰かが全てをまとめて出力 誰かが全てをまとめる 誰か のメモリ量 =N 2 N 2 /P 誰かが出力 誰か の出力時間 =O(N 2 ) O(N 2 /P)

計算の歩調合せ 並列計算概論プロセス並列 & スレッド並列 (1/2) 並列実行単位プロセス プロセス並列 (PP) スレッド並列 (TP) スレッド アドレス空間 ( プロセスに ) 固有スレッド間で共有 通信 (& 同期 ) 通信用プリミティブ (e.g. send, recv) 共有変数アクセス + 同期プリミティブ プロセス並列 (aka Message Passing) v.s. スレッド並列 (aka Shared Memory) プログラミング パラダイムとしての分類 ( H/W の分類 ) ライブラリ / 言語のコンセプト ライブラリ (e.g.) MPI (e.g.) OpenMP H/W=DM (S/W DSM, 言語 ) H/W=SM 折衷型 ハイブリッド並列 実質的には

並列計算概論プロセス並列 & スレッド並列 (2/2) PP v.s. TP のアナロジー PP メールの添付ファイル データ転送の主導者 = 生産者 受信データ = 必要なデータ TP web page ( にリンクされたファイル ) データ転送の主導者 = 消費者 獲得データ = 必要なデータ... とは限らない 生産者 消費者の同期が必要 消費者 生産者の同期も必要 ファイルを更新したので添付します web を見ても更新の有無は不明 download したので更新してもいいよ ファイルを更新したので download してね or web に更新日付を記載

並列計算概論バリア同期 スレッド並列プログラミングでの同期操作の定番 全員がバリア (e.g. ループ終了 ) に到達するまで待つ バリア前に更新した変数 バリア後に安全に参照 バリア前に参照した変数 バリア後に安全に更新 x=f(y) barrier() barrier() barrier() barrier() y=g(x) OpenMP では並列ループの終了時に自動バリア プロセス並列でも使用することがある ( 論理的ではなく ) 性能的な歩調合せ ファイル I/O などの通信以外の協調動作のための同期

並列計算概論バッチジョブ (1/3) 普通の実行 =interactive ( 対話的 ) コマンド入力 / クリックでプログラムが直ちに起動 ( 普通は ) 計算資源を占有 & 余裕あり 実行中にプログラムと対話 ( キー入力 クリック ) 例外 :virus scan, desktop 検索, update,... スパコンでの実行 =batch ジョブ (Prog+Data) 実行を依頼 願書郵送 資源があれば / 空けば実行開始 担当者開封 ( 普通は長時間 ) 非対話的に実行 受験票到着 計算資源は共有 & 余裕僅少 例外 :edit, コンパイル, 小規模テスト, ジョブ投入,...

並列計算概論バッチジョブ (2/3) Laurel のバッチジョブスケジューラ laurel.kudpc.kyoto-u.ac.jp 共有ログインノード 3 共有対話型ノード 4 情報学用 8 ノードキュー gr20102b ジョブキュー ジョブスケジューラ 他研究科用 16 ノードキュー gr10034b 共有計算ノード 529

並列計算概論バッチジョブ (3/3) ジョブの投入 % qsub jobscript #!/bin/bash #QSUB -q gr20102b # または gr10034b #QSUB -A p=1:t=1 # プロセス数 =スレッド数 =1./a.out ジョブの状態確認 削除 % qjobs % qkill jobid 詳細は # プログラム実行 http://web.kudpc.kyoto-u.ac.jp/manual/ja/run/batchjob/systembc