全体ミーティング (4/25) 村田雅之.

Slides:



Advertisements
Similar presentations
MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
Advertisements

CPUとGPUの 性能比較 -行列計算およびN体問題を用いて-
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
Chapter11-4(前半) 加藤健.
Intel AVX命令を用いた並列FFTの実現と評価
ラベル付き区間グラフを列挙するBDDとその応用
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
Finger patternのブロック化による 陰的wavelet近似逆行列前処理の 高速化
AllReduce アルゴリズムによる QR 分解の精度について
時空間データからのオブジェクトベース知識発見
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
全体ミーティング (6/13) 村田雅之.
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
2007/1/18 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
データ構造とアルゴリズム 分割統治 ~ マージソート~.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
ネストした仮想化を用いた VMの安全な帯域外リモート管理
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
 データベースによる並列処理 情報論理工学研究室  三宅健太.
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
メモリ管理 4.3, 4.4 章 さだ.
アスペクト指向プログラミングを用いたIDSオフロード
正方行列向け特異値分解の CUDAによる高速化
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
型付きアセンブリ言語を用いた安全なカーネル拡張
MPIを用いた最適な分散処理 情報論理工学研究室 角 仁志
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
MPIとOpenMPを用いた Nクイーン問題の並列化
梅澤威志 隣の芝は茶色いか 梅澤威志
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
VM専用仮想メモリとの連携による VMマイグレーションの高速化
リモートホストの異常を検知するための GPUとの直接通信機構
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
コンパイラ 2012年11月15日
アルゴリズムとデータ構造 補足資料4-1 「メモリと配列」
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
GPGPUによる 飽和高価値 アイテム集合マイニング
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
アスペクト指向言語のための 独立性の高いパッケージシステム
GPUを用いた疎行列の格納形式による行列ベクトル積の評価
Intel SGXを用いた仮想マシンの 安全な監視機構
複数ホストにまたがって動作する仮想マシンの障害対策
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
秘匿リストマッチングプロトコルとその応用
全体ミーティング (5/23) 村田雅之.
同期処理のモジュール化を 可能にする アスペクト指向言語
「マイグレーションを支援する分散集合オブジェクト」
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
全体ミーティング (12/15) 村田雅之.
SMP/マルチコアに対応した 型付きアセンブリ言語
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
BSPモデルを用いた 最小スパニング木 情報論理工学研究室 02-1-47-134 小林洋亮.
参考:大きい要素の処理.
複数ホストにまたがるVMの メモリ使用状況に着目した高速化
回帰テストにおける実行系列の差分の効率的な検出手法
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
分散メモリ型並列計算機上での行列演算の並列化
全体ミーティング (9/12) 村田 雅之.
局所性を考慮した共有メモリ並列計算機上の並列BIBOPアロケータ
強制パススルー機構を用いた VMの安全な帯域外リモート管理
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Presentation transcript:

全体ミーティング (4/25) 村田雅之

今日の内容 修士研究の進捗について

テーマ Deterministic Parallel Copying Garbage Collection 結果の決定性が保証された並列コピーGC

動機 GCを並列化したい 高速化が期待できる 並列化すると特有の問題がある 結果が実行ごとに変わることがある 実行順序が不定である

並列プログラムの検証に関する研究 Deterministic Parallel Java (DPJ) これを用いる Bocchino Jr. et al., OOPSLA 2009 型検査でメモリ領域へのアクセスを把握する 実行結果の決定性を検証する これを用いる

本研究のアプローチ 並列GCのアルゴリズムの決定性をDPJの型 システムを応用して検証する 並列GCの正しさを検証するための第一歩 結果の決定性が保証されれば 逐次実行環境での正しさを検証するだけで済む

まずやろうとしたこと 単純な並列GCのアルゴリズムを実装してみる

本研究でのヒープのモデル化 単純な整数の配列として表現する 1 2 3 4 5 6 7 1 4 4 1 3 7 4 5 配列のインデックスがアドレスを表す 1 2 3 4 5 6 7 1 4 4 1 3 7 4 5 よみやすく

単純な並列GCアルゴリズム ヒープを分割してそれぞれの領域について 並列にコピーGCを実行しそれを統合する

単純な並列GCアルゴリズム 1. 分割フェイズ ヒープを複数の区間に分割 区間内にあるrootから到達可能なデータを コピーする 区間外へのポインタが現れたら一時停止

