局所性を考慮した共有メモリ並列計算機上の並列BIBOPアロケータ

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

MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
共有メモリ並列計算機上の スケーラブルな動的メモリ管理 モジュール
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
ファイルキャッシュを考慮したディスク監視のオフロード
Chapter11-4(前半) 加藤健.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
全体ミーティング (4/25) 村田雅之.
分散コンピューティング環境上の Webリンク収集システムの実装
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
Finger patternのブロック化による 陰的wavelet近似逆行列前処理の 高速化
報告 (2006/9/6) 高橋 慧.
AllReduce アルゴリズムによる QR 分解の精度について
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
大きな仮想マシンの 複数ホストへのマイグレーション
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
P2P型ウェブ閲覧者間コミュニケーションに関する研究
速報: Boehm GC version 6.0α1 遠藤 敏夫.
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
過負荷時のWebアプリケーションの 性能劣化を改善する Page-level Queue Scheduling
型付きアセンブリ言語を用いた安全なカーネル拡張
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
オペレーティングシステムJ/K (実時間処理システム)
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
IaaS型クラウドにおける インスタンス構成の動的最適化手法
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
1. MC/UCT アルゴリズムの 並列化に伴う挙動の変化 2. 探索木共有型並列と マスタスレーブ型並列 ― プラットフォームとの関係 ―
仮想メモリを用いた VMマイグレーションの高速化
オペレーティングシステム イントロダクション
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
通信機構合わせた最適化をおこなう並列化ンパイラ
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
アスペクト指向言語のための 独立性の高いパッケージシステム
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
Virtualizing a Multiprocessor Machine on a Network of Computers
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
「マイグレーションを支援する分散集合オブジェクト」
マイグレーションを支援する分散集合オブジェクト
第4回 メモリ管理 主記憶(メインメモリ)の管理 固定区画方式と可変区画方式 空き領域の管理 スワッピング.
構造的類似性を持つ半構造化文書における頻度分析
全体ミーティング (5/23) 村田雅之.
低剛性・高慣性比の二慣性系の 外乱抑制制御問題に対して 任意の制御性能を達成する 不安定な補償器
米澤研究室 全体ミーティング 2010/07/07 M2 渡邊裕貴.
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
「マイグレーションを支援する分散集合オブジェクト」
Mondriaan Memory Protection の調査
Cソースコード解析による ハード/ソフト最適分割システムの構築
6.5 セマフォ セマフォ(semaphore): 複数のタスク(もしくはスレッド)が「同期」または「相互排除」の制御のために取得(acquire)・リリース(release)できるカーネルオブジェクトの総称.
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
SMP/マルチコアに対応した 型付きアセンブリ言語
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
BSPモデルを用いた 最小スパニング木 情報論理工学研究室 02-1-47-134 小林洋亮.
長岡技術科学大学 大学院 工学研究科 機械創造工学専攻 髙山 誠 指導教員 小林 泰秀 准教授
アーキテクチャパラメータを利用した並列GCの性能予測
全体ミーティング (9/12) 村田 雅之.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Presentation transcript:

局所性を考慮した共有メモリ並列計算機上の並列BIBOPアロケータ 遠藤敏夫 Joint work with 田浦健次朗, 米澤明憲 (JSPP2001投稿中)

並列プログラムのメモリ管理 既存のアプローチ 逐次アロケータ + 排他制御 各システム独自のアロケータ Libc mallocなどをそのまま使うと遅すぎる 各システム独自のアロケータ Ex. Apacheサーバ, Cilk, KLIC。プログラマの負担大 汎用並列アロケータ (本研究のアプローチ) [Larsonら98] [Veeら99] …スケーラビリティ [Bergerら00] …スケーラビリティ+消費量 DSMでの局所性への言及はまだない

分散共有メモリ(DSM)マシン 共有メモリマシンの一種 Origin 2000では、 リモート/ローカルメモリのアクセスコスト差は3倍程度 各ページは最初にアクセスしたプロセッサにとってローカル CPU CPU CPU Mem Mem Mem DSM(Originなど) CPU CPU CPU Mem Mem Mem SMP(Enterpriseなど)

並列アロケータが達成すべき目標 局所性 (Origin 2000などのDSM) メモリ消費量 スケーラビリティ 背景: ローカル/リモートメモリのアクセスコスト差(3倍) 確保者にとってローカルなメモリを使わせたい メモリ消費量 アロケータによる消費量≧プログラムによる利用量 多すぎると他プログラムに悪影響 スケーラビリティ 背景: プログラムによってはCPUあたり100K malloc/s 確保処理が並列にできる必要

3条件を満たすためには 空き領域の管理方法に注目 予告: スレッド独立+stealあり の方法を提案 空き領域をスレッド独立に管理すると ○ 局所性、スケーラビリティ × 消費量 空き領域をスレッド間共有すると × 局所性、スケーラビリティ ○ 消費量 予告: スレッド独立+stealあり の方法を提案

メモリ消費量 v.s. 局所性 局所性を最優先させると、メモリ消費量増大の可能性 (B)で、必ずローカルメモリを確保すると消費量2m 最悪スレッド数倍の消費 u1 m thread 1 t u2 m thread 2 t (A) u1 m thread 1 t u2 m thread 2 t (B)

