• 検索結果がありません。

本章のまとめ

ドキュメント内 性能パラメタ推定法に関する研究 (ページ 89-132)

PCサーバを対象とした.

2. 対象数値計算ライブラリとして,実行時に行列上の非零要素の位置が決定する,疎 行列の行列ベクトル積とした.また,疎行列のブロック化を行なうときのブロック 化サイズを性能パラメタとした.

3. 正答率で比較すると,終了判定基準4回連続の場合,平均では,正答率75.9%に対 して利用率55.0%となった.同一の正答率を得るために「ランダム」では75.9%の 標本点を必要とする(つまり利用率となる)ので,利用率に関し20.9ポイントの効 果がある.最大でみると[Ppower]のケースで,正答率92.9%を利用率 53.3%の 少ない利用率で実現している.平均と同じように比較すると,「ランダム」で必要 な標本点は92.9%となるので,利用率に関し39.6ポイントの効果がある.

4. 標本点逐次追加型性能パラメタ推定方式の評価尺度を示し,計算機ごとの特性を明 らかにした.

5. d-Splineの再計算にかかる時間を実測し,疎行列の行列ベクトル計算処理時間と比

較した.平均的に1/1000となること,疎行列の行列ベクトル計算処理時間の最小 のケースと比べても2桁の違いがあることから,実行時ソフトウェア自動チューニ ングにおいて,d-Splineを用いた性能パラメタ推定の計算量は無視することができ ることを確認した.

6. 疎行列のブロック化の効果としては,すべての性能パラメタのとり得る値を実測し た場合の結果は,1.08倍から2.26倍となった.終了判定基準を連続4回とした場 合,ブロック化の効果として,計算機ごとに,1.07倍から2.23倍の結果が得られ たので,理想値に対して,平均で最適値の97.3%の効果を得る値を選択すること ができたことになる.

今後の課題としては次の項目がある.今回,ブロック化されたデータは,メモリ上に展 開されていると仮定して実験を行なった.実際には,大規模のデータを扱うので,すべて のブロック化されたパタンを事前にメモリ上に展開することはできない.動的に生成する 場合,少なくとも非零要素のオーダの計算量が必要になる.この動的なパタン生成も含め た実用化が必要である.

6 今後の課題 6.1 今後の課題

ソフトウェア自動チューニングにおける性能パラメタ推定に関して,今後解決すべき課 題を短期的な課題,中長期的な課題に分け,整理する.

1. 短期的な課題

(a)提案した標本点逐次追加型性能パラメタ推定方式のソフトウェア自動チューニ ング基盤への組み込み

今回,開発した標本点逐次追加型性能パラメタ推定法を実際のソフトウェ アチューニング基盤に組み込み,実環境で使用できるようにする.具体的に は,ABCLib[1]およびABCLibScript[36][41]への組み込みを実施する予定で ある.

(b)問題規模(行列サイズ)間の補間

インストール時ソフトウェア自動チューニングでは,すべての行列サイズに対 して,性能パラメタ推定を行なうことはできない.そのため,行列サイズ間の 補間が必要となる.この補間に,提案した標本点逐次追加型性能パラメタ推 定法の適用を試みる.ただし,行列サイズを性能パラメタとした場合,キャッ シュなどの計算機の構成とユーザプログラムの組み合わせにより,特異的に性 能が急激に低下することがある.このようなポイントを実測せずに推定するこ とはできないので,後述する2.中長期的な課題(c)の知識の蓄積などにより,

このようなポイントはできるだけ実測する必要がある.

2. 中長期的な課題

(a)複数の性能パラメタの同時推定

本論文では,ひとつの性能パラメタの推定を対象とした.数値計算ライブラ リの性能チューニングは複数の性能パラメタの組み合わせを調べる必要があ り,複数の性能パラメタを同時に推定できれば効果が大きい.コスト定義関数

d-Splineはその関数の性質上,多次元への拡張は容易である.しかしながら,

多次元での最小値推定がどこまで効率よくできるかを研究する必要がある.ま た,計算量は1次元でO(N)であるが,2次元では,O(N1×N22)となり,1 次元での非常に少ない計算量の利点が弱まること(それでも,d-Splineを構成 する変数の数Nはユーザプログラムで扱う行列サイズより,まだはるかに小 さい)なども注意が必要である.

(b)対象とする性能パラメタの拡大

クラスタ環境への適用をさらに進める必要がある.疎行列の非零要素の各ノー ドへの分割方式,ノード間のデータ転送方式の選択,非均質なクラスタ環境へ の拡張により,適用範囲が広まると考える.

(c)知識の蓄積

いろいろな計算機環境で実行したソフトウェア自動チューニングの実行結果を 収集し,知識データベース化することにより,似たような計算機環境で実施す るときの初期値の設定など,性能パラメタ推定での効率の向上がはかれる.そ のための知識データベースの蓄積の枠組みを構築する必要がある.

(d)チューニング時の疎行列データ構造の取り扱い

今回,ブロック化されたデータは,メモリ上に展開されていると仮定して実験 を行なった.実際には,大規模のデータを扱うので,すべてのブロック化され たパタンを事前にメモリ上に展開することは難しい.ブロック化されたパタン を動的に生成する場合,少なくとも非零要素の数のオーダの計算量となり,こ の動的なパタン生成も含めた実用化が必要となる.

6.2 ユーザ知識の活用

