梅澤威志 twitter: @umezawa_takeshi 隣の芝は茶色いか 梅澤威志 twitter: @umezawa_takeshi.

Slides:



Advertisements
Similar presentations
1 広島大学 理学研究科 尾崎 裕介 石川 健一. 1. Graphic Processing Unit (GPU) とは? 2. Nvidia CUDA programming model 3. GPU の高速化 4. QCD with CUDA 5. 結果 6. まとめ 2.
Advertisements

G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
第3回 並列計算機のアーキテクチャと 並列処理の実際
07. 値予測 五島 正裕.
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
キャッシュ付PRAM上の 並列クィックソートと 並列マージソート
情報検索概説II 第8回 パソコン組み立てと記憶装置 1999/11/25.
メモリコンシステンシモデル memory consistency model
CPUについて HN:セシル.
07. 値予測 五島 正裕.
コンピュータプラクティス I 再現性 水野嘉明
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Intel AVX命令を用いた並列FFTの実現と評価
並列処理実用? 並列処理により、 現在時間がかかって実用しづらい処理を、 早くして実用にする 1時間 =1/10⇒ 6分
計算機システムⅡ 主記憶装置とALU,レジスタの制御
情報塾( ) CPUとメモリがどんなふうに動くのだろう。 レジスタやI/O プログラムの実行、マシン語。
全体ミーティング (4/25) 村田雅之.
PCクラスタにおける2個体分散遺伝的アルゴリズムの高速化
DNASシステム上のアプリケーション起動シーケンスのための基盤であるdsh部分の性能評価
全体ミーティング (6/13) 村田雅之.
アセンブラ短歌 坂井弘亮 (KOZOSプロジェクト) Twitter ID:kozossakai.
分散遺伝的アルゴリズムによる各種クラスタのベンチマーク
記 憶 管 理(2) オペレーティングシステム 第10回.
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
小型デバイスからのデータアクセス 情報処理系論 第5回.
相関と回帰:相関分析 2つの変量それぞれが正規分布にしたがってばらつく量であるとき,両変数の直線的な関係を相関分析する. 例:兄弟の身長
大きな仮想マシンの 複数ホストへのマイグレーション
複数CPU間のための共有メモリ 小島 隆史(中央大学大学院理工学研究科 國井研究室)
Ibaraki Univ. Dept of Electrical & Electronic Eng.
VMマイグレーションを可能にするIDSオフロード機構
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
専門演習Ⅰ 国際経済学部 国際産業情報学科 2年 石川 愛
アスペクト指向プログラミングを用いたIDSオフロード
15.同時実行制御,トランザクション, データベースの回復
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
型付きアセンブリ言語を用いた安全なカーネル拡張
SpectreとMeltdown ITソリューション塾・第28期 2018年5月30日 株式会社アプライド・マーケティング 大越 章司
AMD64の仮想化技術を利用した 仮想マシンモニタの実装
勉強会その1    2016/4/ 分35秒 コンピュータアーキテクチャとは? コンピュータの構成 命令の実行.
1.コンピュータと情報処理 p.18 第1章第1節 2.コンピュータの動作のしくみ CPUと論理回路
VM専用仮想メモリとの連携による VMマイグレーションの高速化
リモートホストの異常を検知するための GPUとの直接通信機構
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
仮想メモリを用いた VMマイグレーションの高速化
オペレーティングシステム イントロダクション
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
通信機構合わせた最適化をおこなう並列化ンパイラ
08. メモリ非曖昧化 五島 正裕.
プログラミング 4 整列アルゴリズム.
Intel SGXを用いた仮想マシンの 安全な監視機構
複数ホストにまたがって動作する仮想マシンの障害対策
09. メモリ・ディスアンビギュエーション 五島 正裕.
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
仮想マシンと物理マシンを一元管理するための仮想AMT
全体ミーティング (5/23) 村田雅之.
Cell/B.E. のSPE上で動作する 安全なOS監視システム
Mondriaan Memory Protection の調査
パイプラインとは何か? マイクロプロセッサ(MPU)の高速化手法の一つのこと。
ネットワーク・プログラミング デバイスドライバと環境変数.
SpectreとMeltdown ITソリューション塾・第27期 2018年3月20日 株式会社アプライド・マーケティング 大越 章司
SMP/マルチコアに対応した 型付きアセンブリ言語
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
アーキテクチャパラメータを利用した並列GCの性能予測
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Presentation transcript:

