(57)【要約】【課題】数値計算ライブラリのパラメータを求める際に、利用者のポリシーを反映させて最適なパラメータを提供する。【解決手段】数値計算ライブラリを実行するための最適なチューニングパラメータを、予め設定した目的評価関数に基づいて算出するプログラムであって、前記数値計算ライブラリを読み込み（Ｓ１）、前記目的評価関数を読み込み、前記数値計算ライブラリに対する速度性能及び演算精度に関するユーザのポリシーを複数のポリシーパラメータとして設定し（Ｓ２）、予め設定した数値計算ライブラリの実行履歴から前記数値計算ライブラリに関する実行履歴を読み込み（Ｓ５０）、前記ポリシーパラメータを満足する範囲で、前記実行履歴に基づいて前記目的評価関数により当該数値計算ライブラリのチューニングパラメータを算出し（Ｓ５１）、前記目的評価関数の算出結果を出力する（Ｓ６）。【選択図】図８
2007034375.tif 000002
【特許請求の範囲】
【請求項１】
数値計算ライブラリを実行するための最適なチューニングパラメータを、予め設定した目的評価関数に基づいて算出するプログラムであって、
前記数値計算ライブラリを読み込む手順と、
前記目的評価関数を読み込む手順と、
前記数値計算ライブラリに対する速度性能及び演算精度に関するユーザのポリシーを複数のポリシーパラメータとして設定する手順と、
予め設定した数値計算ライブラリの実行履歴から前記数値計算ライブラリに関する実行履歴を読み込む手順と、
前記ポリシーパラメータを満足する範囲で、前記実行履歴に基づいて前記速度性能と演算精度の相反する要素を最適化する目的評価関数により当該数値計算ライブラリのチューニングパラメータを算出する手順と、
前記目的評価関数の算出結果を出力する手順と、
を計算機に機能させることを特徴とする数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項２】
前記ユーザのポリシーを複数のポリシーパラメータとして設定する手順は、
前記速度性能の目標とする値を示す第１の目標ポリシーパラメータと、前記演算精度の目標とする値を示す第２の目標ポリシーパラメータとを設定し、
前記チューニングパラメータを算出する手順は、
前記目的評価関数が前記実行履歴の中から前記第１の目標ポリシーパラメータと第２の目標ポリシーパラメータに近いチューニングパラメータを求めることを特徴とする請求項１に記載の数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項３】
前記ユーザのポリシーを複数のポリシーパラメータとして設定する手順は、
前記速度性能に最低限必要な値を示す第１の必須ポリシーパラメータと、前記速度性能の目標とする値を示す第１の目標ポリシーパラメータと、前記演算精度に最低限必要な値を示す第２の必須ポリシーパラメータと、前記演算精度の目標とする値を示す第２の目標ポリシーパラメータとを設定し、
前記チューニングパラメータを算出する手順は、
前記目的評価関数が前記実行履歴の中から前記第１の必須ポリシーパラメータと第２の必須ポリシーパラメータを満たし、且つ、第１の目標ポリシーパラメータと第２の目標ポリシーパラメータに近いチューニングパラメータを求めることを特徴とする請求項１に記載の数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項４】
前記ユーザのポリシーを複数のポリシーパラメータとして設定する手順は、
前記実行履歴に含まれる項目と、チューニングパラメータとの対応を設定する手順を含むことを特徴とする請求項１に記載の数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項５】
前記目的評価関数の算出結果を出力する手順は、
前記チューニングパラメータと、当該チューニングパラメータに対応する実行履歴とを計算機の表示装置に出力することを特徴とする請求項１に記載の数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項６】
前記チューニングパラメータを算出する手順は、
前記速度性能と演算精度の２次元座標において、複数の実行履歴に含まれる速度性能と計算誤差から当該実行履歴の特性を求め、前記第１の目標ポリシーパラメータと第２の目標ポリシーパラメータの交点から前記特性までの距離が最小となる前記特性上の点を最適なチューニングパラメータとして算出することを特徴とする請求項２または請求項３に記載の数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項７】
前記数値計算ライブラリを読み込む手順は、
前記数値計算ライブラリの入力パラメータを設定する手順を含み、
前記数値計算ライブラリに関する実行履歴を読み込む手順は、
前記実行履歴の中から前記入力パラメータが一致する実行履歴を抽出して読み込むことを特徴する請求項１に記載の数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項８】
前記ユーザのポリシーを複数のポリシーパラメータとして設定する手順は、
前記速度性能の目標とする値を示す第１の目標ポリシーパラメータと、前記演算精度の目標とする値を示す第２の目標ポリシーパラメータと、数値計算ライブラリの実行に使用する計算機の利用料金について目標とする値を示す第３の目標ポリシーパラメータとを設定し、
前記チューニングパラメータを算出する手順は、
前記目的評価関数が前記実行履歴の中から前記第１の目標ポリシーパラメータと第２の目標ポリシーパラメータ及び第３の目標ポリシーパラメータに近いチューニングパラメータを求めることを特徴とする請求項１に記載の数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項９】
前記ユーザのポリシーを複数のポリシーパラメータとして設定する手順は、
前記速度性能に最低限必要な値を示す第１の必須ポリシーパラメータと、前記速度性能の目標とする値を示す第１の目標ポリシーパラメータと、前記演算精度に最低限必要な値を示す第２の必須ポリシーパラメータと、前記演算精度の目標とする値を示す第２の目標ポリシーパラメータと、数値計算ライブラリの実行に使用する計算機の利用料金について目標とする値を示す第３の目標ポリシーパラメータと、前記利用料金について許容可能な第３の必須ポリシーパラメータとを設定し、
前記チューニングパラメータを算出する手順は、
前記目的評価関数が前記実行履歴の中から前記第１の必須ポリシーパラメータと第２の必須ポリシーパラメータ及び第３の必須ポリシーパラメータを満たし、且つ、第１の目標ポリシーパラメータと第２の目標ポリシーパラメータ及び第３の目標ポリシーパラメータに近いチューニングパラメータを求めることを特徴とする請求項１に記載の数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項１０】
前記ユーザのポリシーを複数のポリシーパラメータとして設定する手順は、
前記速度性能の目標とする値を示す第１の目標ポリシーパラメータと、前記演算精度の目標とする値を示す第２の目標ポリシーパラメータと、数値計算ライブラリの実行に使用する計算機のリソースについて目標とする値を示す第３の目標ポリシーパラメータとを設定し、
前記チューニングパラメータを算出する手順は、
前記目的評価関数が前記実行履歴の中から前記第１の目標ポリシーパラメータと第２の目標ポリシーパラメータ及び第３の目標ポリシーパラメータに近いチューニングパラメータを求めることを特徴とする請求項１に記載の数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項１１】
前記ユーザのポリシーを複数のポリシーパラメータとして設定する手順は、
前記速度性能に最低限必要な値を示す第１の必須ポリシーパラメータと、前記速度性能の目標とする値を示す第１の目標ポリシーパラメータと、前記演算精度に最低限必要な値を示す第２の必須ポリシーパラメータと、前記演算精度の目標とする値を示す第２の目標ポリシーパラメータと、数値計算ライブラリの実行に使用する計算機のリソースについて目標とする値を示す第３の目標ポリシーパラメータと、前記リソースについて許容可能な第３の必須ポリシーパラメータとを設定し、
前記チューニングパラメータを算出する手順は、
前記目的評価関数が前記実行履歴の中から前記第１の必須ポリシーパラメータと第２の必須ポリシーパラメータ及び第３の必須ポリシーパラメータを満たし、且つ、第１の目標ポリシーパラメータと第２の目標ポリシーパラメータ及び第３の目標ポリシーパラメータに近いチューニングパラメータを求めることを特徴とする請求項１に記載の数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項１２】
前記ユーザのポリシーを複数のポリシーパラメータとして設定する手順は、
予め設定したポリシーパラメータのを入力を受け付けるインターフェースを含むことを特徴とする請求項１に記載の数値計算ライブラリのチューニングパラメータ算出プログラム。
【請求項１３】
数値計算ライブラリを実行するための最適なチューニングパラメータを、予め設定した目的評価関数に基づいて計算機に算出させる方法であって、
前記数値計算ライブラリを前記計算機に読み込む処理と、
前記目的評価関数を前記計算機に読み込む処理と、
前記数値計算ライブラリに対する速度性能及び演算精度に関するユーザのポリシーを複数のポリシーパラメータとして受け付ける処理と、
予め設定した数値計算ライブラリの実行履歴から前記数値計算ライブラリに関する実行履歴を前記計算機に読み込む処理と、
前記ポリシーパラメータを満足する範囲で、前記実行履歴に基づいて前記速度性能と演算精度の相反する要素を最適化する前記目的評価関数により当該数値計算ライブラリのチューニングパラメータを前記計算機が算出する処理と、
前記目的評価関数の算出結果を出力する処理と、
を含むことを特徴とする数値計算ライブラリのチューニングパラメータ算出方法。
【請求項１４】
前記ユーザのポリシーを複数のポリシーパラメータとして受け付ける処理は、
前記速度性能の目標とする値を示す第１の目標ポリシーパラメータと、前記演算精度の目標とする値を示す第２の目標ポリシーパラメータとを受け付けて、
前記チューニングパラメータを前記計算機が算出する処理は、
前記目的評価関数が前記実行履歴の中から前記第１の目標ポリシーパラメータと第２の目標ポリシーパラメータに近いチューニングパラメータを求めることを特徴とする請求項１３に記載の数値計算ライブラリのチューニングパラメータ算出方法。
【請求項１５】
前記ユーザのポリシーを複数のポリシーパラメータとして受け付ける処理は、
前記速度性能に最低限必要な値を示す第１の必須ポリシーパラメータと、前記速度性能の目標とする値を示す第１の目標ポリシーパラメータと、前記演算精度に最低限必要な値を示す第２の必須ポリシーパラメータと、前記演算精度の目標とする値を示す第２の目標ポリシーパラメータとを受け付けて、
前記チューニングパラメータを前記計算機が算出する処理は、
前記目的評価関数が前記実行履歴の中から前記第１の必須ポリシーパラメータと第２の必須ポリシーパラメータを満たし、且つ、第１の目標ポリシーパラメータと第２の目標ポリシーパラメータに近いチューニングパラメータを求めることを特徴とする請求項１３に記載の数値計算ライブラリのチューニングパラメータ算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値計算ソフトウェアのパラメータの自動設定に関し、特に、数値計算ライブラリを用いる際にユーザのポリシーを反映させたパラメータの自動設定に関する。
【背景技術】
【０００２】
数理計画法や多変量解析や統計解析などの数値計算を計算機を用いて行うことで、高度なシミュレーション等を実現している。このような数値計算では、ソルバー等の数値計算ライブラリを利用することが知られており、数値計算ライブラリのパラメータを選択し、チューニングすることで利用者の目的に応じた数値計算を行うことができる。
【０００３】
数値計算において、数値モデルなどのパラメータの選択及びチューニングは、複数のパラメータが相互に影響を与える場合があり、パラメータの設定によっては得られる結果が大きく変化することがある。このため、利用者が手動によって全てのパラメータを適正に設定するには、限界があるため、パラメータを自動的に設定するものも知られている（例えば、特許文献１）。
【０００４】
これは、セットアップパラメータの値の評価関数を設定し、セットアップパラメータの値を評価関数により評価して最適なセットアップパラメータを求めるものである。
【特許文献１】特開２００４−１７８３７２号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来例においては、数値モデルなどのパラメータを適正に設定することは可能であるが、複数のパラメータの設定について、利用者の要求であるポリシーを反映させることができない、という問題がある。
【０００６】
ここで、上述のようなシミュレーションなどを行う数値計算では、一般に、同一の数値モデルと同一のデータを用いる場合、演算精度を高く設定すれば演算時間が増大し、精度を低くすれば演算時間が縮小できる。
【０００７】
上記従来例のようなパラメータの自動設定手法では、数値計算の精度等をある一定のレベルに保つことは可能であるが、利用者は短時間で概算の結果を得たい場合もあれば、時間に制限を持たず目的の精度で結果を得たい場合などがあり、数値計算に対するポリシーは演算実行の度に変化する。
【０００８】
一方、上記従来例のようなパラメータの自動設定手法では、数値計算の精度等をある一定のレベルに保つことは可能であるが、計算の度に変化する利用者のポリシーを反映してパラメータを設定することはできない。
【０００９】
そこで本発明は、上記問題点に鑑みてなされたもので、数値計算のパラメータを設定する際に、利用者のポリシーを反映させて最適なパラメータを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、数値計算ライブラリを実行するための最適なチューニングパラメータを、予め設定した目的評価関数に基づいて算出するプログラムであって、前記数値計算ライブラリを読み込み、前記目的評価関数を読み込み、前記数値計算ライブラリに対する速度性能及び演算精度に関するユーザのポリシーを複数のポリシーパラメータとして設定し、予め設定した数値計算ライブラリの実行履歴から前記数値計算ライブラリに関する実行履歴を読み込み、前記ポリシーパラメータを満足する範囲で、前記実行履歴に基づいて前記目的評価関数により当該数値計算ライブラリのチューニングパラメータを算出し、前記目的評価関数の算出結果を出力する。
【発明の効果】
【００１１】
したがって、本発明は、数値計算ライブラリを実行する際に最適なチューニングパラメータをユーザのポリシーを満足する範囲で得ることができる。そして、このチューニングパラメータを数値計算ライブラリの実行時に用いることで、実行の度に変化するユーザのポリシー（要求）を的確に反映させて演算結果を得ることが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１３】
図１は、第１の実施形態を示し、本発明を適用する計算機システムのブロック図である。
【００１４】
数値計算ライブラリを利用するユーザ（利用者）が使用するユーザ計算機１には、演算処理を行うＣＰＵ２と、プログラムやデータを一時的に格納するメモリ３と、外部の周辺機器と情報の送受を行うインターフェース（Ｉ／Ｆ）４が内部バス７を介して接続される。そして、Ｉ／Ｆ４には、プログラムやデータを格納するストレージ装置５と、利用者に情報を表示したり、利用者からの入力を受け付けるコンソール６（表示装置６０及び入力装置６１）と、外部の計算機と接続するネットワーク８が接続される。
【００１５】
ネットワーク８には、数値計算を行うプログラム（機能）や目的評価関数を複数格納したライブラリ格納部５０と、後述するように過去の数値計算ライブラリを実行した実績（実行履歴）を格納した実績データベース４１を管理する実績・ライブラリサーバ２０が接続され、ユーザ計算機１からアクセス可能となっている。また、ネットワーク８には、他の利用者が操作するユーザ計算機１も接続され、上記ユーザ計算機１と同様に実績・ライブラリサーバ２０を利用することができる。
【００１６】
実績・ライブラリサーバ２０には、演算処理を行うＣＰＵ２２と、プログラムやデータを一時的に格納するメモリ２３と、外部の周辺機器等と情報の送受を行うインターフェース（Ｉ／Ｆ）２４が内部バス２７を介して接続される。そして、Ｉ／Ｆ２４には、プログラムやデータを格納するストレージ装置２５と、外部の計算機と接続するネットワーク８が接続される。
【００１７】
ストレージ装置２５には、複数の数値計算ソフトウェアの機能（数値計算ライブラリ）と各数値計算ライブラリの目的評価関数を格納したライブラリ格納部５０と、数値計算ソフトウェアを実行した実績データを格納する実績データベース４１が格納される。ライブラリ格納部５０は、実績・ライブラリサーバ２０の図示しないＯＳにより外部の計算機からアクセス可能となっている。また、メモリ２３にロードされたデータベースマネージメントプログラム（以下、ＤＢＭＳ）４０により、実績データベース４１が外部の計算機から利用可能となっている。
【００１８】
ユーザ計算機１のメモリ３には、利用者が選択した数値計算ライブラリ及びこのライブラリに対応する目的評価関数を実績・ライブラリサーバ２０から読み込んで、この数値計算ライブラリに対する実行条件（入力パラメータ）と、利用者のポリシーをポリシーパラメータとして受け付け、利用者のポリシーに応じた最適なチューニングパラメータＴＵＮＥ（後述）を指示するポリシーマネージャ１０が実行される。
【００１９】
このポリシーマネージャ１０は、後述するように、読み込んだ数値計算ライブラリに対応する実績データを実績データベース４１から読み込み、目的評価関数に基づいて、利用者のポリシーに適したチューニングパラメータ（実行パラメータ）ＴＵＮＥを演算するポリシープリプロセッサ１１０を中心に構成される。また、ポリシーマネージャ１０は、利用者が指定した数値計算ソフトウェアのライブラリを読み込んで、利用者が設定した実行条件に基づいてソースプログラム９０を生成し、コンパイラ１１に引き渡す。
【００２０】
また、メモリ３には、ポリシーマネージャ１０が生成した数値計算ライブラリのソースプログラム９０（ソースコード）からオブジェクト（オブジェクトコード）１２を生成するコンパイラ１１がロードされて実行可能となっている。
【００２１】
ポリシーマネージャ１０は、コンパイラ１１がオブジェクト１２の生成を完了すると、ポリシープリプロセッサ１１０が求めた最適のチューニングパラメータＴＵＮＥまたは利用者が選択したチューニングパラメータＴＵＮＥを、オブジェクト１２に引き渡して実行させることができる。
【００２２】
なお、ネットワーク８には、複数のユーザ計算機１が接続されており、それぞれが実績・ライブラリサーバ２０を利用可能となっている。
【００２３】
＜処理の概要＞
図２は、本発明のポリシーマネージャ１０の構成と、図１の計算機システムで行われる処理の全体的な流れを説明するブロック図である。
【００２４】
本実施形態のポリシーマネージャ１０は、次の３つの機能を有する。
【００２５】
まず第１に、利用者が指示した数値計算ライブラリについて、利用者のポリシーと実行条件を受け付けて、最適な実行パラメータ（チューニングパラメータＴＵＮＥ）を出力する。ここで、チューニングパラメータＴＵＮＥは、選択したライブラリの演算を行う際に、２つの相反する条件（例えば、演算時間と演算精度）を利用者のポリシーに応じた値とするものである。選択したライブラリの実行形式（オブジェクト１２）は、このチューニングパラメータＴＵＮＥに基づいて演算を制限することで、利用者が臨むポリシー（演算時間と演算精度）を実現する。
【００２６】
本実施形態では、ライブラリ格納部５０のライブラリをソルバー５１とし、チューニングパラメータＴＵＮＥは、ソルバー５１の固有値ｅの反復演算の打ち切りの精度として設定する。すなわち、以下ではチューニングパラメータＴＵＮＥが数値計算の実行時に、計算精度（＝演算精度）の制限値として作用する。
【００２７】
なお、このチューニングパラメータＴＵＮＥは、使用するソルバー５１の性質に応じて適宜変更することができ、例えば、固有値ｅの反復演算の回数の打ち切りの基準値や、固有ベクトルＶの演算誤差や反復回数の基準値をチューニングパラメータＴＵＮＥとしてもよい。また、チューニングパラメータＴＵＮＥとしては、後述の実績データベース４１の実績データ４１０の項目に含まれるものが望ましい。
【００２８】
第２は、利用者が指定した数値計算ライブラリを含むソースプログラム９０を生成し、コンパイラ１１に引き渡してオブジェクト１２を得る。
【００２９】
第３は、上記出力したチューニングパラメータＴＵＮＥのうち利用者が選択したものを、オブジェクト１２に引き渡して実行させ、利用者のポリシーに応じた数値計算を実現する。
【００３０】
上記３つの機能を実現するため、ポリシーマネージャ１０は、図２で示すように、利用者が選択した数値計算ライブラリと実行条件、ポリシーを示すポリシーパラメータ及び利用者が指定したチューニングパラメータＴＵＮＥを受け付けて、ソースプログラム９０を生成するポリシー設定部１１１と、利用者が選択した数値計算ライブラリに対応する実績データ４１０と、予め設定された目的評価関数５２に基づいて最適なチューニングパラメータＴＵＮＥを演算するポリシープリプロセッサ１１０と、ポリシープリプロセッサ１１０が求めたチューニングパラメータＴＵＮＥをコンソール６に出力し、利用者の選択を受け付けてオブジェクト１２にチューニングパラメータＴＵＮＥを与えるパラメータ候補出力部１１２と、を備える。
【００３１】
なお、本第１実施形態においては、ポリシー設定部１１１が生成したソースプログラム９０は、ポリシープリプロセッサ１１０の指令によりコンパイラ１１を起動し、コンパイラ１１によるオブジェクト１２の生成と、最適なチューニングパラメータＴＵＮＥの演算がユーザ計算機１で並列的に実行される。
【００３２】
ポリシープリプロセッサ１１０が演算した結果、複数のチューニングパラメータＴＵＮＥが得られた場合には、パラメータ候補出力部１１２がコンソール６に出力した複数のチューニングパラメータＴＵＮＥの中から利用者が所望のチューニングパラメータＴＵＮＥを選択する。そして、利用者がポリシーマネージャ１０に対してオブジェクト１２の実行を指令すると、チューニングパラメータＴＵＮＥを実行パラメータとしてオブジェクト１２が実行され、利用者のポリシーに応じた演算を行うことができる。
【００３３】
なお、チューニングパラメータＴＵＮＥが選択された後に、コンパイラ１１がオブジェクト１２を生成するのを待って、オブジェクト１２が生成された時点でパラメータ候補出力部１１２がチューニングパラメータＴＵＮＥを与え、このオブジェクト１２を実行するようにしても良い。この場合では、利用者はチューニングパラメータＴＵＮＥを入力するだけで、チューニングパラメータＴＵＮＥの設定とオブジェクト１２の実行を自動的に行うことができる。
【００３４】
オブジェクト１２の実行が完了すると、演算結果が出力されるとともに、オブジェクト１２は、実行の実績（例えば、実行条件（入力パラメータ）に対する速度性能や計算精度等からなる実行履歴）を実績データ４１０として実績データベース４１に書き込む。これにより、数値計算ライブラリの実行履歴が実績データベース４１に蓄積され、チューニングパラメータＴＵＮＥの演算に利用される。
【００３５】
＜ポリシーマネージャ及び関連ファイルの詳細＞
本実施形態では、ライブラリ格納部５０のライブラリがソルバー５１で構成されるものとし、ポリシー設定部１１１はライブラリ格納部５０に格納された複数のソルバー５１の中から、利用者が指定したソルバー５１を読み込む。また、後述するように利用者の指定に応じてポリシー設定部１１１が目的評価関数５２をライブラリ格納部５０から読み込む。
【００３６】
ここで、数値計算ライブラリとしてのソルバー５１は、例えば、固有値求解ソルバー（以下、固有値ソルバーという）等の数理計画ソルバーである。
【００３７】
利用者はコンソール６を介して、ソルバー５１を指定した後に、ソルバー５１を実行するのに必要な実行条件とポリシーパラメータ及びチューニングパラメータＴＵＮＥをポリシー設定部１１１へ入力する。
【００３８】
まず、実行条件は、ライブラリが固有値ソルバーの場合、後述する図５で示すように、行列Ａを与えてＮＶ個の固有値ｅと固有ベクトルＶを求める場合では、実行するライブラリ名を指定してから、行列Ａと行列Ａのサイズ及び固有ベクトルＶの数を利用者が設定する。なお、図５、図６は、コンソール６の表示装置６０に表示された画面（ユーザインターフェース）の一例を示す。
【００３９】
この実行条件の入力の結果は図６で示すように、図中「ＣＡＬＬ」文に記述され、ライブラリ名にソルバー５１が入力され、行列名に行列Ａが、行列サイズＮが、固有ベクトル数ＮＶが、固有値Ｅがそれぞれ設定される。
【００４０】
この図６は、コンソール６の表示装置６０に出力されるユーザインターフェースを示し、実行条件として、ライブラリ名６０１、入力パラメータ６０２及びチューニングパラメータＴＵＮＥ入力欄６０３が自動的に表示される。
【００４１】
利用者は、ソルバー５１を実行する際に、どのような計算を行いたいかを示すポリシーパラメータをポリシー設定部１１１で入力する。このポリシーパラメータとしては、例えば２種類の相反するポリシーパラメータで構成され、図５で示すように、演算時間（速度性能）と演算誤差（演算精度）をポリシーパラメータとする。すなわち、図６のように、利用者が所望する最小の演算時間（理想時間）を時間理想ラインＴＩＭＥ＿ＢＥＳＴとし、利用者が許容する最大の演算時間（必須時間）を時間必須ラインＴＩＭＥ＿ＷＯＲＳＴとする。一方、利用者が希望する最小の演算誤差（理想誤差）を誤差理想ラインＥＲＲＯＲ＿ＢＥＳＴとし、利用者が許容する最大の演算誤差（必須誤差）を誤差必須ラインＥＲＲＯＲ＿ＷＯＲＳＴとして、表示装置６０に出力された各入力欄６０４〜６０７に設定する。また、ポリシーパラメータからチューニングパラメータＴＵＮＥを演算する際の選択基準ＳＥＬＥＣＴＩＯＮを入力する。
【００４２】
この選択基準ＳＥＬＥＣＴＩＯＮは、チューニングパラメータＴＵＮＥの演算を行う際に、相反するポリシーパラメータのうち重視するものを選択する。例えば、選択基準ＳＥＬＥＣＴＩＯＮは、目的評価関数５２によりチューニングパラメータＴＵＮＥの演算を行う「ＭＯＤＥＬ」と、ポリシーパラメータのうち時間についてのみでチューニングパラメータＴＵＮＥを求める「ＴＩＭＥ」と、ポリシーパラメータのうち演算誤差についてのみでチューニングパラメータＴＵＮＥを求める「ＥＲＲＯＲ」の何れかを選択することができる。
【００４３】
選択基準ＳＥＬＥＣＴＩＯＮを「ＭＯＤＥＬ」とした場合には、選択モデル名の欄にライブラリ格納部５０の目的評価関数５２を設定する。例えば、図６で示すように、目的評価関数５２を、
ｍｉｎ（ＴＩＭＥ／ＴＩＭＥ＿ＢＥＳＴ＋ＥＲＲＯＲ／ＥＲＲＯＲ＿ＢＥＳＴ）
とすることで、後述するように、ポリシープリプロセッサ１１０に演算時間と演算誤差が最小となる目的評価関数５２によってチューニングパラメータＴＵＮＥを演算させる。
【００４４】
ここで、目的評価関数５２は、複数の相反する演算性能を評価するように予め設定されたもので、上記のように、速度性能を示す演算時間（ＴＩＭＥ）と演算精度を示す計算誤差（ＥＲＲＯＲ）を最小化する解（チューニングパラメータＴＵＮＥ）を求めるものである。
【００４５】
次に、ポリシー設定部１１１では、このソルバー５１を実行する際に、相反する２つのポリシーパラメータである時間と誤差を最適な値とするためのチューニングパラメータＴＵＮＥの項目を受け付ける。このチューニングパラメータＴＵＮＥの項目は、実績データ４１０の項目の中から利用者が選択し、コンソール６から入力する。本実施形態では、上述したように演算精度（計算誤差）をチューニングパラメータＴＵＮＥに指定する。この指定により、ポリシープリプロセッサ１１０は、指定されたチューニングパラメータＴＵＮＥが最適となる演算条件（速度性能と演算精度）を演算する。なお、利用者が指定可能な実績データ４１０の項目は、後述する図７の計算誤差４１９や実行時間４１８など、過去の実行結果（実行履歴）を示す項目である。
【００４６】
以上の入力により、図６で示すように、ライブラリ名＝ＳＯＬＶＥＲを先頭とする実行条件と、ポリシーパラメータとして時間理想ラインＴＩＭＥ＿ＢＥＳＴ＝１０sec、時間必須ラインＴＩＭＥ＿ＷＯＲＳＴ＝４０sec、誤差理想ラインＥＲＲＯＲ＿ＢＥＳＴ＝１０-9、誤差必須ラインＥＲＲＯＲ＿ＷＯＲＳＴ＝１０-5が入力され、さらに選択基準ＳＥＬＥＣＴＩＯＮに「ＭＯＤＥＬ」が選択され、このモデルに対応して目的評価関数５２が入力される。
【００４７】
ポリシー設定部１１１は、以上の実行条件、ポリシーパラメータ、チューニングパラメータＴＵＮＥを受け付け、ポリシープリプロセッサ１１０に渡し、また、読み込んだソルバー５１を入力された実行条件で記述したソースプログラム９０を生成する。
【００４８】
この、ソースプログラム９０は、ライブラリ格納部５０のソルバー５１を指定する記述からなるライブラリ呼び出し部９１と、ソルバー５１に対する実行条件を設定するパラメータ部９２と、ソルバー５１を実行した実績を所定の実績データベース４１に出力するための記述からなる実績出力部９３を含むソースファイルである。
【００４９】
ポリシープリプロセッサ１１０によって起動されるコンパイラ１１は、ポリシー設定部１１１が出力したソースプログラム９０に基づいて、実行形式のファイルであるオブジェクト１２を生成する。
【００５０】
コンパイラ１１によって生成されたオブジェクト１２は、数値計算を実行するソルバー１２１と、オブジェクト１２を実行した結果を実績データ４１０として実績データベース４１に出力する実績出力部１２２と、利用者が選択したチューニングパラメータＴＵＮＥを受け付けて、ソルバー１２１の実行パラメータとするチューニングパラメータ受付部１２３を含んだ実行ファイルとなる。
【００５１】
ここで、オブジェクト１２の実行履歴を蓄積する実績データベース４１は、例えば、図７で示すように、各ソルバー５１毎に複数の実績データ４１０から構成される。
【００５２】
実績データ４１０は、一回の実行に対する履歴が、図７の横方向の一列の情報（レコード）で構成され、ソルバー５１毎に設定された実行ＩＤ４１１と、オブジェクト１２を実行した日時４１２と、ソルバー５１が属するライブラリ格納部５０の名称４１２と、パラメータで設定した次元（行列サイズ）Ｎと、同じくパラメータで設定した固有値ｅの数４１５と、同じく固有ベクトルＶの数ＮＶ４１６と、ポリシーマネージャ１０が出力したチューニングパラメータの中から、利用者が選択したチューニングパラメータ４１７と、オブジェクト１２の実行に要した実行時間４１８と、結果として得られた固有値ｅの計算誤差４１９とから構成されている。なお、実行ＩＤ４１１は、例えばＤＢＭＳ４０が決定することができる。
【００５３】
次に、ポリシープリプロセッサ１１０は、ポリシー設定部１１１で受け付けた実行条件、ポリシーパラメータ、チューニングパラメータＴＵＮＥから、選択されたソルバー５１の実績データベース４１を参照し、入力された選択基準に基づいて最適なチューニングパラメータＴＵＮＥを演算する。
【００５４】
ポリシープリプロセッサ１１０は、上記図６で示したように、ソルバー５１のライブラリ名＝ＳＯＬＶＥＲから実績データベース４１を参照し、ライブラリ名が一致するレコードを読み込んで、実行条件が一致するレコードを抽出する。
【００５５】
例えば、ライブラリ名＝ＳＯＬＶＥＲで、行列サイズＮ＝１０００、固有ベクトル数ＮＶ＝１０００とした場合、抽出した実績データ４１０は、図７において、実行ＩＤ＝ＤＬ０２０２１、ＤＬ０２０２２、ＤＬ０２０２３、ＨＬ０２０１１の４つがＮ、ＮＥ、ＮＶが一致するレコードとして抽出される。
【００５６】
これらの実行時間４１８、計算誤差４１９の一組の実績データ４１０を抽出点とする。これら４つの抽出点をＰ１〜Ｐ４とし、横軸に速度性能を示す時間を取り、縦軸に演算精度を示す誤差を取るグラフを生成すると、図３のようになる。
【００５７】
次に、実行条件が一致する抽出点Ｐ１〜Ｐ４のうち、ポリシーパラメータとして入力した図６の時間理想ラインＴＩＭＥ＿ＢＥＳＴ＝１０sec、時間必須ラインＴＩＭＥ＿ＷＯＲＳＴ＝４０sec、誤差理想ラインＥＲＲＯＲ＿ＢＥＳＴ＝１０-9、誤差必須ラインＥＲＲＯＲ＿ＷＯＲＳＴ１０-5で囲まれる領域内にある抽出点を抽出する。この場合では、抽出点Ｐ２〜Ｐ４がポリシーパラメータの範囲内となり、これらの抽出点を領域抽出点という。
【００５８】
次にポリシープリプロセッサ１１０は、図６の選択基準ＳＥＬＥＣＴＩＯＮで設定された目的評価関数５２が最小（算時間と演算誤差）が最小となる領域抽出点を抽出する。この例では、図３の抽出点Ｐ２となる。そして、抽出点Ｐ２の実績データ４１０を参照すると、図７において第２行目のデータであるので、計算誤差＝３．２０１×１０-6であり、実行時間（演算時間）＝２３．５secであり、このときのチューニングパラメータＴＵＮＥ＝１．０×１０-6であったことが分かる。
【００５９】
ポリシープリプロセッサ１１０は、この抽出点Ｐ２のチューニングパラメータ４１７を実績データ４１０から取得し、この値（図７の１×１０-6）を実行するオブジェクト１２のチューニングパラメータＴＵＮＥとして選択する。図７において、第２行目の実績データ４１０は、チューニングパラメータＴＵＮＥ＝１×１０-6を与えたときに、計算誤差が３．２０１×１０-6となったことを示しており、チューニングパラメータＴＵＮＥは演算結果の指標を示すだけで、この場合では、演算誤差は「１×１０-6台」という意味となる。
【００６０】
なお、ポリシープリプロセッサ１１０は、選択基準ＳＥＬＥＣＴＩＯＮがＥＲＲＯＲ（誤差）の場合には、ポリシーパラメータの領域内で演算誤差が最小となる抽出点Ｐ４を選択し、選択基準ＳＥＬＥＣＴＩＯＮがＴＩＭＥ（時間）の場合には、ポリシーパラメータの領域内で演算時間と計算誤差が最小となる抽出点Ｐ２を選択する。
【００６１】
ポリシープリプロセッサ１１０は、以上のように抽出した実績データ４１０とチューニングパラメータＴＵＮＥをパラメータ候補出力部１１２へ渡す。
【００６２】
パラメータ候補出力部１１２は、図３の画面イメージをコンソール６の表示装置６０に出力し、利用者に最適なチューニングパラメータＴＵＮＥを指示する。このとき、最適なチューニングパラメータＴＵＮＥとなる抽出点Ｐ２をブリンクさせたり、他の抽出点とは異なる色で表示すればよい。そして、利用者は、出力されたチューニングパラメータＴＵＮＥをそのまま利用するのであれば、キーボードなどの入力装置６１からｅｎｔｅｒキーを押すなどして、ポリシーマネージャ１０にオブジェクト１２の実行を指示する。あるいは、利用者が他の抽出点を使用したいのであれば、マウスなどの入力装置６１から所望の抽出点を選択し、オブジェクト１２の実行を指示することも可能である。また、図４で示すように、コンソール６にチューニングパラメータＴＵＮＥを表示するのに加え、このチューニングパラメータＴＵＮＥに対応する実績データ４１０を表示するようにしても良い。
【００６３】
パラメータ候補出力部１１２は、利用者からの指示に応じて、選択されたチューニングパラメータＴＵＮＥでオブジェクト１２の演算を制限し、ソルバー５１（１２１）を実行する。そして、オブジェクト１２の実行が完了すると、上述のように今回の実行履歴を実績データベース４１に書き込んで一連の処理を終了する。
【００６４】
なお、パラメータ候補出力部１１では、図４で示すように、利用者がマウスなどの入力装置６１により所望の抽出点を指示することで、各抽出点の詳細な実績データ４１０を表示することができる。これにより、利用者は実行しようとするソルバー５１について、より具体的な履歴情報を得ることができる。
【００６５】
すなわち、数理計画などの数値計算ライブラリでは、与えるデータによって抽出点はばらつくため、単に実行条件が一致したからといって同様の演算時間や演算精度となるとは限らない。このため、利用者が選択したソルバー５１については、任意の抽出点について詳細情報を表示することで、今回実行するソルバー５１の特性に応じて、チューニングパラメータＴＵＮＥを補正することができる。なお、このときは、抽出点の抽出条件を変更し、上記の絞り込み（ポリシーパラメータの範囲内）を解除することが望ましい。
【００６６】
また、図４においては、ポリシーパラメータの範囲内の領域抽出点についてのみ、詳細な実績データ４１０を表示するようにしてもよい。この場合、ポリシーパラメータの範囲外の実績データ４１０の詳細を表示しないので、利用者は自己のポリシーパラメータに沿った抽出点からチューニングパラメータＴＵＮＥを設定することができる。
【００６７】
＜処理手順の詳細＞
次に、ポリシーマネージャ１０で行われる処理について、図８のＰＡＤ図を参照しながら以下に説明する。
【００６８】
まず、Ｓ１では使用する数値計算ライブラリとしてのソルバー５１のライブラリを指定し、選択したソルバー５１の実行条件及びチューニングパラメータＴＵＮＥを設定する。
【００６９】
すなわち、Ｓ１１では、上記図６に示した、ライブラリ名＝ＳＯＬＶＥＲ、行列名Ａ、行列サイズＮ、固有ベクトル数ＮＶ、固有値Ｅの実行条件を設定する。なお、図中元プログラムが選択したソルバー５１を示し、入力パラメータは実行条件を示す。そしてＳ１２では、ソルバー５１に対するチューニングパラメータＴＵＮＥが実績データ４１０のいずれの項目に対応するかを設定する。本実施形態では、上述したように、チューニングパラメータＴＵＮＥを計算誤差４１９に対応させるものとする。
【００７０】
次に、Ｓ２では、選択したソルバー５１に対するポリシーを設定する。すなわち、上記図６で示したように、各ポリシーパラメータを設定する（Ｓ２０）。つまり、時間理想ラインＴＩＭＥ＿ＢＥＳＴ、時間必須ラインＴＩＭＥ＿ＷＯＲＳＴ、誤差理想ラインＥＲＲＯＲ＿ＢＥＳＴ、誤差必須ラインＥＲＲＯＲ＿ＷＯＲＳＴを入力し、ポリシーパラメータからチューニングパラメータＴＵＮＥを演算する際の選択基準ＳＥＬＥＣＴＩＯＮを入力する（Ｓ２１〜Ｓ２５）。このとき、選択基準ＳＥＬＥＣＴＩＯＮが「ＭＯＤＥＬ」であれば、利用者の指定（例えば、図６のｍｉｎ（ｆ））に基づいてライブラリ格納部５０から目的評価関数５２を読み込んでおく。
【００７１】
ポリシーパラメータの入力が完了すると、Ｓ３で、ポリシーマネージャ１０はソルバー５１と行列名、行列サイズなどの実行条件からソースプログラム９０を生成し、ソースファイルとしてストレージ装置５やメモリ３に格納する。
【００７２】
ソースプログラム９０を生成すると、ポリシーマネージャ１０は上述のポリシー設定部１１１からポリシープリプロセッサ１１０に制御を移し、ソースプログラム９０のコンパイルをコンパイラ１１に指示してから（Ｓ４）、最適なチューニングパラメータＴＵＮＥを求める（Ｓ５）。この処理は、チューニングパラメータＴＵＮＥの演算中に、並列的にコンパイルを行うことを意味している。
【００７３】
チューニングパラメータＴＵＮＥの演算は、まず、Ｓ５０にて、選択したソルバー５１の実行履歴を上述のように実績データベース４１から検索する。そして、Ｓ５１で上記図３で示したように、実行条件が一致する実績データ４１０から、ポリシーパラメータの範囲内の抽出点を検索し、これらの抽出点の中から選択基準ＳＥＬＥＣＴＩＯＮで指定されたＭＯＤＥＬを満たす抽出点を算出する。
【００７４】
このＳ５１の演算の詳細は、図９で示すサブルーチンのようになる。
【００７５】
Ｓ５２では、実績データベース４１から同一のソルバー５１を使用している実績データ４１０を抽出する。Ｓ５３では、Ｓ５２で抽出したレコードのうち、実行条件が予め設定した条件（例えば行列サイズＮ）と一致するレコードを抽出する。次に、Ｓ５４ではＳ５３で絞り込んだレコードの計算誤差と実行時間を一組とする抽出点とし、該当する実績データ４１０から複数の抽出点を選択する。
【００７６】
Ｓ５５では、Ｓ５４で抽出した抽出点のうち、時間理想ラインＴＩＭＥ＿ＢＥＳＴ以上かつ、時間必須ラインＴＩＭＥ＿ＷＯＲＳＴ以下で、誤差理想ラインＥＲＲＯＲ＿ＢＥＳＴ以上かつ、誤差必須ラインＥＲＲＯＲ＿ＷＯＲＳＴ以下の抽出点を領域抽出点として選択する。この領域抽出点の実績データ４１０は、利用者が設定したポリシーを満足するデータ４１０を示す。
【００７７】
Ｓ５６では、選択基準ＳＥＬＥＣＴＩＯＮで選択した目的評価関数５２に予め設定したモデルにより、この目的評価関数５２を最小化する領域抽出点を選択し、上述のように選択した領域抽出点の実績データ４１０に含まれるチューニングパラメータＴＵＮＥの値を最適なチューニングパラメータＴＵＮＥとする。
【００７８】
次に、図８へ戻り、Ｓ６では、Ｓ５１で求めたチューニングパラメータＴＵＮＥの候補となる抽出点を表示装置６０に出力する。また、Ｓ６０では、図４で示したように、必要に応じて各抽出点の詳細な履歴情報を出力する。
【００７９】
Ｓ７では、利用者が選択したチューニングパラメータＴＵＮＥを用いてオブジェクト１２を起動し、上述のようにチューニングパラメータＴＵＮＥでソルバー５１（１２１）の演算を制限することで、利用者の要求に応じた演算時間と演算精度で数値計算ライブラリを実行することができる。なお、このＳ５では、ポリシーマネージャ１０は、コンパイラ１１がオブジェクト１２の生成完了を待ってから、オブジェクト１２を起動する。
【００８０】
以上のように本発明によれば、利用者のポリシーに基づいて、実績データベース４１から抽出点を選択し、選択した抽出点の中から最適なチューニングパラメータＴＵＮＥを出力する。
【００８１】
したがって、利用者は数値計算の誤差の範囲と演算時間の範囲を指示すれば、ポリシーマネージャ１０は、過去の数値計算（ソルバー５１）の実行履歴から最適なチューニングパラメータＴＵＮＥを得ることができるので、利用者が複数のパラメータを調節する必要はなくなって、極めて容易に数値計算ライブラリのチューニングを行うことができる。
【００８２】
＜第２実施形態＞
図１０は、第２の実施形態を示し、前記第１実施形態の図９に示した最適なチューニングパラメータＴＵＮＥの演算を、図３のように横軸を速度性能、縦軸を計算誤差とした２次元座標空間に予想ラインＬを設定してから求めるようにしたもので、その他の構成は前記第１実施形態と同様である。
【００８３】
Ｓ５１〜Ｓ５４は前記第１実施形態と同様であり、同一のソルバー５１で実行条件が一致する抽出点を選択する。
【００８４】
Ｓ１５５では、各抽出点の実行時間と計算誤差から図３に示す予想ライン（理想誤差ライン）Ｌを求める。この予想ラインＬ（実行履歴の特性）の演算は、線形近似など公知の手法を用いればよい。
【００８５】
Ｓ１５６では、ポリシーパラメータの範囲内で、図３に示した時間理想ラインＴＩＭＥ＿ＢＥＳＴと、誤差理想ラインＥＲＲＯＲ＿ＢＥＳＴの交点Ｃからの距離Ｆが最小となる予想ラインＬ上の点ＰＬを求める。この演算は、例えば、時間軸方向に所定の間隔で予想ラインＬ上の点をサンプルし、これらの点と上記交点Ｃからの距離が最小となったものを点ＰＬとする。
【００８６】
Ｓ１５７では求めた点ＰＬに対応するチューニングパラメータＴＵＮＥを最適な値として選択する。このチューニングパラメータＴＵＮＥの値は、各抽出点のチューニングパラメータＴＵＮＥの値を線形近似に求めたものである。
【００８７】
以上の処理によっても、前記第１実施形態と同様に、最適なチューニングパラメータＴＵＮＥを得ることができる。
【００８８】
＜第３実施形態＞
図１１、図１２は、第３の実施形態を示し、前記第１実施形態のポリシーマネージャ１０を、予め作成されたソースプログラム９０を読み込んで、最適なチューニングパラメータＴＵＮＥをコンソール６に出力するようにしたもので、コンパイラ１１の起動と、オブジェクト１２の起動は、利用者がコンソール６から指令する。その他の構成は前記第１実施形態と同様である。すなわち、前記第１実施形態に示した３つの機能のうち、第２の機能のみを備えた場合を示している。
【００８９】
ソースプログラム９０には、予めソルバー５１や実行条件（入力パラメータ）等が記述されており、ポリシー設定部１１１は、ソースプログラム９０を読み込んでポリシーパラメータを設定するだけである（図１２のＳ２〜Ｓ２５）。本第３実施形態は、前記第１実施形態の図８から、Ｓ１、Ｓ１１、Ｓ１２、Ｓ３、Ｓ４、Ｓ７を除いたもので、ソースプログラム９０に対する最適なチューニングパラメータＴＵＮＥのみを指示するようにしたものである。
【００９０】
図１１において、ユーザ計算機１の利用者は、ポリシーマネージャ１０に対してポリシーパラメータを与え、最適なチューニングパラメータＴＵＮＥを得る。
【００９１】
このとき、利用者は、所望の値を得るまで繰り返して最適なチューニングパラメータＴＵＮＥを演算させることができる。
【００９２】
所望のチューニングパラメータＴＵＮＥが決まると、利用者はコンソール６からコンパイルを指令し、生成されたオブジェクト１２に対してポリシーマネージャ１０から得た最適なチューニングパラメータＴＵＮＥをオプションとして設定して実行できる。
【００９３】
このように、本発明のポリシーマネージャ１０を単独で利用し、最適なチューニングパラメータＴＵＮＥを得ることもができる。
【００９４】
＜第４実施形態＞
図１３は、第４の実施形態を示し、前記第１実施形態のネットワーク８に、ユーザ計算機１から依頼された計算の実行を提供する複数のユーティリティ計算機３０、３１と、ユーティリティ計算機３０、３１を利用したユーザ計算機１に関する課金情報を管理する課金サーバ１４０を接続し、ユーザ計算機１はコンパイラ１１で生成したオブジェクト１２の実行を、ユーティリティ計算機３０、３１の何れかに依頼するものである。ユーザ計算機１及び実績・ライブラリサーバ２０は前記第１実施形態と同様に構成される。
【００９５】
ユーティリティ計算機３０、３１は、ユーザ計算機１からの依頼に応じてオブジェクト１２を実行し、実行結果をユーザ計算機１に返す。そして、実行に要したユーザ計算機１の課金情報を課金サーバ１４０に送る。
【００９６】
課金サーバ１４０は、ＤＢＭＳ１４１が管理する課金情報データベース１４２を実行しており、課金情報データベース１４２には、ユーティリティ計算機３０、３１毎の利用料金と、ユーザ計算機１毎の課金情報を格納する。
【００９７】
ユーザ計算機１のポリシーマネージャ１０は、ポリシーパラメータとして利用料金を指定可能とする。例えば、最低利用料金をＣＯＳＴ＿ＢＥＳＴとし、最大利用料金をＣＯＳＴ＿ＷＯＲＳＴとすると、上記図６に示した目的評価関数５２は、
ｍｉｎ（TIME／TIME_BEST＋ERROR／ERROR_BEST＋COST／COST_BEST）
と表すことができ、選択したソルバー５１を実行する際に、実行時間と計算誤差及び利用料金（ＣＯＳＴ）を最小とするチューニングパラメータＴＵＮＥを選択することが可能となる。このとき、図３に示したグラフは３次元グラフとなる。このとき、ユーティリティ計算機３０、３１毎に利用料金が異なる場合には、各ユーティリティ計算機毎に利用料金を推定して最も安いものを選択することができる。
【００９８】
このように、商用のユーティリティ計算機を利用する場合では、ポリシーパラメータに利用料金を加えることにより、利用者は、最適なチューニングパラメータＴＵＮＥとなるユーティリティ計算機に対してオブジェクト１２の実行を依頼することにより、速度性能と演算性能に加えて価格性能を満足する計算機の利用環境を容易に得ることができる。
【００９９】
また、目的評価関数５２は、速度性能と演算精度の２次元の評価関数を基礎として、上記のような利用料金の他、計算を実行する計算機のリソースの割り当て情報（ＣＰＵコアの数、メモリ容量）などを加えて、多次元とすることができる。この場合、ポリシーパラメータの範囲も多次元となる。例えば、最低限必要なＣＰＵコア数と、理想とするＣＰＵコア数とをポリシーパラメータとし、さらに、最低限必要なメモリ容量と、理想とするメモリ容量とをポリシーパラメータとすればよい。
【０１００】
なお、上記第１ないし第４の実施形態では、利用者が設定したポリシーパラメータの範囲内で、最適なチューニングパラメータＴＵＮＥが見つからない場合には、コンソール６へ警告などを表示するようにしても良い。
【０１０１】
なお、上記第１ないし第４の実施形態では、ポリシーマネージャ１０とコンパイラ１１を独立したソフトウェアモジュールとした場合について説明したが、コンパイラ１１に本発明のポリシーマネージャ１０を組み込んでもよいし、あるいは、図示しないエディタなどにポリシーマネージャ１０を組み込むようにしても良い。
【産業上の利用可能性】
【０１０２】
以上のように、本発明ではライブラリに格納された数値計算ライブラリのチューニングを容易かつ的確に行うことができ、数値計算を行うソフトウェアやライブラリの提供に利用することができる。
【図面の簡単な説明】
【０１０３】
【図１】第１の実施形態を示し、本発明を適用する計算機システムのブロック図。
【図２】ポリシーマネージャを中心とするソフトウェア構成のブロック図。
【図３】最適なチューニングパラメータを求めるグラフの一例を示し、速度性能と計算精度の関係を示す。
【図４】同じく、最適なチューニングパラメータを求めるグラフの一例を示し、速度性能と計算精度の関係で実行条件の詳細を示す。
【図５】実行条件とチューニングパラメータを設定する入力画面の一例を示す画面イメージ。
【図６】同じく、実行条件とチューニングパラメータを設定した後の入力画面の一例を示す画面イメージ。
【図７】実績データベース内の実績データの構成を示すテーブル。
【図８】ポリシーマネージャで行われる処理の一例を示すＰＡＤ図。
【図９】同じく、図９のＳ５１で行われる処理の一例を示すＰＡＤ図。
【図１０】第２の実施形態を示し、図９のＳ５１で行われる処理の一例を示すＰＡＤ図。
【図１１】第３の実施形態を示し、ポリシーマネージャを中心とするソフトウェア構成のブロック図。
【図１２】第３の実施形態を示し、ポリシーマネージャで行われる処理の一例を示すＰＡＤ図。
【図１３】第４の実施形態を示し、計算機システムのブロック図。
【符号の説明】
【０１０４】
１  ユーザ計算機
１０  ポリシーマネージャ
１１  コンパイラ
１２  オブジェクト１２
２０  実績・ライブラリサーバ
４１  実績データベース
５０  ライブラリ格納部
９０  ソースプログラム
１１０  ポリシープリプロセッサ
１１１  ポリシー設定部
１１２  パラメータ候補出力部
【図１】
2007034375.tif 000003
【図２】
2007034375.tif 000004
【図３】
2007034375.tif 000005
【図４】
2007034375.tif 000006
【図５】
2007034375.tif 000007
【図６】
2007034375.tif 000008
【図７】
2007034375.tif 000009
【図８】
2007034375.tif 000010
【図９】
2007034375.tif 000011
【図１０】
2007034375.tif 000012
【図１１】
2007034375.tif 000013
【図１２】
2007034375.tif 000014
【図１３】
2007034375.tif 000015