分割フェイズの例 region From 1 2 3 4 5 6 7 1 4 4 1 3 7 4 5 region To 1 2 3 4 5 6 7

分割フェイズの例 region From0 region From1 1 2 3 4 5 6 7 1 4 4 1 3 7 4 5 region To0 region To1 1 2 3 4 5 6 7

分割フェイズの例 1 2 3 4 5 6 7 1 4 4 1 3 7 4 5 ? ? 1 2 3 4 5 6 7

分割フェイズの例 1 2 3 4 5 6 7 1 4 4 1 3 7 4 5 1 ? 5 ? 1 2 3 4 5 6 7

分割フェイズの例 1 2 3 4 5 6 7 1 4 4 1 3 7 4 5 1 ? 5 4 1 2 3 4 5 6 7

分割フェイズの例 1 2 3 4 5 6 7 1 4 4 1 3 7 4 5 範囲外へのポインタは 後回しにする 1 ? 5 4 1 2 3 4 5 6 7

単純な並列GCのアルゴリズム 2. 統合フェイズ 隣り合う領域をひとつの領域として扱う その範囲内でコピーを続ける

統合フェイズの例 1 2 3 4 5 6 7 1 4 4 1 3 7 4 5 1 ? 5 4 1 2 3 4 5 6 7

統合フェイズの例 1 2 3 4 5 6 7 1 4 4 1 3 7 4 5 1 2 ? 5 4 1 2 3 4 5 6 7

統合フェイズの例 1 2 3 4 5 6 7 1 4 4 1 3 7 4 5 1 2 3 1 5 4 1 2 3 4 5 6 7

単純なアルゴリズムを実装 まずはこのアルゴリズムを実装した(つもりだった) 実は2分割の場合しか考えられていなかった 4分割以上すると不都合なことが起こる

見落としていた例 1 2 3 4 5 6 7 1 4 4 2 12 7 4 2 ・・・

見落としていた例 1 2 3 4 5 6 7 1 4 4 2 12 7 4 2 ・・・ 1 ? 5 ? ・・・ 1 2 3 4 5 6 7

見落としていた例 さらに範囲外へのポインタ 1 2 3 4 5 6 7 1 4 4 2 12 7 4 2 ・・・ 1 2 ? 5 ? ・・・ 1 2 3 4 5 6 7

見落としていた例 1 2 3 4 5 6 7 1 4 4 2 12 7 4 2 ・・・ 1 2 ? 2 5 3 ・・・ 1 2 3 4 5 6 7 データは前からつめていく方針

見落としていた例 1 2 3 4 5 6 7 1 4 4 2 12 7 4 2 ・・・ 1 2 ? 2 5 3 ・・・ 1 2 3 4 5 6 7 終わっていないのに無視されてしまう ここから前は終わったことにしていた

修正の方針 統合する過程では複数個の処理されて いないポインタが存在 まだコピーされていないデータのインデックスを入れるキューを用意してそれを利用する など

性能について 未完成ではあるが実行時間を計測してみた CPU : Intel Core i7 2.2GHz (4コア) メモリ : 4GB おおまかには評価できそう? 正確な実装ではさらに計算量が増えそう CPU : Intel Core i7 2.2GHz (4コア) メモリ : 4GB OS : Mac OS X 10.6.7 Java 1.6.0_24

分割サイズを変えてみる 長さ65536の配列について実行 配列を分割する最小サイズを変えてみる 5回実行したときの最速値を計測 ランダムにポインタを設定 配列を分割する最小サイズを変えてみる 5回実行したときの最速値を計測

結果 横軸は分割のサイズ 縦軸は実行時間(μs) 128から落ち着いている

逐次アルゴリズムとの比較 分割・並列化によるコストが大きい 予想はしていたが 実行時間(μs) 128まで分割 6265 逐次アルゴリズム 215

ワーカースレッドの数を変える 1から4で変えてみた DPJのオプション 長さ65536の配列 分割サイズは128

結果 1スレッドの場合と比較した速さ 4スレッドで約1.3倍 逐次部分が多いため?

次にすること 単純なアルゴリズムの実装の修正 性能向上を考える アルゴリズムの工夫 既存アルゴリズムを参考にするなど