(57)【要約】      （修正有）【課題】アプリケーションプログラムのパラメータを電力制約に応じて適切な値に設定する。【解決手段】情報処理装置は、複数の電力制約それぞれの下で計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した際に取得されたデータに基づき、電力制約からアプリケーションプログラムの性能値を算出するための性能モデルを、アプリケーションプログラムのパラメータの値のセット毎に生成する生成部と、アプリケーションプログラムのパラメータの値のセット毎に、当該セットについて生成された性能モデルに基づき、複数の電力制約のいずれとも異なる第１の電力制約からアプリケーションプログラムの性能値を算出する算出部と、算出された性能値のうち最大の性能値に対応する、アプリケーションプログラムのパラメータの値のセットを出力する出力部とを有する。【選択図】図３
2019046338.tif 000002
【特許請求の範囲】
【請求項１】
複数の電力制約それぞれの下で計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した際に取得されたデータに基づき、電力制約から前記アプリケーションプログラムの性能値を算出するための性能モデルを、前記アプリケーションプログラムのパラメータの値のセット毎に生成する生成部と、
前記アプリケーションプログラムのパラメータの値のセット毎に、当該セットについて生成された前記性能モデルに基づき、前記複数の電力制約のいずれとも異なる第１の電力制約から前記アプリケーションプログラムの性能値を算出する算出部と、
算出された前記性能値のうち最大の性能値に対応する、前記アプリケーションプログラムのパラメータの値のセットを出力する出力部と、
を有する情報処理装置。
【請求項２】
前記データは前記性能値を含み、
前記生成部は、
前記電力制約を説明変数とし且つ前記性能値を目的変数とする前記性能モデルを、前記アプリケーションプログラムのパラメータの値のセット毎に、重回帰分析により生成する、
請求項１記載の情報処理装置。
【請求項３】
前記データは前記性能値および前記計算装置の動作に関する指標値を含み、
前記生成部は、
前記電力制約を説明変数とし且つ前記指標値を目的変数とする第１の性能モデルと、前記指標値を説明変数とし且つ前記性能値を目的変数とする第２の性能モデルとを、前記アプリケーションプログラムのパラメータの値のセット毎に、重回帰分析により生成し、
前記指標値は、
前記計算装置におけるプロセッサの動作周波数、前記プロセッサの消費電力、前記プロセッサの温度、及び前記計算装置におけるメモリの消費電力の少なくともいずれかについての値を含む、
請求項１記載の情報処理装置。
【請求項４】
前記複数の電力制約の各々は、単位時間内において使用可能な電力の平均値と、前記単位時間内の第１の時間において使用可能な電力の平均値とを含む、
請求項１乃至３のいずれか１つ記載の情報処理装置。
【請求項５】
前記アプリケーションプログラムのパラメータは、前記アプリケーションプログラムの引数として設定されるパラメータ、環境変数として設定されるパラメータ、及び前記アプリケーションプログラムの実行時に参照されるファイル内に設定されるパラメータの少なくともいずれかを含む、
請求項１乃至４のいずれか１つ記載の情報処理装置。
【請求項６】
情報処理装置と、
計算装置と、
を有し、
前記情報処理装置が、
複数の電力制約それぞれの下で前記計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した際に取得されたデータに基づき、電力制約から前記アプリケーションプログラムの性能値を算出するための性能モデルを、前記アプリケーションプログラムのパラメータの値のセット毎に生成する生成部と、
前記アプリケーションプログラムのパラメータの値のセット毎に、当該セットについて生成された前記性能モデルに基づき、前記複数の電力制約のいずれとも異なる第１の電力制約から前記アプリケーションプログラムの性能値を算出する算出部と、
算出された前記性能値のうち最大の性能値に対応する、前記アプリケーションプログラムのパラメータの値のセットを出力する出力部と、
を有する情報処理システム。
【請求項７】
コンピュータに、
複数の電力制約それぞれの下で計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した際に取得されたデータに基づき、電力制約から前記アプリケーションプログラムの性能値を算出するための性能モデルを、前記アプリケーションプログラムのパラメータの値のセット毎に生成し、
前記アプリケーションプログラムのパラメータの値のセット毎に、当該セットについて生成された前記性能モデルに基づき、前記複数の電力制約のいずれとも異なる第１の電力制約から前記アプリケーションプログラムの性能値を算出し、
算出された前記性能値のうち最大の性能値に対応する、前記アプリケーションプログラムのパラメータの値のセットを出力する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムの実行制御技術に関する。
【背景技術】
【０００２】
ＨＰＣ（High Performance Computing）システムの大規模化および高性能化に伴い、消費電力の増加が問題になっている。
【０００３】
ＨＰＣシステムの消費電力を抑制するため、ＨＰＣシステムの利用者には電力制約（例えば単位時間当たりの消費電力の制約）が課されることがある。ＨＰＣシステムの利用者は、プロセッサの動作周波数の変更、或いは、ＨＰＣシステムに実行させるアプリケーションプログラムの実行命令の数や種類の変更等によって、消費電力が基準を超えないようにＨＰＣシステムを稼働させる。
【０００４】
ＨＰＣシステムに実行させるアプリケーションプログラムの性能（例えば、単位時間当たりの計算量）は、アプリケーションプログラムのパラメータの値によって変わることがある。例えば行列積の計算プログラムの場合、行列全体のサイズ、及び、行列を分割して計算を実行する場合において分割により生成される部分（タイルとも呼ばれる）のサイズ等によって、アプリケーションプログラムの性能が変わる。
【０００５】
したがって、課された電力制約の下で十分な性能を達成できるように、利用者はＨＰＣシステムに実行させるアプリケーションプログラムのパラメータの値の調整を実施する。しかし、或る電力制約の下で十分な性能を達成することができる値が、別の電力制約に対しても有効であるとは限らず、パラメータの最適な値が電力制約ごとに異なることがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１４０２２２号公報
【特許文献２】特開平１１−３５３０５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、１つの側面では、アプリケーションプログラムのパラメータを電力制約に応じて適切な値に設定するための技術を提供することである。
【課題を解決するための手段】
【０００８】
一態様に係る情報処理装置は、複数の電力制約それぞれの下で計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した際に取得されたデータに基づき、電力制約からアプリケーションプログラムの性能値を算出するための性能モデルを、アプリケーションプログラムのパラメータの値のセット毎に生成する生成部と、アプリケーションプログラムのパラメータの値のセット毎に、当該セットについて生成された性能モデルに基づき、複数の電力制約のいずれとも異なる第１の電力制約からアプリケーションプログラムの性能値を算出する算出部と、算出された性能値のうち最大の性能値に対応する、アプリケーションプログラムのパラメータの値のセットを出力する出力部とを有する。
【発明の効果】
【０００９】
１つの側面では、アプリケーションプログラムのパラメータを電力制約に応じて適切な値に設定できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施の形態のシステムの概要を示す図である。
【図２】図２は、利用者端末のハードウエア構成図である。
【図３】図３は、利用者端末の機能ブロック図である。
【図４】図４は、ＨＰＣシステムにおける計算ノードのハードウエア構成図である。
【図５】図５は、ＨＰＣシステムにおける計算ノードの機能ブロック図である。
【図６】図６は、制約データ格納部に格納されるデータの一例を示す図である。
【図７】図７は、電力キャップについて説明するための図である。
【図８】図８は、電力制約毎の性能値を示す図である。
【図９】図９は、実行パターン毎の性能値を示す図である。
【図１０】図１０は、利用者から性能モデルの生成指示を受け付けた場合に利用者端末が実行する処理の処理フローを示す図である。
【図１１】図１１は、データ収集処理の処理フローを示す図である。
【図１２】図１２は、指定される電力制約の一例を示す図である。
【図１３】図１３は、収集データ格納部に格納されるデータの一例を示す図である。
【図１４】図１４は、第１の実施の形態のモデル生成処理の処理フローを示す図である。
【図１５】図１５は、第１の実施の形態のモデルデータ格納部に格納されるデータの一例を示す図である。
【図１６】図１６は、利用者から指定された電力制約に対応する実行パターンを出力する処理の処理フローを示す図である。
【図１７】図１７は、実行パターン特定処理の処理フローを示す図である。
【図１８】図１８は、出力データ格納部に格納されているデータの一例を示す図である。
【図１９】図１９は、第２の実施の形態のモデル生成処理の処理フローを示す図である。
【図２０】図２０は、第２の実施の形態のモデルデータ格納部に格納されるデータの一例を示す図である。
【図２１】図２１は、動作周波数と消費電力との関係を示す図である。
【図２２】図２２は、性能値と動作周波数との関係を示す図である。
【図２３】図２３は、性能値と動作周波数との関係を示す図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
図１は、本実施の形態のシステムの概要を示す図である。ＨＰＣシステム３は、例えばデータセンタに設置されており、複数の計算ノードが搭載されたラックを複数有する。ＨＰＣシステム３は複数の利用者に利用され、計算量等に応じて１又は複数の計算ノードが各利用者に割り当てられる。利用者により操作される利用者端末１はＨＰＣシステム３に有線で接続され、ＨＰＣシステム３における計算ノードにアプリケーションプログラムを実行させる。なお、利用者端末１は無線でＨＰＣシステム３に接続されてもよい。アプリケーションプログラムとは、所定の計算（例えば行列計算）の実行プログラムである。
【００１２】
図２は、利用者端末１のハードウエア構成図である。利用者端末１は、ＣＰＵ（Central Processing Unit）１１と、例えばＤＲＡＭ（Dynamic Random Access Memory）であるメモリ１２と、ＨＤＤ（Hard Disk Drive）１３と、ＮＩＣ（Network Interface Card）１４とを有する。ＣＰＵ１１、メモリ１２、ＨＤＤ１３及びＮＩＣ１４は、バス１５によって接続される。
【００１３】
図３は、利用者端末１の機能ブロック図である。利用者端末１は、制御部１０１と、収集部１０３と、生成部１０５と、算出部１０７と、収集データ格納部１１１と、制約データ格納部１１３と、モデルデータ格納部１１５と、出力データ格納部１１７とを含む。
【００１４】
制御部１０１、収集部１０３、生成部１０５及び算出部１０７は、メモリ１２にロードされたプログラムがＣＰＵ１１に実行されることで実現される。収集データ格納部１１１、制約データ格納部１１３、モデルデータ格納部１１５及び出力データ格納部１１７は、メモリ１２又はＨＤＤ１３に設けられる。
【００１５】
制御部１０１は、収集部１０３、生成部１０５及び算出部１０７による処理の実行を制御する。収集部１０３は、制約データ格納部１１３に格納されている電力制約を含む設定指示およびアプリケーションプログラムのパラメータの値を含む実行指示をＨＰＣシステム３に送信し、ＨＰＣシステム３からデータを収集し、収集されたデータを収集データ格納部１１１に格納する。生成部１０５は、収集データ格納部１１１に格納されたデータに基づき性能モデルを生成し、生成された性能モデルをモデルデータ格納部１１５に格納する。算出部１０７は、モデルデータ格納部１１５に格納されている性能モデル及び課された電力制約から、アプリケーションプログラムの性能を表す値（以下、性能値と呼ぶ）を算出し、算出された性能値を出力データ格納部１１７に格納する。
【００１６】
図４は、ＨＰＣシステム３における計算ノードのハードウエア構成図である。計算ノードは、電力制御機能を有するＣＰＵ３１と、例えばＤＲＡＭであるメモリ３２と、アプリケーションプログラムを格納するＨＤＤ３３と、ＮＩＣ３４とを有する。ＣＰＵ３１、メモリ３２、ＨＤＤ３３及びＮＩＣ３４は、バス３５によって接続される。電力制御機能は、設定された電力制約に応じてＣＰＵ３１及びメモリ３２の消費電力を制御する。ＣＰＵ３１内のレジスタには、ＣＰＵ３１及びメモリ３２の消費電力（ワット）を計算するための値及びＣＰＵ３１の動作周波数（メガヘルツ）を計算するための値が格納される。ＣＰＵ３１は、複数のコアを有してもよい。
【００１７】
図５は、ＨＰＣシステム３における計算ノードの機能ブロック図である。計算ノードは、計算部３０１と、処理部３０３とを含む。
【００１８】
計算部３０１は、アプリケーションプログラムがメモリ３２にロードされＣＰＵ３１により実行されることで実現される。処理部３０３は、アプリケーションプログラム以外のプログラムがメモリ３２にロードされてＣＰＵ３１により実行されることで実現される。
【００１９】
計算部３０１は、アプリケーションプログラムに係る計算を実行する。処理部３０３は、利用者端末１から受信した設定指示および実行指示に応じた処理、データを収集する処理および収集されたデータを利用者端末１に送信する処理等を実行する。
【００２０】
図６は、制約データ格納部１１３に格納されるデータの一例を示す図である。図６の例では、制約データ格納部１１３には複数の電力制約が格納されている。電力キャップとは、或る時間区間において使用可能な消費電力の平均値である。本実施の形態においては、電力キャップ１と電力キャップ２とが設定される。例えば図７の例においては、単位時間（図７の例では１秒）において平均で２１５Ｗの電力を使用可能である（電力キャップ１）。但し、単位時間における１０ミリ秒間においては平均で２５８Ｗの電力を使用可能である（電力キャップ２）。電力キャップは、気候や供給可能な消費電力等に基づき、例えば電力会社により決定される。図６の例においては、一の位が０である電力制約については電力キャップ１の電力と電力キャップ２の電力とが異なっており、一の位が１である電力制約については電力キャップ１の電力と電力キャップ２の電力とが同じである。
【００２１】
図８は、電力制約毎の性能値の一例を示す図である。図８においては、各電力制約について、４つの実行パターンでアプリケーションプログラムを実行した場合における性能値が示されている。実行パターンとは、アプリケーションプログラムのパラメータの値のセットのことであり、図８においては行列全体のサイズとタイルのサイズとの組み合わせにより生成された実行パターンＰ１乃至Ｐ４が示されている。
【００２２】
図８に示すように、全体的な傾向として、電力キャップの消費電力の値が大きいほど性能値は大きい。また、最も性能が高い実行パターンは電力制約によって異なる。例えば、電力制約１０、電力制約２１及び電力制約３０については、実行パターンＰ１を使用した場合の性能が最も高い。電力制約３１については、実行パターンＰ２を使用した場合の性能が最も高い。電力制約２０、電力制約１１、電力制約４０及び電力制約４１については、実行パターンＰ３を使用した場合の性能が最も高い。
【００２３】
なお、パラメータの値は、例えば、コマンドの引数として設定されるか、環境変数（すなわち、シェルから起動されるプロセスに有効な変数）として設定されるか、又はアプリケーションプログラムの実行時に参照されるファイル内に設定される。例えば並列処理のためのプログラムの場合、並列実行のスレッド数について、引数として「ｐｒｏｇｒａｍ１  −ｏｍｐ＿ｎｕｍ＿ｔｈｒｅａｄｓ  ２４」といった形式で値が設定される。また、環境変数として「ｅｘｐｏｒｔ  ＯＭＰ＿ＮＵＭ＿ＴＨＲＥＡＤＳ＝２４」といった形式で値が設定される。
【００２４】
図９は、実行パターン毎の性能値の一例を示す図である。図９においては、各実行パターンについて、８つの電力制約下でアプリケーションプログラムを実行した場合における性能値が示されている。
【００２５】
図９に示すように、同じ実行パターンであっても電力制約によって性能値が異なる。例えば、実行パターンＰ１については、電力制約２０、電力制約１１、電力制約２１及び電力制約３０の性能値と、電力制約３１の性能値との差が明らかであるのに対し、実行パターンＰ２については、電力制約２０、電力制約１１、電力制約２１及び電力制約３０の性能値と、電力制約３１の性能値との差はほとんど無い。また、実行パターンＰ１乃至Ｐ３については、電力制約１０の性能値が他の電力制約の性能値よりも明らかに大きいのに対し、実行パターンＰ４については、電力制約１０の性能値と、電力制約２０、電力制約１１及び電力制約２１の性能値との差がほとんど無い。
【００２６】
このように、アプリケーションプログラムの実行時に使用されるパラメータの値によって、アプリケーションプログラムの性能は変わることがある。したがって、パラメータの値のチューニングによって性能を高くすることができる。但し、性能が高くなると消費電力が増加することがある。
【００２７】
図１０は、利用者から性能モデルの生成指示を受け付けた場合に利用者端末１が実行する処理の処理フローを示す図である。
【００２８】
利用者端末１における制御部１０１は、利用者から性能モデルの生成指示を受け付けた場合、収集部１０３を呼び出す。これに応じ、収集部１０３は、データ収集処理を実行する（図１０：ステップＳ１）。
【００２９】
図１１は、データ収集処理の処理フローを示す図である。
【００３０】
収集部１０３は、利用者から指定された複数の実行パターンのうち未処理の実行パターンを１つ特定する（図１１：ステップＳ１１）。なお、利用者は検証すべき実行パターンを指定するが、他の実行パターンから結果を推測可能な実行パターンについては、指定しなくてもよい。
【００３１】
収集部１０３は、指定された電力制約のうち未処理の電力制約を１つ特定する（ステップＳ１３）。指定された電力制約とは、制約データ格納部１１３にデータが格納されている電力制約（図６の例では、電力制約１０、１１、２０、２１、３０、３１、４０及び４１）のうち、性能モデルの生成に使用される電力制約として利用者により予め指定された電力制約である。性能モデルの生成に全電力制約ではなく一部の電力制約が使用される理由は、全電力制約を使用すると計算に時間がかかり現実的ではないこと、及び、一部の電力制約を使用した場合にも十分な精度の性能モデルを生成することが可能であることである。
【００３２】
図１２は、指定される電力制約の一例を示す図である。図１２の例では、電力制約１０と、電力制約２０と、電力制約３１と、電力制約４１とが指定されている。
【００３３】
収集部１０３は、ステップＳ１３において特定された電力制約を含む設定指示を、ＨＰＣシステム３の計算ノードのうち利用者端末１がアプリケーションプログラムの実行に使用する計算ノードに送信する（ステップＳ１５）。設定指示を受信した計算ノードの処理部３０３は、設定指示に含まれる電力制約の電力キャップ１及び２をＣＰＵ３１に設定する処理等を実行する。これにより、計算ノードは、利用者に課された電力制約の電力キャップ以下の消費電力になるように計算を実行するようになる。
【００３４】
収集部１０３は、ステップＳ１１において特定された実行パターンを含む実行指示を、ＨＰＣシステム３の計算ノードのうち利用者端末１がアプリケーションプログラムの実行に使用する計算ノードに送信する（ステップＳ１７）。或いは、ステップＳ１７において、実行パターンに含まれるパラメータの値が反映されたアプリケーションプログラム及び設定ファイル等が計算ノードに送信されてもよい。
【００３５】
実行指示を受信した計算ノードの処理部３０３は、実行指示に含まれるパラメータの値を計算部３０１に出力し、計算部３０１は、アプリケーションプログラムの処理の実行を、受け取ったパラメータの値を使用して開始する。アプリケーションプログラムの実行中、ＣＰＵ３１のレジスタに格納された、ＣＰＵ３１及びメモリ３２の消費電力を計算するための値及びＣＰＵ３１の動作周波数を計算するための値が、処理部３０３により取得される。但し、説明を簡単にするため、以下ではＣＰＵ３１の消費電力を計算するための値及びＣＰＵ３１の動作周波数を計算するための値のみが使用されるものとする。また、アプリケーションプログラムの実行中或いはアプリケーションプログラムの実行後に計算部３０１が出力する性能値が、処理部３０３により取得される。本実施の形態においては、例えば、アプリケーションプログラムの実行開始後ＣＰＵ３１の動作が安定した場合に、消費電力を計算するための値及びＣＰＵ３１の動作周波数を計算するための値、並びに、性能値が取得される。ＣＰＵ３１の動作が安定している間における値の平均及び性能値の平均が取得されてもよい。
【００３６】
処理部３０３は、消費電力を計算するための値からＣＰＵ３１の消費電力を計算し、ＣＰＵ３１の動作周波数を計算するための値からＣＰＵ３１の動作周波数を計算する。そして、処理部３０３は、ＣＰＵ３１の消費電力、ＣＰＵ３１の動作周波数及び取得された性能値を、利用者端末１に送信する。
【００３７】
収集部１０３は、性能値、動作周波数及び消費電力をＨＰＣシステム３から受信し、収集データ格納部１１１に格納する（ステップＳ１９）。
【００３８】
図１３は、収集データ格納部１１１に格納されるデータの一例を示す図である。図１３の例では、実行パターン毎に、各電力制約下での性能値、動作周波数及び消費電力が格納されている。なお、本実施の形態においては、計算ノードの動作に関する指標値としてＣＰＵ３１の動作周波数および消費電力が使用されるが、例えばメモリ３２の消費電力およびＣＰＵ３１の温度等の指標値が使用されてもよい。
【００３９】
収集部１０３は、未処理の電力制約が有るか判定する（ステップＳ２１）。未処理の電力制約が有る場合（ステップＳ２１：Ｙｅｓルート）、処理はステップＳ１３に戻る。
【００４０】
一方、未処理の電力制約が無い場合（ステップＳ２１：Ｎｏルート）、収集部１０３は、未処理の実行パターンが有るか判定する（ステップＳ２３）。
【００４１】
未処理の実行パターンが有る場合（ステップＳ２３：Ｙｅｓルート）、処理はステップＳ１１に戻る。
【００４２】
一方、未処理の実行パターンが無い場合（ステップＳ２３：Ｎｏルート）、処理は呼び出し元に戻る。
【００４３】
以上のような処理を実行すれば、性能モデルの生成に使用されるデータを用意することができるようになる。
【００４４】
図１０の説明に戻り、利用者端末１における制御部１０１は、生成部１０５を呼び出す。これに応じ、生成部１０５は、モデル生成処理を実行する（ステップＳ３）。
【００４５】
図１４は、第１の実施の形態のモデル生成処理の処理フローを示す図である。
【００４６】
生成部１０５は、収集データ格納部１１１からデータを読み出す（図１４：ステップＳ３１）。ステップＳ３１においては、各実行パターンについてのデータが読み出される。
【００４７】
生成部１０５は、利用者から指定された複数の実行パターンのうち未処理の実行パターンを１つ特定する（ステップＳ３３）。
【００４８】
生成部１０５は、ステップＳ３３において特定された実行パターンについて、動作周波数及び消費電力から性能値を求める数式を、ステップＳ３１において読み出されたデータを用いて重回帰分析により生成する（ステップＳ３５）。数式の形式は、例えば、性能値＝動作周波数＊係数１＋消費電力＊係数２＋定数１である。生成部１０５は、生成された数式のデータ（例えば係数及び定数等）をモデルデータ格納部１１５に格納する。
【００４９】
生成部１０５は、ステップＳ３３において特定された実行パターンについて、電力キャップから動作周波数及び消費電力を求める数式を、ステップＳ３１において読み出されたデータを用いて重回帰分析により生成する（ステップＳ３７）。数式の形式は、例えば、動作周波数＝電力キャップ１＊係数３＋電力キャップ２＊係数４＋定数２および消費電力＝電力キャップ１＊係数５＋電力キャップ２＊係数６＋定数３である。生成部１０５は、生成された数式のデータ（例えば係数及び定数等）をモデルデータ格納部１１５に格納する。
【００５０】
図１５は、第１の実施の形態のモデルデータ格納部１１５に格納されるデータの一例を示す図である。図１５の例では、係数１乃至６及び定数１乃至３の各々について値が格納されている。図１５に示したようなデータは、各実行パターンについて生成される。
【００５１】
生成部１０５は、未処理の実行パターンが有るか判定する（ステップＳ３９）。
【００５２】
未処理の実行パターンが有る場合（ステップＳ３９：Ｙｅｓルート）、処理はステップＳ３３に移行する。一方、未処理に実行パターンが無い場合（ステップＳ３９：Ｎｏルート）、処理は呼び出し元に戻り終了する。
【００５３】
以上のような処理によって生成された性能モデルを使用すれば、ＨＰＣシステム３に計算を実行させていない電力制約についても、性能値を算出することができるようになる。これにより、ＨＰＣシステム３に計算を実行させる回数を減らすことができるようになる。また、ＣＰＵ３１の動作周波数および消費電力は性能に密接に関わるので、本実施の形態の方法により高精度の性能モデルが生成される。
【００５４】
図１６は、利用者から指定された電力制約に対応する実行パターンを出力する処理の処理フローを示す図である。
【００５５】
利用者端末１における制御部１０１は、利用者から電力制約の指定を受け付ける（図１６：ステップＳ４１）。これに応じ、制御部１０１は、算出部１０７を呼び出す。そして、算出部１０７は、実行パターン特定処理を実行する（ステップＳ４３）。
【００５６】
図１７は、実行パターン特定処理の処理フローを示す図である。
【００５７】
算出部１０７は、利用者から指定された電力制約に対応する電力キャップ（ここでは、電力キャップ１及び電力キャップ２）を、制約データ格納部１１３から読み出す（図１７：ステップＳ５１）。
【００５８】
算出部１０７は、モデルデータ格納部１１５にデータが格納されている実行パターンのうち未処理の実行パターンを１つ特定する（ステップＳ５３）。
【００５９】
算出部１０７は、ステップＳ５３において特定された実行パターンについての数式のデータを、モデルデータ格納部１１５から読み出す。そして、算出部１０７は、読み出したデータに係る数式に電力キャップ１及び電力キャップ２を当てはめることで、ステップＳ５３において特定された実行パターンについて性能値を算出する（ステップＳ５５）。算出部１０７は、算出された性能値を出力データ格納部１１７に格納する。
【００６０】
図１８は、出力データ格納部１１７に格納されているデータの一例を示す図である。図１８の例では、各実行パターンについて算出された性能値が格納されている。
【００６１】
算出部１０７は、未処理の実行パターンが有るか判定する（ステップＳ５７）。
【００６２】
未処理の実行パターンが有る場合（ステップＳ５７：Ｙｅｓルート）、処理はステップＳ５３に戻る。
【００６３】
一方、未処理の実行パターンが無い場合（ステップＳ５７：Ｎｏルート）、算出部１０７は以下の処理を実行する。具体的には、算出部１０７は、ステップＳ５５において算出された性能値が最も大きい実行パターンを特定する（ステップＳ５９）。そして処理は呼び出し元に戻る。
【００６４】
図１６の説明に戻り、制御部１０１は、ステップＳ４３において特定された実行パターンを含むデータを、利用者端末１の出力装置（例えばモニタ）に出力する（ステップＳ４５）。そして処理は終了する。ステップＳ４５において出力されるデータには、ステップＳ４３において特定された実行パターン以外の実行パターンが含まれていてもよいが、その場合にはステップＳ４３において特定された実行パターンが識別可能な態様で（例えば、色付けされて）出力されることが好ましい。
【００６５】
これにより、利用者端末１を操作する利用者は適切な実行パターンを確認できるので、適切な実行パターンで実際にアプリケーションプログラムをＨＰＣシステム３に実行させることができるようになる。つまり、適切ではない実行パターンでアプリケーションプログラムをＨＰＣシステム３に実行させることを抑制できるようになる。
【００６６】
［実施の形態２］
第１の実施の形態においては、性能モデルとして、動作周波数及び消費電力から性能値を求める数式と、電力キャップから動作周波数及び消費電力を求める数式とが生成される。これに対して、第２の実施の形態においては、性能モデルとして、電力キャップから性能値を直接求める式が生成される。
【００６７】
以下では、第２の実施の形態のモデル生成処理において実行される処理について説明する。図１９は、第２の実施の形態のモデル生成処理の処理フローを示す図である。
【００６８】
生成部１０５は、収集データ格納部１１１からデータを読み出す（図１９：ステップＳ６１）。ステップＳ６１においては、各実行パターンについてのデータが読み出される。
【００６９】
生成部１０５は、利用者から指定された複数の実行パターンのうち未処理の実行パターンを１つ特定する（ステップＳ６３）。
【００７０】
生成部１０５は、ステップＳ６３において特定された実行パターンについて、電力キャップ（ここでは、電力キャップ１及び電力キャップ２）から性能値を求める数式を、ステップＳ６１において読み出されたデータを用いて重回帰分析により生成する（ステップＳ６５）。数式の形式は、例えば、性能値＝電力キャップ１＊係数７＋電力キャップ２＊係数８＋定数４である。生成部１０５は、生成された数式のデータ（例えば係数及び定数等）をモデルデータ格納部１１５に格納する。
【００７１】
図２０は、第２の実施の形態のモデルデータ格納部１１５に格納されるデータの一例を示す図である。図２０の例では、係数７及び８並びに定数４の各々について値が格納されている。図２０に示したようなデータは、各実行パターンについて生成される。
【００７２】
生成部１０５は、未処理の実行パターンが有るか判定する（ステップＳ６７）。
【００７３】
未処理の実行パターンが有る場合（ステップＳ６７：Ｙｅｓルート）、処理はステップＳ６３に移行する。一方、未処理に実行パターンが無い場合（ステップＳ６７：Ｎｏルート）、処理は呼び出し元に戻り終了する。
【００７４】
以上のような処理によって生成された性能モデルを使用すれば、ＨＰＣシステム３に計算を実行させていない電力制約についても、性能値を算出することができるようになる。これにより、ＨＰＣシステム３に計算を実行させる回数を減らすことができるようになる。
【００７５】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した利用者端末１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７６】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７７】
また、上で述べた例では利用者端末１が本実施の形態の処理を実行するが、アプリケーションプログラムを実行する計算ノードにおいて当該処理を実行してもよい。
【００７８】
また、上で述べた例では１台の計算ノードがアプリケーションプログラムを実行するが、２台以上の計算ノードがアプリケーションプログラムを実行してもよい。その場合には、利用者端末１が、アプリケーションプログラムを実行する複数台の計算ノードの各々から性能値及び計算ノードの動作に関する指標値を取得してもよい。この場合、各計算ノードについて性能モデルを実行パターン毎に生成してもよいし、同じタイプの計算ノードについては、いずれか１台の計算ノードについて性能モデルを実行パターン毎に生成してもよい。
【００７９】
また、上で述べた例では実行パターン毎に性能モデルが生成されるが、複数の実行パターンの内容によっては、当該複数の実行パターンに対して１つの性能モデルを生成してもよい。
【００８０】
［付録］
本付録においては、ＣＰＵ３１の消費電力から性能値をより簡易な方法で算出する方法について説明する。ここでは、以下の２つの関係が成立することを仮定する。
【００８１】
（関係１）動作周波数＝消費電力＊係数１１＋定数１１
（関係２）性能値＝動作周波数＊係数１２＋定数１２
【００８２】
このような２つの線形関係が成立すれば、性能値＝（消費電力＊係数１１＋定数１１）＊係数１２＋定数１２として性能値を算出することができる。
【００８３】
まず、関係１について検討する。図２１は、或るアプリケーションプログラム（ここでは、アプリケーションプログラムＡ１とする）を実行した場合における動作周波数と消費電力との関係を示す図である。図２１の例においては相関係数Ｒ2＝０．９８９７であるので、線形関係が成立するといえる。このように、（関係１）については、一般的に線形関係を仮定しても問題が無いことが多い。
【００８４】
次に、関係２について検討する。図２２は、アプリケーションプログラムＡ１とは異なるアプリケーションプログラム（ここでは、アプリケーションプログラムＡ２とする）を実行した場合における性能値と動作周波数との関係を示す図である。図２２の例においては相関係数Ｒ2＝０．９８３５であるので、線形関係が成立するといえる。しかし、線形関係が成立しないケースもある。図２３は、アプリケーションＡ１を実行した場合における性能値と動作周波数との関係を示す図である。図２３の例においては、相関係数Ｒ2＝０．７７８４であるので、線形関係が成立するとは言い難い。このように、関係２については、場合によっては線形関係が成立しないことがある。
【００８５】
従って、関係１と関係２とが両方成立することが予めわかっているケースについては、上記のような方法を用いて消費電力から性能値を算出したとしても問題が無い。
【００８６】
以上で本付録を終了する。
【００８７】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００８８】
本実施の形態の第１の態様に係る情報処理装置は、（Ａ）複数の電力制約それぞれの下で計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した際に取得されたデータに基づき、電力制約からアプリケーションプログラムの性能値を算出するための性能モデルを、アプリケーションプログラムのパラメータの値のセット毎に生成する生成部（実施の形態における生成部１０５は上記生成部の一例である）と、（Ｂ）アプリケーションプログラムのパラメータの値のセット毎に、当該セットについて生成された性能モデルに基づき、複数の電力制約のいずれとも異なる第１の電力制約からアプリケーションプログラムの性能値を算出する算出部（実施の形態における算出部１０７は上記算出部の一例である）と、（Ｃ）算出された性能値のうち最大の性能値に対応する、アプリケーションプログラムのパラメータの値のセットを出力する出力部（実施の形態における制御部１０１は上記出力部の一例である）とを有する。
【００８９】
アプリケーションプログラムのパラメータの最適な値は、電力制約ごとに異なることがある。従って、上で述べたような処理を実行すれば、アプリケーションプログラムのパラメータを電力制約に応じて適切な値に設定することができるようになる。
【００９０】
また、上記データは性能値を含んでもよい。そして、生成部は、（ａ１）電力制約を説明変数とし且つ性能値を目的変数とする性能モデルを、アプリケーションプログラムのパラメータの値のセット毎に、重回帰分析により生成してもよい。
【００９１】
電力制約以外は不明である場合であっても、性能モデルを利用して性能値を算出できるようになる。
【００９２】
また、上記データは性能値および計算装置の動作に関する指標値を含んでもよい。そして、生成部は、（ａ２）電力制約を説明変数とし且つ指標値を目的変数とする第１の性能モデルと、指標値を説明変数とし且つ性能値を目的変数とする第２の性能モデルとを、アプリケーションプログラムのパラメータの値のセット毎に、重回帰分析により生成してもよい。そして、上記指標値は、計算装置におけるプロセッサの動作周波数、プロセッサの消費電力、プロセッサの温度、及び計算装置におけるメモリの消費電力の少なくともいずれかについての値を含んでもよい。
【００９３】
上記なような項目は性能と密接に関係するので、適切な性能値を算出できるようになる。
【００９４】
また、複数の電力制約の各々は、単位時間内において使用可能な電力の平均値と、単位時間内の第１の時間において使用可能な電力の平均値とを含んでもよい。
【００９５】
最大の消費電力が柔軟に設定されるので、計算装置の処理性能を高めることができるようになる。
【００９６】
また、アプリケーションプログラムのパラメータは、アプリケーションプログラムの引数として設定されるパラメータ、環境変数として設定されるパラメータ、及びアプリケーションプログラムの実行時に参照されるファイル内に設定されるパラメータの少なくともいずれかを含んでもよい。
【００９７】
また、本情報処理装置は、（Ｄ）複数の電力制約それぞれの下で計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した場合、計算装置からデータを取得する取得部（実施の形態における収集部１０３は上記取得部の一例である）をさらに有してもよい。
【００９８】
本実施の形態の第２の態様に係る情報処理システムは、（Ｅ）情報処理装置と、（Ｆ）計算装置とを有する。そして、情報処理装置が、（ｅ１）複数の電力制約それぞれの下で計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した際に取得されたデータに基づき、電力制約からアプリケーションプログラムの性能値を算出するための性能モデルを、アプリケーションプログラムのパラメータの値のセット毎に生成する生成部（実施の形態における生成部１０５は上記生成部の一例である）と、（ｅ２）アプリケーションプログラムのパラメータの値のセット毎に、当該セットについて生成された性能モデルに基づき、複数の電力制約のいずれとも異なる第１の電力制約からアプリケーションプログラムの性能値を算出する算出部（実施の形態における算出部１０７は上記算出部の一例である）と、（ｅ３）算出された性能値のうち最大の性能値に対応する、アプリケーションプログラムのパラメータの値のセットを出力する出力部（実施の形態における制御部１０１は上記出力部の一例である）とを有する。
【００９９】
本実施の形態の第３の態様に係る情報処理方法は、（Ｆ）複数の電力制約それぞれの下で計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した際に取得されたデータに基づき、電力制約からアプリケーションプログラムの性能値を算出するための性能モデルを、アプリケーションプログラムのパラメータの値のセット毎に生成し、（Ｇ）アプリケーションプログラムのパラメータの値のセット毎に、当該セットについて生成された性能モデルに基づき、複数の電力制約のいずれとも異なる第１の電力制約からアプリケーションプログラムの性能値を算出し、（Ｈ）算出された性能値のうち最大の性能値に対応する、アプリケーションプログラムのパラメータの値のセットを出力する処理を含む。
【０１００】
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１０１】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１０２】
（付記１）
複数の電力制約それぞれの下で計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した際に取得されたデータに基づき、電力制約から前記アプリケーションプログラムの性能値を算出するための性能モデルを、前記アプリケーションプログラムのパラメータの値のセット毎に生成する生成部と、
前記アプリケーションプログラムのパラメータの値のセット毎に、当該セットについて生成された前記性能モデルに基づき、前記複数の電力制約のいずれとも異なる第１の電力制約から前記アプリケーションプログラムの性能値を算出する算出部と、
算出された前記性能値のうち最大の性能値に対応する、前記アプリケーションプログラムのパラメータの値のセットを出力する出力部と、
を有する情報処理装置。
【０１０３】
（付記２）
前記データは前記性能値を含み、
前記生成部は、
前記電力制約を説明変数とし且つ前記性能値を目的変数とする前記性能モデルを、前記アプリケーションプログラムのパラメータの値のセット毎に、重回帰分析により生成する、
付記１記載の情報処理装置。
【０１０４】
（付記３）
前記データは前記性能値および前記計算装置の動作に関する指標値を含み、
前記生成部は、
前記電力制約を説明変数とし且つ前記指標値を目的変数とする第１の性能モデルと、前記指標値を説明変数とし且つ前記性能値を目的変数とする第２の性能モデルとを、前記アプリケーションプログラムのパラメータの値のセット毎に、重回帰分析により生成し、
前記指標値は、
前記計算装置におけるプロセッサの動作周波数、前記プロセッサの消費電力、前記プロセッサの温度、及び前記計算装置におけるメモリの消費電力の少なくともいずれかについての値を含む、
付記１記載の情報処理装置。
【０１０５】
（付記４）
前記複数の電力制約の各々は、単位時間内において使用可能な電力の平均値と、前記単位時間内の第１の時間において使用可能な電力の平均値とを含む、
付記１乃至３のいずれか１つ記載の情報処理装置。
【０１０６】
（付記５）
前記アプリケーションプログラムのパラメータは、前記アプリケーションプログラムの引数として設定されるパラメータ、環境変数として設定されるパラメータ、及び前記アプリケーションプログラムの実行時に参照されるファイル内に設定されるパラメータの少なくともいずれかを含む、
付記１乃至４のいずれか１つ記載の情報処理装置。
【０１０７】
（付記６）
前記複数の電力制約それぞれの下で前記計算装置が前記アプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した場合、前記計算装置から前記データを取得する取得部
をさらに有する付記１記載の情報処理装置。
【０１０８】
（付記７）
情報処理装置と、
計算装置と、
を有し、
前記情報処理装置が、
複数の電力制約それぞれの下で前記計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した際に取得されたデータに基づき、電力制約から前記アプリケーションプログラムの性能値を算出するための性能モデルを、前記アプリケーションプログラムのパラメータの値のセット毎に生成する生成部と、
前記アプリケーションプログラムのパラメータの値のセット毎に、当該セットについて生成された前記性能モデルに基づき、前記複数の電力制約のいずれとも異なる第１の電力制約から前記アプリケーションプログラムの性能値を算出する算出部と、
算出された前記性能値のうち最大の性能値に対応する、前記アプリケーションプログラムのパラメータの値のセットを出力する出力部と、
を有する情報処理システム。
【０１０９】
（付記８）
コンピュータに、
複数の電力制約それぞれの下で計算装置がアプリケーションプログラムを当該アプリケーションプログラムのパラメータの値のセット毎に実行した際に取得されたデータに基づき、電力制約から前記アプリケーションプログラムの性能値を算出するための性能モデルを、前記アプリケーションプログラムのパラメータの値のセット毎に生成し、
前記アプリケーションプログラムのパラメータの値のセット毎に、当該セットについて生成された前記性能モデルに基づき、前記複数の電力制約のいずれとも異なる第１の電力制約から前記アプリケーションプログラムの性能値を算出し、
算出された前記性能値のうち最大の性能値に対応する、前記アプリケーションプログラムのパラメータの値のセットを出力する、
処理を実行させるプログラム。
【符号の説明】
【０１１０】
１  利用者端末    ３  ＨＰＣシステム
１１，３１  ＣＰＵ    １２，３２  メモリ
１３，３３  ＨＤＤ    １４，３４  ＮＩＣ
１５，３５  バス
１０１  制御部    １０３  収集部
１０５  生成部    １０７  算出部
１１１  収集データ格納部    １１３  制約データ格納部
１１５  モデルデータ格納部    １１７  出力データ格納部
３０１  計算部    ３０３  処理部
【図１】
2019046338.tif 000003
【図２】
2019046338.tif 000004
【図３】
2019046338.tif 000005
【図４】
2019046338.tif 000006
【図５】
2019046338.tif 000007
【図６】
2019046338.tif 000008
【図７】
2019046338.tif 000009
【図８】
2019046338.tif 000010
【図９】
2019046338.tif 000011
【図１０】
2019046338.tif 000012
【図１１】
2019046338.tif 000013
【図１２】
2019046338.tif 000014
【図１３】
2019046338.tif 000015
【図１４】
2019046338.tif 000016
【図１５】
2019046338.tif 000017
【図１６】
2019046338.tif 000018
【図１７】
2019046338.tif 000019
【図１８】
2019046338.tif 000020
【図１９】
2019046338.tif 000021
【図２０】
2019046338.tif 000022
【図２１】
2019046338.tif 000023
【図２２】
2019046338.tif 000024
【図２３】
2019046338.tif 000025