SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
USENIX ATC 15

Memory Session
@aru132
自己紹介
• @aru132
• 松宮 遼
• 電通大大山研M2
• 専門:HPCにおけるデータ管理手法とその応用
• キャッシュ、記憶装置階層、GPU、

(分散)ファイルシステム、メモリ、etc
Agenda
• Shoal: Smart Allocation and Replication of Memory For
Parallel Programs
• Thread and Memory Placement on NUMA Systems:
Asymmetry Matters (Best paper)
• Latency-Tolerant Software Distributed Shared Memory
(Best paper)
• NightWatch: Integrating Lightweight and Transparent
Cache Pollution Control into Dynamic Memory Allocation
Systems
Shoal: Smart Allocation and Replication
of Memory For Parallel Programs
• NUMA(マルチプロセッサ)環境を仮定
• こいつがなかなかスケールしてくれない
スケールしない原因
• mallocされたメモリ領域は、mallocが実行された
プロセッサと直接繋がっている場所に配置
解決策
• mallocしたデータを各プロセッサにストライピング
• 空間局所性の高い処理に有効
• mallocしたデータを各プロセッサにレプリケーション
• 空間局所性の低い処理に有効
• どのような処理をさせるかによってどちらが適切かは
変わる
Shoal
• NUMA環境でメモリ管理を行
うための高レベルAPI
• libnumaとmadviseを使っ
て作成
Shoalを用いた実装
• DSLのコンパイラ等で使うことを想定
• 例ではGreen-Marl [ASPLOS 12]に実装
• グラフ処理のためのDSL
性能
Thread and Memory Placement on
NUMA Systems: Asymmetry Matters
• Best paper 1本目
• プロセッサ間でのデータ通信を最適にするようにスレッド
を配置するスケジューラAsymSchedを作成
• プロセッサ間通信の(非対称な)トポロジーとバス速度に着目
スケジューリング方法
• 同じpidを持つスレッドをクラスタという単位で

グループ化
• クラスタ内で発生するデータ通信のバンド幅が最も
高速となるようにスケジューリング
• クラスタ間でのデータ通信は無視できるくらいに
少ないと仮定
スレッドのマイグレーション
• スケジューリングの結果によってはスレッドを元に
あったプロセッサ(上のメモリ)から他のプロセッサ
にマイグレーションする必要がある
• スレッドがメモリインテンシブな状態であれば、ス
レッドが使うメモリを全てマイグレーションする
• そうでないのならば、LinuxカーネルのDynamic
migrationを利用してマイグレーションする
実験結果
• Bestな状態にかなり近づいた
• 提案しているスレッドのマイグレーション手法は、
Dynamic migrationのみを行った場合に比べ、

結果が発散しない
Latency-Tolerant Software
Distributed Shared Memory
• Best paper 2本目
• 1990年代に大流行していた分散共有メモリ(DSM)
の研究
• 2000年代は下火になっていたが、ここ数年で

復活の兆し
• ネットワーク技術の進歩(特にRDMA)が主な理由
Grappa
• C++11で実装されたDSMフレームワーク
• Infinibandで接続されたx86マシンクラスタを

仮定
• レイヤ的にはOSよりも上でMapReduceや

Hiveなどの下
• SparkやDryadやNaiadと同じレイヤ?
メモリレイアウト
実体はノード毎

内容は同一
異なるノードから

アクセス可能
異なるノードから

はアクセス不可能
Delegate
• 他のノードが持っているGlobal Heapへのアクセス
はDelegate operationを使って行う
メッセージのとりまとめ
• Grappaではノード間通信が頻繁に発生する
• そして通信するデータサイズは大きくないことが多い

→バンド幅が出ない
• メッセージをとりまとめて送受信することでバンド幅を向上させる
スレッドのプリフェッチ
• Grappaでは1コア辺り1000スレッド程度の処理を
行うことがある
• 1スレッド辺りのメモリ量は少ない
• コンテキストスイッチで発生するDRAMへの

アクセスがボトルネック
• スレッドの情報をプリフェッチするように

スケジューラを作成
パフォーマンス
• GraphLabと比較
NightWatch: Integrating Lightweight and
Transparent Cache Pollution Control into
Dynamic Memory Allocation Systems
• マルチコアCPUにおける共有CPUキャッシュ(L2 or L3)の話
• 共有CPUキャッシュは、いくつかの領域に分割されている
• それぞれの物理メモリページは、分割されたCPUキャッシュ
領域に(静的に)紐付けされている
• 紐付けされた領域にキャッシュされる
問題点
• 共有CPUキャッシュのキャッシュヒット率が低いことが
ある
• ある仮想メモリ領域は時間的局所性の高いが、

別の領域は時間的局所性が低い場合
解決策
• 時間的局所性の低い仮想メモリ領域に特化したCPU
キャッシュ領域を作ってしまう
• 具体的には、malloc時に割り当てる物理メモリページを
同じCPUキャッシュ領域となるように、うまく配置する
解決策
• 時間的局所性の低い仮想メモリ領域に特化したCPU
キャッシュ領域を作ってしまう
• 具体的には、malloc時に割り当てる物理メモリページを
同じCPUキャッシュ領域となるように、うまく配置する
時間的局所性を

