170 likes | 332 Views
Mathematica による固有値計算の高速化 Eigenvalue calculation speed by Mat h ematica. 情報工学部 情報工学科 06A2055 平塚 翔太. スライド一覧. はじめに 研究概要 Mathematica について 改良点 研究結果 まとめ 参考文献. はじめに. 先生に勧められ、かつ 1 年間熱心に研究できるテーマだと思い、本研究を行った。. 研究概要. VPN の下でのストリーミング配信の劣化. VPN. 劣化. 仮定. Max. ストリーミング配信をキャンセルする確率. NG. OK.
E N D
Mathematicaによる固有値計算の高速化Eigenvalue calculation speed by Mathematica 情報工学部 情報工学科 06A2055 平塚 翔太
スライド一覧 はじめに 研究概要 Mathematicaについて 改良点 研究結果 まとめ 参考文献
はじめに • 先生に勧められ、かつ1年間熱心に研究できるテーマだと思い、本研究を行った。
研究概要 • VPNの下でのストリーミング配信の劣化 VPN 劣化
仮定 Max ストリーミング配信をキャンセルする確率 NG OK 0 1 2 3 el el+1 el+2 el+3 n ストリーミングの本数増加 ストリーミング配信サービスの劣化
プログラム内容 α α α α α ストリーミングの本数 1 2 3 4 5 6 α:増加する確率 β:減少する確率 β β β β β 0 第二固有値 固有値計算 0 緩和時間 確率行列 (三重対角行列)
Mathematicaについて • {}で囲まれた複数の要素⇒リスト • ベクトル,行列,集合,数列,データを扱うにあたっての標準的な形式 • リストを使い高速化を目指す リスト
改良点1 • 行列作成プログラムがボトルネック • DiagonalMatrix関数とSparseArray関数 三重対角行列を作成するのに用いる 図:10000×10000の行列を作成
DiagonalMatrix • SparseArray
改良点2 • 複雑な計算をする組み込み関数の中に組み込み関数を多用すると処理時間がかかる. A:SparseArray[Array[~],Rest[~],~] B:a=Array[~] b=Rest[~] SparseArray[a,b,~]
改良点3 • リスト処理関数で二重リストを処理させるより,手続き関数を用いてリスト処理させる方がメモリを多用せずにすむ. 計算処理 {{a,a,a,a,a },{ b,b,b },・・・,{ z,z,z,z }} メモリ大 {{ 行列A },{ 行列B },・・・,{ 行列Z }}
For[~, ~, ~, { a,a,a } { 行列A } 固有値計算へ ] 計算処理 メモリ小
研究結果 • 最大ストリームについて
el(キャンセル率の最大)について ※el=18からメモリ不足により測定不可能
まとめ • 処理速度とメモリ量はトレードオフの関係である • 同じ計算をする関数でも構造が異なるのでよく検証すること • 組み込み関数のみでコーディングするより手続き関数を用いた方が高速化できる場合がある.
参考文献 • Mathematica Document Center http://reference.wolfram.com/mathematica/guide/Mathematica.ja.html • 入門Mathematica 日本Mathematicaユーザ会:編著 • K.Oida ,On the inpact of Qos-sensitivity on correlation structures,ELSEVIER,Computer Networks 52 (2008) 351-359