(57)【要約】  ＳＬＯを達成し、かつ、コストが最小となるような、システムの設計パラメータの組み合わせを自動的に決定する。設計支援装置は、より低いコストでシステムの性能を向上できる可能性の高い設計パラメータの情報を含む探索制御情報をシステムモデルに応じて生成する探索制御情報生成手段と、探索制御情報を用いて分岐限定法により最適解探索を行い最適な設計パラメータの探索を行う最適解探索手段とを備える。
2013179921.tif 000002
【特許請求の範囲】
【請求項１】
システムの設計パラメータとして取りうる値についての情報の入力に応じて、より低いコストでシステムの性能を向上できる可能性の高い設計パラメータの情報を含む探索制御情報を生成する探索制御情報生成手段と、
前記生成された探索制御情報を用いて分岐限定法により最適解探索を行うことによって、サービスレベル目標を達成し、かつ、コストが最小となるような設計パラメータの組み合わせの探索を行う最適解探索手段と
を備えたことを特徴とする設計支援装置。
【請求項２】
前記探索制御情報生成手段は、前記入力された情報に示された設計パラメータの変化がシステムの性能とコストに与える影響の傾向を分析することによって、前記探索制御情報を生成し、
前記最適解探索手段は、前記探索制御情報に示された設計パラメータを優先的に用いて分岐操作を行うことによって、前記最適解探索を行うことを特徴とする請求項１に記載の設計支援装置。
【請求項３】
前記探索制御情報は、前記分析の結果に応じて決定した分岐位置の情報を含み、
前記最適解探索手段は、前記分岐位置を優先的に用いて前記最適解探索を行うことを特徴とする請求項２に記載の設計支援装置。
【請求項４】
前記探索制御情報生成手段は、前記最適解探索のイテレーションごとに、新たに前記探索制御情報を生成することを特徴とする請求項１から３のいずれか１項に記載の設計支援装置。
【請求項５】
制御部を有する情報処理装置において実施される設計支援方法であって、
前記制御部が、システムの設計パラメータとして取りうる値についての情報の入力に応じて、より低いコストでシステムの性能を向上できる可能性の高い設計パラメータの情報を含む探索制御情報を生成する探索制御情報生成ステップと、
前記制御部が、前記生成された探索制御情報を用いて分岐限定法により最適解探索を行うことによって、サービスレベル目標を達成し、かつ、コストが最小となるような設計パラメータの組み合わせの探索を行う最適解探索ステップと
を備えたことを特徴とする設計支援方法。
【請求項６】
コンピュータを
システムの設計パラメータとして取りうる値についての情報の入力に応じて、より低いコストでシステムの性能を向上できる可能性の高い設計パラメータの情報を含む探索制御情報を生成する探索制御情報生成手段、
前記生成された探索制御情報を用いて分岐限定法により最適解探索を行うことによって、サービスレベル目標を達成し、かつ、コストが最小となるような設計パラメータの組み合わせの探索を行う最適解探索手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの設計を自動的に行うための方法に関し、詳細には、一定水準のサービス品質を保証し、かつ、コストが低くなるような、システムの構成や設定を決定するための方法に関する。
【背景技術】
【０００２】
コンピュータシステムの開発時において、開発の委託先（開発者）と委託元（顧客）との間で、あらかじめ性能や稼働率などの非機能要件に関する一定のサービス品質を保証するための契約として、ＳＬＡ（Service Level Agreement）が結ばれることが一般的になっている。【０００３】
ＳＬＡには、客観的に測定可能なサービス品質の目標値を表すＳＬＯ（Service Level Objective：サービスレベル目標）が含まれる。【０００４】
このように、開発者と顧客との間でシステムのサービス品質に関する目標値を設定し、共有することで、構築するシステムのサービス品質に関する認識の相違を防ぐことができる。【０００５】
代表的な非機能要件の一つとして、システム性能がある。システム性能を測るための指標（性能評価指標）としては、システムの処理能力を表す最大スループット、システムに対してデータやコマンドを送ってから指定の処理が終了するまでの時間を表すターンアラウンドタイム、及びメモリやＣＰＵなどの各種リソースの使用率などが用いられる。【０００６】
性能評価指標の値（以降、単に性能と表記する）は、システムを構成するハードウェアのスペック若しくは配置状態、又はアプリケーションソフトウェアの設定などによって変化する。以降、このような、システムの性能に影響を与える変数のことを設計パラメータと表記する。【０００７】
また、一般に、性能に対するＳＬＯとして、最大スループットが所定の値以上であること、ターンアラウンドタイムが所定の時間内であること、全リソースの使用率が所定の範囲内であることなどが指定されることが多い。【０００８】
システム開発時には、これらのＳＬＯを達成できるような設計パラメータの組み合わせを決定する必要がある。しかし、多数の設計パラメータから適切と思われる組み合わせを人手で予測するのは手間がかかる上に、適切な設計パラメータを正しく抽出できるかどうかは、各人の経験やスキルに左右される。【０００９】
よって、コンピュータを用いて、適切な設計パラメータを抽出するための処理を自動化し、効率的かつ確実に、ＳＬＯを達成できるような設計パラメータの組み合わせを導出することが求められる。【００１０】
このような問題は、与えられたある制約条件を満たし、一定の評価基準において評価を最高にするような設計パラメータの組み合わせを決定する、いわゆる組み合わせ最適化問題として定式化することができる。【００１１】
例えば、この組み合わせ最適化問題は、システムのコストをある値以下に抑えた上で、性能が最も良くなるような設計パラメータの組み合わせを決定するという問題や、逆に、ある一定の性能を保証した上で、コストが最も安くなるような設計パラメータの組み合わせを決定するという問題などを解くことになる。【００１２】
このような制約条件の判定や評価基準値の算出を設計段階で行うためには、非機能要件のモデルを構築し、そのモデル上で性能等の値を見積もるのが有効である。例えば、そのような見積もりのためのモデルとしては、階層型待ち行列（ＬＱＮ：Layered Queuing Network）が用いられることが多い。【００１３】
しかし、並列処理や同期処理のような複雑な処理を行うシステムでは、ＬＱＮを解析的に（厳密に）解くことができないため、応答時間や最大スループットの値を閉じた式として得ることはできない。【００１４】
そのため、このような値を求めるには、例えば、そのモデルによって表される処理の様子を模したシミュレーションを行う必要がある。しかし、一般にこのようなシミュレーションには多くの時間を要し、特にモデルが巨大になると、それはますます顕著になる。【００１５】
すなわち、上記の最適化問題を解くためには、制約条件の判定や評価基準値の算出に多くの時間がかかる。そのため、そのような判定や算出の回数をできるだけ減らした効率的な最適化手法が必要となる。【００１６】
この種の公知技術として、非特許文献１では、様々な設計パラメータ決定までの手順をいくつかのフェーズに切り分け、それぞれで異なるアプローチを用いて最適解を探索することで、設計パラメータを自動的かつ効率的に決定する技術が提案されている。【００１７】
具体的には、応答時間とスループットに対するＳＬＯを達成できるようなハードウェアの設計のために、各ホストの性能を表す近似モデルを構築し、ビンパッキング問題を解くことによって、ＣＰＵ数及びジョブの分散割合を決定する。その後、ＬＱＮを用いてシステム全体の性能モデルを構築し、最小構成のソフトウェア設定でシミュレーションを行って、システムの性能を見積もる。ＳＬＯを達成できていない場合には、飽和しているプロセスの数を一つずつ増やしてシミュレーションを繰り返し、ボトルネックが存在しないようなソフトウェア設定を決定している。【００１８】
このように設計パラメータの決定の手順をフェーズに切り分けて行うことにより、全ての設計パラメータを考慮した巨大なＬＱＮモデルを解くためのシミュレーション回数を減らすことができる。
【先行技術文献】
【非特許文献】
【００１９】
【非特許文献１】Thomas Risse、外４名、“Configuration of distributed message converter systems”、2004年、Performance Evaluation、vol. 58、num. 1、p. 43-80
【発明の概要】
【発明が解決しようとする課題】
【００２０】
非特許文献１においては、まず、単体のハードウェアに対する性能の計測結果に応じて、使用するハードウェアの組み合わせを決定し、その後、システム全体の性能がＳＬＯを達成するようにソフトウェアの設定（プロセス数）を変更している。しかしながら、複数のハードウェアが接続されたシステム上で、並列処理や同期処理などの複雑な処理が行われるような場合には、ハードウェアの挙動と、ハードウェアの上で実行されるソフトウェアの挙動とを同時に考慮したシミュレーション等により、システム全体の性能を評価した上で、設計パラメータを決定する必要がある。また、上記の公知技術では、使用するハードウェアの組み合わせはランダムに選ばれており、コストについては考慮されていないため、ＳＬＯを達成し、かつ、コストが最小となるような、最適な設計パラメータの組み合わせが得られるとは限らない。【００２１】
本発明は、上記の事情を鑑みてなされたものであり、ＳＬＯを達成し、かつ、コストが最小となるような、システムの設計パラメータの組み合わせを自動的に決定可能な設計支援装置、設計支援方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明に係る設計支援装置は、システムの設計パラメータとして取りうる値についての情報の入力に応じて、より低いコストでシステムの性能を向上できる可能性の高い設計パラメータの情報を含む探索制御情報を生成する探索制御情報生成手段と、前記生成された探索制御情報を用いて分岐限定法により最適解探索を行うことによって、サービスレベル目標を達成し、かつ、コストが最小となるような設計パラメータの組み合わせの探索を行う最適解探索手段とを備えたことを特徴とする。【００２３】
本発明に係る設計支援方法は、制御部を有する情報処理装置において実施される設計支援方法であって、前記制御部が、システムの設計パラメータとして取りうる値についての情報の入力に応じて、より低いコストでシステムの性能を向上できる可能性の高い設計パラメータの情報を含む探索制御情報を生成する探索制御情報生成ステップと、前記制御部が、前記生成された探索制御情報を用いて分岐限定法により最適解探索を行うことによって、サービスレベル目標を達成し、かつ、コストが最小となるような設計パラメータの組み合わせの探索を行う最適解探索ステップとを備えたことを特徴とする。【００２４】
本発明に係るプログラムは、コンピュータを、システムの設計パラメータとして取りうる値についての情報の入力に応じて、より低いコストでシステムの性能を向上できる可能性の高い設計パラメータの情報を含む探索制御情報を生成する探索制御情報生成手段、前記生成された探索制御情報を用いて分岐限定法により最適解探索を行うことによって、サービスレベル目標を達成し、かつ、コストが最小となるような設計パラメータの組み合わせの探索を行う最適解探索手段として機能させることを特徴とする。
【発明の効果】
【００２５】
本発明によれば、ＳＬＯを達成し、かつ、コストが最小となるような、システムの設計パラメータの組み合わせを自動的に決定可能な設計支援装置、設計支援方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１の実施形態に係る設計支援装置の構成を表すブロック図である。
【図２】図１の設計支援装置におけるシステムモデルの例を表す図である。
【図３】あるサーバに関する設計パラメータが作る領域の分割方法の一例を表す図である。
【図４】図２のシステムモデルにおいて、Ｗｅｂ／ＡＰサーバに使用可能な製品の性能とコストの関係を表したグラフである。
【図５】図２のシステムモデルにおいて、Ｗｅｂ／ＡＰサーバに使用可能な製品の性能とコストの関係を表したグラフである。
【図６】図２のシステムモデルにおいて、ＤＢサーバに使用可能な製品の性能とコストの関係を表したグラフである。
【図７】図２のシステムモデルにおいて、ＤＢサーバに使用可能な製品の性能とコストの関係を表したグラフである。
【図８】あるサーバに関する設計パラメータについての探索領域の分割方法の一例を表す図である。
【図９】図２のシステムモデルにおいて、探索すべき領域の全体を表す図である。
【図１０】図２のシステムモデルにおいて、Ｗｅｂ／ＡＰサーバの変数条件に対する分岐を行う際、優先的に分岐すべき方向を表す図である。
【図１１】図２のシステムモデルにおいて、ＤＢサーバの変数条件に対する分岐を行う際、優先的に分岐すべき方向を表す図である。
【図１２】領域Ｎ２における最小コストの点を示す図である。
【図１３】領域Ｎ２における最低性能の点を示す図である。
【図１４】図１の設計支援装置による処理を示すフローチャートである。
【図１５】本発明の第２の実施形態に係る設計支援装置の構成を表すブロック図である。
【図１６】図１５の最適設計支援装置におけるシステムモデルにおいて、あるサーバに使用可能な製品の性能とコストの関係を表したグラフである。
【図１７】図１６に示された製品について、設計パラメータを変更したときに、探索領域Ｎで取り得る性能値とコストの増減の傾向を表したグラフである。
【図１８】図１６に示された製品について、設計パラメータを変更したときに、探索領域Ｎ’で取り得る性能値とコストの増減の傾向を表したグラフである。
【発明を実施するための形態】
【００２７】
以下、本発明を実施するための好適な形態について、図面を参照して詳述する。ただし、発明の範囲をこれらに限定するものではない。
［実施形態１］
図１は、本実施形態における設計支援装置１の構成を表すブロック図である。設計支援装置１は、具体的には、プログラムに従って動作するコンピュータ等の情報処理装置によって実現される。
【００２８】
設計支援装置１は、探索制御情報生成手段１１と、最適解探索手段１２とを備える。また、図示しないが、設計支援装置１は、一般的な情報処理装置が備える構成と同様に、制御部（例えば、ＣＰＵ）、記憶部（例えば、ＲＡＭ、ハードディスク）、及び入出力部（例えば、通信部、操作部、ディスプレイ、ＵＳＢコネクタ）を備える。
【００２９】
探索制御情報生成手段１１は、システムの設計情報として入力されたシステムモデルの情報に応じて、最適な設計パラメータの組み合わせを決定するために適切な探索方法を表す探索制御情報を生成する。
【００３０】
システムモデルの情報は、機械処理可能な形式で記述されている。システムモデルの情報には、例えば、システムを構成するハードウェア及びソフトウェアを含む各要素の接続状態の情報、システムのＳＬＯに影響するサーバの台数やＣＰＵ数などの各種設計パラメータの情報、及び設計パラメータの取り得る値の範囲の情報が含まれる。すなわち、システムモデルの情報には、システムのハードウェア及びソフトウェアに関して、設計パラメータの種類についての情報とこれらの設計パラメータが取りうる値についての情報とが含まれている。
【００３１】
探索制御情報とは、システムモデルの情報に記述されている各種設計パラメータの中から、ＳＬＯを達成し、かつ、コストを最小とするような設計パラメータの組み合わせ（最適パラメータセット）を探索するための探索方法を表す情報である。より具体的には、探索制御情報には、各種設計パラメータの値を変更した場合のシステムの性能とコストの変化の傾向をもとに得られた情報を含み、より低いコストで性能を向上できる可能性の高い設計パラメータについての情報を含む。
【００３２】
図２に、システムモデルの具体例を示す。図２のシステムモデルには、クライアントのコンピュータと、Ｗｅｂ／ＡＰサーバと、ＤＢサーバとがネットワークを介して直列に接続されていることが記述されている。また、このシステムモデルには、Ｗｅｂ／ＡＰサーバには製品ｘ０〜ｘ５を１〜５台、ＤＢサーバには製品ｙ０〜ｙ５を１〜１０台使用できることが記述されている。すなわち、このシステムモデルにおける設計パラメータとしては、各サーバの台数の情報、及び使用する製品の種類を表すインデックスの情報が定義されている。ここで、各サーバの製品のインデックスを変更することは、サーバとして別の製品の使用することを表す。別の製品が使用されると、ＣＰＵのコア数やクロック周波数などのハードウェアに依存する設計パラメータの値が一括で変化する。ここで、インデックスは、各製品に対して、性能が高い製品ほど、高い値となるように付されている。
【００３３】
また、システムモデルは、図２に示したような、システムの構造を表すモデルだけではなく、各サーバ上で行われている処理の流れなどを記述した、システムの振る舞いを表すモデル等を含んでもよい。
【００３４】
図２のシステムモデルにおいて、システムの性能を向上させるための設計パラメータの変更方法として、例えば、サーバ台数を増やす方法が考えられる。また、既述の通り、製品のインデックス（ｘ０〜ｘ５）は製品のスペックの低い順にソートされている。そのため、他の設計パラメータの変更方法として、製品インデックスの値を増加させる方法も考えられる。
【００３５】
すなわち、図３に示すように、設計パラメータの探索領域に関する変数条件の分岐条件として、探索領域をサーバ台数軸で分割する（Ｎ１，Ｎ２）、又は製品インデックス軸で分割する（Ｎ１’，Ｎ２’）という二通りの分岐条件が考えられる。
【００３６】
ここで、図４に示すグラフは、図２のシステムモデルにおいて、Ｗｅｂ／ＡＰサーバとして使用可能な製品の候補ｘ０〜ｘ５の性能とコストの関係を表している。
図５に示すグラフは、Ｗｅｂ／ＡＰサーバの製品候補ｘ０〜ｘ５の性能とコストの関係に加えて、Ｗｅｂ／ＡＰサーバの台数を増やした場合における性能とコストの関係を表している。図５のグラフから把握できるように、Ｗｅｂ／ＡＰサーバに関しては、製品インデックスを増やした場合の方が、サーバ台数を増やした場合よりも、グラフの傾きが小さい。つまり、製品インデックスを増やした場合の方が、サーバ台数を増やした場合よりも、低いコストで性能を向上させることができる。すなわち、Ｗｅｂ／ＡＰサーバに関しては、良質な（より最適に近いと思われる）設計パラメータは、製品インデックスを増やした探索領域に含まれている可能性が高いと推測できる。
【００３７】
一方、図６に示すグラフは、図２のシステムモデルにおいて、ＤＢサーバとして使用可能な製品の候補ｙ０〜ｙ５の性能とコストの関係を表している。
図７に示すグラフは、ＤＢサーバの製品候補ｙ０〜ｙ５の性能とコストの関係に加えて、ＤＢサーバの台数を増やした場合における性能とコストの関係を表している。図７のグラフから把握できるように、ＤＢサーバに関しては、サーバ台数を増やした場合の方が、製品インデックスを増やした場合よりも、グラフの傾きが小さくなる。つまり、サーバ台数を増やした場合の方が、製品インデックスを増やした場合よりも、低いコストで性能を向上できる可能性の高い。そのため、ＤＢサーバに関しては、サーバ台数を増やした探索領域の方が、良質な設計パラメータが含まれている可能性が高いと推測できる。
【００３８】
以上のように、本実施形態では、より低いコストで性能を向上できる可能性の高い設計パラメータは、Ｗｅｂ／ＡＰサーバについては、製品インデックスの設計パラメータであり、ＤＢサーバについては、台数の設計パラメータである。従って、探索制御情報は、Ｗｅｂ／ＡＰサーバの設計パラメータとして製品インデックスについての情報を含み、ＤＢサーバの設計パラメータとして台数についての情報を含む。
【００３９】
また、探索制御情報は、後述する分岐限定法による分岐操作に用いられる分岐位置の情報をさらに含んでもよい。この分岐位置の情報は、システムモデル１３に示されている設計パラメータの変化がシステムの性能とコストに与える影響の傾向を分析することによって、特定される。例えば、探索制御情報生成手段１１は、まず、各種の設計パラメータのうち、より低いコストで性能を向上できる前述の設計パラメータ（第１の設計パラメータ）と同様の効果を有する設計パラメータ（第２の設計パラメータ）を特定する。探索制御情報は、第１の設計パラメータの変数条件に関する分岐位置における性能の予測値とほぼ同程度の性能となるような第２の設計パラメータの分岐位置に関する情報と、第２の設計パラメータのこの分岐位置の性能のコストがより安くなる設計パラメータを示す情報とを含んでも良い。
【００４０】
例えば、図３の例では、サーバ台数及び製品インデックスの変数条件に関する分岐位置を、各種設計パラメータの値が半分になる位置としている。探索制御情報生成手段１１は、まず、図８に示すように、製品インデックスに関する分岐位置について、サーバ台数の値を半分にした位置Ａでの予測性能と最も近くなるような製品インデックスの位置Ｂを分岐位置として特定する。探索制御情報は、この位置Ｂの情報を含んでもよい。また、探索制御情報は、該分岐位置までの性能とコストの傾向をもとに、より安いコストで性能を向上させることができる設計パラメータを示す情報を含んでも良い。
【００４１】
最適解探索手段１２は、分岐限定法を用いて、前記探索制御情報に示された分岐方法（例えば、上述の設計パラメータの情報、分岐位置の情報）に従った探索を行い、最適パラメータセットを決定する。分岐限定法を用いた最適解の探索方法は、公知の技術であるが、本実施形態において、図１に示すような構成の最適解探索手段１２を用いて最適な設計パラメータセットを決定するまでの具体的な処理の流れを以下に説明する。
【００４２】
図１に示すように、最適解探索手段１２は、探索領域決定手段１２１、最適可能性判定手段１２２、サービスレベル評価手段１２３、最適パラメータセット決定手段１２４、及び最適パラメータセット記憶手段１２５を含む。
【００４３】
探索領域決定手段１２１は、システムモデル１３と、探索制御情報生成手段１１で生成された探索制御情報とに基づいて、探索領域を複数の探索領域に分岐（子ノードを生成）して、分岐限定法による探索の各イテレーションにおいて、探索を行う領域（子ノード）の順序を決定する。具体的には、探索領域決定手段１２１は、まず、システムモデルに記述されている各種設計パラメータの定義域（探索領域）を探索制御情報が示す設計パラメータに関する変数条件で優先的に複数の探索領域に分岐する。探索領域決定手段１２１は、その後、分岐した探索領域の探索順序を決定する。
【００４４】
探索領域決定手段１２１は、設計パラメータに関して、それ以上の分岐が行えない（例えば、整数値しか取ることのできない設計パラメータの場合、探索領域における該設計パラメータの最小値と最大値の差が１以下である）場合、別の設計パラメータに関する分岐を行う。
【００４５】
ここで、探索領域決定手段１２１の動作の例を図２のシステムモデルを用いて説明する。ここでは、４つの設計パラメータ（Ｗｅｂ／ＡＰサーバの台数及び製品インデックス、並びにＤＢサーバの台数及び製品インデックス）を考慮している。それぞれの設計パラメータの定義域は次のとおりである。
・Ｗｅｂ／ＡＰサーバの台数：１〜５
・Ｗｅｂ／ＡＰサーバの製品インデックス：ｘ０〜ｘ５
・ＤＢサーバの台数：１〜１０
・ＤＢサーバの製品インデックス：ｙ０〜ｙ５
図９は、探索領域の全体を示している。以下、この探索領域を、初期ノード：Ｎ０として表記する。
【００４６】
探索領域決定手段１２１は、Ｎ０に含まれる最適な設計パラメータの組み合わせを決定するための探索を効率的に行うため、分岐限定法により、Ｎ０に対する分岐操作を行う。この際、探索領域決定手段１２１は、探索制御情報生成手段１１で生成された探索制御情報に従って分岐操作を行う。例えば、Ｗｅｂ／ＡＰサーバについては、探索領域決定手段１２１は、図１０のように製品インデックスの値を分岐する方向を優先する。一方、ＤＢサーバについては、探索領域決定手段１２１は、図１１のように台数の値を分岐する方向を優先する。ここでは、例として、該設計パラメータの最小値と最大値の中間地点で分岐した場合を図示しているが、この分岐位置については、Ｎ０における該設計パラメータの最小値と最大値の範囲に含まれている限り任意である。
【００４７】
最適可能性判定手段１２２は、分岐限定法を用いた探索を効率化するための処理として、いわゆるカットオフ又は枝刈りと呼ばれる処理を行う。すなわち、最適可能性判定手段１２２は、探索領域決定手段１２１によって分岐された各探索領域（子ノード）内に最適パラメータセットが含まれ得るかの判定を行う。最適パラメータセットが含まれ得ない子ノード（すなわち、最適可能性のない子ノード）については、それ以降の探索を打ち切る。
【００４８】
具体的には、最適可能性判定手段１２２は、まず、子ノード内に存在するコストが最小となるパラメータセットのコストと、最適パラメータセット記憶手段１２５に記憶されている最適パラメータセットのコストとを比較する。前者の方が後者よりも低い場合、最適可能性判定手段１２２は、子ノードは最適可能性があると判定する。一方、前者の方が後者よりも高い場合、最適可能性判定手段１２２は、その子ノードは最適可能性がないと判定し、その子ノードについての探索を打ち切り、別の子ノードに対して探索を行う。ここで、ある設計パラメータセットについてのコストは、各ハードウェア製品（サーバやルータなど）の価格（及びソフトウェアの調達価格）と、それらの数とから、容易に算出することができる。価格についての情報は、設計支援装置１の外部から入力され、又は設計支援装置１の図示しない記憶手段に予め記憶されている。
【００４９】
例えば、図１２において、子ノードＮ２に含まれるコスト最小の点Ｃ２のコストが、その時点での最適パラメータセットのコストＣ０よりも高い場合、子ノードＮ２に含まれるパラメータセットは、全てＣ０よりもコストが高くなる。そのため、サービスレベル（ＳＬＯの達成／未達成）に関わらず、子ノードＮ２に含まれる設計パラメータの組み合わせは最適解にはなり得ない。よって、子ノードＮ２については、それ以降の探索を打ち切ることができる。
【００５０】
サービスレベル評価手段１２３は、最適可能性判定手段１２２において、最適可能性があると判定された子ノードの実行可能性（すなわちこの子ノードの含まれる設計パラメータセットにより設計されたシステムがＳＬＯを達成しているかどうか）を判定する。具体的には、この子ノードに含まれる設計パラメータセットを用いて設計されたシステムのサービスレベルを予測し、ＳＬＯを達成しているかどうかを判定する。システムのサービスレベルは、例えば、ある設計パラメータセットにおけるシステムの挙動を模したシミュレーションを行うことによって予測することができる。
【００５１】
例えば、図１３において、Ｎ２が最適可能性ありと判定された場合に、Ｎ２の実行可能性（すなわち、Ｎ２に含まれるパラメータセットでのシステムの性能がＳＬＯを達成しているかどうか）を調べる。ここで、製品インデックスは、製品の性能順にソートされているため、Ｎ２の左端点Ｌ２が、Ｎ２において最も性能が低いパラメータセットになる。よって、Ｌ２での性能がＳＬＯを達成していれば、Ｎ２に含まれる全パラメータセットでＳＬＯを達成する、すなわちＮ２が実行可能領域であることがわかる。
【００５２】
最適パラメータセット決定手段１２４は、最適解探索のイテレーションにおいて、その時点で最適と思われるパラメータセットを決定する。具体的には、最適パラメータセット決定手段１２４は、まず、サービスレベル評価手段１２３により実行可能であると判定された探索領域（子ノード）に含まれるパラメータセットのうち最も低いコストと、既に求められている最適パラメータセットでのコストとを比較する。最適パラメータセット決定手段１２４は、比較の結果、低い方を最適パラメータセット及びそのコストとして最適パラメータセット記憶手段１２５に記憶する。一方、該探索領域が実行不可能であると判定された場合には、最適パラメータセットは更新されない。
【００５３】
最適パラメータセット記憶手段１２５は、最適パラメータセット決定手段１２４によって決定された最適パラメータセットを記憶する。最適パラメータセット記憶手段１２５は、磁気ディスク装置や光ディスク装置等の記憶装置によって実現される。
【００５４】
次に、図１４を参照し、図１に示した設計支援装置１における処理について詳細に説明する。この処理は、設計支援装置１が備える制御部（図示せず）が記憶部（図示せず）に記憶されたプログラムを展開し実行することによって制御される。
【００５５】
まず、ステップＡ１で、探索制御情報生成手段１１は、入力されたシステムモデル１３に記述されている各種設計パラメータ、及びそれらの取り得る値の範囲に関する情報を抽出する。
【００５６】
ステップＡ２で、探索制御情報生成手段１１は、抽出された情報をもとに、探索制御情報を生成する。探索制御情報には、より低いコストで性能を向上させることができる設計パラメータについての情報が含まれている。また、分岐限定法による最適解探索で用いられる分岐位置の情報が含まれていてもよい。探索制御情報の生成処理の詳細は、前述のとおりである。続いて、最適解探索手段１２は、探索制御情報を利用して、分岐限定法を用いた最適パラメータセットの探索を行う。詳細には、この探索は、探索制御情報に示された設計パラメータ（及び分岐位置）を優先的に用いて分岐操作を行うことによって、行われる。
【００５７】
ステップＡ３で、最適解探索手段１２は、分岐された領域のうち、未探索の領域が存在するかを判定する。ステップＡ３で未探索の領域が存在しないと判定された場合、処理は終了する。
【００５８】
ステップＡ３で未探索の領域が存在すると判定された場合には、ステップＡ４で、最適解探索手段１２は、探索制御情報が示す分岐方法で該未探索領域の分割を行い、探索領域Ｎを決定する。
【００５９】
次に、ステップＡ５で、最適解探索手段１２は、領域Ｎに含まれる、コストが最小のパラメータセットでのシステムのコスト（minCost(N)）を計算し、その時点で見つかっている最適パラメータセットでのシステムのコスト（minCost）と比較する。minCostの値は最適パラメータセット記憶手段１２５に記憶されている。minCost(N) ≧ minCostの場合、処理はステップＡ３へ進む。
minCost(N) < minCostの場合には、ステップＡ６で、最適解探索手段１２は、領域Ｎに含まれる設計パラメータでのサービスレベルを予測する。
【００６０】
ステップＡ７で、最適解探索手段１２は、予測されたサービスレベルがＳＬＯを達成しているかを判定する。達成されている場合は、領域Ｎが実行可能であると判定される。達成されていない場合は、領域Ｎが実行不可能であると判定され、処理はステップＡ３へ進む。
【００６１】
領域Ｎが実行可能であると判定された場合、ステップＡ８で、最適解探索手段１２は、該設計パラメータで最適パラメータセットを更新する。その後、処理はステップＡ３に戻り、別の領域での探索を行い、未探索の領域がなくなるまで、ステップＡ４〜Ａ８の処理を繰り返す。
【００６２】
なお、本実施形態においては、システムに対する非機能要件として性能を例に挙げて説明しているが、これに限定されない。各種設計パラメータに対して評価指標の値が単調増加となるように、該設計パラメータの値をソートすることが可能な非機能要件に対しても、本発明を適用することが可能である。
【００６３】
以上のように、本実施形態によれば、探索制御情報生成手段１１は、システムモデルに設計情報として記述されている各種設計パラメータの値の変化が、システムのサービスレベルとコストに与える影響の傾向を分析し、探索制御情報を生成する。すなわち、コンピュータシステムの設計では、各サーバとして使用できる製品の候補があらかじめ決まっていたり、サーバごとに使用可能な製品の種類が異なったりするという特有の問題に対応するために、探索制御情報生成手段１１は、システムモデルに含まれている製品の処理能力と価格の関係の情報から探索方法を決定する。
また、最適解探索手段１２は、探索制御情報に基づいて、探索領域の適切な分岐方法（例えば、優先的に分岐すべき設計パラメータや分岐位置）を決定する。最適解探索手段１２は、決定した分岐方法に従って分岐操作を行う分岐限定法を用いることによって、ＳＬＯを達成し、かつ、コストが最小となるような設計パラメータの組み合わせを決定する。その結果、探索制御情報生成手段１１は、ＳＬＯ（サービスレベル目標）を達成し、かつ、コストが最小となるような設計パラメータの組み合わせを自動的、かつ、効率的に決定することができる。
【００６４】
［実施形態２］
以下、本発明の実施形態２について、図面を参照して詳述する。
図１５は、第２の実施形態における設計支援装置の構成を表すブロック図である。設計支援装置２は、図１の設計支援装置１と同様の構成を備えるが、構成の結合関係が異なる。処理としては、実施形態１では、分岐限定法を用いた最適解探索の全てのイテレーションで、同じ探索制御情報が用いられた。これに対し、実施形態２の処理では、イテレーションごとに新たに生成した探索制御情報を用いて（すなわち、探索領域ごとに分岐方法を変更して）最適解探索を行う。
【００６５】
例えば、サーバとして使用可能な製品の候補の性能とコストとの間に、図１６のグラフに示すような関係がある場合を考える。図１７に示すような領域Ｎ（取り得る製品インデックスの値：ｚ０〜ｚ９）においては、製品インデックスを増やした場合の方が、サーバ台数を増やした場合よりも、グラフの傾きが小さい。一方、図１８に示すような領域Ｎ’（取り得る製品インデックスの値：ｚ３〜ｚ９）においては、サーバ台数を増やした場合の方が、製品インデックスを増やした場合よりもグラフの傾きが小さくなる。
【００６６】
すなわち、探索制御情報を探索領域ごとに生成し直すことで、新たに生成された探索制御情報は、より安いコストで性能を向上させることができると考えられる設計パラメータについての情報をより高い精度で示すこととなる。
【００６７】
以上のように、本実施形態によれば、探索制御情報生成手段１１は、分岐限定法を用いた最適解探索のイテレーションごとに、探索制御情報を新たに生成する。最適解探索手段１２は、新たに生成された探索制御情報を用いて分岐操作を行い、分岐限定法による最適解探索を行う。その結果、ＳＬＯを達成し、かつ、コストが最小となるような、最適な設計パラメータの組み合わせをより効率的に決定することができる。
【００６８】
以上、本発明を好適な実施形態に基づいて説明したが、本発明の設計支援装置は、上記実施形形態の構成にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも本発明の範囲に含まれる。
【００６９】
この出願は、２０１２年５月２９日に出願された日本出願特願２０１２−１２２３８７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【００７０】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００７１】
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７２】
（付記１）システムの設計パラメータとして取りうる値についての情報の入力に応じて、より低いコストでシステムの性能を向上できる可能性の高い設計パラメータの情報を含む探索制御情報を生成する探索制御情報生成手段と、
前記生成された探索制御情報を用いて分岐限定法により最適解探索を行うことによって、サービスレベル目標を達成し、かつ、コストが最小となるような設計パラメータの組み合わせの探索を行う最適解探索手段と
を備えたことを特徴とする設計支援装置。
【００７３】
（付記２）前記探索制御情報生成手段は、前記入力された情報に示された設計パラメータの変化がシステムの性能とコストに与える影響の傾向を分析することによって、前記探索制御情報を生成し、
前記最適解探索手段は、前記探索制御情報に示された設計パラメータを優先的に用いて分岐操作を行うことによって、前記最適解探索を行うことを特徴とする付記１に記載の設計支援装置。
【００７４】
（付記３）前記探索制御情報は、前記分析の結果に応じて決定した分岐位置の情報を含み、
前記最適解探索手段は、前記分岐位置を優先的に用いて前記最適解探索を行うことを特徴とする付記２に記載の設計支援装置。
【００７５】
（付記４）前記探索制御情報生成手段は、前記最適解探索のイテレーションごとに、新たに前記探索制御情報を生成することを特徴とする付記１から３のいずれか１つに記載の設計支援装置。
【００７６】
（付記５）制御部を有する情報処理装置において実施される設計支援方法であって、
前記制御部が、システムの設計パラメータとして取りうる値についての情報の入力に応じて、より低いコストでシステムの性能を向上できる可能性の高い設計パラメータの情報を含む探索制御情報を生成する探索制御情報生成ステップと、
前記制御部が、前記生成された探索制御情報を用いて分岐限定法により最適解探索を行うことによって、サービスレベル目標を達成し、かつ、コストが最小となるような設計パラメータの組み合わせの探索を行う最適解探索ステップと
を備えたことを特徴とする設計支援方法。
【００７７】
（付記６）コンピュータを
システムの設計パラメータとして取りうる値についての情報の入力に応じて、より低いコストでシステムの性能を向上できる可能性の高い設計パラメータの情報を含む探索制御情報を生成する探索制御情報生成手段、
前記生成された探索制御情報を用いて分岐限定法により最適解探索を行うことによって、サービスレベル目標を達成し、かつ、コストが最小となるような設計パラメータの組み合わせの探索を行う最適解探索手段
として機能させるためのプログラム。
【符号の説明】
【００７８】
１、２  設計支援装置
１１    探索制御情報生成手段
１２    最適解探索手段
１２１  探索領域決定手段
１２２  最適可能性判定手段
１２３  サービスレベル評価手段
１２４  最適パラメータセット決定手段
１２５  最適パラメータセット記憶手段
１３    システムモデル
１４    最適パラメータセット
【図１】
2013179921.tif 000003
【図１４】
2013179921.tif 000004
【図１５】
2013179921.tif 000005
【図２】
2013179921.tif 000006
【図３】
2013179921.tif 000007
【図４】
2013179921.tif 000008
【図５】
2013179921.tif 000009
【図６】
2013179921.tif 000010
【図７】
2013179921.tif 000011
【図８】
2013179921.tif 000012
【図９】
2013179921.tif 000013
【図１０】
2013179921.tif 000014
【図１１】
2013179921.tif 000015
【図１２】
2013179921.tif 000016
【図１３】
2013179921.tif 000017
【図１６】
2013179921.tif 000018
【図１７】
2013179921.tif 000019
【図１８】
2013179921.tif 000020
【国際調査報告】
2013179921.tif 000021
2013179921.tif 000022
2013179921.tif 000023