どうやって見分ける?
時間的局所性の見分け方
• 2つの仮定をしている
• 近い仮想メモリ空間のメモリ領域は時間的局所性が似ている(はずだ)
• 同じコールスタック内でmallocされたメモリ領域は時間的局所性が
似ている(はずだ)
• サンプルに対して2回メモリを読み込み、その時間を測定
• 1回目と2回目がほぼ同じ→CPUにキャッシュされていた
• 1回目と2回目が全然違う→CPUにキャッシュされていなかった
• その結果で統計を取っていく
実験結果

Contenu connexe

Similaire à USENIX ATC '15 輪読会 Memory Session

超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価
超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価
超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価Shunsuke Kikuchi
 
Kernel resource
Kernel resourceKernel resource
Kernel resourceKai Sasaki
 
各社のFaaSを比較してみる
各社のFaaSを比較してみる各社のFaaSを比較してみる
各社のFaaSを比較してみるryosuke matsumura
 
Java EE7 䛸㻌JCache 
Java EE7 䛸㻌JCache Java EE7 䛸㻌JCache 
Java EE7 䛸㻌JCache maruyama097
 
遊休リソースを用いた 相同性検索処理の並列化とその評価
遊休リソースを用いた相同性検索処理の並列化とその評価遊休リソースを用いた相同性検索処理の並列化とその評価
遊休リソースを用いた 相同性検索処理の並列化とその評価Satoshi Nagayasu
 
Azure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL PoolベストプラクティスAzure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL PoolベストプラクティスMicrosoft
 
パタヘネゼミ 第6章
パタヘネゼミ 第6章パタヘネゼミ 第6章
パタヘネゼミ 第6章okuraofvegetable
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたSunao Tomita
 
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...Insight Technology, Inc.
 
20160625 cloud samuai_final
20160625 cloud samuai_final20160625 cloud samuai_final
20160625 cloud samuai_finalTakano Masaru
 
MySQLの運用でありがちなこと
MySQLの運用でありがちなことMySQLの運用でありがちなこと
MySQLの運用でありがちなことHiroaki Sano
 
システムパフォーマンス勉強会#6
システムパフォーマンス勉強会#6システムパフォーマンス勉強会#6
システムパフォーマンス勉強会#6shingo suzuki
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたGoAzure
 
AWSのデータベースサービス全体像
AWSのデータベースサービス全体像AWSのデータベースサービス全体像
AWSのデータベースサービス全体像Amazon Web Services Japan
 
Wakame-vnet / Open Source Project for Virtual Network & SDN
Wakame-vnet / Open Source Project for Virtual Network & SDNWakame-vnet / Open Source Project for Virtual Network & SDN
Wakame-vnet / Open Source Project for Virtual Network & SDNaxsh co., LTD.
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤Sotaro Kimura
 
第2章アーキテクチャ
第2章アーキテクチャ第2章アーキテクチャ
第2章アーキテクチャKenta Hattori
 
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保するDNA Data Bank of Japan center
 

Similaire à USENIX ATC '15 輪読会 Memory Session (20)

超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価
超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価
超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価
 
Kernel resource
Kernel resourceKernel resource
Kernel resource
 
各社のFaaSを比較してみる
各社のFaaSを比較してみる各社のFaaSを比較してみる
各社のFaaSを比較してみる
 
Java EE7 䛸㻌JCache 
Java EE7 䛸㻌JCache Java EE7 䛸㻌JCache 
Java EE7 䛸㻌JCache 
 
MapReduce解説
MapReduce解説MapReduce解説
MapReduce解説
 
遊休リソースを用いた 相同性検索処理の並列化とその評価
遊休リソースを用いた相同性検索処理の並列化とその評価遊休リソースを用いた相同性検索処理の並列化とその評価
遊休リソースを用いた 相同性検索処理の並列化とその評価
 
CPUの同時実行機能
CPUの同時実行機能CPUの同時実行機能
CPUの同時実行機能
 
Azure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL PoolベストプラクティスAzure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL Poolベストプラクティス
 
パタヘネゼミ 第6章
パタヘネゼミ 第6章パタヘネゼミ 第6章
パタヘネゼミ 第6章
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
 
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
 
20160625 cloud samuai_final
20160625 cloud samuai_final20160625 cloud samuai_final
20160625 cloud samuai_final
 
MySQLの運用でありがちなこと
MySQLの運用でありがちなことMySQLの運用でありがちなこと
MySQLの運用でありがちなこと
 
システムパフォーマンス勉強会#6
システムパフォーマンス勉強会#6システムパフォーマンス勉強会#6
システムパフォーマンス勉強会#6
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
 
AWSのデータベースサービス全体像
AWSのデータベースサービス全体像AWSのデータベースサービス全体像
AWSのデータベースサービス全体像
 
Wakame-vnet / Open Source Project for Virtual Network & SDN
Wakame-vnet / Open Source Project for Virtual Network & SDNWakame-vnet / Open Source Project for Virtual Network & SDN
Wakame-vnet / Open Source Project for Virtual Network & SDN
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
 
第2章アーキテクチャ
第2章アーキテクチャ第2章アーキテクチャ
第2章アーキテクチャ
 
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
 

USENIX ATC '15 輪読会 Memory Session