TOP > 国内特許検索 > 計算装置、計算方法、プログラムおよび記録媒体

計算装置、計算方法、プログラムおよび記録媒体 コモンズ

国内特許コード P110003175
整理番号 K019P18
掲載日 2011年6月17日
出願番号 特願2003-149701
公開番号 特開2004-355144
登録番号 特許第4565201号
出願日 平成15年5月27日(2003.5.27)
公開日 平成16年12月16日(2004.12.16)
登録日 平成22年8月13日(2010.8.13)
優先権データ
  • 特願2003-092592 (2003.3.28) JP
発明者
  • 片桐 孝洋
出願人
  • 国立研究開発法人科学技術振興機構
発明の名称 計算装置、計算方法、プログラムおよび記録媒体 コモンズ
発明の概要 【課題】パラメータの最適化が容易な計算装置を提供する。
【解決手段】計算装置1は、最適化を行うプログラム中の領域と最適化を行うパラメータとを指定する指定子が含まれているプログラムが入力されると、指定子によって指定される領域とパラメータとについての、実測による最適化を実行するためのプログラムを生成するプログラム生成部6を備えている。例えば、プログラム生成部6は、指定子によって指定される領域を含むようなサブプログラムと、サブプログラムをパラメータごとに呼び出して実際の所要時間を計測するための実測ルーチンと、実測ルーチンにて計測した所要時間から最適なパラメータを推定するための推定ルーチンとを作成する。
【選択図】 図1
従来技術、競合技術の概要


従来、コンピュータのような計算装置において、実行するソフトウェアプログラムを最適化する際には、最適化するためのパラメータをユーザが指定して、そのパラメータについての最適化処理をユーザが順次手作業で指示するようになっていた。



例えば、ユーザは、プログラムについてチューニング(最適化)すべきパラメータを、手作業で登録する。さらには、実際に最適化を行うために、例えば、チューニングを行うための前処理、実際のチューニング方法、およびチューニングしたパラメータの利用のための処理などについて、コンピュータに対してそれぞれ指示する必要がある。



なお、このようなチューニングを行うための構成の一例として、日本国の公開特許公報「特開2000-276454号公報(公開日:2000年10月6日)」には、パラメータを調節してインストールを行う機能を有するソフトウェアの構成方法が記載されている。



【特許文献1】
特開2000-276454号公報

産業上の利用分野


本発明は、プログラムに含まれるパラメータの最適化を行うための計算装置、計算方法、プログラムおよび記録媒体に関するものである。

特許請求の範囲 【請求項1】
入力されるプログラムに含まれるパラメータの最適化を行うための、コスト定義関数ライブラリを備えた計算装置において、
最適化の対象となる領域と最適化の対象となるパラメータとコスト定義関数とを指定する指定子が含まれている上記プログラムが入力されると、上記指定子によって指定される上記領域内のコード、及び、上記指定子によって指定される上記パラメータを当該プログラムから抽出する指定子解析手段と、
上記コスト定義関数ライブラリに含まれる、上記パラメータを変数とする多項式であるコスト定義関数の中から、上記指定子により指定されたコスト定義関数を選択するコスト定義関数選択手段と、
上記指定子によって指定される上記領域内のコード、又は、上記指定子によって指定される上記領域内のコードに上記指定子により指定されるアンローリング処理を施すことにより得られたコードを含み、かつ、上記指定子によって指定される上記領域外のコードを含まないサブプログラムと、上記サブプログラムを呼び出して上記指定子によって指定される上記パラメータについての実測による最適化を実行するためのメインプログラムとを生成するプログラム生成手段と、を備え、
上記プログラム生成手段は、上記メインプログラムから呼び出す、又は、上記メインプログラムに含ませるための、上記パラメータごとに上記サブプログラムを呼び出して所要時間を計測する実測ルーチンと、上記コスト定義選択手段により選択されたコスト定義関数の係数を、上記実測ルーチンにて計測した上記所要時間を最良近似するように最小二乗法により定めるとともに、係数の定められたコスト定義関数の値を最小化する上記パラメータの値を推定する推定ルーチンとを作成する、
ことを特徴とする計算装置。

【請求項2】
上記プログラム生成手段は、上記入力されるプログラムにおいて上記指定子により指定される上記領域内のコードを、上記サブプログラムを呼び出すためのコードに置き換えることによって新たなプログラムを生成するとともに、上記実測ルーチンおよび上記推定ルーチンを呼び出すためのコードの後に、上記新たなプログラムを呼び出すためのコードを含むメインプログラムを生成する、ことを特徴とする請求項に記載の計算装置。