梅澤威志 twitter: @umezawa_takeshi 隣の芝は茶色いか 梅澤威志 twitter: @umezawa_takeshi

NUMA って 知ってますか

Non- Uniform Memory Access

不 均一な メモリ アクセス

NUMA とは マルチプロセッサシステムにおいて、メモリ(要するにDRAM)へのアクセス(スループット、レイテンシ)が均一でないような環境

もうちょっとわかりやすく プロセッサから見て「近いメモリ」と「遠いメモリ」があり、どのメモリが近いかはプロセッサによって異なる環境のこと どのメモリが近いかがプロセッサによらず同じであるような環境は、単にメモリ階層が存在しているだけ

つまりこういうこと プロセッサ プロセッサ 遠い 近い 近い メモリ メモリ

具体的な製品 最近だと PC でもマルチプロセッサシステムは全部 NUMA である Intel だと Nehalem の Xeon (2009) 以降 AMD だと Opteron (2003) 以降

最近のPCのNUMAの図 メ モ リ CPU CPU メ モ リ I/O

ここから 本題

昔こんなこと言ってました https://twitter.com/umezawa_takeshi/status/724997040715898881 でも実は測ってない(=伝聞)

どうやって測ろう ストアのレイテンシを測るのは難しい ロードのレイテンシを測ろう いつ完了したのか知る方法がない ロードのレイテンシを測ろう ロードして、それが終わったらまたロードして…をたくさん(10秒ぐらい)繰り返す 経過時間 ÷ ロード回数 = レイテンシ

それほど単純ではない(1) 最近のプロセッサはスーパースカラ&アウトオブオーダーなので、単にロード命令を並べただけでは並列に実行されてしまう 並列に実行されないように、ロードしたらアドレスが取れて、そのアドレスからロードしてアドレスが取れて…という構造にする(ロード間に依存関係を発生させることで直列に実行させる)

それほど単純ではない(2) 最近のプロセッサはハードウェアプリフェッチがあるので、規則正しいメモリアクセスを行うと勝手にアクセスしてキャッシュメモリまで持ってきてしまう アクセスするアドレスがランダムになるようにして、ハードウェアプリフェッチが効かないようにする

それほど単純ではない(3) 隣のキャッシュのデータをロードしたら自分のキャッシュにコピーができてしまう(たぶん) 諦めて隣のメモリのレイテンシを測って、自分のメモリのレイテンシとの差で推測する

測定ツール https://github.com/umezawatakeshi/numa_memory_latency 後述の機材が CentOS 6 で動いている関係上、 GCC 4.4.7 の C++0x の範囲で記述。(C++11 でも OK)

測定機材 Dual Xeon E5-2630L v2 たまたま手の届く範囲にこれがあっただけ Ivy Bridge EP 6C12T Base 2.4GHz, TB 2.8GHz L1D$: 32KiB/core L2$: 256KiB/core L3$: 15MiB/socket たまたま手の届く範囲にこれがあっただけ

測定上の注意 このハードの管理者ではないので、 このホストを占有できてはいないので、 非常にザックリした測定であることに注意 サーバとしての製品名は知らない EIST や TB や HT などをオフにすることもできない このホストを占有できてはいないので、 他のプログラム(特にデーモン)が全く走っていない状態で計測できているわけではない 非常にザックリした測定であることに注意

~1.6ns ~7.0ns ~18ns ~90ns ~190ns 測定結果 対象 レイテンシ L1キャッシュ (32KiB/core) L3キャッシュ (LLC) (15MB/socket) ~18ns ローカルノードの メインメモリ ~90ns リモートノードの ~190ns

結論 隣のメモリは遠い というか隣のプロセッサが遠い NUMAシステムで、複数のプロセッサにまたがってメモリをたくさん使うタスクを適切に書くのは難しいです

オマケ:よく分からないこと L1 のレイテンシは CPU0 より CPU1 の方が小さかった L2 のレイテンシは計測誤差程度だった 何回測っても同じ傾向になる 計測手法に若干の問題がある可能性…?