本論文での基本姿勢として,性能パラメタ推定法において,ユーザの持つ知識は使用し ない,また,ユーザからの指定は利用しないと仮定した.そうすることにより,対象とす

る数値計算ライブラリ,計算機環境あるいはユーザプログラムに関して制限をつけなかっ た.ユーザの知識を利用することにより,あらかじめ性能パラメタ推定の探索範囲を狭め られる,あるいは,探索時のヒントとして利用できる可能性がある[37][50].また,これ らの情報も前述した知識データベースに蓄積することにより,より高度で,より簡便なソ フトウェア自動チューニング機構を実現することができる.

1. ユーザの持つモデル(方程式)に関する情報

一般に,数値解析ライブラリでは,多くの値を変数で定義している.たとえば,配 列サイズは変数を用いて作成することにより,いろいろなサイズの問題に対応でき る.この変数が確定するのは,通常,実行時に最初に数値解析ライブラリがユーザ プログラムから呼ばれたときである.もし,この変数の値がユーザプログラムを実 行する前に情報として与えられていれば,それを用いて事前に数値計算ライブラリ をチューニングすることが可能となる*26.この場合,ユーザがどのような情報を,

どのような形で提供すればよいかを提示する必要がある.この提示の仕方は,性能 パラメタのとり得る値そのままではわかりにくいこともあり,ユーザの視点で提供 する必要がある.たとえば,ループアンローリング段数を直接指定させることは困 難であり,ユーザには行列サイズを提示してもらい,行列サイズに対する最適な ループアンローリング段数については,事前にデータベース情報として持つなどが 重要となる.

2. 性能パラメタに関する情報

ユーザ情報により直接性能パラメタを絞り込むことができれば,チューニング時間 の削減につながる.しかしながら,性能パラメタの指定する情報を提供できるとい うことは,数値計算ライブラリの特性,計算機環境の特性,ユーザプログラムの特 性の3つをすべて把握し,その相互作用についても理解している必要がある.これ はかなり難しいと考える.

3. 精度に関する情報

*26コンパイル時にこの変数を確定して,性能パラメタのとり得る値を絞り込んで実施するのが,実行時前ソ フトウェア自動チューニングである.

性能チューニングを行なう際に必要な情報のひとつが精度に関する情報である.

ユーザプログラムから,それが高い精度を望んでいるのか,あるいは精度に関して は粗くてよいのかを判断することは難しい.そのために,数値計算ライブラリでは 何も情報がない場合は高精度が保証できる方に標準を設定する.粗い精度で十分な ユーザプログラムとっては,必要以上の演算処理を実行することになる.

4. 知識データベース

ユーザからの情報に限らず,ユーザプログラム,計算機環境,数値計算ライブラ リ(アルゴリズム)の3つの相関関係を把握することは難しい.ソフトウェア自動 チューニングでは,基本的にそれらの組み合わせごとに毎回性能パラメタ推定を行 なう.したがって,性能チューニングを行なった際のノウハウを貯めて,前述した 知識データベースとして蓄積することにより,似たような組み合わせのときは,評 価対象を絞り込むことが考えられる.

7 結 言

利用する計算環境にあわせて,数値計算ライブラリの性能パラメタを自動的に最適に設 定する「ソフトウェア自動チューニング」において,性能パラメタ最適化の時間短縮が課 題である.この課題に対して,最小数の標本点から始めて必要な標本点を選択し追加しな がらコスト定義関数を順次更新し,最適な性能パラメタの値を効率よく推定する「標本点 逐次追加型性能パラメタ推定法」を提案した.本方式を,インストール時,実行時の2つ のフェーズに対して適用し,その有効性を明らかにした.

第1章では,本研究の背景,目的および意義について述べた.ソフトウェア自動チュー ニングの目的は,ユーザプログラムの実行時間を短縮することにある.そのために,汎用 に作られた数値計算ライブラリをユーザが使用する計算機環境で実行するユーザプログラ ムに合わせ,数値計算ライブラリの中に準備されている複数の性能パラメタ群を自動的に 最適化する.本論文では,ソフトウェア自動チューニングにおける課題のひとつである性 能パラメタの最適化時間の短縮のための方式を示し,実機で有効性を検証した.

また,コンパイラとの補完関係について言及し,ソフトウェア自動チューニングで複数 の(プログラム)パタンを準備し,それぞれのパタン自体のコード最適化は,コンパイラ が行なうとした.

第2章では,ソフトウェア自動チューニングにおける性能パラメタ推定の位置付けにつ いて述べた.まず,ユーザが数値計算ライブラリを用いるときのソフトウェア自動チュー ニングを実行する2つのタイミングとして,インストール時ソフトウェア自動チューニ ングと実行時ソフトウェア自動チューニングを示した.それぞれのタイミングでのソフト ウェア自動チューニングの役割を明確にした.次に,ソフトウェア自動チューニングにお ける研究課題を整理し,その中での性能パラメタ推定法の位置付けを述べた.さらに,性 能パラメタ推定法の研究動向を分類し,全数探索型,限定した全数探索型,事前標本点決 定型の各手法を示し,本研究で提案した標本点追加型性能パラメタ推定法の位置付けを明 確にした.

第3章では,少ない数の標本点から開始して,推定を行ない,標本点を順次追加して

ドキュメント内 性能パラメタ推定法に関する研究 (ページ 89-132)