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

Slides:



Advertisements
Similar presentations
G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
Advertisements

1 高速フーリエ変換 (fast Fourier transform). 2 高速フーリエ変換とは? – 簡単に言うとフーリエ変換を効率よく計算 する方法 – アルゴリズムの設計技法は分割統治法に基 づいている 今回の目的は? – 多項式の積を求める問題を取り上げ、高速 フーリエ変換のアルゴリズムを用いた解法.
HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
4.3 マージソート.
連続系アルゴリズム演習 第2回 OpenMPによる課題.
第6回 仮想記憶とページング ページング ページ取り出し方式 ページ置き換え方式 中間テスト(40分)
並列処理実用? 並列処理により、 現在時間がかかって実用しづらい処理を、 早くして実用にする 1時間 =1/10⇒ 6分
極小集合被覆を列挙する 実用的高速アルゴリズム
ラベル付き区間グラフを列挙するBDDとその応用
三重対角化アルゴリズムの性能評価 早戸拓也・廣田悠輔.
第11回 整列 ~ バケットソート,基数ソート,ヒープソート~
全体ミーティング (4/25) 村田雅之.
DNASシステム上のアプリケーション起動シーケンスのための基盤であるdsh部分の性能評価
オペレーティングシステムJ/K 2004年10月7日
AllReduce アルゴリズムによる QR 分解の精度について
第9回 並び替えアルゴリズム ~さまざまなアルゴリズムを比較しよう~.
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
遺伝アルゴリズムによる NQueen解法 ~遺伝補修飾を用いた解探索の性能評価~
全体ミーティング (6/13) 村田雅之.
記 憶 管 理(2) オペレーティングシステム 第10回.
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
アルゴリズムとデータ構造 補足資料7-3 「単純選択ソートselsort.c」
データ構造とアルゴリズム 分割統治 ~ マージソート~.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
文献名 “Performance Tuning of a CFD Code on the Earth Simulator”
型付きアセンブリ言語を用いた安全なカーネル拡張
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
梅澤威志 隣の芝は茶色いか 梅澤威志
VM専用仮想メモリとの連携による VMマイグレーションの高速化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
第9回 優先度つき待ち行列,ヒープ,二分探索木
25. Randomized Algorithms
アルゴリズムとプログラミング (Algorithms and Programming)
先進的計算基盤システムシンポジウム SACSIS2007併設企画 マルチコアプログラミングコンテスト 「Cellスピードチャレンジ2007」
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
プログラミング 4 整列アルゴリズム.
2009/10/23 整列アルゴリズム (1) 第4講: 平成21年10月23日 (金) 4限 E252教室 コンピュータアルゴリズム.
複数ホストにまたがって動作する仮想マシンの障害対策
VMMのソフトウェア若化を考慮した クラスタ性能の比較
Genetic Algorithm-based Partial Least Squares GAPLS Genetic Algorithm-based Support Vector Regression GASVR 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌.
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
D: 壊れかけのヒープ 問題案: 稲葉.
第4回 メモリ管理 主記憶(メインメモリ)の管理 固定区画方式と可変区画方式 空き領域の管理 スワッピング.
第9回 優先度つき待ち行列,ヒープ,二分探索木
ハフマン符号長の効率的な求め方.
アルゴリズムとデータ構造 2012年7月2日
米澤研究室 全体ミーティング 2010/07/07 M2 渡邊裕貴.
アルゴリズムとデータ構造 2011年6月28日
Mondriaan Memory Protection の調査
本当は消去できていない!? ~データを完全消去する方法~
本当は消去できていない!? ~データを完全消去する方法~
アルゴリズムとデータ構造 2013年7月2日
理工学部情報学科 情報論理工学研究室 延山 周平
オペレーティングシステムJ/K (並行プロセスと並行プログラミング)
全体ミーティング (12/15) 村田雅之.
SMP/マルチコアに対応した 型付きアセンブリ言語
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
BSPモデルを用いた 最小スパニング木 情報論理工学研究室 02-1-47-134 小林洋亮.
データ構造と アルゴリズムI 第三回 知能情報学部 新田直也.
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
全体ミーティング (9/12) 村田 雅之.
Presentation transcript:

全体ミーティング (5/23) 村田雅之

テーマ 決定的なコピーガベージコレクション シンプルなアルゴリズムを実装し検証する まだ正しく動いていなかった Deterministic Parallel Copying Garbage Collection シンプルなアルゴリズムを実装し検証する まだ正しく動いていなかった 追いかけていないポインタがあった

アルゴリズムの概要 一定サイズ以下なら逐次アルゴリズム 大きければ2分割して再帰的に実行 分割した結果をまとめる 分割範囲外へのポインタを処理する

見落としていた例 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 終わっていないのに無視されてしまう ここから前は終わったことにしていた

対策 まだコピーが終わっていないポインタは記憶しておいて次の段階でコピーする リストを作って管理

もうひとつの問題 統合の過程でヒープに間が空いてしまうが 放置していた コピーGCとしては空けるのはよくない 利点が失われる

間が空くことによる問題 ヒープの使用効率が悪い データ末尾がヒープからあふれてしまうことも

間が空くことによる問題 ヒープの使用効率が悪い データ末尾がヒープからあふれてしまうことも 使われない空間

間を詰めていく 毎回データを移動して間を詰めることにする 穴だらけになる前に行うのでシンプルに実現可能

移動のパターン(1) 前半の空き空間が後半の使用済み空間より大きい場合 後半をそのままコピーして間を詰める

移動のパターン(2) 前半の空き空間が後半の使用済み空間より小さい場合 後半の末尾をコピーして空きを埋める

移動に伴う影響 ポインタの付け替えが必要 to space内でのポインタ forwarding ポインタ fromからtoのどこにコピーされたかという情報

ポインタのつけかえ 1 2 3 4 5 6 7 1 4 4 1 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 7 4 5 1 2 4 5 1 2 3 4 5 6 7

ポインタのつけかえ 1 2 3 4 5 6 7 1 4 4 1 7 4 5 1 2 4 3 1 2 3 4 5 6 7

実行時間の計測 Intel Core i7 3.2GHz 4コア、HTで論理的には8コア 4GB RAM

分割サイズによる実行時間 128Mの長さのヒープ ランダムなポインタ

ワーカースレッドの数の変化 8分割 性能が伸び悩む

偏ったヒープの場合 4つの区間内で固まったポインタ ランダムより並列化の恩恵が大きい

遅くなっている原因 分割の回数が増えるほど遅くなっているのはポインタの付け替えの影響か ヒープ全体のポインタの値を調べる必要がある

遅くなっている原因 1 2 3 4 5 6 7 1 4 4 1 7 4 5 すべて調べる 必要がある 1 2 4 5 1 2 3 4 5 6 7

速くするには(1) 付け替え操作自体は並列化すれば早くなる もとが並列処理部分なので並列化をしても コアが足りず全体の性能は上がらない

速くするには(2) ポインタの更新の間隔を長くする 後でまとめてやっても結果は変わらない(はず) これから試す コピーしたデータを他のデータで上書きすることはない これから試す

高速化のための他の方法 From空間は分割しなくてもよいことを利用? read-only なので競合しない Parallel Garbage Collection for Shared Memory Multiprocessors (Flood et al., 2001) 1スレッドに1つのrootを割り当てる 各スレッドは自分のバッファを持つ 競合はatomicな命令で回避 compare and swap