実施形態1.
以下、本発明の第1の実施形態を図面を参照して説明する。図1は、本発明による有効プロセッサコア配置装置の第1の実施形態の構成例を示すシステム構成図である。図1に示す有効プロセッサコア配置装置であるサーバ装置100は、プロセッサ201〜204と、メモリ401、402と、BMC(ベースボード・マネージメント・コントローラ)500と、表示装置600とを備えている。
サーバ装置100は、プロセッサを起動または停止させることによって、サーバ装置100自身の処理能力を動的に変動させるキャパシティ・オン・デマンド機能を有する。サーバ装置100は、キャパシティ・オン・デマンド機能を提供するために、ユーザに対して図2に示す有効プロセッサコア設定画面610を、表示装置600を介して提供する。
図1に示すサーバ装置100は、4個のプロセッサ201〜204を搭載することができる4プロセッサソケットのサーバ装置である。なお、サーバ装置100は、4個以外のプロセッサを含んでいてもよい。
各々のプロセッサ201〜204は、サーバ装置100においてソフトウェアを動作させるハードウェアであり、プロセッサコア、周辺回路などから構成される。各プロセッサ201〜204は、互いに接続されている。
各々のプロセッサ201〜204は、4個のプロセッサコアを有する。プロセッサコアは、プロセッサ201〜204の中核となり、演算装置、命令や情報を格納するレジスタを有し、演算処理等を行う部分である。
図1に示すように、プロセッサ201は、4個のプロセッサコア311〜314を有する。プロセッサ202は、4個のプロセッサコア321〜324を有する。
プロセッサ203は、4個のプロセッサコア331〜334を有する。プロセッサ204は、4個のプロセッサコア341〜344を有する。
なお、プロセッサ201〜204は、4個以外のプロセッサコアを有するプロセッサでもよい。
各プロセッサ201〜204は、メモリを接続することができる。図1には、プロセッサ202にメモリ401が、プロセッサ203にメモリ402が接続されている例が示されている。また各プロセッサ201〜204は、BMC500と接続されている。
BMC500は、各プロセッサコア311〜344を有効または無効に設定する機能を有する。またBMC500は、各プロセッサ201〜204、各プロセッサコア311〜344および各メモリ401、402の障害履歴を保持している。
表示装置600は、有効プロセッサコア設定画面610を表示する機能を有する。表示装置600は、BMC500と接続されている。ユーザは、キーボード及びマウスを介して、表示装置600が表示する画面に数値等を入力する。
なお、表示装置600を使用せずに、BIOS(Basic Input/Output System)設定画面に有効プロセッサコア設定画面610を含め、サーバ装置100自身の通常のVGA(Video Graphics Array)画面やキーボード及びマウスを介して入力を行ってもよい。
また、BMC500が持つLAN(Local Area Network)ポートを用いて、有効プロセッサコア設定画面610を表示する別のサーバ装置からネットワークを経由してBMC500に接続し、入力を行ってもよい。
図2は、本発明による有効プロセッサコア設定画面610の第1の表示例を示す説明図である。有効プロセッサコア設定画面610は、最大プロセッサソケット数の入力欄611と、最大プロセッサコア数の入力欄612と、優先するサーバ特性を選択するためのラジオボタン613と、OKボタン614と、キャンセルボタン615とを有している。
最大プロセッサソケット数の入力欄611には、ユーザが各々のプロセッサコア311〜344を有効に設定する際に、使用する最大プロセッサソケット数が入力される。同様に、最大プロセッサコア数の入力欄612には、ユーザが各々のプロセッサコア311〜344を有効に設定する際に、使用する最大プロセッサコア数が入力される。
ラジオボタン613によって選択される優先するサーバ特性には、「プロセッサ処理性能優先」、「メモリレイテンシ優先」および「省電力優先」の3種類の特性がある。
「プロセッサ処理性能優先」を選択した場合、最大プロセッサソケット数や最大プロセッサコア数の制約を超えない範囲で、各プロセッサ201〜204に割り当てられる有効なプロセッサコアの数が平準化される。
有効なプロセッサコアの数が平準化される場合には、プロセッサ201〜204に搭載されているプロセッサコア311〜344のうち、動作しているプロセッサコアの数を少なくすることができる。
動作しているプロセッサコアの数が少ない場合、熱設計電力のうち未使用の電力を用いて、プロセッサコアの動作周波数を定格周波数以上に向上させるターボブースト機能を有効に働かせることができる。ターボブースト機能を有効にすると、サーバ装置100は、プロセッサ処理性能を高めることができる。
「メモリレイテンシ優先」を選択した場合、最大プロセッサソケット数や最大プロセッサコア数の制約を超えない範囲で、容量の多いメモリが接続されているプロセッサ202またはプロセッサ203に、優先的に有効なプロセッサコアが割り当てられる。
メモリレイテンシは、例えば、プロセッサコアがメモリに対して読み出し命令または書き込み命令を出してから、実際に読み出しまたは書き込みが行われるまでの遅延時間である。
容量の多いメモリほど読み出しまたは書き込みが行われる確率が高いという前提が成り立つのであれば、容量の多いメモリが接続されているプロセッサ202またはプロセッサ203に優先的に有効なプロセッサコアを割り当てることによって、メモリとプロセッサコアとの間の平均的な中継設備の数である平均ホップ数を最小にすることができる。
よって、平均ホップ数を最小にすると、サーバ装置100は、メモリレイテンシを短くすることができる。
「省電力優先」を選択した場合、最大プロセッサソケット数や最大プロセッサコア数の制約を超えない範囲で、有効なプロセッサコアが必要最小限の数のプロセッサに集約される。
有効なプロセッサコアが必要最小限の数のプロセッサに集約されることで、搭載されているプロセッサコアが動作しないプロセッサは、プロセッサコアとプロセッサとのプロセッサ間インタフェースやメモリインタフェース等へのクロック供給を停止する。
クロック供給が停止されることで、サーバ装置100は、プロセッサを省電力モードへ移行することができる。よって、サーバ装置100は、電力消費量を小さくすることができる。
OKボタン614は、最大プロセッサソケット数の入力欄611および最大プロセッサコア数の入力欄612に入力された設定と、ラジオボタン613によって選択された設定を反映する機能を有する。キャンセルボタン615は、入力および選択された設定を取り消す機能を有する。
ユーザは、保有するソフトウェア・ライセンスの情報や、サーバの優先すべき特性を鑑みて、使用する最大プロセッサソケット数を入力欄611に、使用する最大プロセッサコア数を入力欄612に入力し、優先するサーバ特性をラジオボタン613によって選択する。入力および選択された設定は、OKボタン614を押下することでサーバ装置100に反映される。
有効プロセッサコア設定画面610で最大プロセッサソケット数及び最大プロセッサコア数の入力と優先するサーバ特性の選択が行われると、BMC500は、入力された最大プロセッサソケット数と最大プロセッサコア数、選択された優先するサーバ特性から、最適となるプロセッサコアの配置を自動的に算出し、各プロセッサコア311〜344を有効または無効に設定する。
なお、サーバ装置100において、プロセッサの物理的なソケット数は、プロセッサの数と同じ4個となる。図1に示す例では、プロセッサソケット数は4である。
しかし、例えば、プロセッサ201からプロセッサ203のみ有効なプロセッサコアを有し、プロセッサ204が有効なプロセッサコアを有さない場合、プロセッサ204はソフトウェアから使用することができない。
一般的なソフトウェア・ライセンスにおけるプロセッサソケット数は、ソフトウェアから使用することのできるプロセッサ201〜204の数に相当する。その場合、サーバ装置100のプロセッサソケット数は3個となる。そのため、ソフトウェア・ライセンスとしては3プロセッサソケット分のみ必要となる。
また、反対に、3プロセッサソケット分のソフトウェア・ライセンスを保有する場合、サーバ装置100は、3個を超えない範囲で任意のプロセッサを有効にすることができる。同様に、5プロセッサコア分のソフトウェア・ライセンスを保有する場合、サーバ装置100は、5個を超えない範囲で任意のプロセッサコアを有効にすることができる。
以下、本発明の動作を説明する。最初に、優先するサーバ特性としてラジオボタン613によって「プロセッサ処理性能優先」が選択され、OKボタン614が押下された場合のサーバ装置100の動作を図3のフローチャートを参照して説明する。図3は、第1の実施形態における「プロセッサ処理性能優先」が選択された場合のサーバ装置100の動作を示すフローチャートである。
具体例として、図2に示す有効プロセッサコア設定画面610で、最大プロセッサソケット数として入力欄611に「3」が、最大プロセッサコア数として入力欄612に「5」が、優先するサーバ特性としてラジオボタン613で「プロセッサ処理性能優先」が入力され、OKボタン614が押下された場合について説明する。
BMC500は、プロセッサ201からプロセッサ204に含まれる全てのプロセッサコア311〜344を無効に設定する(ステップS101)。この時のサーバ装置100は、図4に示すように、全てのプロセッサコア311〜344が無効な状態となる。
BMC500は、プロセッサ201〜204ごとに、有効であるプロセッサコアの数を取得する(ステップS102)。この段階では、全てのプロセッサ201〜204において、有効であるプロセッサコアの数は「0」である。
BMC500は、変数nに1を代入する(ステップS103)。そして、BMC500は、有効であるプロセッサコアの数がn番目に少ないプロセッサを検索する(ステップS104)。
なお、同順位に複数のプロセッサが存在した場合、BMC500は、最も番号が小さいプロセッサを優先する、ラウンドロビンで優先するプロセッサを選択する、ランダムに優先するプロセッサを選択する、メモリ401、402が接続されているプロセッサ202、203を優先する、BMC500が持つ過去の障害履歴から障害発生率が最小のプロセッサを選択するなどの方式を用いて、複数のプロセッサ201〜204に順位を付ける。
なお、最も番号が小さいプロセッサがプロセッサ201であり、次いで番号が小さいプロセッサがプロセッサ202であり、最も番号が大きいプロセッサがプロセッサ204であるとする。
本実施例において有効であるプロセッサコアの数が同数の複数のプロセッサが存在し、その複数のプロセッサの中にメモリ401、402が接続されているプロセッサ202、203が含まれている場合、BMC500は、プロセッサ202、203を優先する。さらに、プロセッサ202、203の有効であるプロセッサコアの数が同数である場合、BMC500は、最も番号が小さいプロセッサ202を優先する。
有効であるプロセッサコアの数が同数の複数のプロセッサが存在し、その複数のプロセッサの中にメモリ401、402が接続されているプロセッサ202、203が含まれていない場合、BMC500は、最も番号が小さいプロセッサを優先する。
ステップS104の段階では、全てのプロセッサ201〜204において有効であるプロセッサコアの数は「0」である。よって、ここではメモリ401、402が接続されているプロセッサ202、203の中で、最も番号が小さいプロセッサ202が、有効であるプロセッサコアの数が1番目に少ないプロセッサとして検索される。
BMC500は、検索されたプロセッサ202に有効にできるプロセッサコアが存在するか判断する(ステップS105)。検索されたプロセッサ202に有効にできるプロセッサコアが存在する場合(ステップS105のYes)、BMC500は、ステップS106へ処理を進める。検索されたプロセッサ202に有効にできるプロセッサコアが存在しない場合(ステップS105のNo)、BMC500は、ステップS108へ処理を進める。
例えば、プロセッサが有する全てのプロセッサコアが既に有効になっている場合や、プロセッサが有するまだ有効に設定されていないプロセッサコアが全て故障している場合が、検索されたプロセッサに有効にできるプロセッサコアが存在しない場合である。
プロセッサ202には有効にできるプロセッサコア321〜324が存在するので(ステップS105のYes)、BMC500は、ステップS106へ処理を進める。
有効にできるプロセッサコアが存在する場合、BMC500は、検索したプロセッサ202に有効なプロセッサコアが存在するか判断する(ステップS106)。
検索されたプロセッサ202に有効なプロセッサコアが存在する場合(ステップS106のYes)、有効なプロセッサコアを追加しても、有効なプロセッサコアを有するプロセッサの数に増減は生じない。よってステップS107の、最大プロセッサソケット数が有効なプロセッサコアを有するプロセッサの数を超えないかの判定処理は不要なので行われず、BMC500は、ステップS110へ処理を進める。
検索されたプロセッサ202に有効なプロセッサコアが存在しない場合(ステップS106のNo)、BMC500は、ステップS107へ処理を進める。ステップS106の段階では、プロセッサ202に有効なプロセッサコアは存在しないので(ステップS106のNo)、BMC500は、ステップS107へ処理を進める。
ステップS106で有効なプロセッサコアが存在しない場合、BMC500は、入力欄611に入力された最大プロセッサソケット数が、有効なプロセッサコアを有するプロセッサの数よりも大きいか判断する(ステップS107)。
判断する理由は、有効なプロセッサコアを追加すると有効なプロセッサコアを有するプロセッサの数が増加するので、有効なプロセッサコアを追加した時にプロセッサ数が最大プロセッサソケット数を超えないか確認するためである。
最大プロセッサソケット数が有効なプロセッサコアを有するプロセッサの数よりも大きい場合(ステップS107のYes)、BMC500は、ステップS110へ処理を進める。最大プロセッサソケット数が有効なプロセッサコアを有するプロセッサの数以下の場合(ステップS107のNo)、BMC500は、ステップS108へ処理を進める。
ステップS107の段階では、最大プロセッサソケット数「3」に対し、有効なプロセッサコアを有するプロセッサの数は「0」なので(ステップS107のYes)、BMC500は、ステップS110へ処理を進める。
BMC500は、検索されたプロセッサ202のプロセッサコア321〜324のうちの1個を有効にする(ステップS110)。
なお、どのプロセッサコアを有効にするかは、有効にできる最も番号が小さいプロセッサコアを選択する、有効にできるプロセッサコアの中からラウンドロビンで選択する、BMC500が持つ過去の障害履歴から障害発生率が最小のプロセッサコアを選択する、などの方式を用いて決定する。本実施例において、BMC500は、有効にできる最も番号が小さいプロセッサコアを選択する。
BMC500は、プロセッサ202に含まれていて有効にできるプロセッサコア321〜324のうち、最も番号が小さいプロセッサコア321を有効にする。この時、サーバ装置100において、図5に示すようにプロセッサコア321のみが有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS111)。
最大プロセッサコア数が有効なプロセッサコアの数以下の場合(ステップS111のNo)、BMC500は、本処理を終了する。最大プロセッサコア数が有効なプロセッサコアの数よりも大きい場合(ステップS111のYes)、BMC500は、ステップS102へ処理を進める。
ステップS111の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「1」なので、BMC500は、ステップS102へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、有効であるプロセッサコアの数を取得する(ステップS102)。この段階で有効であるプロセッサコアの数は、プロセッサ202において「1」、その他のプロセッサにおいて「0」である。
BMC500は、変数nに1を代入し(ステップS103)、有効であるプロセッサコアの数がn番目に少ないプロセッサを検索する(ステップS104)。
ここでは、有効であるプロセッサコアの数が「0」であるプロセッサ201、203、204のうち、メモリ402が接続されているプロセッサ203が、有効であるプロセッサコアの数が1番目に少ないプロセッサとして検索される。
BMC500は、検索されたプロセッサ203に有効にできるプロセッサコアが存在するか判断する(ステップS105)。プロセッサ203には有効にできるプロセッサコア331〜334が存在するので(ステップS105のYes)、BMC500は、ステップS106へ処理を進める。
BMC500は、検索されたプロセッサ203に有効なプロセッサコアが存在するか判断する(ステップS106)。ステップS106の段階では、プロセッサ203に有効なプロセッサコアが存在しないので(ステップS106のNo)、BMC500は、ステップS107へ処理を進める。
BMC500は、入力欄611に入力された最大プロセッサソケット数が、有効なプロセッサコアを有するプロセッサの数よりも大きいか判断する(ステップS107)。
ステップS107の段階では、最大プロセッサソケット数「3」に対し、有効なプロセッサコアを有するプロセッサの数は「1」なので(ステップS107のYes)、BMC500は、ステップS110へ処理を進める。
BMC500は、検索されたプロセッサ203のプロセッサコア331〜334のうちの1個を有効にする(ステップS110)。BMC500は、プロセッサ203に含まれていて有効にできるプロセッサコア331〜334のうち、最も番号が小さいプロセッサコア331を有効にする。
この時、サーバ装置100において、図6に示すようにプロセッサコア321とプロセッサコア331が有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS111)。
ステップS111の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「2」なので、BMC500は、ステップS102へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、有効であるプロセッサコアの数を取得する(ステップS102)。この段階で有効であるプロセッサコアの数は、プロセッサ202とプロセッサ203とにおいてそれぞれ「1」、プロセッサ201とプロセッサ204とにおいて「0」である。
BMC500は、変数nに1を代入し(ステップS103)、有効であるプロセッサコアの数がn番目に少ないプロセッサを検索する(ステップS104)。
ここでは、有効であるプロセッサコアの数が「0」であるプロセッサ201、204のうち、最も番号が小さいプロセッサ201が、有効であるプロセッサコアの数が1番目に少ないプロセッサとして検索される。
BMC500は、検索されたプロセッサ201に有効にできるプロセッサコアが存在するか判断する(ステップS105)。プロセッサ201には有効にできるプロセッサコア311〜314が存在するので(ステップS105のYes)、BMC500は、ステップS106へ処理を進める。
BMC500は、検索されたプロセッサ201に有効なプロセッサコアが存在するか判断する(ステップS106)。ステップS106の段階では、プロセッサ201に有効なプロセッサコアが存在しないので(ステップS106のNo)、BMC500は、ステップS107へ処理を進める。
BMC500は、入力欄611に入力された最大プロセッサソケット数が、有効なプロセッサコアを有するプロセッサの数よりも大きいか判断する(ステップS107)。
ステップS107の段階では、最大プロセッサソケット数「3」に対し、有効なプロセッサコアを有するプロセッサの数は「2」なので(ステップS107のYes)、BMC500は、ステップS110へ処理を進める。
BMC500は、検索されたプロセッサ201のプロセッサコア311〜314のうちの1個を有効にする(ステップS110)。BMC500は、プロセッサ201に含まれていて有効にできるプロセッサコア311〜314のうち、最も番号が小さいプロセッサコア311を有効にする。
この時、サーバ装置100において、図7に示すようにプロセッサコア311、プロセッサコア321およびプロセッサコア331が有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS111)。
ステップS111の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「3」なので、BMC500は、ステップS102へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、有効であるプロセッサコアの数を取得する(ステップS102)。この段階で有効であるプロセッサコアの数は、プロセッサ201、プロセッサ202およびプロセッサ203においてそれぞれ「1」、プロセッサ204において「0」である。
BMC500は、変数nに1を代入し(ステップS103)、有効であるプロセッサコアの数がn番目に少ないプロセッサを検索する(ステップS104)。
ここでは、有効であるプロセッサコアの数が「0」であるプロセッサ204が、有効であるプロセッサコアの数が1番目に少ないプロセッサとして検索される。
BMC500は、検索されたプロセッサ204に有効にできるプロセッサコアが存在するか判断する(ステップS105)。プロセッサ204には有効にできるプロセッサコア341〜344が存在するので(ステップS105のYes)、BMC500は、ステップS106へ処理を進める。
BMC500は、検索されたプロセッサ204に有効なプロセッサコアが存在するか判断する(ステップS106)。ステップS106の段階では、プロセッサ204に有効なプロセッサコアが存在しないので(ステップS106のNo)、BMC500は、ステップS107へ処理を進める。
BMC500は、入力欄611に入力された最大プロセッサソケット数が、有効なプロセッサコアを有するプロセッサの数よりも大きいか判断する(ステップS107)。
ステップS107の段階では、最大プロセッサソケット数「3」に対し、有効なプロセッサコアを有するプロセッサの数は「3」なので(ステップS107のNo)、BMC500は、ステップS108へ処理を進める。
BMC500は、変数nがサーバ装置100に含まれるプロセッサ201〜204の数である「4」よりも小さいか判断する(ステップS108)。変数nが「4」以上の場合(ステップS108のNo)、BMC500は、本処理を終了する。
変数nが「4」よりも小さい場合(ステップS108のYes)、BMC500は、変数nに「1」を加算した値を変数nに代入し(ステップS109)、ステップS104へ処理を進める。
ステップS108の段階では、変数nは「1」であり、「4」よりも小さい(ステップS108のYes)。よってBMC500は、変数nに「1」を加算した値である「2」を変数nに代入し(ステップS109)、ステップS104へ処理を進める。
BMC500は、有効であるプロセッサコアの数がn番目に少ないプロセッサを検索する(ステップS104)。ここでは、メモリ401、402が接続されているプロセッサ202、203の中で、最も番号が小さいプロセッサ202が、有効であるプロセッサコアの数が2番目に少ないプロセッサとして検索される。
BMC500は、検索されたプロセッサ202に有効にできるプロセッサコアが存在するか判断する(ステップS105)。プロセッサ202には有効にできるプロセッサコア322〜324が存在するので(ステップS105のYes)、BMC500は、ステップS106へ処理を進める。
BMC500は、検索されたプロセッサ202に有効なプロセッサコアが存在するか判断する(ステップS106)。ステップS106の段階では、プロセッサ202に有効なプロセッサコア321が存在するので(ステップS106のYes)、BMC500は、ステップS110へ処理を進める。
BMC500は、検索されたプロセッサ202のプロセッサコア322〜324のうちの1個を有効にする(ステップS110)。BMC500は、プロセッサ202に含まれていて有効にできるプロセッサコア322〜324のうち、最も番号が小さいプロセッサコア322を有効にする。
この時、サーバ装置100において、図8に示すようにプロセッサコア311、プロセッサコア321、プロセッサコア322およびプロセッサコア331が有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS111)。
ステップS111の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「4」なので、BMC500は、ステップS102へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、有効であるプロセッサコアの数を取得する(ステップS102)。この段階で有効であるプロセッサコアの数は、プロセッサ202において「2」、プロセッサ201とプロセッサ203とにおいてそれぞれ「1」、プロセッサ204において「0」である。
BMC500は、変数nに1を代入し(ステップS103)、有効であるプロセッサコアの数がn番目に少ないプロセッサを検索する(ステップS104)。ここでは、有効であるプロセッサコアの数が「0」であるプロセッサ204が検索される。
BMC500は、検索されたプロセッサ204に有効にできるプロセッサコアが存在するか判断する(ステップS105)。プロセッサ204には有効にできるプロセッサコア341〜344が存在するので(ステップS105のYes)、BMC500は、ステップS106へ処理を進める。
BMC500は、検索されたプロセッサ204に有効なプロセッサコアが存在するか判断する(ステップS106)。ステップS106の段階では、プロセッサ204に有効なプロセッサコアが存在しないので(ステップS106のNo)、BMC500は、ステップS107へ処理を進める。
BMC500は、入力欄611に入力された最大プロセッサソケット数が、有効なプロセッサコアを有するプロセッサの数よりも大きいか判断する(ステップS107)。
ステップS107の段階では、最大プロセッサソケット数「3」に対し、有効なプロセッサコアを有するプロセッサの数は「3」なので(ステップS107のNo)、BMC500は、ステップS108へ処理を進める。
BMC500は、変数nがサーバ装置100に含まれるプロセッサの数である「4」よりも小さいか判断する(ステップS108)。ステップS108の段階では、変数nは「1」であり、「4」よりも小さい(ステップS108のYes)。よってBMC500は、変数nに「1」を加算した値である「2」を変数nに代入し(ステップS109)、ステップS104へ処理を進める。
BMC500は、有効であるプロセッサコアの数がn番目に少ないプロセッサを検索する(ステップS104)。ここでは、メモリ401、402が接続されているプロセッサ202、203の中でプロセッサ203が、有効であるプロセッサコアの数が2番目に少ないプロセッサとして検索される。
BMC500は、検索されたプロセッサ203に有効にできるプロセッサコアが存在するか判断する(ステップS105)。プロセッサ203には有効にできるプロセッサコア332〜334が存在するので(ステップS105のYes)、BMC500は、ステップS106へ処理を進める。
BMC500は、検索されたプロセッサ203に有効なプロセッサコアが存在するか判断する(ステップS106)。ステップS106の段階では、プロセッサ202に有効なプロセッサコア331が存在するので(ステップS106のYes)、BMC500は、ステップS110へ処理を進める。
BMC500は、検索されたプロセッサ203のプロセッサコア332〜334のうちの1個を有効にする(ステップS110)。BMC500は、プロセッサ203に含まれていて有効にできるプロセッサコア332〜334のうち、最も番号が小さいプロセッサコア332を有効にする。
この時、サーバ装置100において、図9に示すようにプロセッサコア311、プロセッサコア321、プロセッサコア322、プロセッサコア331およびプロセッサコア332が有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS111)。
ステップS111の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「5」なので(ステップS111のNo)、BMC500は、本処理を終了する。
次に、優先するサーバ特性としてラジオボタン613によって「メモリレイテンシ優先」が選択され、OKボタン614が押下された場合のサーバ装置100の動作について図10を参照して説明する。図10は、第1の実施形態における「メモリレイテンシ優先」が選択された場合のサーバ装置100の動作を示すフローチャートである。
具体例として、図2に示す有効プロセッサコア設定画面610で、最大プロセッサソケット数として入力欄611に「3」が、最大プロセッサコア数として入力欄612に「5」が、優先するサーバ特性としてラジオボタン613で「メモリレイテンシ優先」が入力され、OKボタン614が押下された場合について説明する。
BMC500は、プロセッサ201からプロセッサ204に含まれる全てのプロセッサコア311〜344を無効に設定する(ステップS201)。この時のサーバ装置100は、図4に示すように、全てのプロセッサコア311〜344が無効な状態となる。
BMC500は、プロセッサ201〜204ごとに、接続されているメモリの容量を取得する(ステップS202)。接続されているメモリの容量は、プロセッサ202とプロセッサ203とについて1GBであるとする。また、プロセッサ201とプロセッサ204とについて0である。
BMC500は、変数nに1を代入する(ステップS203)。そして、BMC500は、接続されているメモリの容量がn番目に多いプロセッサを検索する(ステップS204)。
なお、同順位に複数のプロセッサが存在した場合、BMC500は、最も番号が小さいプロセッサを優先する、ラウンドロビンで優先するプロセッサを選択する、ランダムに優先するプロセッサを選択する、有効であるプロセッサコアが少ないプロセッサを優先する、BMC500が持つ過去の障害履歴から障害発生率が最小のプロセッサを選択するなどの方式を用いて、複数のプロセッサ201〜204に順位を付ける。
本実施例において、BMC500は、接続されているメモリの容量が等しいプロセッサ202、203のうち、有効であるプロセッサコアが少ないプロセッサを優先する。プロセッサ202、203の有効であるプロセッサコアの数が同数である場合、BMC500は、最も番号が小さいプロセッサ202を優先する。
ここでは、容量が1GBのメモリ401、402が接続されているプロセッサ202、203の中で、有効であるプロセッサコアが少なく、かつ最も番号が小さいプロセッサ202が、接続されているメモリの容量が1番目に多いプロセッサとして検索される。
BMC500は、検索されたプロセッサ202に有効にできるプロセッサコアが存在するか判断する(ステップS205)。プロセッサ202には有効にできるプロセッサコア321からプロセッサコア324が存在するので(ステップS205のYes)、BMC500は、ステップS206へ処理を進める。
有効にできるプロセッサコアが存在する場合、BMC500は、検索されたプロセッサ202に有効なプロセッサコアが存在するか判断する(ステップS206)。ステップS206の段階では、プロセッサ202に有効なプロセッサコアが存在しないので(ステップS206のNo)、BMC500は、ステップS207へ処理を進める。
ステップS206で有効なプロセッサコアが存在しない場合、BMC500は、入力欄611に入力された最大プロセッサソケット数が、有効なプロセッサコアを有するプロセッサの数よりも大きいか判断する(ステップS207)。
ステップS207の段階では、最大プロセッサソケット数「3」に対し、有効なプロセッサコアを有するプロセッサの数は「0」なので(ステップS207のYes)、BMC500は、ステップS210へ処理を進める。
BMC500は、検索されたプロセッサ202のプロセッサコア321〜324のうちの1個を有効にする(ステップS210)。BMC500は、プロセッサ202に含まれていて有効にできるプロセッサコア321〜324のうち、最も番号が小さいプロセッサコア321を有効にする。
この時、サーバ装置100において、図5に示すようにプロセッサコア321のみが有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS211)。
ステップS211の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「1」なので、BMC500は、ステップS202へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、接続されているメモリの容量を取得する(ステップS202)。接続されているメモリの容量は、プロセッサ202とプロセッサ203が1GB、プロセッサ201とプロセッサ204が0である。
BMC500は、変数nに1を代入する(ステップS203)。そして、BMC500は、接続されているメモリの容量がn番目に多いプロセッサを検索する(ステップS204)。
ここでは、容量が1GBのメモリ401、402が接続されているプロセッサ202、203の中で、有効であるプロセッサコアが少ないプロセッサ203が、接続されているメモリの容量が1番目に多いプロセッサとして検索される。
BMC500は、検索されたプロセッサ203に有効にできるプロセッサコアが存在するか判断する(ステップS205)。プロセッサ203には有効にできるプロセッサコア331〜334が存在するので(ステップS205のYes)、BMC500は、ステップS206へ処理を進める。
有効にできるプロセッサコアが存在する場合、BMC500は、検索されたプロセッサ203に有効なプロセッサコアが存在するか判断する(ステップS206)。ステップS206の段階では、プロセッサ203に有効なプロセッサコアが存在しないので(ステップS206のNo)、BMC500は、ステップS207へ処理を進める。
ステップS206で有効なプロセッサコアが存在しない場合、BMC500は、入力欄611に入力された最大プロセッサソケット数が、有効なプロセッサコアを有するプロセッサの数よりも大きいか判断する(ステップS207)。
ステップS207の段階では、最大プロセッサソケット数「3」に対し、有効なプロセッサコアを有するプロセッサの数は「1」なので(ステップS207のYes)、BMC500は、ステップS210へ処理を進める。
BMC500は、検索されたプロセッサ203のプロセッサコア331〜334のうちの1個を有効にする(ステップS210)。BMC500は、プロセッサ203に含まれていて有効にできるプロセッサコア331〜334のうち、最も番号が小さいプロセッサコア331を有効にする。
この時、サーバ装置100において、図6に示すようにプロセッサコア321とプロセッサコア331が有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS211)。
ステップS211の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「2」なので、BMC500は、ステップS202へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、接続されているメモリの容量を取得する(ステップS202)。接続されているメモリの容量は、プロセッサ202とプロセッサ203が1GB、プロセッサ201とプロセッサ204が0である。
BMC500は、変数nに1を代入する(ステップS203)。そして、BMC500は、接続されているメモリの容量がn番目に多いプロセッサを検索する(ステップS204)。
ここでは、容量が1GBのメモリ401、402が接続されているプロセッサ202、203の中で、有効であるプロセッサコアが少なく、かつ最も番号が小さいプロセッサ202が、接続されているメモリの容量が1番目に多いプロセッサとして検索される。
BMC500は、検索されたプロセッサ202に有効にできるプロセッサコアが存在するか判断する(ステップS205)。プロセッサ202には有効にできるプロセッサコア322〜324が存在するので(ステップS205のYes)、BMC500は、ステップS206へ処理を進める。
有効にできるプロセッサコアが存在する場合、BMC500は、検索されたプロセッサ202に有効なプロセッサコアが存在するか判断する(ステップS206)。ステップS206の段階では、プロセッサ202に有効なプロセッサコア321が存在するので(ステップS206のYes)、BMC500は、ステップS210へ処理を進める。
BMC500は、検索されたプロセッサ202のプロセッサコア322〜324のうちの1個を有効にする(ステップS210)。BMC500は、プロセッサ202に含まれていて有効にできるプロセッサコア322〜324のうち、最も番号が小さいプロセッサコア322を有効にする。
この時、サーバ装置100において、図11に示すようにプロセッサコア321、プロセッサコア322およびプロセッサコア331が有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS211)。
ステップS211の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「3」なので、BMC500は、ステップS202へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、接続されているメモリの容量を取得する(ステップS202)。接続されているメモリの容量は、プロセッサ202とプロセッサ203が1GB、プロセッサ201とプロセッサ204が0である。
BMC500は、変数nに1を代入する(ステップS203)。そして、BMC500は、接続されているメモリの容量がn番目に多いプロセッサを検索する(ステップS204)。
ここでは、容量が1GBのメモリ401、402が接続されているプロセッサ202、203の中で、有効であるプロセッサコアが少ないプロセッサ203が、接続されているメモリの容量が1番目に多いプロセッサとして検索される。
BMC500は、検索されたプロセッサ203に有効にできるプロセッサコアが存在するか判断する(ステップS205)。プロセッサ203には有効にできるプロセッサコア332〜334が存在するので(ステップS205のYes)、BMC500は、ステップS206へ処理を進める。
有効にできるプロセッサコアが存在する場合、BMC500は、検索されたプロセッサ203に有効なプロセッサコアが存在するか判断する(ステップS206)。ステップS206の段階では、プロセッサ203に有効なプロセッサコア331が存在するので(ステップS206のYes)、BMC500は、ステップS210へ処理を進める。
BMC500は、検索されたプロセッサ203のプロセッサコア332〜334のうちの1個を有効にする(ステップS210)。BMC500は、プロセッサ203に含まれていて有効にできるプロセッサコア332〜334のうち、最も番号が小さいプロセッサコア332を有効にする。
この時、サーバ装置100において、図12に示すようにプロセッサコア321、プロセッサコア322、プロセッサコア331およびプロセッサコア332が有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS211)。
ステップS211の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「4」なので、BMC500は、ステップS202へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、接続されているメモリの容量を取得する(ステップS202)。接続されているメモリの容量は、プロセッサ202とプロセッサ203が1GB、プロセッサ201とプロセッサ204が0である。
BMC500は、変数nに1を代入する(ステップS203)。そして、BMC500は、接続されているメモリの容量がn番目に多いプロセッサを検索する(ステップS204)。
ここでは、容量が1GBのメモリ401、402が接続されているプロセッサ202、203の中で、有効であるプロセッサコアが少なく、かつ最も番号が小さいプロセッサ202が、接続されているメモリの容量が1番目に多いプロセッサとして検索される。
BMC500は、検索されたプロセッサ202に有効にできるプロセッサコアが存在するか判断する(ステップS205)。プロセッサ202には有効にできるプロセッサコア323とプロセッサコア324が存在するので(ステップS205のYes)、BMC500は、ステップS206へ処理を進める。
有効にできるプロセッサコアが存在する場合、BMC500は、検索されたプロセッサ202に有効なプロセッサコアが存在するか判断する(ステップS206)。ステップS206の段階では、プロセッサ202に有効なプロセッサコア321とプロセッサコア322が存在するので(ステップS206のYes)、BMC500は、ステップS210へ処理を進める。
BMC500は、検索されたプロセッサ202のプロセッサコア323、324のうちの1個を有効にする(ステップS210)。BMC500は、プロセッサ202に含まれていて有効にできるプロセッサコア323、324のうち、最も番号が小さいプロセッサコア323を有効にする。
この時、サーバ装置100において、図13に示すようにプロセッサコア321、プロセッサコア322、プロセッサコア323、プロセッサコア331およびプロセッサコア332が有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS211)。
ステップS211の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「5」なので、BMC500は、本処理を終了する。
次に、優先するサーバ特性としてラジオボタン613によって「省電力優先」が選択され、OKボタン614が押下された場合のサーバ装置100の動作について図14を参照して説明する。図14は、第1の実施形態における「省電力優先」が選択された場合のサーバ装置100の動作を示すフローチャートである。
具体例として、図2に示す有効プロセッサコア設定画面610で、最大プロセッサソケット数として入力欄611に「3」が、最大プロセッサコア数として入力欄612に「5」が、優先するサーバ特性としてラジオボタン613で「省電力優先」が入力され、OKボタン614が押下された場合について説明する。
BMC500は、プロセッサ201からプロセッサ204に含まれる全てのプロセッサコア311〜344を無効に設定する(ステップS301)。この時のサーバ装置100は、図4に示すように、全てのプロセッサコア311〜344が無効な状態となる。
BMC500は、プロセッサ201〜204ごとに、有効であるプロセッサコアの数を取得する(ステップS302)。この段階では、全てのプロセッサ201〜204において、有効であるプロセッサコアの数は「0」である。
BMC500は、変数nに1を代入する(ステップS303)。そして、BMC500は、有効であるプロセッサコアの数がn番目に多いプロセッサを検索する(ステップS304)。
なお、同順位に複数のプロセッサが存在した場合、BMC500は、最も番号が小さいプロセッサを優先する、ラウンドロビンで優先するプロセッサを選択する、ランダムに優先するプロセッサを選択する、メモリが接続されているプロセッサを優先する、BMC500が持つ過去の障害履歴から障害発生率が最小のプロセッサを選択するなどの方式を用いて、複数のプロセッサに順位を付ける。
本実施例において有効であるプロセッサコアの数が同数の複数のプロセッサが存在し、その複数のプロセッサの中にメモリ401、402が接続されているプロセッサ202、203が含まれている場合、BMC500はプロセッサ202、203を優先する。さらに、プロセッサ202、203の有効であるプロセッサコアの数が同数である場合、BMC500は、最も番号が小さいプロセッサ202を優先する。
ステップS304の段階では、全てのプロセッサ201〜204において有効であるプロセッサコアの数は「0」である。よって、ここではメモリ401、402が接続されているプロセッサ202、203の中で、最も番号が小さいプロセッサ202が、有効であるプロセッサコアの数が1番目に多いプロセッサとして検索される。
BMC500は、検索されたプロセッサ202に有効にできるプロセッサコアが存在するか判断する(ステップS305)。プロセッサ202には有効にできるプロセッサコア321〜324が存在するので(ステップS305のYes)、BMC500は、ステップS306へ処理を進める。
有効にできるプロセッサコアが存在する場合、BMC500は、検索されたプロセッサ202に有効なプロセッサコアが存在するか判断する(ステップS306)。ステップS306の段階では、プロセッサ202に有効なプロセッサコアが存在しないので(ステップS306のNo)、BMC500は、ステップS307へ処理を進める。
ステップS306で有効なプロセッサコアが存在しない場合、BMC500は、入力欄611に入力された最大プロセッサソケット数が、有効なプロセッサコアを有するプロセッサの数よりも大きいか判断する(ステップS307)。
ステップS307の段階では、最大プロセッサソケット数「3」に対し、有効なプロセッサコアを有するプロセッサの数は「0」なので(ステップS307のYes)、BMC500は、ステップS310へ処理を進める。
BMC500は、検索されたプロセッサ202のプロセッサコア321〜324のうちの1個を有効にする(ステップS310)。BMC500は、プロセッサ202に含まれていて有効にできるプロセッサコア321〜324のうち、最も番号が小さいプロセッサコア321を有効にする。
この時、サーバ装置100において、図5に示すようにプロセッサコア321のみが有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS311)。
ステップS311の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「1」なので、BMC500は、ステップS302へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、有効であるプロセッサコアの数を取得する(ステップS302)。この段階で有効であるプロセッサコアの数は、プロセッサ202において「1」、その他のプロセッサにおいて「0」である。
BMC500は、変数nに1を代入し(ステップS303)、有効であるプロセッサコアの数がn番目に多いプロセッサを検索する(ステップS304)。ここでは、有効であるプロセッサコアの数が「1」であるプロセッサ202が、有効であるプロセッサコアの数が1番目に多いプロセッサとして検索される。
BMC500は、検索されたプロセッサ202に有効にできるプロセッサコアが存在するか判断する(ステップS305)。プロセッサ202には有効にできるプロセッサコア322〜324が存在するので(ステップS305のYes)、BMC500は、ステップS306へ処理を進める。
BMC500は、検索されたプロセッサ202に有効なプロセッサコアが存在するか判断する(ステップS306)。ステップS306の段階では、プロセッサ202に有効なプロセッサコア321が存在するので(ステップS306のYes)、BMC500は、ステップS310へ処理を進める。
BMC500は、検索されたプロセッサ202のプロセッサコア322〜324のうちの1個を有効にする(ステップS310)。BMC500は、プロセッサ202に含まれていて有効にできるプロセッサコア322〜324のうち、最も番号が小さいプロセッサコア322を有効にする。
この時、サーバ装置100において、図15に示すようにプロセッサコア321とプロセッサコア322が有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS311)。
ステップS311の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「2」なので、BMC500は、ステップS302へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、有効であるプロセッサコアの数を取得する(ステップS302)。この段階で有効であるプロセッサコアの数は、プロセッサ202において「2」、その他のプロセッサにおいて「0」である。
BMC500は、変数nに1を代入し(ステップS303)、有効であるプロセッサコアの数がn番目に多いプロセッサを検索する(ステップS304)。ここでは、有効であるプロセッサコアの数が「2」であるプロセッサ202が、有効であるプロセッサコアの数が1番目に多いプロセッサとして検索される。
BMC500は、検索されたプロセッサ202に有効にできるプロセッサコアが存在するか判断する(ステップS305)。プロセッサ202には有効にできるプロセッサコア323とプロセッサコア324が存在するので(ステップS305のYes)、BMC500は、ステップS306へ処理を進める。
BMC500は、検索されたプロセッサ202に有効なプロセッサコアが存在するか判断する(ステップS306)。ステップS306の段階では、プロセッサ202に有効なプロセッサコア321とプロセッサコア322が存在するので(ステップS306のYes)、BMC500は、ステップS310へ処理を進める。
BMC500は、検索されたプロセッサ202のプロセッサコア323、324のうちの1個を有効にする(ステップS310)。BMC500は、プロセッサ202に含まれていて有効にできるプロセッサコア323、324のうち、最も番号が小さいプロセッサコア323を有効にする。
この時、サーバ装置100において、図16に示すようにプロセッサコア321、プロセッサコア322およびプロセッサコア323が有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS311)。
ステップS311の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「3」なので、BMC500は、ステップS302へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、有効であるプロセッサコアの数を取得する(ステップS302)。この段階で有効であるプロセッサコアの数は、プロセッサ202において「3」、その他のプロセッサにおいて「0」である。
BMC500は、変数nに1を代入し(ステップS303)、有効であるプロセッサコアの数がn番目に多いプロセッサを検索する(ステップS304)。ここでは、有効であるプロセッサコアの数が「3」であるプロセッサ202が、有効であるプロセッサコアの数が1番目に多いプロセッサとして検索される。
BMC500は、検索されたプロセッサ202に有効にできるプロセッサコアが存在するか判断する(ステップS305)。プロセッサ202には有効にできるプロセッサコア324が存在するので(ステップS305のYes)、BMC500は、ステップS306へ処理を進める。
BMC500は、検索されたプロセッサ202に有効なプロセッサコアが存在するか判断する(ステップS306)。ステップS306の段階では、プロセッサ202に有効なプロセッサコア321、プロセッサコア322およびプロセッサコア323が存在するので(ステップS306のYes)、BMC500は、ステップS310へ処理を進める。
BMC500は、検索されたプロセッサ202のプロセッサコアを1個有効にする(ステップS310)。BMC500は、プロセッサ202に含まれていて有効にできるプロセッサコアであるプロセッサコア324を有効にする。
この時、サーバ装置100において、図17に示すようにプロセッサ202の全てのプロセッサコアが有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS311)。
ステップS311の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「4」なので、BMC500は、ステップS302へ処理を進める。
BMC500は、プロセッサ201〜204ごとに、有効であるプロセッサコアの数を取得する(ステップS302)。この段階で有効であるプロセッサコアの数は、プロセッサ202において「4」、その他のプロセッサにおいて「0」である。
BMC500は、変数nに1を代入し(ステップS303)、有効であるプロセッサコアの数がn番目に多いプロセッサを検索する(ステップS304)。ここでは、有効であるプロセッサコアの数が「4」であるプロセッサ202が、有効であるプロセッサコアの数が1番目に多いプロセッサとして検索される。
BMC500は、検索されたプロセッサ202に有効にできるプロセッサコアが存在するか判断する(ステップS305)。プロセッサ202には既に全てのプロセッサコアが有効に設定されており、有効にできるプロセッサコアは存在しないので(ステップS305のNo)、BMC500は、ステップS308へ処理を進める。
BMC500は、変数nがサーバ装置100に含まれるプロセッサ201〜204の数である「4」よりも小さいか判断する(ステップS308)。ステップS308の段階では、変数nは「1」であり、「4」よりも小さい(ステップS308のYes)。よってBMC500は、変数nに「1」を加算した値である「2」を変数nに代入し(ステップS309)、ステップS304へ処理を進める。
BMC500は、有効であるプロセッサコアの数がn番目に多いプロセッサを検索する(ステップS304)。ここでは、メモリ402が接続されているプロセッサ203が、有効であるプロセッサコアの数が2番目に多いプロセッサとして検索される。
BMC500は、検索されたプロセッサ203に有効にできるプロセッサコアが存在するか判断する(ステップS305)。プロセッサ203には有効にできるプロセッサコア331〜334が存在するので(ステップS305のYes)、BMC500は、ステップS306へ処理を進める。
有効にできるプロセッサコアが存在する場合、BMC500は、検索されたプロセッサ203に有効なプロセッサコアが存在するか判断する(ステップS306)。ステップS306の段階では、プロセッサ203に有効なプロセッサコアが存在しないので(ステップS306のNo)、BMC500は、ステップS307へ処理を進める。
ステップS306で有効なプロセッサコアが存在しない場合、BMC500は、入力欄611に入力された最大プロセッサソケット数が、有効なプロセッサコアを有するプロセッサの数よりも大きいか判断する(ステップS307)。
ステップS307の段階では、最大プロセッサソケット数「3」に対し、有効なプロセッサコアを有するプロセッサの数は「1」なので(ステップS307のYes)、BMC500は、ステップS310へ処理を進める。
BMC500は、検索されたプロセッサ203のプロセッサコア331〜334のうちの1個を有効にする(ステップS310)。BMC500は、プロセッサ203に含まれていて有効にできるプロセッサコア331〜334のうち、最も番号が小さいプロセッサコア331を有効にする。
この時、サーバ装置100において、図18に示すようにプロセッサ202の全てのプロセッサコアとプロセッサコア331が有効な状態となる。
その後、BMC500は、入力欄612に入力された最大プロセッサコア数が、プロセッサ201〜204に含まれる有効なプロセッサコアの数よりも大きいか判断する(ステップS311)。
ステップS311の段階では、最大プロセッサコア数が「5」に対し、有効なプロセッサコアの数は「5」なので、BMC500は、本処理を終了する。
本実施形態の有効プロセッサコア配置装置を使用した場合、キャパシティ・オン・デマンド機能を有するサーバにおいて、プロセッサコアを有効または無効に設定する際に、ユーザは、物理的なプロセッサ番号やコア番号等のハードウェア・アーキテクチャを熟知していなくても、ソフトウェア・ライセンスの情報や、優先するサーバ装置の特性を入力するだけで、サーバのハードウェア・アーキテクチャや構成上の制限も考慮された、最適な有効プロセッサコア配置を設定することができる。
特に、ハードウェアに関する保守契約を締結していない状態で運用開始後に有効プロセッサコアを増設するような場合は、初期導入時と異なりハードウェアベンダの構成支援を必ずしも受けられるとは限らないため、本発明のような容易な手順で最適な設定ができることは重要となる。
本実施形態の有効プロセッサコア配置装置を使用した場合、入力されたソフトウェア・ライセンス情報により有効プロセッサソケット数や有効プロセッサコア数が設定されるため、設定の誤認によりソフトウェア・ライセンス違反を犯してしまうことを防止することができる。
本実施形態の有効プロセッサコア配置装置を使用した場合、80個以上ものプロセッサコアを有するようなサーバ装置の場合にも、1個1個のプロセッサコアを個別に有効または無効に設定する必要がなくなるため、有効または無効プロセッサコア設定にかかる時間を大幅に短縮することができる。
実施形態2.
次に、本発明の第2の実施形態を説明する。図19は、本発明による有効プロセッサコア配置装置の第2の実施形態の構成例を示すシステム構成図である。第1の実施形態の構成例と異なる点は、PCH(Platform Controller Hub)700がプロセッサ201に接続されている点である。
PCH700は、USB(Universal Serial Bus)ポートやBIOSを格納するフラッシュROM(Read On Memory)などを接続するためのチップである。なお、PCH700は、プロセッサ201以外の他のプロセッサ202〜204に対して接続されていてもよい。
PCH700が接続されているプロセッサ201には、最低1個のプロセッサコアが有効でなければならないという制約がある。この制約により、本実施形態の場合、図3のステップS101とステップS102、図10のステップS201とステップS202、図14のステップS301とステップS302の間に追加の処理が必要となる。その追加の処理について図20を用いて説明する。
なお、追加される処理は、優先するサーバ特性に依存せず同一である。ここでは、優先するサーバ特性としてラジオボタン613で「プロセッサ処理性能優先」が選択され、OKボタン614が押下された場合について説明する。
図20は、第2の実施形態におけるサーバ装置100の動作を示すフローチャートの一部である。ステップS101に続き、BMC500は、プロセッサ201に有効にできるプロセッサコアが存在するか判断する(ステップS401)。
有効にできるプロセッサコアが存在しない場合(ステップS401のNo)、PCH700が接続されているプロセッサ201は、最低1個のプロセッサコアが有効でなければならないという制約を満たすことができない。この場合、サーバ装置100を動作させることはできないため、BMC500は、本処理を終了する。
有効にできるプロセッサコアが存在する場合(ステップS401のYes)、BMC500は、プロセッサ201のプロセッサコアを1個有効にする(ステップS402)。以上のステップS401、ステップS402が追加される処理となる。ステップS402以降、BMC500は、ステップS102へ処理を進める。
実施形態3.
次に、本発明の第3の実施形態を説明する。なお、本発明の第3の実施形態におけるサーバ装置100の構成例は、第1の実施形態における説明と同様なため説明を省略する。
図21は、本発明による有効プロセッサコア配置装置におけるオペレーティング・システムおよびアプリケーションの稼働例を示す説明図である。図21に示すように、サーバ装置100上でオペレーティング・システム800が稼働している時のサーバ装置100の動作について説明する。オペレーティング・システム800上では、アプリケーション901とアプリケーション902が稼働している。
オペレーティング・システム800とアプリケーションは、それぞれソフトウェア・ライセンス情報を持っている。BMC500は、IPMI(Intelligent Platform Management Interface)などのオペレーティング・システム800と通信することができる標準的な手段を用いて、オペレーティング・システム800やアプリケーションのライセンス情報を取得することができる。
このため、ユーザは、有効プロセッサコア設定画面610を介して最大プロセッサソケット数および最大プロセッサコア数を入力する必要がない。よって、本実施形態における有効プロセッサコア設定画面610は、図22に示すように、最大プロセッサソケット数の入力欄611と最大プロセッサコア数の入力欄612が除かれている。図22は、本発明による有効プロセッサコア設定画面610の第2の表示例を示す説明図である。
なお、オペレーティング・システム800上で稼働するアプリケーションの数は、2個以外の任意の数でもよい。
本実施形態の場合、図3のステップS101、図10のステップS201、図14のステップS301の前に追加の処理が必要となる。その追加の処理について図23を用いて説明する。
なお、追加される処理は、優先するサーバ特性に依存せず同一である。ここでは、優先するサーバ特性としてラジオボタン613で「プロセッサ処理性能優先」が選択され、OKボタン614が押下された場合について説明する。
図23は、第3の実施形態におけるサーバ装置100の動作を示すフローチャートの一部である。BMC500は、オペレーティング・システム800と、アプリケーション901と、アプリケーション902からライセンス情報を取得する(ステップS501)。
BMC500は、オペレーティング・システム800、アプリケーション901およびアプリケーション902のすべてのソフトウェアにおいてライセンス違反とならない範囲で最大限にプロセッサソケットとプロセッサコアを利用できるように、取得した3つのライセンス情報の中から最小となる最大プロセッサソケット数と最大プロセッサコア数を検索する(ステップS502)。
BMC500は、ステップS502で検索した最大プロセッサソケット数と最大プロセッサコア数を、入力欄611と入力欄612に入力される値の代わりに用いる。以上のステップS501、ステップS502が追加される処理となる。ステップS502以降、BMC500は、ステップS101へ処理を進める。
本実施形態の有効プロセッサコア配置装置を使用した場合、ユーザは、ソフトウェア・ライセンス情報に基づいて有効プロセッサソケット数や有効プロセッサコア数を入力する必要がなくなる。また、ユーザは、容易にプロセッサコアを有効または無効に設定することができる。
次に、本発明の概要を説明する。図24は、有効プロセッサコア配置装置の概要を示すブロック図である。本発明による有効プロセッサコア配置装置1は、1つ以上のプロセッサコア311〜31n、321〜32n、331〜33n、341〜34n(プロセッサコア311〜314、321〜324、331〜334、341〜344に相当)を含む1つ以上のプロセッサ21〜24(プロセッサ201〜204に相当)と、最大プロセッサソケット数と、最大プロセッサコア数と、優先するサーバ特性を入力することができる有効プロセッサコア設定画面を表示する表示部5(例えば、表示装置600)と、表示部5から入力された最大プロセッサソケット数、最大プロセッサコア数、優先するサーバ特性に基づき、有効プロセッサおよび有効プロセッサコアを決定する制御部4(例えば、BMC500)とを備えている。
そのような構成により、ユーザは、この有効プロセッサコア配置装置を利用する場合、条件を指定すると有効プロセッサコアを最適に配置することができる。
また、優先するサーバ特性は、プロセッサ処理性能でもよい。
そのような構成により、有効なプロセッサコアの数の平準化を図ることができ、プロセッサ処理性能を高めることができる。
また、優先するサーバ特性は、メモリレイテンシでもよい。
そのような構成により、メモリとプロセッサコアとの間の平均ホップ数を最小にすることができ、メモリレイテンシを短くすることができる。
また、優先するサーバ特性は、省電力でもよい。
そのような構成により、有効なプロセッサコアが必要最小限の数のプロセッサに集約され、電力消費量を小さくすることができる。
また、有効プロセッサコア配置装置1は、少なくとも1つのプロセッサがPCHと接続しており、そのプロセッサの少なくとも1つのプロセッサコアを有効にしてもよい。