インストール時ソフトウェア自動チューニングでは,既知の情報は計算機環境に関する 項目であり,ユーザプログラムの情報はない.したがって,数値計算ライブラリで代表的 な行列計算においては,多くの行列サイズに対して,評価を実施しておく必要が生じる.
図11は,図2のインストール時ソフトウェア自動チューニングの部分の詳細図である.
インストール時ソフトウェア自動チューニングは,数値計算ライブラリをユーザの持つ計 算機環境にインストールするときに実施される.ここでは,指定された行列サイズに対し て,標本点逐次追加型性能パラメタ推定法による性能パラメタ推定を繰返し行なう*18.
図12にソフトウェア自動チューニングによるインストール時最適化での標本点逐次追 加型性能パラメタ推定法の実行手順適用のための手順を示す.この図は,3.4節で説明し た実行手順(図8)に矢印の部分を追加している.追加した2つの手順について説明する.
1. 手順0と手順20は指定したすべての行列サイズに対して,性能パラメタ推定を繰 り返して実行することを示している.
2. 手順2.1から手順2.3までは,初期値設定での工夫である.直前の行列サイズに対 して推定して求めた最適値が,手順1で設定した4つの初期値に含まれていないと きは,これを5番目の初期値とする.これは,行列サイズが近い場合には,最適値 が同じになる可能性が高いと考えられるからである.
上記以外の手順は,図8の実行手順と同じ手順を実施する.
*18このときの行列サイズの指定ならびに評価すべき性能パラメタの指定をどのように行なうかは課題であ る.基本的には,数値計算ライブラリ内にディフォルト値を決めておき,必要に応じて,ユーザが指定で きるようにするべきと考える.そのために,インストール時ソフトウェア自動チューニングにどのくらい の時間を要するかの指針は示す必要があり,そのために,いろいろな計算機環境で実施した経験を知識 データベースとして蓄えておく必要がある.
"!$#&%('
)*+-,
/.-0123 4 57698;:/< =
1
3 >? @A-2B
CED
CFD&GH
IJ$K/LM/N"0;O7123 PK/LM/N"0;O71
J1/Q RS
&
1TU V W
X $K/LM/N"0;O71Y"Z
[
I]\1/^_` a7b/c d
[fehg
13i ?@A-1jk
l]mon1/` a7bp 6J=
c d
[
"&23
[
jk
q
5sr tuv
1wx uzy7{
wx|~}&A
[
` a7bpJ\/
6
923
[
jk
q
5sr tuv
1wx y7{
wx
u
}&A
CFD-
5rtuzv
1wx u
:/< =
CED
1/37>?@23
図11 インストール時ソフトウェア自動チューニング
0. while ( all of matrix_size) do begin
1. sp ={xp1, ((2xp1+xpN)/3) , ((xp1+2xpN)/3) , xpN}
!
2. nonsp = - sp
2.1 if ( not xpopt_prevloop in sp ) then 2.2 sp = sp + {xpopt_prevloop}
2.3 end if
3. sp"# $ %& '( )+*-,.)0/1234526
4. 26& 789;:<=% d-Spline f 0' (
5. d-Spline f 1%&'( )-*+,.)0/12 3 4 5
>?@AB0> C
& xpopt
D
0E :
6. repeat
7. if ( not xpoptin sp ) then
8. xpnew_sp= xpopt
F
G H 1I
9. else
10. j = maxj|| f(xpj-1)-2f(xpj)+f(xpj+1) || | (xpjin nonsp)
11. xpnew_sp= xpj
F
G H 2I
12. end if
13. sp = sp + {xpnew_sp} 14. nonsp = nonsp - {xpnew_sp}
15. JKLM $ xpnew_sp0K NOPQ%&'( )-*+,.)0/R26
16. 2 6&7S89T:<=% d-Spline f '(
17. d-Spline f %&'( )-*+,.)0/12 3 4 5
> ? @AB>C
& xoptE : 18. until ( ( nonsp.eq.U V ).or.(
> C
& xopt
W
pXY Z[ ) )
F \^]_
: GHI
19. E:`a
> C
& xopt0%&'()-*+,.)0/
2345
W
> ? @1ABb
)-cRd+&
@1e
:
20. end while
fgTh ij+kl.mn1oqpr.stQuqv
Nwx0yxz.{
(
i
= {xp1, xp2, …, xpN}| xp1} xp2 } …} xpN)
h i
sp
j+~.
xz.{
h i
nonsp
j+~..
x
kl.mnopr.stQuqv
yxz{ (
i
-i
sp)
h
matrix_size
g0.
x.0...
h
xpopt_prevloop
j
x..x
mn1oqp
.--y
h
p N S. )
j0Rq.
0¡.y
図12 標本点逐次追加型性能パラメタ推定法の実行手順(インストール時)