本研究の貢献 BIBOP(big bag of pages)型アロケータの並列化方式LPS(locality-aware page shared)の提案/実装 局所性 ⇔ 消費量間のトレードオフを自由に調整可 許容消費定数 k の導入 スケーラブル 48プロセッサ(R10000 195MHz)で18M malloc/s … 1プロセッサ時(750K malloc/s)の24倍

発表の概要 BIBOP 素朴な並列化方式 提案方式 LPS メモリ消費量解析(簡単に) 性能評価 まとめ

BIBOPアロケータの概要 広まっているアロケータの一つ ヒープは固定サイズページから成り立つ ページは同サイズオブジェクトを含む free obj list 広まっているアロケータの一つ ヒープは固定サイズページから成り立つ ページは同サイズオブジェクトを含む 空き領域は、 フリーオブジェクトリスト(サイズ毎) フリーページリスト で管理 free page list

素朴な並列化になっていない(1/3) All shared(AS) 空き領域を全て共有 × 非スケーラブル ○ 消費量最小 × 局所性悪 threads All-shared(AS) free obj list free page list OS

素朴な並列化(2/3) All local(AL) 空き領域をスレッド個別管理 ○ スケーラブル × 消費量大 最悪、最小値のスレッド数倍 × 消費量大 最悪、最小値のスレッド数倍 ○ 局所性良 必ずローカルメモリを確保 threads All-local(AL) free obj list free page list OS

素朴な並列化(3/3) Page shared(PS) 空きオブジェクト: スレッド個別 空きページ: 共有 ○ スケーラブル ○ 消費量小 ←以降の話の標準 × 局所性悪 空きページを任意のスレッドが再利用 threads Page-shared(PS) free obj list free page list OS

PS, AL方式の性能(1/2) ○← →× Malloc回数のスループット計測 Origin 2000(blue1) 並列木作成ベンチマーク GCあり、同期 GC/free時間省く ○← →× Malloc回数のスループット計測 PS … 13.5M回/s(逐次の18.5倍) AL … 21.2M回/s(逐次の28.5倍) 両者ともIRIX libc mallocよりはるかにスケーラブル

PS, AL方式の性能(2/2) ×← →○ ×← →○ ALはメモリ消費が激しい PSは局所性が悪い 最悪PSの12倍 Origin 2000(chorus) 擬似サーバベンチ 常に12スレッド GCあり、非同期 使用量: 約20MB 横軸:v=同時にメモリ 利用するスレッド数 ×← →○ ×← →○ ALはメモリ消費が激しい 最悪PSの12倍 PSは局所性が悪い 空ページが別スレッドに再利用される率=約0.9

提案方式LPSの外部仕様 Locality-aware page shared (LPS) ○ スケーラブル ○ 消費量: PSのk倍以下かつ、AL以下 ○ 局所性: 上の条件内で最大限に ユーザはk(許容消費倍率, k≧1)によってトレードオフの調節可

Locality-aware page-shared(LPS) 空き領域をスレッド独立 まず自リストを探索 →同スレッドによって再利用されやすい その次は、 消費量を抑えたいとき、他リストを探索 局所性を上げたいとき、OSから確保 threads Locality-aware page-shared(LPS) free obj list free page list OS

LPSの内部仕様(2/2) a … アロケータによる消費ページ数 l … 前回のGCで生き残ったページ数 成功 空きオブジェクト リスト探索 a … アロケータによる消費ページ数 l … 前回のGCで生き残ったページ数 max l … これまでのlの最大値 k … 許容消費倍率 成功 自分の空きページ リスト探索 Yes a < k max l ? No 成功 他人の空きページ リスト探索 OSから確保 またはGC

LPSの消費量について k kが小さいときはPS並 k max l までは消費 性質上ALは超えない 以上より、どのkに対してもLPS消費量は PS消費量のk倍(#)以下 AL消費量以下 特定のプログラムに 対する消費量 AL 消費量 (#) (3) LPS (2) PS max l (1) 1 k

LPS方式の性能(1/2) LPS(k=1)のスケーラビリティはPSとALの中間 17.8M回/s(逐次の24倍)

LPS方式の性能(2/2) 消費量: v小(左)でもPSのほぼk倍に抑えられている 局所性: k大になるにつれ、remote確保率小 k=1は、PSと変わらず →バランスなプログラムでさえ、局所性を得るためには約2倍の消費が必要

まとめ 並列BIBOPアロケータ方式LPSを提案 ゴールは ユーザは許容消費倍率の調節によって、トレードオフを自由に調節可 スケーラビリティ メモリ消費量 局所性 ユーザは許容消費倍率の調節によって、トレードオフを自由に調節可 メモリ消費量解析、実験による性能評価 トレードオフ

関連研究 ローカルヒープを用いたスケーラブルな並列アロケータ (G)はGCあり、(E)は明示free [市吉ら94](G) … スレッドローカルGC。KLIC言語と密着 [Larsonら98](E) [Veeら99](E) … 共有ヒープへのアクセス頻度解析 [Bergerら00](E) … BIBOP,メモリ消費量解析 [Boehm00](G) … BIBOP, 空きオブジェクトリストの一部のみスレッドローカル いずれもDSMの局所性には言及せず

今後の予定 実用アプリでの実験 局所性の解析 GCスケジューリングとの関係の研究 許容消費倍率の自動選択?