(57)【要約】      （修正有）【課題】マルチプロセッサシステムにおいて適切な物理ＣＰＵコアを動作させる。【解決手段】監視装置１００は、情報処理システム１における複数の処理装置の各々の物理位置の情報と、当該処理装置が動作しているか否かを示す管理情報とを記憶する記憶部と、記憶部に記憶された、複数の処理装置の各々の物理位置の情報に基づき、複数の処理装置の中から動作すべき１又は複数の第１処理装置を決定し、決定の結果に従い、記憶部に記憶された管理情報の更新と、１又は複数の第１処理装置を動作させるための処理とを実行する制御部とを有する。【選択図】図６
2017084148.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムにおける複数の処理装置の各々の物理位置の情報と、当該処理装置が動作しているか否かを示す管理情報とを記憶する記憶部と、
前記記憶部に記憶された、前記複数の処理装置の各々の物理位置の情報に基づき、前記複数の処理装置の中から動作すべき１又は複数の第１処理装置を決定し、決定の結果に従い、前記記憶部に記憶された前記管理情報の更新と、前記１又は複数の第１処理装置を動作させるための処理とを実行する制御部と、
を有する制御装置。
【請求項２】
前記情報処理システムは、複数の中央処理装置を有し、
前記複数の中央処理装置の各々は、同一の１次キャッシュを使用する１又は複数の処理装置を各々が有する１又は複数のグループを有し、
同一の中央処理装置に含まれる１又は複数のグループに属する処理装置は、同一の２次キャッシュを使用し、
前記情報処理システムの電源は、グループ単位で制御され、
前記物理位置の情報は、前記処理装置を含む中央処理装置の位置の情報と、前記処理装置が属するグループの位置の情報とを含む、
請求項１記載の制御装置。
【請求項３】
前記制御部は、
前記１又は複数の第１処理装置が前記複数の中央処理装置に分散され且つ前記１又は複数の処理装置が前記複数のグループに分散されるように、前記１又は複数の第１処理装置を決定する、
請求項２記載の制御装置。
【請求項４】
前記制御部は、
前記１又は複数の第１処理装置が前記複数の中央処理装置に分散され且つ前記１又は複数の処理装置が特定のグループに集められるように、前記１又は複数の第１処理装置を決定する、
請求項２記載の制御装置。
【請求項５】
前記制御部は、
前記１又は複数の第１処理装置が特定の中央処理装置に集められ且つ前記１又は複数の処理装置が特定のグループに集められるように、前記１又は複数の第１処理装置を決定する、
請求項２記載の制御装置。
【請求項６】
前記１又は複数の第１処理装置を動作させるための処理は、
前記１又は複数の第１処理装置に電源を投入する処理を含む、
請求項１乃至５のいずれか１つ記載の制御装置。
【請求項７】
前記情報処理システムは、複数の中央処理装置を有し、
前記複数の処理装置の各々は、前記複数の中央処理装置のいずれかに含まれ、
前記制御部は、
動作している前記処理装置のうち特定の処理装置の温度が閾値を超えたことを検出し、各処理装置と前記特定の処理装置との距離と、各処理装置を含む中央処理装置の温度とに基づき、前記複数の処理装置の中から１の第１処理装置を決定する、
請求項１記載の制御装置。
【請求項８】
前記情報処理システムは、複数の中央処理装置を有し、
前記複数の処理装置の各々は、前記複数の中央処理装置のいずれかに含まれ、
前記制御部は、
動作している前記処理装置のうち特定の処理装置の温度が閾値を超えたことを検出し、各処理装置と前記特定の処理装置との距離と、各処理装置を含む空間の吸気温度と、各処理装置を含む中央処理装置において動作していない処理装置の数とに基づき、前記複数の処理装置の中から１の第１処理装置を決定する、
請求項１記載の制御装置。
【請求項９】
前記制御部は、
各処理装置を含む中央処理装置の温度にさらに基づき、前記複数の処理装置の中から前記１の第１処理装置を決定する、
請求項８記載の制御装置。
【請求項１０】
前記１又は複数の第１処理装置を動作させるための処理は、
処理装置の仮想的な識別情報と処理装置の物理的な識別情報とを対応付けて格納するデータ格納部に格納されている、前記特定の処理装置の物理的な識別情報を、前記１の第１処理装置の識別情報に書き換える処理を含む、
請求項７乃至９のいずれか１つ記載の制御装置。
【請求項１１】
プロセッサが、
情報処理システムにおける複数の処理装置の各々の物理位置の情報と、当該処理装置が動作しているか否かを示す管理情報とを記憶する記憶部に記憶された、前記複数の処理装置の各々の物理位置の情報に基づき、前記複数の処理装置の中から動作すべき１又は複数の第１処理装置を決定し、
決定の結果に従い、前記記憶部に記憶された前記管理情報の更新と、前記１又は複数の第１処理装置を動作させるための処理とを実行する、
処理を実行する制御方法。
【請求項１２】
プロセッサに、
情報処理システムにおける複数の処理装置の各々の物理位置の情報と、当該処理装置が動作しているか否かを示す管理情報とを記憶する記憶部に記憶された、前記複数の処理装置の各々の物理位置の情報に基づき、前記複数の処理装置の中から動作すべき１又は複数の第１処理装置を決定し、
決定の結果に従い、前記記憶部に記憶された前記管理情報の更新と、前記１又は複数の第１処理装置を動作させるための処理とを実行する、
処理を実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムの制御技術に関する。
【背景技術】
【０００２】
ＣｏＤ（Capacity On Demand）の機能が実装されたマルチプロセッサシステムは、ユーザに提供する物理ＣＰＵ（Central Processing Unit）リソースの量を状況に応じて機動的に変更することができる。例えば、マルチプロセッサシステム上で実行されるドメインの処理に割り当てられる物理ＣＰＵリソースが不足し、ドメインの処理性能が低下した場合、ドメインの処理に割り当てる物理ＣＰＵコアの数をユーザの要求に従って増やし、ドメインの処理性能を向上させる。なお、ここではドメインに物理的なリソースが割り当てられる場合のＣｏＤを例にしたが、仮想的なドメイン（以降、単に仮想マシンと呼ぶ）に物理的なリソースが割り当てられる仮想環境でのＣｏＤであってもよい。むしろ近年では、このような、仮想マシンに物理的なリソースが割り当てられる仮想環境下でのＣｏＤが広く普及している。
【０００３】
例えば、仮想環境下でのＣｏＤの機能が実装されたマルチプロセッサシステムにおいて、ＣｏＤの契約によって定められた数の物理ＣＰＵコアをユーザの仮想マシンに対して割り当てると、動作する物理ＣＰＵコアの配置によっては仮想マシンの性能が低下する。これは、物理ＣＰＵコアの配置によっては物理ＣＰＵ内のＬ（Level）１キャッシュ及びＬ２キャッシュについて競合が発生するためである。
【０００４】
また、動作する物理ＣＰＵコアの配置によっては、局所的に高温の場所が生じることがある。ＣＰＵ温度が許容できない温度に達した場合には物理ＣＰＵが正常に動作しなくなるだけでなく、物理ＣＰＵが故障する原因にもなるため、マルチプロセッサシステム内に高温の場所が生じた状態は好ましくない。
【０００５】
マルチプロセッサシステムに関する従来技術は存在するが、上記のような問題に関して、動作させる物理ＣＰＵコアを適切に選択可能な技術は存在しない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−３７４５８号公報
【特許文献２】特開２０１２−４３２５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、１つの側面では、マルチプロセッサシステムにおいて適切な物理ＣＰＵコアを動作させるための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る制御装置は、情報処理システムにおける複数の処理装置の各々の物理位置の情報と、当該処理装置が動作しているか否かを示す管理情報とを記憶する記憶部と、記憶部に記憶された、複数の処理装置の各々の物理位置の情報に基づき、複数の処理装置の中から動作すべき１又は複数の第１処理装置を決定し、決定の結果に従い、記憶部に記憶された管理情報の更新と、１又は複数の第１処理装置を動作させるための処理とを実行する制御部とを有する。
【発明の効果】
【０００９】
１つの側面では、マルチプロセッサシステムにおいて適切な物理ＣＰＵコアを動作させることができるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、マルチプロセッサシステムの一例を示す図である。
【図２】図２は、電源モードについて説明するための図である。
【図３】図３は、性能モードの配置の一例を示す図である。
【図４】図４は、バランスモードの配置の一例を示す図である。
【図５】図５は、省電力モードの配置の一例を示す図である。
【図６】図６は、第１の実施の形態の情報処理システムの構成を示す図である。
【図７】図７は、ＣＰＵのハードウエア構成の一例を示す図である。
【図８】図８は、コアの物理位置の特定について説明するための図である。
【図９】図９は、監視装置のハードウエア構成図である。
【図１０】図１０は、コア位置データ格納部に格納されるデータの一例を示す図である。
【図１１】図１１は、ＬＣＵ位置データ格納部に格納されるデータの一例を示す図である。
【図１２】図１２は、第１管理データ格納部に格納されるデータの一例を示す図である。
【図１３】図１３は、第２管理データ格納部に格納されるデータの一例を示す図である。
【図１４】図１４は、メインの処理フローを示す図である。
【図１５】図１５は、ライセンス割当処理の処理フローを示す図である。
【図１６】図１６は、第１集中割当処理の処理フローを示す図である。
【図１７】図１７は、第１管理データ格納部に格納されるデータの一例を示す図である。
【図１８】図１８は、第１管理データ格納部に格納されるデータの一例を示す図である。
【図１９】図１９は、第１分散割当処理の処理フローを示す図である。
【図２０】図２０は、第１管理データ格納部に格納されるデータの一例を示す図である。
【図２１】図２１は、第２集中割当処理の処理フローを示す図である。
【図２２】図２２は、コア位置データ格納部に格納されるデータの一例を示す図である。
【図２３】図２３は、コア位置データ格納部に格納されるデータの一例を示す図である。
【図２４】図２４は、第２分散割当処理の処理フローを示す図である。
【図２５】図２５は、電源投入処理の処理フローを示す図である。
【図２６】図２６は、ＬＣＵ位置データ格納部に格納されるデータの一例を示す図である。
【図２７】図２７は、ＬＣＵ位置データ格納部に格納されるデータの一例を示す図である。
【図２８】図２８は、電源モードと性能及び省電力化との関係を示す図である。
【図２９】図２９は、第２の実施の形態の情報処理システムの概要を示す図である。
【図３０】図３０は、ハードウエアの具体的な構成を示す図である。
【図３１】図３１は、制御部及びシステム制御部の機能ブロック図である。
【図３２】図３２は、マスタの監視装置のハードウエア構成図である。
【図３３】図３３は、マスタではない監視装置のハードウエア構成図である。
【図３４】図３４は、仮想化ソフトウエアの機能ブロック図である。
【図３５】図３５は、管理データ格納部に格納される第１管理データの一例を示す図である。
【図３６】図３６は、管理データ格納部に格納される第２管理データの一例を示す図である。
【図３７】図３７は、制御部が実行する処理の処理フローを示す図である。
【図３８】図３８は、温度Ｔ０乃至Ｔ３について説明するための図である。
【図３９】図３９は、制御部が実行する処理の処理フローを示す図である。
【図４０】図４０は、システム制御部が実行する処理の処理フローを示す図である。
【図４１】図４１は、第２の実施の形態における決定処理の処理フローを示す図である。
【図４２】図４２は、管理データ格納部に格納される第１管理データの一例を示す図である。
【図４３】図４３は、コアの切替について説明するための図である。
【図４４】図４４は、マッピングデータの更新について説明するための図である。
【図４５】図４５は、第３の実施の形態における決定処理の処理フローを示す図である。
【図４６】図４６は、第４の実施の形態における決定処理の処理フローを示す図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
図１乃至図５を用いて、第１の実施の形態の概要を説明する。
【００１２】
図１に、ＣＰＵ１ｐ乃至４ｐを有する情報処理システムを示す。ＣＰＵ１ｐ乃至４ｐの各々は、ソケットに装着されている。ＣＰＵ１ｐ乃至４ｐの各々は、各々が複数の物理ＣＰＵコア（以下、単にコアと呼ぶ）及び１つのＬ１キャッシュを有する複数のＬＣＵ（Local Cache Unit）と、１つのＬ２キャッシュとを有する。図１の例では、ＣＰＵ１ｐはＬＣＵ１１ｌ乃至１４ｌを有し、ＣＰＵ２ｐはＬＣＵ２１ｌ乃至２４ｌを有し、ＣＰＵ３ｐはＬＣＵ３１ｌ乃至３４ｌを有し、ＣＰＵ４ｐはＬＣＵ４１ｌ乃至４４ｌを有する。また、ＣＰＵ１ｐ乃至４ｐの各々はメモリに接続される。同一のＬＣＵに含まれる複数のコアは、そのＬＣＵに含まれるＬ１キャッシュにアクセスする。また、同一のＣＰＵに含まれる複数のコアは、そのＣＰＵに含まれるＬ２キャッシュにアクセスする。第１の実施の形態においては、ＬＣＵ単位で電源の投入及び切断が行われる。
【００１３】
図１においては、番号が付されたコアはライセンスが割り当てられたコアであり、ライセンスが割り当てられたコアが動作する。すなわち、ＣＰＵ１ｐにおいては１番から８番までのコアが動作し、ＣＰＵ２ｐにおいては１３番から２０番までのコアが動作し、ＣＰＵ３ｐにおいては２５番から３０番までのコアが動作し、ＣＰＵ４ｐにおいては３７番から４２番までのコアが動作する。なお、第１乃至第４の実施の形態においては、動作するコアとは、電源が投入され且つライセンスが割り当てられたコアのことを意味し、単に電源が投入されたコア（或いは、電源が投入されているもののライセンスが割り当てられていないコア）のことを意味しない。
【００１４】
上で述べたように、動作するコアの配置は性能等に影響を及ぼす。そこで第１の実施の形態においては、ユーザ或いは管理者等によって指定された電源モードに従って、動作するコアの配置を切り替えることができるようにする。具体的には、図２に示すように、性能モードと、バランスモードと、省電力モードとを指定可能とする。そして、性能モードにおいては、動作するコアが含まれるＣＰＵが分散され且つ動作するコアが含まれるＬＣＵが分散されるように配置が行われる。バランスモードにおいては、動作するコアが含まれるＣＰＵが分散され且つ動作するコアが特定のＬＣＵに集められるように配置が行われる。省電力モードにおいては、動作するコアが特定のＣＰＵに集められ且つ動作するコアが特定のＬＣＵに集められるように配置が行われる。
【００１５】
図３に、性能モードの配置の一例を示す。図３に示すように、性能モードにおいては、動作するコアはＣＰＵ１ｐ乃至４ｐに分散され、且つ、動作するコアは各ＣＰＵ内の複数のＬＣＵに分散される。これにより、各ＣＰＵのＬ２キャッシュについて競合が発生しにくくなるとともに、各ＬＣＵのＬ１キャッシュについて競合が発生しにくくなる。よって、ＣＰＵ１ｐ乃至４ｐを使用して実現されるシステムの性能を向上させることができる。
【００１６】
図４に、バランスモードの配置の一例を示す。図４に示すように、バランスモードにおいては、動作するコアはＣＰＵ１ｐ乃至４ｐに分散され、且つ、動作するコアは各ＣＰＵ内の特定のＬＣＵに集められる。これにより、各ＣＰＵのＬ２キャッシュについて競合が発生しにくくなるとともに、電源が投入されるＬＣＵの数を減らし電力消費を抑制することができる。
【００１７】
図５に、省電力モードの配置の一例を示す。図５に示すように、省電力モードにおいては、動作するコアはＣＰＵは特定のＣＰＵに集められ、且つ、動作するコアは各ＣＰＵ内の特定のＬＣＵに集められる。これにより、電源が投入されるＬＣＵの数を減らし、電力消費をさらに抑制することができるようになる。なお、図４と比較した場合、電源が投入されるＬＣＵの数は減っていないが、動作するコアの数によっては電源が投入されるＬＣＵの数は減る。
【００１８】
以下では、第１の実施の形態をより具体的に説明する。ここでは、１つの筐体内において動作させるコアの物理的配置を、性能あるいは消費電力に基づいて最適化する機能を提供する例を説明するが、これに限定されるわけではない。例えば、仮想的なマッピングデータ処理を併用することで仮想環境下での実施に適用してもよい。
【００１９】
図６に、第１の実施の形態の情報処理システム１の構成を示す。情報処理システム１は、例えばサービスプロセッサであり且つハードウエア１２の監視及び制御を行う監視装置１００と、ハードウエア１２とを有する。ハードウエア１２はマザーボード１３を含み、マザーボード１３はＣＰＵ１ｐ乃至４ｐとメモリ１４とを含む。図６においてはＣＰＵの数は４であるが、数に限定は無い。また、図面を見やすくするため、ＣＰＵ１ｐ乃至４ｐとメモリ１４との間の接続は省略されている。
【００２０】
仮想化ソフトウエア１１は、メモリ１４に展開され、ＣＰＵ１ｐ乃至４ｐに実行される。また、ＯＳ（Operating System）１０のプログラムも、メモリ１４に展開され、ＣＰＵ１ｐ乃至４ｐに実行される。ＯＳ１０上では仮想化ソフトウエア１１によって実現される仮想マシンのアプリケーションプログラム等が実行されるが、図面を簡単にするため説明が省略されている。
【００２１】
図７に、ＣＰＵ１ｐのハードウエア構成の一例を示す。マルチコアプロセッサであるＣＰＵ１ｐは、各々複数のコアとＬ１キャッシュを含む複数のＬＣＵ１１ｌ乃至１４ｌと、Ｌ２キャッシュ１ｃと、メモリアクセスコントローラ１ｍｃとを有する。ＬＣＵ１１ｌ乃至１４ｌはＬ２キャッシュ１ｃに接続され、Ｌ２キャッシュ１ｃはメモリアクセスコントローラ１ｍｃに接続される。図７においては、コアの数が３であり、ＬＣＵの数が４であるが、数に限定は無い。また、ここではＣＰＵ１ｐを例として説明をしたが、ＣＰＵ２ｐ乃至４ｐのハードウエア構成はＣＰＵ１ｐのハードウエア構成と同じである。
【００２２】
図８を用いて、コアの物理位置の特定について説明する。図を見やすくするため、ＣＰＵ１ｐのＬ２キャッシュ１ｃ及びメモリアクセスコントローラ１ｍｃは省略されている。第１の実施の形態においては、コアの物理位置を、そのコアが含まれるＣＰＵが取り付けられたソケットの番号ｌ（図８の例においてはｌ＝１）と、ＬＣＵの番号ｍ（図８の例においては、ｍは１≦ｍ≦４を満たす自然数）と、ＬＣＵ内でのコアの位置を表す番号ｎ（図８の例においては、ｎは１≦ｎ≦３を満たす自然数）とを用いて特定される。例えば、図８における、ＩＤ（IDentifier）が「ｃ−０８」であるコアの物理位置は、（ｌ，ｍ，ｎ）＝（１，３，２）という３次元座標によって表される。以下、コアのＩＤをＣ−ＩＤと表す。
【００２３】
図６の説明に戻り、監視装置１００は、ライセンス管理部１０１と、第２管理データ格納部１０２と、電源モード管理部１０３と、第１管理データ格納部１０４、割当決定部１０５と、コア位置データ格納部１０６と、電源投入管理部１０７と、ＬＣＵ位置データ格納部１０８と、電源制御部１０９とを含む。
【００２４】
ライセンス管理部１０１は、契約ライセンス数（すなわち、動作させるコアの数）の入力指示を受け付け、契約ライセンス数を割当決定部１０５に通知する。また、ライセンス管理部１０１は、割当決定部１０５によって決定されたライセンス割当に従って、第２管理データ格納部１０２に格納されているデータを更新する。
【００２５】
電源モード管理部１０３は、電源モードの入力指示を受け付け、電源モードを割当決定部１０５に通知する。
【００２６】
割当決定部１０５は、コア位置データ格納部１０６に格納されたデータに基づき処理を実行し、コア位置データ格納部１０６に格納されたデータを処理結果に基づき更新するとともに、第１管理データ格納部１０４に格納されたデータを処理結果に基づき更新する。
【００２７】
電源投入管理部１０７は、コア位置データ格納部１０６に格納されたデータに基づき処理を実行し、ＬＣＵ位置データ格納部１０８に格納されたデータを処理結果に基づき更新する。
【００２８】
電源制御部１０９は、ＬＣＵ位置データ格納部１０８に格納されたデータに従って、ＬＣＵへの電源の投入及び切断を実行する。
【００２９】
図９に、監視装置１００のハードウエア構成図を示す。監視装置１００は、ＣＰＵ１１１と、ＲＡＭ（Random Access Memory）１１２と、ＲＯＭ（Read Only Memory）１１３と、バス１１５とを有する。ＣＰＵ１１１、ＲＡＭ１１２及びＲＯＭ１１３は、バス１１５を介して接続される。ＲＯＭ１１３は、システム制御ファームウエア１１４を格納する。システム制御ファームウエア１１４は、ＣＰＵ１１１によってＲＡＭ１１２に読み出され、ＣＰＵ１１１によって実行される。図６に示したライセンス管理部１０１、電源モード管理部１０３、割当決定部１０５、電源投入管理部１０７及び電源制御部１０９は、ＣＰＵ１１１がシステム制御ファームウエア１１４を実行することによって実現される。第２管理データ格納部１０２、第１管理データ格納部１０４、コア位置データ格納部１０６及びＬＣＵ位置データ格納部１０８は、例えばＲＡＭ１１２に設けられる。
【００３０】
図１０に、コア位置データ格納部１０６に格納されるデータの一例を示す。図１０の例では、Ｃ−ＩＤと、ソケット番号ｌと、ＬＣＵ番号ｍと、コア番号ｎと、ライセンス割当フラグとが格納される。ライセンス割当フラグが「ＯＮ」であるＣＰＵは動作し、ライセンス割当フラグが「ＯＦＦ」であるＣＰＵは動作しない。
【００３１】
図１１に、ＬＣＵ位置データ格納部１０８に格納されるデータの一例を示す。図１１の例では、ＬＣＵのＩＤであるＬＣＵ−ＩＤと、ソケット番号ｌと、ＬＣＵ番号ｍと、電源投入フラグとが格納される。電源投入フラグが「ＯＮ」であるＬＣＵには電源が投入され、電源投入フラグが「ＯＦＦ」であるＬＣＵには電源は投入されない。
【００３２】
図１２に、第１管理データ格納部１０４に格納されるデータの一例を示す。図１２の例では、ＣＰＵが取り付けられたソケットのソケット番号と、割り当てられたライセンスの数とが格納される。図１２の例であれば、ソケット番号が２であるソケットにおいては４つのコアが動作することになる。
【００３３】
図１３に、第２管理データ格納部１０２に格納されるデータの一例を示す。図１３の例では、通番と、ライセンスが割り当てられたコアのＣ−ＩＤとが格納される。
【００３４】
次に、図１４乃至図２８を用いて、監視装置１００が実行する処理を説明する。本処理の開始時点においては、いずれのコアに対しても電源は投入されていないものとする。
【００３５】
まず、監視装置１００のライセンス管理部１０１は、例えば情報処理システム１の管理者による契約ライセンス数の入力指示を受け付ける（図１４：ステップＳ１）。ライセンス管理部１０１は、契約ライセンス数を割当決定部１０５に通知する。
【００３６】
電源モード管理部１０３は、電源モードの選択指示を受け付ける（ステップＳ３）。電源モード管理部１０３は、電源モードを割当決定部１０５に通知する。
【００３７】
そして、割当決定部１０５は、ライセンス割当処理を実行する（ステップＳ５）。ライセンス割当処理については、図１５乃至図２４を用いて説明する。
【００３８】
まず、割当決定部１０５は、電源モードが「省電力」であるか判定する（図１５：ステップＳ２１）。電源モードが「省電力」である場合（ステップＳ２１：Ｙｅｓルート）、割当決定部１０５は、第１集中割当処理を実行する（ステップＳ２３）。第１集中割当処理については、図１６乃至図１８を用いて説明する。
【００３９】
まず、割当決定部１０５は、第１管理データ格納部１０４に格納された、各ＣＰＵに割り当てるライセンス数を０に設定する（図１６：ステップＳ４１）。ステップＳ４１の処理によって、第１管理データ格納部１０４には、例えば図１７に示すようなデータが格納されるようになる。
【００４０】
割当決定部１０５は、予め保存された、ＣＰＵ当たりのコア数ＫをＲＡＭ１１２から読み出す（ステップＳ４３）。本実施の形態においては、各ＣＰＵが有するコアの数は同一であるとする。
【００４１】
割当決定部１０５は、ソケット番号を表す変数ｌをｌ＝１と設定し且つ未割り当てのライセンス数を表す変数ｃｏｕｎｔをｃｏｕｎｔ＝契約ライセンス数と設定する（ステップＳ４５）。契約ライセンス数は、ライセンス管理部１０１から通知された契約ライセンス数である。
【００４２】
割当決定部１０５は、ｃｏｕｎｔ−Ｋ≧０が成立するか判定する（ステップＳ４７）。ｃｏｕｎｔ−Ｋ≧０が成立する場合（ステップＳ４７：Ｙｅｓルート）、割当決定部１０５は、ソケット番号がｌであるソケットに取り付けられたＣＰＵに割り当てるライセンス数をＫに設定する（ステップＳ４９）。具体的には、割当決定部１０５は、第１管理データ格納部１０４に格納された、ソケット番号ｌに対応するライセンス数をＫに設定する。
【００４３】
割当決定部１０５は、ｌを１インクリメントし（ステップＳ５１）、ｃｏｕｎｔをｃｏｕｎｔ＝ｃｏｕｎｔ−Ｋと設定する（ステップＳ５３）。そしてステップＳ４７の処理に戻る。
【００４４】
一方，ｃｏｕｎｔ−Ｋ≧０が成立しない場合（ステップＳ４７：Ｎｏルート）、割当決定部１０５は、ソケット番号がｌであるソケットに取り付けられたＣＰＵに割り当てるライセンスの数をｃｏｕｎｔに設定する（ステップＳ５５）。具体的には、割当決定部１０５は、第１管理データ格納部１０４に格納された、ソケット番号ｌに対応するライセンス数をｃｏｕｎｔに設定する。そして元の処理に戻る。
【００４５】
以上のような処理を実行すれば、動作するコアが特定のＣＰＵに集められるような配置を実現できるようになる。例えばＫ＝１２であり且つｃｏｕｎｔの初期値が２０である場合、第１管理データ格納部１０４には、図１８に示すようなデータが格納される。
【００４６】
図１５の説明に戻り、電源モードが「省電力」ではない場合（ステップＳ２１：Ｎｏルート）、割当決定部１０５は、第１分散割当処理を実行する（ステップＳ２５）。第１分散割当処理については、図１９及び図２０を用いて説明する。
【００４７】
まず、割当決定部１０５は、第１管理データ格納部１０４に格納された、各ＣＰＵに割り当てるライセンス数を０に設定する（図１９：ステップＳ６１）。ステップＳ６１の処理によって、第１管理データ格納部１０４には、例えば図１７に示すようなデータが格納されるようになる。
【００４８】
割当決定部１０５は、未割り当てのライセンス数を表す変数ｃｏｕｎｔをｃｏｕｎｔ＝契約ライセンス数と設定する（ステップＳ６３）。契約ライセンス数は、ライセンス管理部１０１から通知された契約ライセンス数である。
【００４９】
割当決定部１０５は、予め保存された、情報処理システム１のソケット数ＬをＲＡＭ１１２から読み出す（ステップＳ６５）。
【００５０】
割当決定部１０５は、ｃｏｕｎｔをＬで除した場合における商Ａ及び剰余Ｂを算出する（ステップＳ６７）。
【００５１】
割当決定部１０５は、第１管理データ格納部１０４に格納された、各ＣＰＵに割り当てるライセンス数をＡに設定する（ステップＳ６９）。
【００５２】
割当決定部１０５は、ソケット番号を表す変数ｌをｌ＝１と設定する（ステップＳ７１）。
【００５３】
割当決定部１０５は、Ｂ−１≧０が成立するか判定する（ステップＳ７３）。Ｂ−１≧０が成立する場合（ステップＳ７３：Ｙｅｓルート）、割当決定部１０５は、ソケット番号がｌであるソケットに取り付けられたＣＰＵに割り当てるライセンス数を１インクリメントする（ステップＳ７５）。具体的には、割当決定部１０５は、第１管理データ格納部１０４に格納された、ソケット番号ｌに対応するライセンス数を１インクリメントする。
【００５４】
割当決定部１０５は、ＢをＢ＝Ｂ−１と設定し（ステップＳ７７）且つｌをｌ＝ｌ＋１と設定する（ステップＳ７９）。そしてステップＳ７３の処理に戻る。
【００５５】
一方、Ｂ−１≧０が成立しない場合（ステップＳ７３：Ｎｏルート）、呼び出しの元の処理に戻る。
【００５６】
以上のような処理を実行すれば、動作するコアがＣＰＵ１ｐ乃至４ｐに分散されるような配置を実現できるようになる。例えばＬ＝４であり且つｃｏｕｎｔの初期値が２０である場合、第１管理データ格納部１０４には、図２０に示すようなデータが格納される。
【００５７】
図１５の説明に戻り、割当決定部１０５は、第１管理データ格納部１０４から、各ソケットに取り付けられたＣＰＵに割り当てるライセンスの数を読み出す（ステップＳ２７）。
【００５８】
割当決定部１０５は、電源モードが「性能」であるか判定する（ステップＳ２９）。電源モードが「性能」ではない場合（ステップＳ２９：Ｎｏルート）、割当決定部１０５は、第２集中割当処理を実行する（ステップＳ３１）。第２集中割当処理については、図２１乃至図２３を用いて説明する。
【００５９】
まず、割当決定部１０５は、情報処理システム１内におけるＣＰＵのうち未処理のＣＰＵを１つ特定し、ソケット番号ｌをそのＣＰＵが取り付けられたソケットのソケット番号に設定する（図２１：ステップＳ８１）。以下では、ステップＳ８１において特定されたＣＰＵを「処理対象ＣＰＵ」と呼ぶ。
【００６０】
割当決定部１０５は、処理対象ＣＰＵに割り当てるライセンス数ｎｕｍを第１管理データ格納部１０４から読み出す（ステップＳ８３）。
【００６１】
割当決定部１０５は、コア位置データ格納部１０６に格納された、処理対象ＣＰＵの各コアのライセンス割当フラグを「ＯＦＦ」に設定する（ステップＳ８５）。
【００６２】
割当決定部１０５は、ＬＣＵ番号ｍをｍ＝１と設定し且つコア番号ｎをｎ＝１と設定する（ステップＳ８７）。
【００６３】
割当決定部１０５は、ｎｕｍ＞０が成立するか判定する（ステップＳ８９）。ｎｕｍ＞０が成立する場合（ステップＳ８９：Ｙｅｓルート）、割当決定部１０５は、コア位置データ格納部１０６に格納された、物理位置が（ｌ，ｍ，ｎ）であるコアのライセンス割当フラグを「ＯＮ」に設定する（ステップＳ９１）。
【００６４】
割当決定部１０５は、ｎｕｍをｎｕｍ＝ｎｕｍ−１と設定する（ステップＳ９３）。
【００６５】
割当決定部１０５は、ｎ＜ＬＣＵ当たりのコア数Ｎが成立するか判定する（ステップＳ９５）。ｎ＜ＬＣＵ当たりのコア数Ｎが成立する場合（ステップＳ９５：Ｙｅｓルート）、割当決定部１０５は、ｎをｎ＝ｎ＋１と設定し（ステップＳ９７）、ステップＳ８９の処理に戻る。
【００６６】
一方、ｎ＜ＬＣＵ当たりのコア数Ｎが成立しない場合（ステップＳ９５：Ｎｏルート）、割当決定部１０５は、ｎをｎ＝１と設定する（ステップＳ９９）。
【００６７】
割当決定部１０５は、ｍをｍ＝ｍ＋１と設定する（ステップＳ１０１）。そしてステップＳ８９の処理に戻る。
【００６８】
一方，ｎｕｍ＞０が成立しない場合（ステップＳ８９：Ｎｏルート）、割当決定部１０５は、情報処理システム１内に未処理のＣＰＵが有るか判定する（ステップＳ１０３）。未処理のＣＰＵが有る場合（ステップＳ１０３：Ｙｅｓルート）、ステップＳ８１の処理に戻る。未処理のＣＰＵが無い場合（ステップＳ１０３：Ｎｏルート）、呼び出し元の処理に戻る。
【００６９】
以上のような処理を実行すれば、動作するコアが特定のＬＣＵに集められるような配置を実現できるようになる。例えば初期的に図２２に示すようなデータがコア位置データ格納部１０６に格納されている場合、第２集中割当処理を実行すると、例えば図２３に示すようなデータがコア位置データ格納部１０６に格納される。
【００７０】
図１５の説明に戻り、電源モードが「性能」である場合（ステップＳ２９：Ｙｅｓルート）、割当決定部１０５は、第２分散割当処理を実行する（ステップＳ３３）。第２分散割当処理については、図２４を用いて説明する。
【００７１】
まず、割当決定部１０５は、情報処理システム１内におけるＣＰＵのうち未処理のＣＰＵを１つ特定し、ソケット番号ｌをそのＣＰＵが取り付けられたソケットのソケット番号に設定する（図２４：ステップＳ１１１）。以下では、ステップＳ１１１において特定されたＣＰＵを「処理対象ＣＰＵ」と呼ぶ。
【００７２】
割当決定部１０５は、処理対象ＣＰＵに割り当てるライセンス数ｎｕｍを第１管理データ格納部１０４から読み出す（ステップＳ１１３）。
【００７３】
割当決定部１０５は、コア位置データ格納部１０６に格納された、処理対象ＣＰＵの各コアのライセンス割当フラグを「ＯＦＦ」に設定する（ステップＳ１１５）。
【００７４】
割当決定部１０５は、ＬＣＵ番号ｍをｍ＝１と設定し且つコア番号ｎをｎ＝１と設定する（ステップＳ１１７）。
【００７５】
割当決定部１０５は、ｎｕｍ＞０が成立するか判定する（ステップＳ１１９）。ｎｕｍ＞０が成立する場合（ステップＳ１１９：Ｙｅｓルート）、割当決定部１０５は、コア位置データ格納部１０６に格納された、物理位置が（ｌ，ｍ，ｎ）であるコアのライセンス割当フラグを「ＯＮ」に設定する（ステップＳ１２１）。
【００７６】
割当決定部１０５は、ｎｕｍをｎｕｍ＝ｎｕｍ−１と設定する（ステップＳ１２３）。
【００７７】
割当決定部１０５は、ｍ＜ソケット当たりのＬＣＵ数Ｍが成立するか判定する（ステップＳ１２５）。ｍ＜ソケット当たりのＬＣＵ数Ｍが成立する場合（ステップＳ１２５：Ｙｅｓルート）、割当決定部１０５は、ｍをｍ＝ｍ＋１と設定し（ステップＳ１２７）、ステップＳ１１９の処理に戻る。
【００７８】
一方、ｍ＜ソケット当たりのＬＣＵ数Ｍが成立しない場合（ステップＳ１２５：Ｎｏルート）、割当決定部１０５は、ｍをｍ＝１と設定する（ステップＳ１２９）。
【００７９】
割当決定部１０５は、ｎをｎ＝ｎ＋１と設定する（ステップＳ１３１）。そしてステップＳ１１９の処理に戻る。
【００８０】
一方，ｎｕｍ＞０が成立しない場合（ステップＳ１１９：Ｎｏルート）、割当決定部１０５は、情報処理システム１内に未処理のＣＰＵが有るか判定する（ステップＳ１３３）。未処理のＣＰＵが有る場合（ステップＳ１３３：Ｙｅｓルート）、ステップＳ１１１の処理に戻る。未処理のＣＰＵが無い場合（ステップＳ１３３：Ｎｏルート）、呼び出し元の処理に戻る。
【００８１】
以上のような処理を実行すれば、動作するコアが多数のＬＣＵに分散されるような配置を実現できるようになる。
【００８２】
図１５の説明に戻り、割当決定部１０５は、コア位置データ格納部１０６に格納されたライセンス割当フラグが「ＯＮ」であるコアのＣ−ＩＤをライセンス管理部１０１に通知する。そして、ライセンス管理部１０１は、割当決定部１０５から通知されたＣ−ＩＤで、第２管理データ格納部１０２に格納されたＣ−ＩＤを更新する（ステップＳ３５）。そして呼び出し元の処理に戻る。
【００８３】
図１４の説明に戻り、監視装置１００は情報処理システム１の管理者による電源投入指示を受け付け（ステップＳ７）、監視装置１００は電源制御プログラムを起動する（ステップＳ９）。電源制御プログラムの起動によって電源制御部１０９が動作を開始する。
【００８４】
電源制御部１０９は、電源投入処理を実行する（ステップＳ１１）。そして処理は終了する。電源投入処理については、図２５乃至図２７を用いて説明する。
【００８５】
まず、電源投入管理部１０７は、ＬＣＵ位置データ格納部１０８に格納された、各ＬＣＵの電源投入フラグを「ＯＦＦ」に設定する（図２５：ステップＳ１４１）。ステップＳ１４１の処理によって、ＬＣＵ位置データ格納部１０８には、例えば図２６に示すようなデータが格納される。
【００８６】
電源投入管理部１０７は、処理されたコアの数を表す変数ｐ＿ｉｄをｐ＿ｉｄ＝１と設定する（ステップＳ１４３）。
【００８７】
電源投入管理部１０７は、コア位置データ格納部１０６から、Ｃ−ＩＤがｃ＿（ｐ＿ｉｄ）であるコアのライセンス割当フラグを特定する（ステップＳ１４５）。
【００８８】
電源投入管理部１０７は、ステップＳ１４５において特定されたライセンス割当フラグが「ＯＮ」であるか判定する（ステップＳ１４７）。ライセンス割当フラグが「ＯＮ」ではない場合（ステップＳ１４７：Ｎｏルート）、ステップＳ１５３の処理に移行する。
【００８９】
一方、ライセンス割当フラグが「ＯＮ」である場合（ステップＳ１４７：Ｙｅｓルート）、電源投入管理部１０７は、コア位置データ格納部１０６から、Ｃ−ＩＤがｃ＿（ｐ＿ｉｄ）であるコアのソケット番号ｌ及びＬＣＵ番号ｍを特定する（ステップＳ１４９）。
【００９０】
電源投入管理部１０７は、ソケット番号がｌであり且つＬＣＵ番号がｍであるＬＣＵの電源投入フラグを「ＯＮ」に設定する（ステップＳ１５１）。ステップＳ１５１の処理によって、例えば図２７に示すように、電源が投入されるＬＣＵの電源投入フラグのみが「ＯＮ」に設定される。
【００９１】
電源投入管理部１０７は、ｐ＿ｉｄをｐ＿ｉｄ＝ｐ＿ｉｄ＋１と設定する（ステップＳ１５３）。
【００９２】
電源投入管理部１０７は、ｐ＿ｉｄ≦Ｌ＊Ｍ＊Ｎが成立するか判定する（ステップＳ１５５）。ｐ＿ｉｄ≦Ｌ＊Ｍ＊Ｎが成立する場合（ステップＳ１５５：Ｙｅｓルート）、ステップＳ１４５の処理に戻る。
【００９３】
一方、ｐ＿ｉｄ≦Ｌ＊Ｍ＊Ｎが成立しない場合（ステップＳ１５５：Ｎｏルート）、電源制御部１０９は、ＬＣＵ位置データ格納部１０８における電源投入フラグが「ＯＮ」であるＬＣＵを特定し、特定したＬＣＵに電源を投入する（ステップＳ１５７）。そして呼び出し元の処理に戻る。
【００９４】
以上のような処理を実行すれば、電源を投入すべきＬＣＵに対してのみ電源を投入できるようになる。図２８に、電源モードと性能及び省電力化との関係を示す。電源モードが「性能」である場合、性能は高いが省電力化の効果は小さい。電源モードが「省電力」である場合、性能は低いが省電力化の効果は大きい。電源モード「バランス」である場合、性能及び省電力化の効果は中程度である。
【００９５】
［実施の形態２］
次に、第２の実施の形態について説明する。第２の実施の形態によれば、動作させるコアの切り替えによって、マルチプロセッサシステム内の温度ムラを解消することができるようになる。なお、第２乃至第４の実施の形態においては、筐体間において動作させるコアの物理的配置を温度ムラの観点から最適化する機能を提供する例が示されており、仮想的なマッピングデータ処理を併用することで仮想環境に適用される。
【００９６】
図２９に、第２の実施の形態の情報処理システム２の概要を示す。情報処理システム２は、連結された複数の筐体を含むハードウエア２３を有し、１台のサーバとして動作することができる。すなわち、情報処理システム２はビルディングブロック方式によって構築されるシステムである。ハードウエア２３上では仮想化ソフトウエア２２が動作し、仮想化ソフトウエア２２上ではＯＳ２１が動作する。複数の筐体の各々は、例えばサービスプロセッサである監視装置を有し、各監視装置上で制御部が実行される。また、複数の監視装置のうち１の監視装置はマスタの監視装置（本実施の形態においては、監視装置０ｍ）であり、マスタの監視装置上ではさらにシステム制御部２００が実行される。図２９の例では、筐体０ｂは制御部０ｆを実行し、筐体１ｂは制御部１ｆを実行し、筐体２ｂは制御部２ｆを実行する。
【００９７】
図３０に、ハードウエア２３のより具体的な構成を示す。筐体０ｂは、ＣＰＵ００ｐ乃至０２ｐと、冷却ファンによって筐体０ｂ内に取り込まれた空気の温度（以下、吸気温度と呼ぶ）を計測する吸気温度センサ５０ｓと、監視装置０ｍとを有する。ＣＰＵ００ｐはＣＰＵ００ｐの温度を計測するＣＰＵ温度センサ００ｓを有し、ＣＰＵ０１ｐはＣＰＵ０１ｐの温度を計測するＣＰＵ温度センサ０１ｓを有し、ＣＰＵ０２ｐはＣＰＵ０２ｐの温度を計測するＣＰＵ温度センサ０２ｓを有する。各ＣＰＵは（ｐ＋１）個（ｐは自然数）のコアを有するマルチコアプロセッサである。但し、各ＣＰＵが有するコアの数が異なっていてもよい。筐体１ｂ及び筐体２ｂの構成は筐体０ｂの構成と基本的に同じであるので、ここでは説明を省略する。
【００９８】
各ＣＰＵは、専用の高速インタフェースによって他のＣＰＵと通信を行うことができる。また、各監視装置は、専用のインタフェースによって他の監視装置と通信を行うことができる。
【００９９】
図３１を用いて、制御部０ｆの機能ブロック及びシステム制御部２００の機能ブロックを示す。制御部０ｆは、温度異常処理部３０１と、電源制御部３０２と、切替部３０３と、温度監視部３０４と、ファン制御部３０５とを含む。制御部１ｆ及び２ｆが実行する処理は制御部０ｆが実行する処理と基本的に同じであるため、ここでは説明を省略する。また、システム制御部２００は、ＯＳインタフェース部２０１と、ＣＰＵ選択部２０２と、管理データ格納部２０３と、温度データ処理部２０４とを含む。
【０１００】
温度監視部３０４は、筐体０ｂにおける各ＣＰＵのＣＰＵ温度センサから取得した温度データ及び筐体０ｂにおける吸気温度センサ５０ｓから取得した温度データを、温度データ処理部２０４に通知する。また、温度監視部３０４は、筐体０ｂにおける各ＣＰＵのＣＰＵ温度に応じて、温度異常処理部３０１、切替部３０３及びファン制御部３０５に通知を行う。温度異常処理部３０１は、温度監視部３０４からの通知に応じて、温度異常が発生したＣＰＵの電源の制御（例えば切断）を電源制御部３０２に指示し、また、ＯＳ２１の制御（例えばシャットダウン）をＯＳインタフェース部２０１に指示する。切替部３０３は、温度監視部３０４からの通知に応じて、コアの切替要求をＣＰＵ選択部２０２に出力する。ファン制御部３０５は、温度監視部３０４からの通知に応じて、筐体０ｂにおける冷却ファンの回転速度を制御する。ＣＰＵ選択部２０２は、切替部３０３から受け取った切替要求に応じて、管理データ格納部２０３に格納されたデータに基づき処理を実行し、処理結果に基づき生成されたコア切替指示を仮想化ソフトウエア２２に出力する。温度データ処理部２０４は、温度監視部３０４から受け取った温度データに基づき、管理データ格納部２０３に格納されているデータを更新する。
【０１０１】
図３２に、マスタである監視装置０ｍのハードウエア構成図を示す。監視装置０ｍは、ＣＰＵ２５１と、ＲＡＭ２５２と、ＲＯＭ２５３と、バス２５５とを有する。ＣＰＵ２５１、ＲＡＭ２５２及びＲＯＭ２５３は、バス２５５を介して接続される。ＲＯＭ２５３は、システム制御ファームウエア２５４１及び制御ファームウエア２５４２を格納する。システム制御ファームウエア２５４１及び制御ファームウエア２５４２は、ＣＰＵ２５１によってＲＡＭ２５２に読み出され、ＣＰＵ２５１によって実行される。図３１に示したＯＳインタフェース部２０１、ＣＰＵ選択部２０２及び温度データ処理部２０４は、ＣＰＵ２５１がシステム制御ファームウエア２５４１を実行することによって実現される。管理データ格納部２０３は、例えばＲＡＭ２５２に設けられる。図３１に示した温度異常処理部３０１、電源制御部３０２、切替部３０３、温度監視部３０４及びファン制御部３０５は、ＣＰＵ２５１が制御ファームウエア２５４２を実行することによって実現される。
【０１０２】
図３３に、マスタではない監視装置のハードウエア構成図を示す。マスタではない監視装置１ｍ及び２ｍは、ＣＰＵ２６１と、ＲＡＭ２６２と、ＲＯＭ２６３と、バス２６５とを有する。ＣＰＵ２６１、ＲＡＭ２６２及びＲＯＭ２６３は、バス２６５を介して接続される。ＲＯＭ２６３は、制御ファームウエア２６４を格納する。制御ファームウエア２６４は、ＣＰＵ２６１によってＲＡＭ２６２に読み出され、ＣＰＵ２６１によって実行される。マスタではない監視装置の温度異常処理部３０１、電源制御部３０２、切替部３０３、温度監視部３０４及びファン制御部３０５は、ＣＰＵ２６１が制御ファームウエア２６４を実行することによって実現される。
【０１０３】
図３４に、仮想化ソフトウエア２２の機能ブロック図を示す。仮想化ソフトウエア２２は、ＣＰＵ管理部４０１と、マッピングデータ格納部４０２とを含む。ＣＰＵ管理部４０１は、ＣＰＵ選択部２０２から受け取ったコア切替指示に基づき、マッピングデータ格納部４０２に格納されたデータを更新する。
【０１０４】
図３５に、管理データ格納部２０３に格納される第１管理データの一例を示す。図３５の例では、筐体の識別情報と、ＣＰＵの識別情報と、ＣＰＵ温度及びその順位と、吸気温度及びその順位と、使用されていないコアの数及びコアの総数並びにその順位と、筐体間の距離及びその順位と、順位の合計を表す数値と、順位の合計を表す数値に基づき決定される総合順位とが格納される。筐体間の距離は、処理対象のＣＰＵが含まれる筐体とその他の各筐体との距離である。ＣＰＵ温度及び吸気温度が低いほど温度ムラの解消に有効であるため、順位が上になる。使用されていないコアの数が多いほど温度の局所的な上昇を発生させにくいため、順位は上になる。筐体間の距離が長いほど温度ムラの解消に有効であるため、順位は上になる。
【０１０５】
図３６に、管理データ格納部２０３に格納される第２管理データの一例を示す。図３６の例では、ＣＰＵの識別情報と、コアを識別するための番号と、コアが動作中であるか（すなわち、コアに電源が投入され且つプログラムの実行に使用されている（すなわちライセンスが割り当て済みである）か）否かを表す動作フラグとが格納される。第２管理データは、コアの切替時にＣＰＵ選択部２０２によって更新される。
【０１０６】
次に、図３７乃至図４４を用いて、情報処理システム２において行われる処理について説明する。まず、図３７乃至図３９を用いて、制御部（ここでは、制御部０ｆとする）が実行する処理を説明する。但し、制御部１ｆ及び２ｆが実行する処理は制御部０ｆが実行する処理と同じである。
【０１０７】
まず、温度監視部３０４は、吸気温度センサ５０ｓから吸気温度を読み出し、読み出した吸気温度を温度データ処理部２０４に通知する（図３７：ステップＳ１６１）。
【０１０８】
温度監視部３０４は、筐体０ｂにおけるＣＰＵのうち未処理のＣＰＵを１つ特定する（ステップＳ１６３）。以下では、ステップＳ１６３において特定されたＣＰＵを処理対象ＣＰＵと呼ぶ。
【０１０９】
温度監視部３０４は、処理対象ＣＰＵのＣＰＵ温度を処理対象ＣＰＵのＣＰＵ温度センサから読み出し、読み出したＣＰＵ温度を温度データ処理部２０４に通知する（ステップＳ１６５）。
【０１１０】
温度監視部３０４は、処理対象ＣＰＵのＣＰＵ温度がＴ３以上であるか判定する（ステップＳ１６７）。
【０１１１】
処理対象ＣＰＵのＣＰＵ温度がＴ３以上である場合（ステップＳ１６７：Ｙｅｓルート）、温度監視部３０４は、ＣＰＵ温度がＴ３以上であることを温度異常処理部３０１に通知する。これに応じ、温度異常処理部３０１は、ＯＳ２１のシャットダウン要求をシステム制御部２００におけるＯＳインタフェース部２０１に出力する（ステップＳ１６９）。これに応じ、ＯＳインタフェース部２０１は、ＯＳ２１のシャットダウンを実行する。また、温度異常処理部３０１は、処理対象ＣＰＵの電源の制御（例えば切断）を電源制御部３０２に指示し、電源制御部３０２に処理対象ＣＰＵの電源切断を実行させてもよい。そして処理は端子Ａを介して図３９のステップＳ１８３に移行する。
【０１１２】
一方、処理対象ＣＰＵの温度がＴ３以上ではない場合（ステップＳ１６７：Ｎｏルート）、温度監視部３０４は、処理対象ＣＰＵのＣＰＵ温度がＴ２以上であるか判定する（ステップＳ１７１）。
【０１１３】
処理対象ＣＰＵのＣＰＵ温度がＴ２以上である場合（ステップＳ１７１：Ｙｅｓルート）、温度監視部３０４は、コアの切替要求をシステム制御部２００におけるＣＰＵ選択部２０２に出力する（ステップＳ１７３）。コアの切替要求は、処理対象ＣＰＵの識別情報を含む。システム制御部２００が実行する処理については、後で説明する。そして処理は端子Ａを介して図３９のステップＳ１８３に移行する。
【０１１４】
一方、処理対象ＣＰＵのＣＰＵ温度がＴ２以上ではない場合（ステップＳ１７１：Ｎｏルート）、温度監視部３０４は、処理対象ＣＰＵのＣＰＵ温度がＴ１以上であるか判定する（ステップＳ１７５）。
【０１１５】
処理対象ＣＰＵのＣＰＵ温度がＴ１以上である場合（ステップＳ１７５：Ｙｅｓルート）、温度監視部３０４は、処理対象ＣＰＵのＣＰＵ温度がＴ１以上であることをファン制御部３０５に通知する。これに応じ、ファン制御部３０５は、筐体０ｂに搭載された冷却ファンの回転速度を高速化する（ステップＳ１７７）。例えば、ＣＰＵ温度がＴ１以上である場合に設定すべき回転速度として予め指定された回転速度が設定される。そして処理は端子Ａを介して図３９のステップＳ１８３の処理に移行する。
【０１１６】
一方、処理対象ＣＰＵのＣＰＵ温度がＴ１以上ではない場合（ステップＳ１７５：Ｎｏルート）、温度監視部３０４は、処理対象ＣＰＵのＣＰＵ温度がＴ０以下であるか判定する（ステップＳ１７９）。
【０１１７】
処理対象ＣＰＵのＣＰＵ温度がＴ０以下である場合（ステップＳ１７９：Ｙｅｓルート）、温度監視部３０４は、処理対象ＣＰＵのＣＰＵ温度がＴ０以下であることをファン制御部３０５に通知する。これに応じ、ファン制御部３０５は、筐体０ｂに搭載された冷却ファンの回転速度の高速化を解除する（ステップＳ１８１）。なお、冷却ファンの回転速度が高速化されていない場合には、現状の回転速度が維持される。そして処理は端子Ａを介して図３９のステップＳ１８３の処理に移行する。
【０１１８】
一方、処理対象ＣＰＵのＣＰＵ温度がＴ０以下ではない場合（ステップＳ１７９：Ｎｏルート）、処理は端子Ａを介して図３９のステップＳ１８３の処理に移行する。
【０１１９】
図３８を用いて、Ｔ０乃至Ｔ３の関係を説明する。第２の実施の形態においては、Ｔ０＜Ｔ１＜Ｔ２＜Ｔ３という関係が成立する。このようなＴ０乃至Ｔ３によって、温度上昇に対する対策を段階的に実施することが可能になっている。
【０１２０】
図３９の説明に移行し、温度監視部３０４は、情報処理システム２内のＣＰＵのうち未処理のＣＰＵが有るか判定する（ステップＳ１８３）。未処理のＣＰＵが有る場合（ステップＳ１８３：Ｙｅｓルート）、処理は端子Ｂを介して図３７のステップＳ１６３の処理に戻る。
【０１２１】
一方、未処理のＣＰＵが無い場合（ステップＳ１８３：Ｎｏルート）、処理の終了指示を情報処理システム２の管理者から受け付けたか判定する（ステップＳ１８５）。処理の終了指示を受け付けていない場合（ステップＳ１８５：Ｎｏルート）、処理は端子Ｃを介して図３７のステップＳ１６１の処理に戻る。処理の終了指示を受け付けた場合（ステップＳ１８５：Ｙｅｓルート）、処理は終了する。
【０１２２】
以上のような処理を実行すれば、ＣＰＵ温度の高さに応じて適切な対応を機動的に実施することができるようになる。
【０１２３】
次に、図４０乃至図４４を用いて、システム制御部２００が実行する処理を説明する。なお、本実施の形態においても、予め決められた契約ライセンス数のコアを情報処理システム２において動作させるものとする。
【０１２４】
まず、システム制御部２００における温度データ処理部２０４は、温度データの通知を制御部０ｆ乃至２ｆにおける温度監視部３０４から受け取り、管理データ格納部２０３に格納された第１管理データを更新する（図４０：ステップＳ１９１）。なお、ステップＳ１９１において、第２管理データに基づき各ＣＰＵの未使用コア数を算出し、第１管理データをも更新してもよい。
【０１２５】
ＣＰＵ選択部２０２は、コアの切替要求を制御部０ｆ乃至２ｆにおける切替部３０３から受け取ったか判定する（ステップＳ１９３）。コアの切替要求を切替部３０３から受け取っていない場合（ステップＳ１９３：Ｎｏルート）、ステップＳ２０３の処理に移行する。一方、コアの切替要求を切替部３０３から受け取った場合（ステップＳ１９３：Ｙｅｓルート）、ＣＰＵ選択部２０２は、決定処理を実行する（ステップＳ１９５）。決定処理については、図４１及び４２を用いて説明する。
【０１２６】
まず、ＣＰＵ選択部２０２は、第１管理データにおける「ＣＰＵ温度」を順位付けし（図４１：ステップＳ２１１）、第１管理データを更新する。ステップＳ２１１においては、ＣＰＵ温度が低いほど順位が高くなるように順位付けされる。
【０１２７】
ＣＰＵ選択部２０２は、第１管理データにおける「吸気温度」を順位付けし（ステップＳ２１３）、第１管理データを更新する。ステップＳ２１３においては、吸気温度が低いほど順位が高くなるように順位付けされる。
【０１２８】
ＣＰＵ選択部２０２は、第１管理データにおける「未使用コア数」を順位付けし（ステップＳ２１５）、第１管理データを更新する。ステップＳ２１５においては、未使用コア数が多いほど順位が高くなるように順位付けされる。
【０１２９】
ＣＰＵ選択部２０２は、コアの切替要求に含まれるＣＰＵの識別情報によって特定されるＣＰＵを含む筐体と、その他の各筐体との筐体間距離を算出する。そして、ＣＰＵ選択部２０２は、第１管理データにおける「筐体間距離」を順位付けし（ステップＳ２１７）、第１管理データを更新する。ステップＳ２１７においては、筐体間距離が長くなるほど順位が高くなるように順位付けされる。
【０１３０】
ＣＰＵ選択部２０２は、ＣＰＵ温度の順位、吸気温度の順位、未使用コア数の順位及び筐体間距離の順位の総和を算出し（ステップＳ２１９）、第１管理データを更新する。
【０１３１】
ＣＰＵ選択部２０２は、ステップＳ２１９において算出された総和に従って総合順位を決定し（ステップＳ２２１）、第１管理データを更新する。
【０１３２】
ＣＰＵ選択部２０２は、順位を表す変数ａをａ＝１と設定し（ステップＳ２２３）、総合順位がａ位であるＣＰＵを特定する（ステップＳ２２５）。
【０１３３】
ＣＰＵ選択部２０２は、ステップＳ２２５において特定されたＣＰＵは未使用コアを有するか判定する（ステップＳ２２７）。未使用コアを有するか否かは、第１管理データにおける未使用コア数の欄に格納された情報によって判定される。ステップＳ２２５において特定されたＣＰＵは未使用コアを有しない場合（ステップＳ２２７：Ｎｏルート）、ＣＰＵ選択部２０２は、ａをａ＝ａ＋１と設定し（ステップＳ２２９）、ステップＳ２２５の処理に戻る。これにより、例えば図４２の例であれば、まず総合順位が１であるＣＰＵ３１ｐが特定され、次に総合順位が２であるＣＰＵ２０ｐ、ＣＰＵ２１ｐ及びＣＰＵ３０ｐが特定され・・・、というように、高順位のＣＰＵから特定されるようになる。
【０１３４】
一方、ステップＳ２２５において特定されたＣＰＵは未使用コアを有する場合（ステップＳ２２７：Ｙｅｓルート）、ＣＰＵ選択部２０２は、ステップＳ２２５において特定されたＣＰＵの未使用コアの中から１つ未使用コアを特定する。そして、特定された未使用コアが新たに動作させるコアであることを示す情報を生成し（ステップＳ２３１）、ＲＡＭ２５２に格納する。そして呼び出し元の処理に戻る。
【０１３５】
図４０の説明に戻り、ＣＰＵ選択部２０２は、ＣＰＵ温度がＴ２に達したＣＰＵ（すなわち、コアの切替要求に含まれる識別情報によって特定されるＣＰＵ）におけるコアを１つ無効に設定する（ステップＳ１９７）。具体的には、ＣＰＵ選択部２０２は、管理データ格納部２０３に格納された第２管理データにおいて、無効に設定される１つのコアの動作フラグをＯＦＦに設定する。
【０１３６】
ＣＰＵ選択部２０２は、新たに動作させる１つのコア（すなわち、ステップＳ２３１において生成された情報によって特定されるコア）を有効に設定する（ステップＳ１９９）。具体的には、ＣＰＵ選択部２０２は、管理データ格納部２０３に格納された第２管理データにおいて、有効に設定される１つのコアの動作フラグをＯＮに設定する。
【０１３７】
図４３を用いて、コアの切替について説明する。図４３の例においては、鉛直方向において最も高い位置に設置された筐体０ｂの吸気温度が最も高くなっており、鉛直方向において最も低い位置に設置された筐体３ｂの吸気温度が最も低くなっている。太線のコアは有効なコア（すなわち、動作中のコア）である。
【０１３８】
そして、本例においては、ＣＰＵ００ｐの温度がＴ２以上になったと仮定する。このような場合には、上で述べたような処理に基づき、ＣＰＵ００ｐ内の１つのコアが動作を停止し、別のＣＰＵ内のコアを１つ動作させる。図４３の例では、吸気温度が最も低い筐体３ｂにおけるＣＰＵ３１ｐの１つのコアが新たに動作を開始する。これにより、契約ライセンス数のＣＰＵが動作することを担保しつつ、情報処理システム２の温度耐性を強化することが可能になる。
【０１３９】
ＣＰＵ選択部２０２は、仮想化ソフトウエア２２におけるＣＰＵ管理部４０１に、マッピングデータの更新を指示する。これに応じ、ＣＰＵ管理部４０１は、マッピングデータ格納部４０２に格納されたマッピングデータを更新する（ステップＳ２０１）。
【０１４０】
図４４を用いて、マッピングデータの更新について説明する。マッピングデータの更新においては、仮想ＣＰＵ番号と物理ＣＰＵ番号との対応付けが変更される。通常、ＯＳ２１上で実行される仮想マシンは仮想ＣＰＵ番号によってコアを利用するが、実際には仮想化ソフトウエア２２において仮想ＣＰＵ番号が物理ＣＰＵ番号に変換され、物理ＣＰＵ番号によってコアが利用される。ステップＳ２０１においては、コアの切替によって新たに７番のコアが利用されるようになっており、これに従い、ＣＰＵ管理部４０１によって、マッピングデータにおける物理番号「＃３」は「＃７」に書き換えられる。このように、仮想ＣＰＵ番号を変更することなく動作コアの配置変更が可能である。すなわち、ＯＳ２１の改変は不要である。
【０１４１】
ＣＰＵ選択部２０２は、情報処理システム２の管理者による処理の終了指示を受け付けたか判定する（ステップＳ２０３）。処理の終了指示を受け付けていない場合（ステップＳ２０３：Ｎｏルート）、ステップＳ１９１の処理に戻る。処理の終了指示を受け付けた場合（ステップＳ２０３：Ｙｅｓルート）、処理は終了する。
【０１４２】
以上のような処理を実行すれば、温度が局所的に高温になることを未然に防げるので、温度ムラの発生を抑制し、システムの安定動作を維持できるようになる。また、動作するＣＰＵの配置の変更によって温度耐性を強化することができれば、冷却ファンの回転速度を高速化せずに済む場合があるので、消費電力の削減にもつながる。
【０１４３】
なお、上記のような処理によれば、冷却に有利な位置にあるコアの使用数が増え、冷却に不利な位置にあるコアの使用数が次第に減っていくことになると考えられる。
【０１４４】
［実施の形態３］
次に、第３の実施の形態について説明する。
【０１４５】
第３の実施の形態の決定処理は、少なくともＣＰＵ温度と算出された筐体間距離とを順位付けする点で第２の実施の形態の決定処理と異なっており、その他の点については第３の実施の形態と第２の実施の形態は同じである。以下では、第３の実施の形態の決定処理について説明する。
【０１４６】
まず、ＣＰＵ選択部２０２は、第１管理データにおける「ＣＰＵ温度」を順位付けし（図４５：ステップＳ２４１）、第１管理データを更新する。ステップＳ２４１においては、ＣＰＵ温度が低いほど順位が高くなるように順位付けされる。
【０１４７】
ＣＰＵ選択部２０２は、コアの切替要求に含まれるＣＰＵの識別情報によって特定されるＣＰＵを含む筐体と、その他の各筐体との筐体間距離を算出する。そして、ＣＰＵ選択部２０２は、第１管理データにおける「筐体間距離」を順位付けし（ステップＳ２４３）、第１管理データを更新する。ステップＳ２４３においては、筐体間距離が長くなるほど順位が高くなるように順位付けされる。
【０１４８】
ＣＰＵ選択部２０２は、ＣＰＵ温度の順位及び筐体間距離の順位の和を算出し（ステップＳ２４５）、第１管理データを更新する。
【０１４９】
ＣＰＵ選択部２０２は、ステップＳ２４５において算出された和に従って総合順位を決定し（ステップＳ２４７）、第１管理データを更新する。
【０１５０】
ＣＰＵ選択部２０２は、順位を表す変数ａをａ＝１と設定し（ステップＳ２４９）、総合順位がａ位であるＣＰＵを特定する（ステップＳ２５１）。
【０１５１】
ＣＰＵ選択部２０２は、ステップＳ２５１において特定されたＣＰＵは未使用コアを有するか判定する（ステップＳ２５３）。未使用コアを有するか否かは、第１管理データにおける未使用コア数の欄に格納された情報によって判定される。ステップＳ２５１において特定されたＣＰＵは未使用コアを有しない場合（ステップＳ２５３：Ｎｏルート）、ＣＰＵ選択部２０２は、ａをａ＝ａ＋１と設定し（ステップＳ２５５）、ステップＳ２５１の処理に戻る。
【０１５２】
一方、ステップＳ２５１において特定されたＣＰＵは未使用コアを有する場合（ステップＳ２５３：Ｙｅｓルート）、ＣＰＵ選択部２０２は、ステップＳ２５１において特定されたＣＰＵの未使用コアの中から１つ未使用コアを特定する。そして、特定された未使用コアが新たに動作させるコアであることを示す情報を生成し（ステップＳ２５７）、ＲＡＭ２５２に格納する。そして呼び出し元の処理に戻る。
【０１５３】
以上のような処理を実行すれば、温度が局所的に高温になることを未然に防げるので、温度ムラの発生を抑制し、システムの安定動作を維持できるようになる。また、動作するＣＰＵの配置の変更によって温度耐性を強化することができれば、冷却ファンの回転速度を高速化せずに済む場合があるので、消費電力の削減にもつながる。例えば、筐体間の吸気温度にほとんど差が無い場合、或いは、ＣＰＵ内のコアの使用数がＣＰＵ温度の上昇に及ぼす影響が僅かであるような場合に対して、第３の実施の形態は有効である。
【０１５４】
［実施の形態４］
次に、第４の実施の形態について説明する。
【０１５５】
第４の実施の形態の決定処理は、少なくとも吸気温度と未使用コア数とを順位付けする点で第２及び第３の実施の形態の決定処理と異なっており、その他の点については第４の実施の形態と第２及び第３の実施の形態は同じである。以下では、第４の実施の形態の決定処理について説明する。
【０１５６】
ＣＰＵ選択部２０２は、第１管理データにおける「吸気温度」を順位付けし（図４６：ステップＳ２６１）、第１管理データを更新する。ステップＳ２６１においては、吸気温度が低いほど順位が高くなるように順位付けされる。
【０１５７】
ＣＰＵ選択部２０２は、第１管理データにおける「未使用コア数」を順位付けし（ステップＳ２６３）、第１管理データを更新する。ステップＳ２６３においては、未使用コア数が多いほど順位が高くなるように順位付けされる。
【０１５８】
ＣＰＵ選択部２０２は、吸気温度の順位及び未使用コア数の順位の和を算出し（ステップＳ２６５）、第１管理データを更新する。
【０１５９】
ＣＰＵ選択部２０２は、ステップＳ２６５において算出された和に従って総合順位を決定し（ステップＳ２６７）、第１管理データを更新する。
【０１６０】
ＣＰＵ選択部２０２は、順位を表す変数ａをａ＝１と設定し（ステップＳ２６９）、総合順位がａ位であるＣＰＵを特定する（ステップＳ２７１）。
【０１６１】
ＣＰＵ選択部２０２は、ステップＳ２７１において特定されたＣＰＵは未使用コアを有し、且つ、ステップＳ２７１において特定されたＣＰＵを含む筐体とコアの切替要求に含まれる識別情報によって特定されるＣＰＵを含む筐体との筐体間距離が０より大きいという条件が満たされるか判定する（ステップＳ２７３）。
【０１６２】
条件が満たされない場合（ステップＳ２７３：Ｎｏルート）、ＣＰＵ選択部２０２は、ａをａ＝ａ＋１と設定し（ステップＳ２７５）、ステップＳ２７１の処理に戻る。
【０１６３】
一方、条件が満たされる場合（ステップＳ２７３：Ｙｅｓルート）、ＣＰＵ選択部２０２は、ステップＳ２７１において特定されたＣＰＵの未使用コアの中から１つ未使用コアを特定する。そして、特定された未使用コアが新たに動作させるコアであることを示す情報を生成し（ステップＳ２７７）、ＲＡＭ２５２に格納する。そして呼び出し元の処理に戻る。
【０１６４】
以上のような処理を実行すれば、温度が局所的に高温になることを未然に防げるので、温度ムラの発生を抑制し、システムの安定動作を維持できるようになる。また、動作するＣＰＵの配置の変更によって温度耐性を強化することができれば、冷却ファンの回転速度を高速化せずに済む場合があるので、消費電力の削減にもつながる。例えば、特に吸気温度及びＣＰＵ内のコアの使用数がＣＰＵ温度に大きな影響を及ぼすような場合に対して、第４の実施の形態は有効である。
【０１６５】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した監視装置１００、制御部０ｆ乃至２ｆ、システム制御部２００、及び仮想化ソフトウエア２２の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【０１６６】
また、上で説明した各データ格納部の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【０１６７】
また、ステップＳ２１９、Ｓ２４７及びＳ２６７においては、順位に重み付けをしたうえで順位の和を求めるようにしてもよい。これにより、優先すべき項目の順位が総合順位に反映されやすくなる。
【０１６８】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１６９】
本実施の形態の第１の態様に係る制御装置（監視装置とも呼ぶ）は、（Ａ）情報処理システムにおける複数の処理装置の各々の物理位置の情報と、当該処理装置が動作しているか否かを示す管理情報とを記憶する記憶部と、（Ｂ）記憶部に記憶された、複数の処理装置の各々の物理位置の情報に基づき、複数の処理装置の中から動作すべき１又は複数の第１処理装置を決定し、決定の結果に従い、記憶部に記憶された管理情報の更新と、１又は複数の第１処理装置を動作させるための処理とを実行する制御部とを有する。
【０１７０】
これにより、マルチプロセッサシステムにおいて適切なプロセッサを動作させることが可能になる。
【０１７１】
また、情報処理システムは、複数の中央処理装置を有し、複数の中央処理装置の各々は、同一の１次キャッシュを使用する１又は複数の処理装置を各々が有する１又は複数のグループを有し、同一の中央処理装置に含まれる１又は複数のグループに属する処理装置は、同一の２次キャッシュを使用し、情報処理システムの電源は、グループ単位で制御され、物理位置の情報は、処理装置を含む中央処理装置の位置の情報と、処理装置が属するグループの位置の情報とを含んでもよい。同一のグループにおいて多数の処理装置が動作しないようにすれば、１次キャッシュについて競合が発生することを抑制できるので、性能が低下することを防げる。また、同一の中央処理装置において多数の処理装置が動作しないようにすれば、２次キャッシュについて競合が発生することを抑制できるので、性能が低下することを防げる。一方、同一のグループにおいて多数の処理装置が動作するようにすれば、電源が投入されるグループの数を減らせるので、電力消費を抑制できるようになる。従って、上で述べたような処理を実行すれば、動作させる処理装置の物理位置によって電力消費及び性能を適切に制御することができるようになる。
【０１７２】
また、上で述べた制御部は、（ｂ１）１又は複数の第１処理装置が複数の中央処理装置に分散され且つ１又は複数の処理装置が複数のグループに分散されるように、１又は複数の第１処理装置を決定してもよい。これにより、２次キャッシュについて競合が発生することを抑止するとともに、１次キャッシュについて競合が発生することも抑止できるようになる。すなわち、性能を重視して情報処理システムを運用することが可能になる。
【０１７３】
また、上で述べた制御部は、（ｂ２）１又は複数の第１処理装置が複数の中央処理装置に分散され且つ１又は複数の処理装置が特定のグループに集められるように、１又は複数の第１処理装置を決定してもよい。これにより、２次キャッシュについて競合が発生することを抑止するとともに、電力消費を抑制できるようになる。すなわち、性能及び省電力のバランスを重視して情報処理システムを運用することが可能になる。
【０１７４】
また、上で述べた制御部は、（ｂ３）１又は複数の第１処理装置が特定の中央処理装置に集められ且つ１又は複数の処理装置が特定のグループに集められるように、１又は複数の第１処理装置を決定してもよい。これにより、省電力を重視して情報処理システムを運用することができるようになる。
【０１７５】
また、上で述べた１又は複数の第１処理装置を動作させるための処理は、１又は複数の第１処理装置に電源を投入する処理を含んでもよい。例えば、情報処理システムの起動時から最適な物理位置で運用をすることができるようになる。
【０１７６】
また、情報処理システムは、複数の中央処理装置を有し、複数の処理装置の各々は、複数の中央処理装置のいずれかに含まれてもよい。そして、上で述べた制御部は、（ｂ４）動作している処理装置のうち特定の処理装置の温度が閾値を超えたことを検出し、各処理装置と特定の処理装置との距離と、各処理装置を含む中央処理装置の温度とに基づき、複数の処理装置の中から１の第１処理装置を決定してもよい。局所的に高温の場所が生じることを防ぎ且つ情報処理システム全体として温度を低下させるという意味では、特定の処理装置から離れた処理装置及び温度が低い中央処理装置に含まれる処理装置が動作することが好ましい。よって、上で述べたようにすれば、温度ムラの発生及び情報処理システムの高温化を抑制できるようになる。
【０１７７】
また、情報処理システムは、複数の中央処理装置を有し、複数の処理装置の各々は、複数の中央処理装置のいずれかに含まれてもよい。そして、上で述べた制御部は、（ｂ５）動作している処理装置のうち特定の処理装置の温度が閾値を超えたことを検出し、各処理装置と特定の処理装置との距離と、各処理装置を含む空間の吸気温度と、各処理装置を含む中央処理装置において動作していない処理装置の数とに基づき、複数の処理装置の中から１の第１処理装置を決定してもよい。局所的に高温の場所が生じることを防ぎ且つ情報処理システム全体として温度を低下させるという意味では、特定の処理装置から離れた処理装置、低温の空間に含まれる処理装置、及び動作していない処理装置が多い中央処理装置に含まれる処理装置が動作することが好ましい。よって、上で述べたようにすれば、温度ムラの発生及び情報処理システムの高温化を抑制できるようになる。
【０１７８】
また、上で述べた制御部は、（ｂ６）各処理装置を含む中央処理装置の温度にさらに基づき、複数の処理装置の中から１の第１処理装置を決定してもよい。これにより、温度制御をより柔軟に行えるようになる。
【０１７９】
また、１又は複数の第１処理装置を動作させるための処理は、処理装置の仮想的な識別情報と処理装置の物理的な識別情報とを対応付けて格納するデータ格納部に格納されている、特定の処理装置の物理的な識別情報を、１の第１処理装置の識別情報に書き換える処理を含んでもよい。例えば情報処理システムの運用中において、動作させるプロセッサを状況に応じて適切に切り替えることが可能になる。
【０１８０】
本実施の形態の第２の態様に係る制御方法は、（Ｃ）情報処理システムにおける複数の処理装置の各々の物理位置の情報と、当該処理装置が動作しているか否かを示す管理情報とを記憶する記憶部に記憶された、複数の処理装置の各々の物理位置の情報に基づき、複数の処理装置の中から動作すべき１又は複数の第１処理装置を決定し、（Ｄ）決定の結果に従い、記憶部に記憶された管理情報の更新と、１又は複数の第１処理装置を動作させるための処理とを実行する処理を含む。
【０１８１】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１８２】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１８３】
（付記１）
情報処理システムにおける複数の処理装置の各々の物理位置の情報と、当該処理装置が動作しているか否かを示す管理情報とを記憶する記憶部と、
前記記憶部に記憶された、前記複数の処理装置の各々の物理位置の情報に基づき、前記複数の処理装置の中から動作すべき１又は複数の第１処理装置を決定し、決定の結果に従い、前記記憶部に記憶された前記管理情報の更新と、前記１又は複数の第１処理装置を動作させるための処理とを実行する制御部と、
を有する制御装置。
【０１８４】
（付記２）
前記情報処理システムは、複数の中央処理装置を有し、
前記複数の中央処理装置の各々は、同一の１次キャッシュを使用する１又は複数の処理装置を各々が有する１又は複数のグループを有し、
同一の中央処理装置に含まれる１又は複数のグループに属する処理装置は、同一の２次キャッシュを使用し、
前記情報処理システムの電源は、グループ単位で制御され、
前記物理位置の情報は、前記処理装置を含む中央処理装置の位置の情報と、前記処理装置が属するグループの位置の情報とを含む、
付記１記載の制御装置。
【０１８５】
（付記３）
前記制御部は、
前記１又は複数の第１処理装置が前記複数の中央処理装置に分散され且つ前記１又は複数の処理装置が前記複数のグループに分散されるように、前記１又は複数の第１処理装置を決定する、
付記２記載の制御装置。
【０１８６】
（付記４）
前記制御部は、
前記１又は複数の第１処理装置が前記複数の中央処理装置に分散され且つ前記１又は複数の処理装置が特定のグループに集められるように、前記１又は複数の第１処理装置を決定する、
付記２記載の制御装置。
【０１８７】
（付記５）
前記制御部は、
前記１又は複数の第１処理装置が特定の中央処理装置に集められ且つ前記１又は複数の処理装置が特定のグループに集められるように、前記１又は複数の第１処理装置を決定する、
付記２記載の制御装置。
【０１８８】
（付記６）
前記１又は複数の第１処理装置を動作させるための処理は、
前記１又は複数の第１処理装置に電源を投入する処理を含む、
付記１乃至５のいずれか１つ記載の制御装置。
【０１８９】
（付記７）
前記情報処理システムは、複数の中央処理装置を有し、
前記複数の処理装置の各々は、前記複数の中央処理装置のいずれかに含まれ、
前記制御部は、
動作している前記処理装置のうち特定の処理装置の温度が閾値を超えたことを検出し、各処理装置と前記特定の処理装置との距離と、各処理装置を含む中央処理装置の温度とに基づき、前記複数の処理装置の中から１の第１処理装置を決定する、
付記１記載の制御装置。
【０１９０】
（付記８）
前記情報処理システムは、複数の中央処理装置を有し、
前記複数の処理装置の各々は、前記複数の中央処理装置のいずれかに含まれ、
前記制御部は、
動作している前記処理装置のうち特定の処理装置の温度が閾値を超えたことを検出し、各処理装置と前記特定の処理装置との距離と、各処理装置を含む空間の吸気温度と、各処理装置を含む中央処理装置において動作していない処理装置の数とに基づき、前記複数の処理装置の中から１の第１処理装置を決定する、
付記１記載の制御装置。
【０１９１】
（付記９）
前記制御部は、
各処理装置を含む中央処理装置の温度にさらに基づき、前記複数の処理装置の中から前記１の第１処理装置を決定する、
付記８記載の制御装置。
【０１９２】
（付記１０）
前記１又は複数の第１処理装置を動作させるための処理は、
処理装置の仮想的な識別情報と処理装置の物理的な識別情報とを対応付けて格納するデータ格納部に格納されている、前記特定の処理装置の物理的な識別情報を、前記１の第１処理装置の識別情報に書き換える処理を含む、
付記７乃至９のいずれか１つ記載の制御装置。
【０１９３】
（付記１１）
プロセッサが、
情報処理システムにおける複数の処理装置の各々の物理位置の情報と、当該処理装置が動作しているか否かを示す管理情報とを記憶する記憶部に記憶された、前記複数の処理装置の各々の物理位置の情報に基づき、前記複数の処理装置の中から動作すべき１又は複数の第１処理装置を決定し、
決定の結果に従い、前記記憶部に記憶された前記管理情報の更新と、前記１又は複数の第１処理装置を動作させるための処理とを実行する、
処理を実行する制御方法。
【０１９４】
（付記１２）
プロセッサに、
情報処理システムにおける複数の処理装置の各々の物理位置の情報と、当該処理装置が動作しているか否かを示す管理情報とを記憶する記憶部に記憶された、前記複数の処理装置の各々の物理位置の情報に基づき、前記複数の処理装置の中から動作すべき１又は複数の第１処理装置を決定し、
決定の結果に従い、前記記憶部に記憶された前記管理情報の更新と、前記１又は複数の第１処理装置を動作させるための処理とを実行する、
処理を実行させる制御プログラム。
【符号の説明】
【０１９５】
１  情報処理システム    １０  ＯＳ
１１  仮想化ソフトウエア    １２  ハードウエア
１３  マザーボード    １４  メモリ
１ｐ，２ｐ，３ｐ，４ｐ  ＣＰＵ    １００  監視装置
１１ｌ，１２ｌ，１３ｌ，１４ｌ，２１ｌ，２２ｌ，２３ｌ，２４ｌ，３１ｌ，３２ｌ，３３ｌ，３４ｌ，４１ｌ，４２ｌ，４３ｌ，４４ｌ  ＬＣＵ
１ｃ  Ｌ２キャッシュ    １ｍｃ  メモリアクセスコントローラ
１０１  ライセンス管理部    １０２  第２管理データ格納部
１０３  電源モード管理部    １０４  第１管理データ格納部
１０５  割当決定部    １０６  コア位置データ格納部
１０７  電源投入管理部    １０８  ＬＣＵ位置データ格納部
１０９  電源制御部    １１１  ＣＰＵ
１１２  ＲＡＭ    １１３  ＲＯＭ
１１４  システム制御ファームウエア    １１５  バス
２  情報処理システム    ２１  ＯＳ
２２  仮想化ソフトウエア    ２３  ハードウエア
０ｂ，１ｂ，２ｂ  筐体    ０ｆ，１ｆ，２ｆ  制御部
２００  システム制御部    ０ｍ，１ｍ，２ｍ  監視装置
００ｓ，０１ｓ，０２ｓ，１０ｓ，１１ｓ，１２ｓ，２０ｓ，２１ｓ，２２ｓ  ＣＰＵ温度センサ
５０ｓ，５１ｓ，５２ｓ  吸気温度センサ    ２５１，２６１  ＣＰＵ
２５２，２６２  ＲＡＭ    ２５３，２６３  ＲＯＭ
２５４１  システム制御ファームウエア    ２５４２，２６４  制御ファームウエア
２５５，２６５  バス    ２０１  ＯＳインタフェース部
２０２  ＣＰＵ選択部    ２０３  管理データ格納部
２０４  温度データ処理部    ３０１  温度異常処理部
３０２  電源制御部    ３０３  切替部
３０４  温度監視部    ３０５  ファン制御部
４０１  ＣＰＵ管理部    ４０２  マッピングデータ格納部
【図１】
2017084148.tif 000003
【図２】
2017084148.tif 000004
【図３】
2017084148.tif 000005
【図４】
2017084148.tif 000006
【図５】
2017084148.tif 000007
【図６】
2017084148.tif 000008
【図７】
2017084148.tif 000009
【図８】
2017084148.tif 000010
【図９】
2017084148.tif 000011
【図１０】
2017084148.tif 000012
【図１１】
2017084148.tif 000013
【図１２】
2017084148.tif 000014
【図１３】
2017084148.tif 000015
【図１４】
2017084148.tif 000016
【図１５】
2017084148.tif 000017
【図１６】
2017084148.tif 000018
【図１７】
2017084148.tif 000019
【図１８】
2017084148.tif 000020
【図１９】
2017084148.tif 000021
【図２０】
2017084148.tif 000022
【図２１】
2017084148.tif 000023
【図２２】
2017084148.tif 000024
【図２３】
2017084148.tif 000025
【図２４】
2017084148.tif 000026
【図２５】
2017084148.tif 000027
【図２６】
2017084148.tif 000028
【図２７】
2017084148.tif 000029
【図２８】
2017084148.tif 000030
【図２９】
2017084148.tif 000031
【図３０】
2017084148.tif 000032
【図３１】
2017084148.tif 000033
【図３２】
2017084148.tif 000034
【図３３】
2017084148.tif 000035
【図３４】
2017084148.tif 000036
【図３５】
2017084148.tif 000037
【図３６】
2017084148.tif 000038
【図３７】
2017084148.tif 000039
【図３８】
2017084148.tif 000040
【図３９】
2017084148.tif 000041
【図４０】
2017084148.tif 000042
【図４１】
2017084148.tif 000043
【図４２】
2017084148.tif 000044
【図４３】
2017084148.tif 000045
【図４４】
2017084148.tif 000046
【図４５】
2017084148.tif 000047
【図４６】
2017084148.tif 000048