【請求項3】
上記指定子により指定されたコスト定義関数が上記コスト定義関数ライブラリに含まれていない場合、上記コスト定義関数選択手段は、上記実測ルーチンにて計測した上記所要時間を最良近似するよう、上記コスト定義関数ライブラリに含まれる各コスト定義関数の係数を最小二乗法により定めるとともに、係数の定められたコスト定義関数のうちから最も近似精度のよいコスト定義関数を選択する
ことを特徴とする請求項1又は2に記載の計算装置。

【請求項4】
上記領域と上記パラメータとを記憶するチューニング情報データベースを有しており、
上記プログラム生成手段と上記コスト定義関数決定手段とが、上記チューニング情報データベースを参照して上記領域または上記パラメータを取得することを特徴とする請求項に記載の計算装置。

【請求項5】
指定子解析手段プログラム生成手段、コスト定義関数選択手段、および、コスト定義関数ライブラリを備えた計算装置に入力されるプログラムに含まれるパラメータの最適化を行うための計算方法において、
最適化の対象となる領域と最適化の対象となるパラメータとコスト定義関数とを指定する指定子が含まれている上記プログラムが入力されると、上記指定子解析手段が、上記指定子によって指定される上記領域内のコード、及び、上記指定子によって指定される上記パラメータを当該プログラムから抽出する指定子解析工程と、
上記コスト定義関数選択手段が、上記コスト定義関数ライブラリに含まれる、上記パラメータを変数とする多項式であるコスト定義関数の中から、上記指定子により指定されたコスト定義関数を選択するコスト定義関数選択工程と、
上記プログラム生成手段が、上記指定子によって指定される上記領域内のコード、又は、上記指定子によって指定される上記領域内のコードに上記指定子により指定されるアンローリング処理を施すことにより得られたコードを含み、かつ、上記指定子によって指定される上記領域外のコードを含まないサブプログラムと、上記サブプログラムを呼び出して上記指定子によって指定される上記パラメータについての実測による最適化を実行するためのメインプログラムとを生成するプログラム生成工程と、を含み、
上記プログラム生成工程において、上記プログラム生成手段は、上記メインプログラムから呼び出す、または上記メインプログラムに含ませるための、上記パラメータごとに上記サブプログラムを呼び出して所要時間を計測する実測ルーチンと、上記実測ルーチンにて計測した上記所要時間を最良近似するよう、上記コスト定義関数選択工程にて選択されたコスト定義関数の係数を最小二乗法により定めるとともに、係数の定められたコスト定義関数の値を最小化する上記パラメータの値を推定する推定ルーチンとを作成する、ことを特徴とする計算方法。

【請求項6】
上記プログラム生成工程において、上記プログラム生成手段は、上記入力されるプログラムにおいて上記指定子により指定される上記領域内のコードを、上記サブプログラムを呼び出すためのコードに置き換えることによって新たなプログラムを生成するとともに、上記実測ルーチンおよび上記推定ルーチンを呼び出すためのコードの後に、上記新たなプログラムを呼び出すためのコードを含むメインプログラムを生成する、ことを特徴とする請求項に記載の計算方法。

【請求項7】
上記指定子により指定されたコスト定義関数が上記コスト定義関数ライブラリに含まれていない場合、上記コスト定義関数選択工程において、上記コスト定義関数選択手段が、上記実測ルーチンにて計測した上記所要時間を最良近似するよう、上記コスト定義関数ライブラリに含まれる各コスト定義関数の係数を最小二乗法により定めるとともに、係数の定められたコスト定義関数のうちから最も近似精度のよいコスト定義関数を選択する、
ことを特徴とする請求項5又は6に記載の計算方法。

【請求項8】
コンピュータを、請求項1からのいずれか1項に記載の計算装置の各手段として動作させるためのプログラム。

【請求項9】
請求項に記載のプログラムをコンピュータ読み取り可能に記録した記録媒体。
国際特許分類(IPC)
Fターム
画像

※ 画像をクリックすると拡大します。

JP2003149701thum.jpg
出願権利状態 登録
参考情報 (研究プロジェクト等) さきがけ 情報基盤と利用環境 領域
ライセンスをご希望の方、特許の内容に興味を持たれた方は、問合せボタンを押してください。


PAGE TOP

close
close
close
close
close
close
close