(57)【要約】【課題】情報処理装置において、利用者の要求に応じたコアの最適な割り当て制御を行なう。【解決手段】複数の演算部１１を備える情報処理装置１において、前記複数の演算部１１のうち一の演算部１１が、前記複数の演算部１１についての複数の特性に関して設定される動作モードに基づいて、前記複数の演算部１１に対して割り当て順序を設定し、前記割り当て順序に従って、前記複数の演算部１１をプロセスに割り当てる。【選択図】図１
2019207690.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算部を備える情報処理装置において、
前記複数の演算部のうち一の演算部が、
前記複数の演算部についての複数の特性に関して設定される動作モードに基づいて、前記複数の演算部に対して割り当て順序を設定し、
前記割り当て順序に従って、前記複数の演算部をプロセスに割り当てる、
ことを特徴とする情報処理装置。
【請求項２】
前記一の演算部が、
前記動作モードに対応させて前記複数の特性に対する優先順位を規定するルール定義を参照し、前記優先順位が最も高い特性に基づいて前記割り当て順序を設定する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記一の演算部が、
前記複数の演算部のうち少なくとも一の演算部の構成の変更を検出した場合に、前記複数の演算部について前記複数の特性を測定する、
ことを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
前記一の演算部が、
前記動作モードの変更を検出した場合に、変更された前記動作モードに基づき前記複数の演算部に対して前記割り当て順序を再設定する、
ことを特徴とする請求項１〜請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
複数の演算部を備える情報処理装置において、
前記複数の演算部のうち一の演算部に、
前記複数の演算部についての複数の特性に関して設定される動作モードに基づいて、前記複数の演算部に対して割り当て順序を設定し、
前記割り当て順序に従って、前記複数の演算部をプロセスに割り当てる、
処理を実行させることを特徴とする制御プログラム。
【請求項６】
複数の演算部を備える複数の情報処理装置と、前記複数の情報処理装置を管理する管理装置とを備える情報処理システムであって、
前記複数の情報処理装置は、
前記複数の演算部についての複数の特性を収集し、
前記管理装置は、
前記複数の情報処理装置から前記複数の特性を収集し、
前記複数の情報処理装置の備える前記複数の演算部についての複数の特性に関して設定される振り分け定義に基づいて、前記複数の演算部を複数のグループに振り分け、
前記複数のグループのうち一の前記グループに属する演算部を用いて仮想装置を構築する、
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御プログラム、及び情報処理システムに関する。
【背景技術】
【０００２】
複数のＣＰＵ（Central Processing Unit）が搭載され、各ＣＰＵが複数のコア（ＣＰＵコア）を備える情報処理装置においては、当該情報処理装置の利用者の各要求（プロセス）に対してコアが割り当てられる。
【０００３】
このコアの割り当てに関し、利用者は、情報処理装置のＢＩＯＳ（Basic Input/Output System）等の起動プログラムを用いて、優先度を設定することができる。利用者によって設定され得る優先度のオプションには、例えば、パフォーマンスの向上（高性能）を優先するオプションや、電力の低減（省電力）を優先するオプションがあり、いずれも当該情報処理装置でのプロセスの処理環境を設定するものである。
【０００４】
ＯＳ（Operating System）は、この利用者によって設定される優先度でプロセスの処理を行なえるように、各コアを所定の順序で各プロセスに割り当てる制御を行なう。このような制御では、各コアの出荷時の仕様（例えば、ベンチマーク結果）に基づきプロセスへのコアの割り当てが行なわれたり、プロセスの割り当てられていない（空いた）コアが優先されてプロセスへ割り当てられる場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−０７６４１４号公報
【特許文献２】特開２００７−２９９３４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このような従来のコアの割り当て手法では、コアの個体差（ばらつき）を考慮すべく、各コアの特性に関する実測値を求め、各コアの仕様と実測値との差分に基づきプロセスに対してコアの割り当てを行なう。しかしながら、このようなコアの割り当て手法では、利用者によって選択される優先度が考慮されなくなってしまい、利用者の所望する環境でのプロセス処理が困難になるという課題がある。
【０００７】
１つの側面では、利用者の要求に応じたコアの最適な割り当て制御を行なうことを目的とする。
【課題を解決するための手段】
【０００８】
複数の演算部を備える情報処理装置において、前記複数の演算部のうち一の演算部が、前記複数の演算部についての複数の特性に関して設定される動作モードに基づいて、前記複数の演算部に対して割り当て順序を設定し、前記割り当て順序に従って、前記複数の演算部をプロセスに割り当てる。
【発明の効果】
【０００９】
一実施形態によれば、利用者の要求に応じたコアの最適な割り当て制御を行なうことができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態の一例としての情報処理装置のハードウェア構成を例示する図である。
【図２】実施形態の一例としての情報処理装置の機能構成を例示する図である。
【図３】実施形態の一例としての情報処理装置におけるＣＰＵ識別情報を例示する図である。
【図４】実施形態の一例としての情報処理装置におけるＣＰＵ管理情報を例示する図である。
【図５】実施形態の一例としての情報処理装置における優先順位付けルール定義を例示する図である。
【図６】実施形態の一例としての情報処理装置における電源投入制御時の処理を例示する図である。
【図７】実施形態の一例としての情報処理装置における優先順位付けルール定義を例示する図である。
【図８】（ａ）〜（ｃ）は、実施形態の一例としての情報処理装置におけるＣＰＵ管理情報の書き換えを例示する図である。
【図９】実施形態の一例としての情報処理装置における電源投入時の制御の処理を例示する図である。
【図１０】実施形態の一例としての情報処理装置における性能の再測定に係る制御の処理を例示する図である。
【図１１】実施形態の一例としての情報処理装置における優先度設定情報の変更に係る制御の処理を例示する図である。
【図１２】第一の変形例としての情報処理装置における電源投入時の制御の処理を例示する図である。
【図１３】第一の変形例としての情報処理装置におけるＣＰＵの特性を測定した結果を例示する図である。
【図１４】（ａ），（ｂ）は、第一の変形例としての情報処理装置におけるＣＰＵ管理情報の書き換えを例示する図である。
【図１５】（ａ），（ｂ）は、第一の変形例としての情報処理装置におけるＣＰＵ管理情報の書き換えを例示する図である。
【図１６】第二の変形例としての情報処理システムのハードウェア構成を例示する図である。
【図１７】第二の変形例としての管理サーバのハードウェア構成を例示する図である。
【図１８】第二の変形例としての管理サーバの機能構成を例示する図である。
【図１９】第二の変形例としての情報処理システムにおける振り分けルール定義を例示する図である。
【図２０】第二の変形例としての情報処理装置における集約ＣＰＵ管理情報を例示する図である。
【図２１】第二の変形例としての情報処理装置の機能構成を例示する図である。
【図２２】第二の変形例としての情報処理システムにおいてコアをグループに振り分けて仮想サーバを構築する処理を例示する図である。
【図２３】第二の変形例としての情報処理装置のＣＰＵ管理情報を例示する図である。
【図２４】第二の変形例としての情報処理装置のＣＰＵ管理情報を例示する図である。
【図２５】第二の変形例としての情報処理システムにおける集約ＣＰＵ管理情報を例示する図である。
【図２６】第二の変形例としての情報処理システムにおけるコアのグループへの振り分けを例示する図である。
【図２７】第二の変形例としての情報処理システムにおける振り分けルール定義を例示する図である。
【図２８】第二の変形例としての情報処理システムにおけるコアのグループへの振り分けを例示する図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図等はない。例えば、本実施形態、及び、各変形例を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態、及び、各変形例で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１２】
〔１〕一実施形態
〔１−１〕一実施形態に係る情報処理装置の構成例
図１は、実施形態の一例としての情報処理装置１のハードウェア構成を例示する図である。
【００１３】
この図１に示すように、情報処理装置１は、複数のコア（ＣＰＵコア）１１を備えるマルチコア構成のＣＰＵ＃０〜ＣＰＵ＃ｎ（ｎは０以上の整数）を備えてよい。さらに、情報処理装置１は、記憶部１３、メモリ１４、ＢＩＯＳメモリ１５、ＩＦ（Interface）部１６、及び、Ｉ／Ｏ（Input / Output）部１７を備えてよい。
【００１４】
具体的に、情報処理装置１は、１つ以上のＣＰＵ１０−０，ＣＰＵ１０−１，ＣＰＵ１０−２，・・・，ＣＰＵ１０−ｎを備える。以下、ＣＰＵを示す符号としては、複数のＣＰＵのうち１つを特定する必要があるときには符号１０−０，１０−１，１０−２，・・・，１０−ｎを用いるが、任意のＣＰＵを指すときには符号１０を用いる。また、ＣＰＵ１０−１，ＣＰＵ１０−２，・・・，ＣＰＵ１０−ｎは、それぞれ、ＣＰＵ＃０,ＣＰＵ＃１，・・・，ＣＰＵ＃ｎとも表され、符号“＃”に付される数字である、“０”，“１”，・・・，“ｎ”は単に物理ＣＰＵ番号ともいう。また、これらのＣＰＵ１０は、バス１８を介して互いに通信可能に接続される。
【００１５】
これらのＣＰＵ１０は、後述する記憶部１３に格納されるＯＳやプログラムを実行し、例えば、利用者から入力されたプロセスを処理すべく情報処理装置１を制御する。本実施形態では、ＣＰＵ１０（コア１１）は、図２等を用いて後述する起動プログラム４１，特性測定プログラム４２を実行する。
【００１６】
これらのＣＰＵ１０は、マルチコア構成であり、本実施形態では、各ＣＰＵ１０が２つのコア１１を備えるものとする。図１に示すように、ＣＰＵ＃０は、コア１１−０とコア１１−１との２つのコア１１を備える。同様に、ＣＰＵ＃１はコア１１−２とコア１１−３とを、ＣＰＵ＃２はコア１１−４とコア１１−５とを、ＣＰＵ＃ｎはコア１１−ｐ−１（ｐは０以上の整数）とコア１１−ｐとを、それぞれ備える。
【００１７】
以下、コアを示す符号としては、複数のコアのうち１つを特定する必要があるときには符号１１−０，１１−１，・・・，１１−ｐを用い、任意のコアを指すときには符号１１を用いる。なお、本実施形態では、各ＣＰＵ１０が２つのコア１１を備えるものとしたが、各ＣＰＵ１０は、１つもしくは３つ以上のコア１１を備えてもよい。
【００１８】
記憶部１３は、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶部１３は、情報処理装置１の二次記憶装置として使用されてよく、ＯＳやファームウェア、アプリケーション等のプログラム、及び、各種データが格納されてよい。記憶部１３としては、例えば、ＨＤＤ（Hard Disk Drive）等の磁気ディスク装置の他、ＳＳＤ(Solid State Drive)やＳＣＭ(Storage Class Memories) 等の半導体記憶装置が挙げられる。また、記憶部１３は、情報処理装置１の各種機能の全部若しくは一部を実現するプログラムを格納してもよい。
【００１９】
メモリ１４は、種々のデータやプログラムを格納するハードウェアの一例である。メモリ１４としては、揮発性メモリ、例えば、ＤＲＡＭ（Dynamic RAM）等のＲＡＭが挙げられる。なお、ＲＡＭはRandom Access Memoryの略称である。
【００２０】
ＢＩＯＳメモリ１５は、ＢＩＯＳ等の起動プログラム（後述する起動プログラム４１）に関する種々のデータや、起動プログラム自身を格納するハードウェアの一例である。ＢＩＯＳメモリ１５としては、例えば、不揮発性メモリが挙げられる。
【００２１】
ＩＦ部１６は、外部ネットワーク等を介し、図示しない外部装置との間の接続及び通信の制御等を行なう通信インタフェースの一例である。
【００２２】
Ｉ／Ｏ部１７は、例えば、マウスやキーボード等の入力装置、並びに、ディスプレイやスピーカ等の出力装置の少なくとも一方を含んでよい。
【００２３】
バス１８は、ＣＰＵ１０同士を通信可能に接続すると共に、ＣＰＵ１０と、記憶部１３、メモリ１４、ＢＩＯＳメモリ１５、ＩＦ部１６、及び、Ｉ／Ｏ部１７を相互に接続する。
【００２４】
〔１−２〕一実施形態に係る情報処理装置における機能構成例
図２は、図１に示す実施形態の一例としての情報処理装置１の機能構成を例示する図である。
【００２５】
この図２に示すように、情報処理装置１は、例示的に、ＢＩＯＳ処理部２１、ＯＳ処理部２２、入力部２３、及び、表示部２４を備えてよい。
【００２６】
入力部２３は、マウスやキーボード等の入力装置を用いて、利用者による要求や設定変更の入力を実現する。
【００２７】
表示部２４は、ディスプレイやスピーカ等の出力装置を用いて、利用者への情報の表示を実現する。
【００２８】
また、図２に示すように、ＢＩＯＳメモリ１５は、起動プログラム４１、特性測定プログラム４２、変更フラグ４３、ＣＰＵ識別情報４４、ＣＰＵ管理情報４５、優先度設定情報４６、及び、優先順位付けルール定義４７を備えてよい。この起動プログラム４１はＢＩＯＳ処理部２１によって実行され、特性測定プログラム４２はコア１１によって実行される。このＢＩＯＳ処理部２１は、複数のＣＰＵ１０のうちの一のＣＰＵ１０（プライマリのＣＰＵ１０）によって実行される。また、変更フラグ４３、ＣＰＵ識別情報４４、ＣＰＵ管理情報４５、優先度設定情報４６、及び、優先順位付けルール定義４７は、ＢＩＯＳ処理部２１が起動プログラム４１，特性測定プログラム４２が実行される際に参照される情報である。
【００２９】
起動プログラム４１は、ＢＩＯＳ等の情報処理装置１の起動に係る処理を実現するためのプログラムであり、例えば、電源投入を契機に実行される。
【００３０】
特性測定プログラム４２は、各ＣＰＵ１０に含まれるコア１１についての複数の特性を測定するためのプログラムであり、例えば、各コア１１に、特定の命令列を所定の時間実行させるものである。本実施形態では、特性測定プログラム４２として、既知のベンチマーク用プログラムを用いてもよい。また、本実施形態では、特性として、最大周波数と消費電力とを測定するものとし、最大周波数と消費電力との測定値を演算部特性情報ともいう。これらの特性（最大周波数と消費電力）を測定するための手法やプログラムは公知であるため、ここではその説明を省略する。
【００３１】
変更フラグ４３は、ＣＰＵ１０の交換等により、情報処理装置１が備えるＣＰＵ１０の構成（例えば、ＣＰＵ１０の組み合わせや数）に変更があるか否かを示すものである。ＣＰＵ１０に変更があれば、変更フラグ４３に“１”が格納され、変更がなければ、変更フラグ４３に“０”が格納されるものとする。また、本実施形態において、初回起動（工場出荷）時には、変更フラグ４３に“１”が格納されるものとする。
【００３２】
ＣＰＵ識別情報４４は、情報処理装置１に搭載される各ＣＰＵ１０の識別情報を管理するものである。ＣＰＵ識別情報４４について、図３を用いて説明する。
【００３３】
図３は、実施形態の一例としての情報処理装置１におけるＣＰＵ識別情報４４を例示する図である。本実施形態では、図３に示す例では、ＣＰＵ識別情報４４をテーブル形式で表現しているが、ＣＰＵ識別情報４４に格納される情報の表現形式はテーブルに限られるものではなく、種々変形して実施することができる。
【００３４】
この図３に示すＣＰＵ識別情報４４は、“物理ＣＰＵ番号”と“ＣＰＵシリアル番号”とのフィールドを備える。
【００３５】
このＣＰＵ識別情報４４のフィールド“物理ＣＰＵ番号” は、ＣＰＵ１０を一意に特定するための識別子（ＩＤ）を格納するものであり、“０”から“ｎ”の整数を格納する。例えば、図１に示す、ＣＰＵ＃０（１０−０），ＣＰＵ＃１（１０−１）の“物理ＣＰＵ番号”として、ＣＰＵ識別情報４４のフィールド“物理ＣＰＵ番号”には、それぞれ、“０”，“１”が格納される。
【００３６】
このＣＰＵ識別情報４４のフィールド“ＣＰＵシリアル番号”は、ＣＰＵ１０のシリアル番号（ナンバー）を格納する。なお、フィールド“ＣＰＵシリアル番号”に格納されるシリアル番号の桁数は任意とする。
【００３７】
なお、情報処理装置１の初回起動時には、このＣＰＵ識別情報４４のフィールド“物理ＣＰＵ番号”，“ＣＰＵシリアル番号”には、“ＮＵＬＬ”が格納されるものとする。
【００３８】
この図３は、“０”の物理ＣＰＵ番号を備えるＣＰＵ１０が、シリアル番号“ｘｘｘｘｘｘｘ”を備えることを例示している。
【００３９】
図２に示すＢＩＯＳメモリ１５の機能構成に関する説明に戻り、ＣＰＵ管理情報４５について説明する。ＣＰＵ管理情報４５は、各ＣＰＵ１０に備えられるコア１１の情報を管理するものである。ＣＰＵ管理情報４５について、を用いて説明する。
【００４０】
図４は、実施形態の一例としての情報処理装置１におけるＣＰＵ管理情報４５を例示する図である。本実施形態では、図４に示す例では、ＣＰＵ管理情報４５をテーブル形式で表現しているが、ＣＰＵ管理情報４５に格納される情報の表現形式はテーブルに限られるものではなく、種々変形して実施することができる。
【００４１】
この図４に示すＣＰＵ管理情報４５は、フィールドとして、“物理ＣＰＵ番号”、“物理コア番号”、“ＨＴ番号”、“論理コア番号”、“最大周波数”、及び、“消費電力”を備える。なお、“ＨＴ”は、Hyper-Threading Technology（ハイパースレッディングテクノロジ）の略称である。
【００４２】
ＣＰＵ管理情報４５のフィールド“物理ＣＰＵ番号”は、ＣＰＵ１０を一意に特定するための識別子（ＩＤ）を格納するものであり、“０”から“ｎ”の整数を格納する。例えば、図１中のＣＰＵ＃０（１０−０），ＣＰＵ＃１（１０−１）について、図４に示すように、ＣＰＵ管理情報４５のフィールド“物理ＣＰＵ番号”に、それぞれ、“０”，“１”が格納される。
【００４３】
ＣＰＵ管理情報４５のフィールド“物理コア番号”は、すべてのＣＰＵ１０に備えられるコア１１を一意に特定するための識別子（ＩＤ）を格納するものであり、“０”から“ｐ”の整数を格納する。なお、本実施形態では、各ＣＰＵ１０に備えられるコア１１を、単にコア１１、又は、物理コア１１ともいう。
【００４４】
また、コアを表す符号である、１１−０〜１１−ｐにおいて、符号“−”（ハイフン）の後に付される整数０〜ｐが、物理コア番号（ＩＤ）に相当する。
【００４５】
本実施形態では、各ＣＰＵ１０に備えられるコア１１が２つであるものとするから、図４のＣＰＵ管理情報４５に示すように、例えば、フィールド“物理ＣＰＵ番号”が“０”のＣＰＵ＃０について、“物理コア番号”には、“０”または“１”が格納される。また、同様に、物理ＣＰＵ番号が“１”のＣＰＵ＃１について、“物理コア番号”には、“２”または“３”が格納され、物理ＣＰＵ番号が“ｎ”のＣＰＵ＃ｎについて、“物理コア番号”には、“ｐ−１”または“ｐ”が格納される。
【００４６】
ＣＰＵ管理情報４５のフィールド“ＨＴ番号”は、各物理コア１１が複数の仮想的なコアとして機能する場合に、これらの仮想的なコアを一意に特定するための識別子（ＩＤ）を格納するものである。なお、本実施形態では、この仮想的なコアを、論理コアともいう。
【００４７】
本実施形態では、各物理コア１１に対して割り当てられる論理コアが２つであるものとするから、ＣＰＵ管理情報４５のフィールド“ＨＴ番号”には、“０”または“１”が格納される。具体的には、各物理コア番号に対して、それぞれ、ＨＴ番号に“０”及び“１”が設定される。本実施形態では、図４のＣＰＵ管理情報４５に示すように、例えば、物理コア番号が“０”である物理コア１１に対応する２つの論理コアに、それぞれ、“ＨＴ番号”として“０”と“１”とが割り当てられる。
【００４８】
ＣＰＵ管理情報４５のフィールド“論理コア番号”は、すべてのＣＰＵ１０が備える論理コアを一意に特定するための識別子（ＩＤ）を格納するものである。本実施形態では、フィールド“論理コア番号”には、“０”〜“ｋ”の整数が格納される。
【００４９】
図４に示すように、各物理コア１１に対して、２つの論理コアが割り当てられている。例えば、物理コア番号が“０”である２つの論理コアのうち、“ＨＴ番号”が“０”の論理コアに対して、“論理コア番号”に“０”が格納され、“ＨＴ番号”が“１”の論理コアに対して、“論理コア番号”に“１”が格納される。また、ＣＰＵ＃０の物理コア番号が“１”である論理コアのうち、“ＨＴ番号”が“０”である論理コアに対し、フィールド“論理コア番号”に“２”が格納され、“ＨＴ番号”が“１”である論理コアに対し、フィールド“論理コア番号”に“３”が格納される。
【００５０】
このＣＰＵ管理情報４５のフィールド“論理コア番号”に格納される値は、ＣＰＵ１０の論理コアが実行される際の順番に相当し、“論理コア番号”に格納される値が小さいほど先にプロセスが割り当てられる。すなわち、ＣＰＵ管理情報４５のフィールド“論理コア番号”に格納される値は、複数のプロセスに対する、各コア１１の割り当て順序を示す。
【００５１】
ＣＰＵ管理情報４５のフィールド“最大周波数”は、特性測定プログラム４２を実行させた結果得られる、各コア１１の最大周波数を格納するものである。本実施形態において、最大周波数の単位は“ＧＨｚ”としたがこれに限られるものではなく、種々変形して実施することができる。図４のＣＰＵ管理情報４５において、例えば、物理コア番号が“０”であるコア１１の最大周波数が“ａａａＧＨｚ”であることを示している。
【００５２】
ＣＰＵ管理情報４５のフィールド“消費電力”は、特性測定プログラム４２を実行させた結果得られる、各コア１１の各消費電力を格納するものである。本実施形態において、最大周波数の単位は“Ｗ”としたがこれに限られるものではなく、種々変形して実施することができる。図４のＣＰＵ管理情報４５において、例えば、ＣＰＵ＃０の物理コア番号が“０”であるコア１１の消費電力が“ｂｂｂＷ”であることを示している。なお、図中において、ａａａ，・・・，ｚｚｚは、任意の数値を表す。
【００５３】
図２に示すＢＩＯＳメモリ１５の機能構成に関する説明に戻り、優先度設定情報４６について説明する。優先度設定情報４６は、ＣＰＵ１０へのプロセスの割り当てに関し、利用者が選択（設定）する優先度に関する情報である。本実施形態では、利用者は、優先する特性として、消費電力や性能を設定することができる。具体的に、利用者は、優先度のオプションとして、省電力、高性能、及び、デフォルトのいずれかを選択できるものとする。なお、初回起動（工場出荷）時には、優先度設定情報４６は、デフォルトに設定されているものとする。
【００５４】
本実施形態では、利用者は、起動プログラム４１が実行している間に、本情報処理装置１上で、例えば、ＢＩＯＳ画面を介して優先度を設定するものとする。この、起動プログラム４１を用いて、優先度を設定するための手法は公知であるため、ここではその説明を省略する。
【００５５】
図５は、実施形態の一例としての情報処理装置１における優先順位付けルール定義４７を例示する図である。本実施形態では、図５に示す例では、優先順位付けルール定義４７をテーブル形式で表現しているが、優先順位付けルール定義４７に格納される情報の表現形式はテーブルに限られるものではなく、種々変形して実施することができる。
【００５６】
なお、この優先順位付けルール定義４７は、例えば、情報処理装置１の管理者によって運用前に予め定義されるものとし、運用中に適宜変更されてもよい。なお、この優先順位付けルール定義４７は、単にルール定義ともいう。
【００５７】
この図５に示す優先順位付けルール定義４７は、フィールドとして、“優先度設定”と“ルール”とを備える。また、“ルール”のフィールドは、さらに、“第１優先度”と“第２優先度”との２つのフィールドを備える。
【００５８】
優先順位付けルール定義４７のフィールド“優先度設定”は、利用者の選択する優先度のオプションに対応する。本実施形態では、利用者が優先度のオプションとして、“デフォルト”、“省電力”、及び、“高性能”のいずれかを選択し得るので、利用者の選択に応じて、“優先度設定”のフィールドには、“デフォルト”、“省電力”、及び、“高性能”が格納される。この優先度のオプションを、動作モードともいい、“デフォルト”、“省電力”、及び、“高性能”を、それぞれ、動作モード１、動作モード２、及び、動作モード３ともいう。
【００５９】
優先順位付けルール定義４７のフィールド“第１優先度”は、“優先度設定”のフィールドに格納される値に対応する、最優先の（第１に優先される）特性を格納するものである。この最優先の特性を優先特性、又は、第１優先特性ともいう。
【００６０】
優先順位付けルール定義４７のフィールド“第２優先度”は、“優先度設定”のフィールドに格納される値に対応する、“第１優先度”に設定される特性の次に優先される（第２に優先される）特性を格納するものである。この第２に優先される特性を第２優先特性ともいう。
【００６１】
図５に示す優先順位付けルール定義４７は、利用者の選択する優先度のオプションに応じて、最優先の特性と次に優先する特性との定義、すなわち、複数の特性に対する順位付けを定義するものである。情報処理装置１では、この定義に応じてＣＰＵ管理情報４５の情報が並べ替えられる。すなわち、優先順位付けルール定義４７は、ＣＰＵ管理情報４５の情報を並べ替える際に、どのキーを優先するかを定義するものである。
【００６２】
また、最優先の特性の値が等しい（優先順位付けルール定義４７のフィールド“第１優先度”に格納される値が等しい）場合には、“第２優先度”に格納される特性に基づき、ＣＰＵ管理情報４５の情報が並べ替えられる。
【００６３】
例えば図５にて利用者が“省電力”の優先度（のオプション）を選択する場合、“消費電力（少ない順番）”を最優先の特性（第１優先度）とし、“最大周波数（大きい順番）”を次に優先する特性（第２優先度）としてＣＰＵ管理情報４５の情報が並べ替えられる。すなわち、消費電力の少ないコア１１が優先的にプロセスに割り当てられるように、ＣＰＵ管理情報４５の情報が並べ替えられる。
【００６４】
また、図５にて利用者が“高性能”の優先度（のオプション）を選択する場合、“最大周波数（大きい順番）”を最優先の特性（第１優先度）とし、“消費電力（少ない順番）”を次に優先する特性（第２優先度）としてＣＰＵ管理情報４５の情報が並べ替えられる。すなわち、先ず、最大周波数の大きいコア１１が優先的にプロセスに割り当てられるように、ＣＰＵ管理情報４５の情報が並べ替えられる。したがって、消費電力が同じコア１１については、最大周波数が大きいコア１１が優先的にプロセスに割り当てられるように、ＣＰＵ管理情報４５の情報が並べ替えられる。
【００６５】
また、最大周波数が同じコア１１については、消費電力が少ないコア１１が優先してプロセスに割り当てられるように、ＣＰＵ管理情報４５の情報が並べ替えられる。
【００６６】
また、図５において、利用者が“デフォルト”の優先度（のオプション）を選択する場合には、ＣＰＵ管理情報４５の情報は並べ替えられない。すなわち、ＣＰＵ管理情報４５の“論理コア番号”のフィールドに格納されている値が小さいコア１１が優先的にプロセスに割り当てられる。なお、優先順位付けルール定義４７は、図５に例示したものに限定されない。例えば、第２優先度において、“省電力”にて最大周波数が小さい順番でもよく、また、“高性能”にて消費電力が大きい順番でもよい。
【００６７】
図２の説明に戻り、情報処理装置１の記憶部１３は、ＯＳ５１、及び、ＯＳ用ＣＰＵ管理情報５２を備えてよい。
【００６８】
ＯＳ用ＣＰＵ管理情報５２は、ＢＩＯＳメモリ１５に格納されるＣＰＵ管理情報４５の複製である。したがって、本実施形態では、ＯＳ用ＣＰＵ管理情報５２は、図４に示すＣＰＵ管理情報４５と同様のフィールドを備え、各フィールドには同様の値を格納するものとする。
【００６９】
このＯＳ用ＣＰＵ管理情報５２は、後述する割り当て部６１が、利用者によって入力された各プロセスに対して、各ＣＰＵ１０に備えられる各コア１１を割り当てる際に用いられる。なお、情報処理装置１の初回起動時には、ＯＳ用ＣＰＵ管理情報５２の各フィールドの値には、“ＮＵＬＬ”が格納されているものとする。また、割り当て部６１によるＯＳ用ＣＰＵ管理情報５２を用いたプロセスへの割り当て手法については後述する。
【００７０】
図２の説明に戻り、情報処理装置１において、ＢＩＯＳ処理部２１は、ＰＯＳＴ（Power On Self Test）実行部３１、ＣＰＵ管理情報生成部３２、ＣＰＵ変更確認部３３、特性測定部３４、ソート部３５、及び、ＣＰＵ管理情報更新部３６を備えてよい。
【００７１】
本実施形態において、このＢＩＯＳ処理部２１は、情報処理装置１に搭載される複数のＣＰＵ１０のうち、プライマリのＣＰＵ１０によって実現される。また、このプライマリのＣＰＵ１０が、起動プログラム４１を実行することにより、ＰＯＳＴ実行部３１、ＣＰＵ管理情報生成部３２、ＣＰＵ変更確認部３３、特性測定部３４、ソート部３５、及び、ＣＰＵ管理情報更新部３６の機能を実現する。
【００７２】
ＰＯＳＴ実行部３１は、ＰＯＳＴ処理を実行して、情報処理装置１や、当該情報処理装置１の回路等のチェックや初期化等の処理を行なう。このようなＰＯＳＴの処理は公知であるため、ここではその説明を省略する。
【００７３】
ＣＰＵ管理情報生成部３２は、図４に示すＣＰＵ管理情報４５を生成する。具体的に、ＣＰＵ管理情報生成部３２は、ＣＰＵ管理情報４５のフィールド“物理ＣＰＵ番号”，“物理コア番号”，“ＨＴ番号”，“論理コア番号”に、各ＣＰＵ１０及び各コア１１に関する値を格納する。これらの各ＣＰＵ１０又は各コア１１に関する値は、公知の手法で取得することができるので、ここではその説明を省略する。なお、ＣＰＵ管理情報生成部３２は、ＣＰＵ管理情報４５の“最大周波数”及び“消費電力”には、それぞれ“ＮＵＬＬ”を格納する。
【００７４】
ＣＰＵ変更確認部３３は、情報処理装置１に搭載される各ＣＰＵ１０にアクセスし、それぞれのシリアル番号を取得する。これらのシリアル番号は、公知の手法で取得することができるので、ここではその説明を省略する。また、本実施形態において、ＣＰＵ変更確認部３３は、各ＣＰＵ１０を特定するための情報としてシリアル番号を取得するものとしたが、ＣＰＵ１０を特定するための情報はこれに限られない。
【００７５】
さらに、このＣＰＵ変更確認部３３は、ＢＩＯＳメモリ１５のＣＰＵ識別情報４４（図３）に格納されている各ＣＰＵ１０のシリアル番号と、各ＣＰＵ１０にアクセスすることにより取得した各ＣＰＵ１０のシリアル番号とを比較し、同一か否かを確認する。
【００７６】
特性測定部３４は、各ＣＰＵに備えられるコア１１毎の特性を測定する。本実施形態では、特性測定部３４は、ＢＩＯＳメモリ１５に格納される特性測定プログラム４２を各コア１１に実行させることにより、特性として、各コア１１の最大周波数と消費電力とを測定するものとする。
【００７７】
さらに、この特性測定部３４は、測定した各コア１１の最大周波数と消費電力とを、ＢＩＯＳメモリ１５に格納されるＣＰＵ管理情報４５に格納する。
【００７８】
ソート部３５は、利用者の選択する優先度（のオプション）に基づき、ＢＩＯＳメモリ１５に格納されるＣＰＵ管理情報４５をソートする。具体的には、ソート部３５は、利用者の選択する優先度に応じた順番になるように、ＣＰＵ１０の各コア１１の割り当て順番をソートする。
【００７９】
ＣＰＵ管理情報更新部３６は、ＢＩＯＳメモリ１５に格納されているＣＰＵ管理情報４５を、ＯＳ処理部２２のＣＰＵ管理情報書換部６２に対して送信する。
【００８０】
また、この図２に示すように、ＯＳ処理部２２は、割り当て部６１、ＣＰＵ管理情報書換部６２、及び、優先度設定変更受信部６３を備えてよい。本実施形態において、このＯＳ処理部２２は、情報処理装置１に搭載される複数のＣＰＵ１０のうち、プライマリのＣＰＵ１０によって実現される。また、プライマリのＣＰＵ１０が、記憶部１３に格納されるＯＳ５１を実行することにより、割り当て部６１、ＣＰＵ管理情報書換部６２、及び、優先度設定変更受信部６３の機能を実現する。
【００８１】
割り当て部６１は、利用者によって入力された各プロセスに対して、各ＣＰＵ１０に備えられる各コア１１を割り当てる。この各コア１１の割り当てにおいて、割り当て部６１は、ＯＳ用ＣＰＵ管理情報５２を参照して、コア１１をプロセスに割り当てる。
【００８２】
ＣＰＵ管理情報書換部６２は、ＢＩＯＳ処理部２１のＣＰＵ管理情報更新部３６から送信されたＣＰＵ管理情報４５を受信し、記憶部１３に格納されるＯＳ用ＣＰＵ管理情報５２を更新する。この更新において、ＣＰＵ管理情報書換部６２は、受信したＣＰＵ管理情報４５と、記憶部１３に格納されるＯＳ用ＣＰＵ管理情報５２の差分を検出し、検出した差分に対して、ＣＰＵ管理情報４５から情報を書き込むようにしてもよい。
【００８３】
優先度設定変更受信部６３は、利用者から優先度のオプションに関する変更要求を受信する。
【００８４】
〔１−３〕一実施形態に係る情報処理装置における起動時の処理
上述の如く構成された実施形態の一例として、情報処理装置１における起動時の処理の一例を、図７、及び、図８（ａ）〜（ｃ）を参照しながら、図６に示すフローチャート（ステップＳ１〜Ｓ１３）に従って説明する。
【００８５】
以下に示す例において、情報処理装置１が備えるＣＰＵ１０は、ＣＰＵ＃０（１０−０），ＣＰＵ＃１（１０−１），ＣＰＵ＃２（１０−２），ＣＰＵ＃３（１０−３）の４つであり、それぞれ２つのコア１１を備えるものとする。
【００８６】
この図６は、一実施形態に係る情報処理装置１における起動時の処理を説明するためのフローチャートである。なお、図６に示す処理は、利用者による情報処理装置１の電源投入を契機に開始されるものとする。本実施形態において、利用者は、情報処理装置１上で電源ボタンを押下することにより電源を投入するものとする。
【００８７】
なお、図７は、本実施形態における優先順位付けルール定義４７を例示する図であり、図８（ａ）〜（ｃ）は、本実施形態におけるＣＰＵ管理情報４５の書き換えを例示する図である。
【００８８】
ステップＳ１において、利用者による情報処理装置１の電源投入を受け、ＢＩＯＳメモリ１５に格納されている起動プログラム４１が実行される。
【００８９】
続くステップＳ２において、ＰＯＳＴ実行部３１は、ＰＯＳＴ処理を実行して、情報処理装置１や、当該情報処理装置１の回路等のチェックや初期化等の処理を行なう。
【００９０】
続くステップＳ３において、ＣＰＵ管理情報生成部３２は、ＣＰＵ管理情報４５を生成する。具体的に、ＣＰＵ管理情報生成部３２は、例えば、各ＣＰＵ１０の情報を収集し、各ＣＰＵ１０のＣＰＵ管理情報４５のフィールド“物理ＣＰＵ番号”，“物理コア番号”，“ＨＴ番号”，“論理コア番号”に、各ＣＰＵ１０又は各コア１１に関する値を格納する。なお、ＣＰＵ管理情報生成部３２は、ＣＰＵ管理情報４５の“最大周波数”と“消費電力”との値については、“ＮＵＬＬ”を格納する。
【００９１】
続くステップＳ４において、ＣＰＵ変更確認部３３は、当該情報処理装置１に搭載されている各ＣＰＵ１０にアクセスし、それぞれのシリアル番号を取得する。
【００９２】
続くステップＳ５において、ＣＰＵ変更確認部３３は、物理ＣＰＵ番号毎に、ＢＩＯＳメモリ１５のＣＰＵ識別情報４４に格納されている各ＣＰＵ１０のシリアル番号と、ステップＳ４において取得した各ＣＰＵ１０のシリアル番号とを比較する。具体的には、ＣＰＵ変更確認部３３は、ＣＰＵ識別情報４４に格納されているシリアル番号と、ステップＳ４において取得したシリアル番号とがすべて同一か否か（差異がないかどうか）を判断する。
【００９３】
このステップＳ５において、ＣＰＵ変更確認部３３は、シリアル番号が同一であると判断した場合（ステップＳ５のＹｅｓルート参照）、すなわち、当該情報処理装置１に備えられたＣＰＵ１０の構成に変更がない場合には、処理がステップＳ６に移行する。
【００９４】
ステップＳ６において、ＣＰＵ変更確認部３３は、ＢＩＯＳメモリ１５の変更フラグ４３の値に、変更がない旨を示す“０”を設定し、処理がステップＳ１２に移行する。
【００９５】
一方、ステップＳ５において、ＣＰＵ変更確認部３３が、シリアル番号が同一でないと判断した場合（ステップＳ５のＮｏルート参照）、すなわち、ＣＰＵ１０の構成に変更があると判断した場合には、処理がステップＳ７に移行する。
【００９６】
ステップＳ７において、ＣＰＵ変更確認部３３は、ＢＩＯＳメモリ１５の変更フラグ４３の値を、変更がある旨を示す“１”に設定する。同時に、ＣＰＵ変更確認部３３は、シリアル番号が同一でないと判断したＣＰＵ１０について、ＣＰＵ識別情報４４の“ＣＰＵシリアル番号”のフィールドに、ステップＳ４において取得したシリアル番号を格納する。また、ＣＰＵ変更確認部３３は、必要に応じ、ＣＰＵ識別情報４４から、当該情報処理装置１に備えていないＣＰＵ１０に関する情報を削除する。これにより、ＣＰＵ識別情報４４には、情報処理装置１が備えるＣＰＵ１０の最新の情報が格納されることになる。
【００９７】
このように、上記ステップＳ４〜Ｓ７の処理を経ることにより、前回ＣＰＵ管理テーブルを作成した後に、ＣＰＵ１０の交換等により、情報処理装置１が備えるＣＰＵ１０の構成に変更があれば、変更フラグ４３の値に“１”が格納されることになる。そして、変更後のＣＰＵ１０について、後述のような特性測定を実施する。
【００９８】
一方、前回ＣＰＵ管理テーブルを作成した後にも、情報処理装置１が備えるＣＰＵ１０の構成に変更がなければ、変更フラグ４３の値に“０”が格納され、特性測定をスキップすることになる。
【００９９】
また、情報処理装置１の初回起動（工場出荷）時には、ＣＰＵ識別情報４４の各ＣＰＵ１０の“ＣＰＵシリアル番号”のフィールドには“ＮＵＬＬ”が格納される。そのため、ステップＳ５において、ＣＰＵ変更確認部３３が、ＣＰＵ識別情報４４に格納される各ＣＰＵ１０のシリアル番号（“ＮＵＬＬ”）と、ステップＳ４にて取得した各ＣＰＵ１０のシリアル番号とを比較すると、同一ではないと判断することになる。したがって、情報処理装置１の初回起動時には、ステップＳ５において同一でないと判断され、後述するような特性測定を実施する。
【０１００】
ステップＳ７において、ＢＩＯＳメモリ１５の変更フラグ４３の値に“１”が設定されると、処理がステップＳ８に移行し、ステップＳ８において、特性測定部３４によりＣＰＵ１０の特性の測定が実施される。
【０１０１】
ステップＳ８において、特性測定部３４は、ＢＩＯＳメモリ１５に格納される特性測定プログラム４２を各コア１１に実行させることにより、各ＣＰＵ１０に備えられるコア１１毎の特性を測定する。本実施形態では、特性測定部３４は、各コア１１の特性として、各コア１１の最大周波数と消費電力とを測定するものとする。例えば、特性測定プログラム４２を実行したコア１１は、特性測定部３４に測定結果としての最大周波数と消費電力とを出力する。
【０１０２】
また、特性測定部３４は、このステップＳ８にて測定した各コア１１の最大周波数と消費電力とを、それぞれ、ＢＩＯＳメモリ１５に格納されるＣＰＵ管理情報４５の“最大周波数”のフィールドと、“消費電力”のフィールドとに格納する。
【０１０３】
図８（ａ）は、ステップＳ８において測定した各コア１１の最大周波数と消費電力とを例示する。図８（ａ）では、例えば、物理ＣＰＵ番号が“０”であるＣＰＵ＃０（ＣＰＵ１０−０）が備えるコア１１のうち、物理コア番号が“０”であるコア１１を測定した結果、その最大周波数は２．０ＧＨｚであり、その消費電力が１２Ｗであったことを示している。
【０１０４】
続くステップＳ９において、ソート部３５は、ＢＩＯＳメモリ１５に格納される優先度設定情報４６を参照し、利用者の選択する優先度のオプションを確認する。すなわち、ソート部３５は、利用者が優先する特性が、省電力、高性能、及び、デフォルトのいずれであるかを確認する。
【０１０５】
本実施形態では、一例として、図７に示すように、利用者によって選択された優先度のオプションが“高性能”である場合について説明する（図７のＡ参照）。
【０１０６】
ステップＳ９において、ソート部３５は、優先順位付けルール定義４７（図７）を参照し、利用者の選択する優先度のオプション（“高性能”）に対応する、最優先の特性（第１優先度）と、次に優先する特性（第２優先度）とに関する情報を取得する。すなわち、図７より、最優先の特性（第１優先度）は“最大周波数（大きい順番）”であり、次に優先する特性（第２優先度）は“消費電力（少ない順番）”となる。
【０１０７】
ソート部３５は、優先順位付けルール定義４７における最優先の特性（第１優先度）に基づき、ＣＰＵ管理情報４５の情報をソートする。本例においては、最優先の特性が“最大周波数（大きい順番）”であるから、ソート部３５は最大周波数（図８（ａ）の符号Ｂ参照）が大きい順番に並ぶように、物理コア１１のレコード（図８（ａ）の符号Ｃ〜Ｆ参照）を並べ替える。
【０１０８】
図８（ｂ）は、（物理）コア１１のレコードを、最大周波数が大きい順番に並び替えた結果を示す。図８（ｂ）の符号Ｇに示すように、特性を測定した結果、物理コア番号が“３”であるコア１１と、物理コア番号が“２”であるコア１１との最大周波数が、同一の値（２．１ＧＨｚ）となる。そこで、ソート部３５は、次に優先する特性（第２優先度）である“消費電力（少ない順番）”に基づき、（物理）コア１１のレコードを並び替える。
【０１０９】
すなわち、この図８（ｂ）においては、物理コア番号が“３”であるコア１１のレコードと、物理コア番号が“２”であるコア１１のレコードとを、上から消費電力が少ない順番になるように並び替えている。図８（ｃ）においては、このようにして得た物理コア１１の順番に基づき、ソート部３５が、ＣＰＵ管理情報４５’の“論理コア番号”フィールドの値に、上から順番に“０”〜“７”をそれぞれ格納する（図８（ｃ）の符号Ｈ参照）。
【０１１０】
このステップＳ９の処理を経ることで、利用者が選択する優先度に基づき物理コア１１のレコードを並び替え、最適なプロセスへの割り当ての順番をコア１１の“論理コア番号”フィールドに格納（設定）することにより、ＣＰＵ管理情報４５を書き換える。すなわち、“論理コア番号”フィールドに格納される値は、複数の特性に基づき、利用者が選択する優先度に応じたコア１１の割り当て序列を示すものである。
【０１１１】
続くステップＳ１０において、ＣＰＵ変更確認部３３は、ＢＩＯＳメモリ１５の変更フラグ４３の値に“０”を設定する。これにより、次回起動時に再度ＣＰＵ１０の特性の測定を実施することを回避できる。
【０１１２】
続くステップＳ１１では、ＣＰＵ管理情報更新部３６は、ステップＳ９において生成したＣＰＵ管理情報４５を、ＯＳ処理部２２のＣＰＵ管理情報書換部６２に対して送信する。また、ステップＳ９にて生成されたＣＰＵ管理情報４５を受信したＣＰＵ管理情報書換部６２は、ＣＰＵ管理情報４５において変更された値を用いてＯＳ用ＣＰＵ管理情報５２を更新する。
【０１１３】
このステップＳ１１の処理を経ることにより、ＢＩＯＳメモリ１５に格納されるＣＰＵ管理情報４５と、記憶部１３に格納されるＯＳ用ＣＰＵ管理情報５２との同期をとることができる。ＢＩＯＳメモリ１５に格納されるＣＰＵ管理情報４５は、起動プログラム４１の実行により、最適な順番に物理コア１１をソートしたものであるから、記憶部１３に格納されるＯＳ用ＣＰＵ管理情報５２においてもこの最適な順番が反映されることになる。
【０１１４】
続くステップＳ１２において、プライマリのＣＰＵ１０がＯＳを起動する。これにより、ステップＳ１２以降の処理のうち、ＯＳによって実現できる機能については、ＢＩＯＳ処理部２１（起動プログラム４１）からＯＳ処理部２２（ＯＳ）へ処理を移譲することになる。すなわち、図６に示すステップＳ１〜Ｓ１１は、ＢＩＯＳ処理部２１（起動プログラム４１）によって実現され、図６に示すステップＳ１２〜Ｓ１３（後述）は、ＯＳ処理部２２（ＯＳ）によって実現される。
【０１１５】
続くステップＳ１３において、割り当て部６１が、ＯＳ用ＣＰＵ管理情報５２を参照して、各プロセスへのコア１１の割り当てを行なう。そして、処理を終了する。
【０１１６】
上述のように、本実施形態の情報処理装置１において、コア１１の“論理コア番号”フィールドに格納された割り当て順番にしたがって、各プロセスに対してコア１１を割り当てることが可能となり、利用者が選択する優先度の特性を反映した処理が実現できる。これにより、利用者の入力したプロセスに対して、省電力又は高性能なコア１１を割り当てることができるため、情報処理装置１において、処理をより省電力又は高性能に実現することが可能となる。
【０１１７】
また、本実施形態の情報処理装置１において、図６に示すステップＳ４〜Ｓ８の処理を経ることにより、ＣＰＵ１０の構成に変更があった場合に、特性測定部３４は、当該情報処理装置１に備えられるＣＰＵ１０の各コア１１の特性を測定する。特性測定には所定の時間を要することから、ＣＰＵ１０の構成に変更があった場合にのみ特性を測定することにより、不要な特定測定を回避することができる。
【０１１８】
さらに、データセンタ等で提供されるラックサービス（ラック貸し）では、その電力利用量に対して利用者に課金する場合がある。したがって、このようなサービスの提供者は、省電力のオプションを選択することにより、同一レベルのサービスをより安く利用者に提供することが可能となる。
【０１１９】
また、情報処理装置１に対して行われる、夜間のバッチ処理において、高性能のオプションを選択することにより、高性能のコア１１がプロセスに割り当てられ、バッチ処理に要する時間を短縮することが可能となる。
【０１２０】
さらに、情報処理装置１のスケジューリングにおいて、利用者が、日中（例えば、８時〜１８時）には高性能の優先度を設定することにより、日中に実行されるオンライントランザクション等の処理性能が重視されることになる。また、利用者が、夜間（例えば、１８時以降）にも高性能の優先度を設定することにより、高性能のコア１１がプロセスに割り当てられ、バッチ処理に要する時間を短縮することが可能となる。
【０１２１】
〔１−４〕一実施形態に係る情報処理装置の稼働状態における制御の処理
上記図６，図７では、利用者による情報処理装置１の電源投入を契機とした制御の処理について説明した。図６，図７に例示する一実施形態において、利用者が情報処理装置１の電源を遮断することなく、情報処理装置１の稼働状態（活性状態）で、ＣＰＵ１０を追加したり、一部のＣＰＵ１０を変更したりする場合がある。そこで、本実施形態では、上述のような場合に行なう制御の処理について図９に示すフローチャート（ステップＳ４〜Ｓ１３）に従って説明する。
【０１２２】
この図９は、一実施形態に係る情報処理装置１における稼働状態における制御の処理を説明するためのフローチャートである。
【０１２３】
なお、図９において、既述の符号と同一の符号を付した処理は、同様の処理を示しているので、その具体的な説明は省略する。
【０１２４】
この図９に示す制御の処理は、例えば、利用者が起動プログラム４１を介して、ＣＰＵ変更確認部３３を実行させることを契機に開始されるものとする。そのために、例えば、利用者は、起動プログラム４１のインタフェース（例えば、ＢＩＯＳ画面）を介して、入力部２３からＣＰＵ変更確認部３３の実行を要求すると、起動プログラム４１がＣＰＵ変更確認部３３を実行する。そして、これを契機に、図９に示すステップＳ４の処理が開始される。
【０１２５】
この図９に示すＳ４〜Ｓ１３の処理を経て、ＣＰＵ管理情報書換部６２は、構成変更後のＣＰＵ１０が反映されたＯＳ用ＣＰＵ管理情報５２を生成する。この生成されたＯＳ用ＣＰＵ管理情報５２に基づき、割り当て部６１は、プロセスにコア１１を割り当てる。そして、処理が終了する。
【０１２６】
上述のように、本実施形態の情報処理装置１では、当該情報処理装置１の稼働状態で、利用者が起動プログラム４１を実行すると、ＯＳ用ＣＰＵ管理情報５２が更新され、更新後のＯＳ用ＣＰＵ管理情報５２に基づき、プロセスにコア１１が割り当てられる。これにより、利用者は、情報処理装置１の電源を遮断することなく、ＣＰＵ１０を追加したり、一部のＣＰＵ１０を変更したりしても、利用者は情報処理装置１を再起動せずに、更新後のコア１１の特性に基づきプロセスへのコア１１の割り当てを実現できる。
【０１２７】
〔１−５〕一実施形態に係る情報処理装置における特性の再測定に係る制御の処理
図６，図７に例示する一実施形態において、利用者が、情報処理装置１の電源を遮断することなく、情報処理装置１の稼働状態で、コア１１の特性測定を再度要求する場合がある。そこで、本実施形態では、上述のような場合に行なう制御の処理について図１０に示すフローチャート（ステップＴ１，Ｓ７〜Ｓ１３）に従って説明する。
【０１２８】
この図１０は、一実施形態に係る情報処理装置１における特性の再測定に係る制御の処理を説明するためのフローチャートである。
【０１２９】
なお、図１０において、既述の符号と同一の符号を付した処理は、同様の処理を示しているので、その具体的な説明は省略する。
【０１３０】
この図１０に示すステップＴ１において、例えば、利用者は、起動プログラム４１を介して、コア１１の特性の再測定を要求する。具体的に、利用者は、例えば、起動プログラム４１のインタフェース（例えば、ＢＩＯＳ画面）を介して、入力部２３から特性測定部３４の実行を要求する。起動プログラム４１はこの要求を受け、コア１１の特性を再測定すべく特性測定部３４を実行する。
【０１３１】
続くＳ７〜Ｓ１３の処理を経て、特性測定部３４は、コア１１の特性を再測定する。そして、ＣＰＵ管理情報書換部６２は、この再測定の結果が反映されたＯＳ用ＣＰＵ管理情報５２を生成する。割り当て部６１は、この生成されたＯＳ用ＣＰＵ管理情報５２に基づきプロセスへのコア１１の割り当てを再度行ない、処理が終了する。
【０１３２】
上述のように、本実施形態の情報処理装置１において、当該情報処理装置１の稼働状態で、利用者が起動プログラム４１を介して特性測定部３４を実行することにより、コア１１の特性の再測定の結果に基づきＯＳ用ＣＰＵ管理情報５２が更新される。割り当て部６１は、この更新後のＯＳ用ＣＰＵ管理情報５２に基づき、プロセスにコア１１を割り当てる。これにより、利用者がコア１１の特性の再測定を所望した場合には、利用者は情報処理装置１を再起動せずに、コア１１の特性の再測定を行なうことができる。また、この再測定の結果に基づき、プロセスへのコア１１の再割り当てを実現できる。
【０１３３】
〔１−６〕一実施形態に係る情報処理装置における優先度設定情報の変更に係る制御の処理
図６，図７に例示する一実施形態において、利用者が、情報処理装置１の稼働状態で、優先度のオプションの変更を要求する場合がある。そこで、本実施形態では、上述のような場合に行なう制御の処理について図１１に示すフローチャート（ステップＱ１〜Ｑ２，Ｓ９〜Ｓ１３）に従って説明する。
【０１３４】
この図１１は、一実施形態に係る情報処理装置１における優先度設定情報４６の変更に係る制御の処理を説明するためのフローチャートである。
【０１３５】
なお、図１１において、既述の符号と同一の符号を付した処理は、同様の処理を示しているので、その具体的な説明は省略する。
【０１３６】
この図１１に示すステップＱ１において、利用者は、例えば、入力部２３から、優先度のオプションの変更を要求する。例えば、利用者は、ＯＳ５１上で稼動する所定のアプリケーションやインタフェースを介して、利用者が所望する優先度のオプション（変更後のオプション）を入力するものとする。
【０１３７】
続くステップＱ２において、ＯＳ処理部２２の優先度設定変更受信部６３は、利用者のこの要求を受信し、優先度設定情報４６に利用者が所望する（変更後の）優先度のオプションを格納する。
【０１３８】
続くステップＳ９〜Ｓ１３の処理を経て、ソート部３５は、変更後の優先度のオプションに基づき、ＣＰＵ管理情報４５をソートする。そして、ＣＰＵ管理情報書換部６２は、この変更後の優先度のオプションが反映されたＯＳ用ＣＰＵ管理情報５２を生成する（書き換える）。割り当て部６１は、この生成されたＯＳ用ＣＰＵ管理情報５２に基づきプロセスへのコア１１の割り当てを再度行ない（再設定し）、処理が終了する。
【０１３９】
上述のように、本実施形態の情報処理装置１において、当該情報処理装置１の稼働状態で、利用者が優先度のオプションの変更を要求すると、変更後の優先度のオプションに基づき、プロセスへのコア１１の再割り当てが行なわれる。これにより、利用者が所望する変更後の特性を考慮したコア１１へのプロセスの割り当てが可能となる。
【０１４０】
〔２〕実施形態の第一の変形例
上記図６〜図１１では、情報処理装置１において、プロセスへのコア１１の割り当てを制御する処理について説明した。これらの図６〜図１１に例示した一実施形態において、予め、各ＣＰＵ１０に備えられる各コア１１の特性に差がほぼ無いことが判明している場合がある。このような場合には、コア１１の特性の差よりもＣＰＵ１０の特性の差の方が、プロセスの処理性能や消費電力に影響する場合がある。そこで、このような状況においては、プロセスに対するコア１１の割り当て制御に代わり、ＣＰＵ１０の割り当て制御が望ましい場合がある。そこで、第一の変形例において、上述のような場合に、プロセスに対してＣＰＵ１０の割り当てを制御するような処理を行なう。
【０１４１】
第一の変形例では、上述のような場合に行なう制御の処理について、図１３〜図１５（ａ），（ｂ）を参照しながら、図１２に示すフローチャート（ステップＳ１〜Ｓ７，Ｒ１，Ｓ９〜Ｓ１３）に従って説明する。なお、第一の変形例では、ＣＰＵ１０が４つ（ＣＰＵ＃０，ＣＰＵ＃１，ＣＰＵ＃２，ＣＰＵ＃３）あり、ＣＰＵ１０はそれぞれ２つのコア１１を備えるものとする。
【０１４２】
この図１２は、第一の変形例に係る情報処理装置１における制御の処理を説明するためのフローチャートである。
【０１４３】
なお、図１２において、既述の符号と同一の符号を付した処理は、同様の処理を示しているので、その具体的な説明は省略する。
【０１４４】
また、図１３は、第一の変形例に係る情報処理装置１において、特性測定部３４が各ＣＰＵ１０の特性を測定した結果を例示する図である。
【０１４５】
また、図１４（ａ），（ｂ）、及び、図１５（ａ），（ｂ）は、第一の変形例に係る情報処理装置１におけるＣＰＵ管理情報４５の書き換えを例示する図である。
【０１４６】
図１２に示すように、ステップＳ１〜Ｓ４の処理を経た後、ステップＳ５において、ＣＰＵ変更確認部３３が、シリアル番号が同一でないと判断した場合（ステップＳ５のＮｏルート参照）、処理がステップＳ７に移行する。続くステップＳ７において、ＣＰＵ変更確認部３３は、ＢＩＯＳメモリ１５の変更フラグ４３の値を“１”に設定する。
【０１４７】
続くステップＲ１において、特性測定部３４は、特性測定プログラム４２を各ＣＰＵに実行させることにより、各ＣＰＵ１０の特性を測定する。また、特性測定部３４は、ステップＲ１にて測定した各ＣＰＵ１０の最大周波数と消費電力とを、それぞれ、ＢＩＯＳメモリ１５に格納されるＣＰＵ管理情報４５の“最大周波数”のフィールドと、“消費電力”のフィールドとに格納する。
【０１４８】
例えば、図１３は、特性測定の結果、消費電力が最も少ないＣＰＵ１０、すなわち、省電力の性能が最も高いＣＰＵ１０はＣＰＵ＃２であり、以降、ＣＰＵ＃１，ＣＰＵ＃３，ＣＰＵ＃０の順番に消費電力が大きくなる（省電力の性能が低くなる）ことを示している。また、図１３は、特定測定の結果、最大周波数が最も高くなるＣＰＵ１０、すなわち、最も高性能であるＣＰＵ１０はＣＰＵ＃０であり、以降、ＣＰＵ＃２，ＣＰＵ＃１，ＣＰＵ＃３の順番に最大周波数（性能）が低くなることを示している。
【０１４９】
なお、第一の変形例では、特性測定プログラム４２は、各ＣＰＵ１０の特性を測定するためのプログラムであり、例えば、各ＣＰＵ１０に、特定の命令列を所定の時間実行させるものである。また、第一の変形例では、特性として、最大周波数と消費電力とを測定するものとする。これらの特性（最大周波数と消費電力）を測定するための手法やプログラムは公知であるため、ここではその説明を省略する。
【０１５０】
続くステップＳ９では、ソート部３５は、ステップＲ１において測定された各ＣＰＵ１０の最大周波数，消費電力と、利用者が選択する優先度とに基づき、ＣＰＵ管理情報４５におけるＣＰＵ１０（のレコード）のを並び替える。
【０１５１】
このステップＳ９において、利用者が選択する優先度のオプションが省電力である場合を例にとり説明する。この場合、ソート部３５は、図１４（ａ）に示す、ＣＰＵ管理情報４５における各ＣＰＵ１０（ＣＰＵ＃０〜ＣＰＵ＃３）のレコードを、消費電力の少ない順番（ＣＰＵ＃２，ＣＰＵ＃１，ＣＰＵ＃３，ＣＰＵ＃０）に並び替える。この並び替えを行なった後、“論理コア番号”のフィールドに対して上から順番（消費電力の少ない順番）に、“０”，“１”，“２”，・・・の値を格納する。これにより、利用者が選択する優先度である省電力を考慮した順番に、ＣＰＵ１０のレコードが並び替えられることになる（図１４（ｂ）参照）。
【０１５２】
また、このステップＳ９において、利用者が選択する優先度のオプションが高性能の場合を例にとり説明する。この場合、ソート部３５は、図１５（ａ）に示す、ＣＰＵ管理情報４５の各ＣＰＵ１０（ＣＰＵ＃０〜ＣＰＵ＃３）のレコードを、最大周波数が大きい順番（ＣＰＵ＃０，ＣＰＵ＃２，ＣＰＵ＃１，ＣＰＵ＃３）に並び替える。この並び替えを行なった後、“論理コア番号”のフィールドに対して上から順番（最大周波数が大きい順番）に、“０”，“１”，“２”，・・・の値を格納する。これにより、利用者が選択する優先度である高性能を考慮した順番に、ＣＰＵ１０のレコードが並び替えられることになる（図１５（ｂ）参照）。
【０１５３】
続くステップＳ１０〜Ｓ１３の処理を経て、割り当て部６１は、ステップＳ９において並び替えられたＣＰＵ１０の割り当て順番が反映されたＯＳ用ＣＰＵ管理情報５２を参照し、各プロセスへのコア１１の割り当てを行なう。そして、処理を終了する。
【０１５４】
上述のように、第一の変形例に係る情報処理装置１において、ＣＰＵ１０毎の特性を測定し、この測定結果に基づきＣＰＵ管理情報５２内でのＣＰＵ１０のレコードを並び替え、並び替えた順番に応じて各プロセスへのＣＰＵ１０の割り当てを行なう。これにより、例えば、ＣＰＵ１０の備える複数のコア１１に差異がみられないことが予めわかっている場合には、コア１１の個体差ではなく、ＣＰＵ１０の個体差を考慮した制御が可能となる。
【０１５５】
〔３〕実施形態の第二の変形例
上述した一実施形態、及び、第一の変形例においては、一の情報処理装置１内でプロセスに対するコア１１やＣＰＵ１０の割り当てを制御する処理について説明した。本第二の変形例では、このような情報処理装置１を複数台備えた情報処理システム１００において、コア１１の割り当てを制御する処理について説明する。
【０１５６】
〔３−１〕第二の変形例に係る情報処理システムの構成例
図１６は、第二の変形例としての情報処理システム１００のハードウェア構成を例示する図である。
【０１５７】
この図１６に例示するように、情報処理システム１００は、複数の情報処理装置１（情報処理装置１−０，情報処理装置１−１，情報処理装置１−２，・・・，情報処理装置１０−ｍ；ｍは１以上の整数）を備える。以下、情報処理装置を示す符号としては、複数の情報処理装置のうち１つを特定する必要があるときには符号１−０，１−１，１−２，・・・，１−ｎを用いるが、任意の情報処理装置を指すときには符号１を用いる。また、情報処理装置１−０，情報処理装置１−１，情報処理装置１−２，・・・，情報処理装置１−ｍは、それぞれ、情報処理装置＃０,情報処理装置＃１，情報処理装置＃２，・・・，情報処理装置＃ｍとも表される。なお、符号“＃”に付される数字である、“０”，“１”，・・・，“ｍ”は単に情報処理装置番号ともいう。
【０１５８】
さらに、この図１６に示すように、情報処理システム１００は、管理サーバ７０、及び、ユーザ端末９０を備える。
【０１５９】
この管理サーバ７０は、インターネットやクラウドサービス等のネットワークを介して各情報処理装置１に接続され、複数の情報処理装置１の備えるコア１１の振り分けや、これらのコア１１を用いた仮想サーバ（仮想装置）の構築を制御する。なお、この管理サーバ７０は、例えば、データセンタ等を運営し、顧客に対して仮想サーバを提供する事業者（クラウド事業者）によって管理されるものとする。
【０１６０】
また、ユーザ端末９０は、利用者、例えば、クラウド事業者の顧客側の管理者が用いる情報処理装置であり、インターネットやクラウドサービス等のネットワークを介して管理サーバ７０に接続されてもよい。なお、図１６においてユーザ端末９０は便宜上１つを図示するが、複数であってもよい。
【０１６１】
〔３−２〕第二の変形例に係る管理サーバの構成例
図１７は、第二の変形例としての管理サーバ７０のハードウェア構成を例示する図である。
【０１６２】
この図１７に示すように、管理サーバ７０は、ＣＰＵ７１、記憶部７２、メモリ７３、ＩＦ部７４、及び、Ｉ／Ｏ部７５を備えてよい。
【０１６３】
このＣＰＵ７１は、後述する記憶部７２に格納されるＯＳやプログラムを実行し、例えば、利用者から入力されたプロセスを処理すべく管理サーバ７０を制御する。本第二の変形例では、ＣＰＵ７１は、制御プログラム７７を実行する。
【０１６４】
記憶部７２は、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶部７２は、管理サーバ７０の二次記憶装置として使用されてよく、ＯＳやファームウェア、アプリケーション等のプログラム、及び、各種データが格納されてよい。記憶部７２としては、例えば、ＨＤＤ等の磁気ディスク装置の他、ＳＳＤやＳＣＭ等の半導体記憶装置が挙げられる。また、記憶部７２は、管理サーバ７０の各種機能の全部若しくは一部を実現するプログラムを格納してもよい。
【０１６５】
メモリ７３は、種々のデータやプログラムを格納するハードウェアの一例である。メモリ７３としては、揮発性メモリ、例えば、ＤＲＡＭ等のＲＡＭが挙げられる。
【０１６６】
ＩＦ部７４は、外部ネットワーク等を介し、情報処理装置１、ユーザ端末９０、及び、図示しない外部装置との間の接続及び通信の制御等を行なう通信インタフェースの一例である。
【０１６７】
Ｉ／Ｏ部７５は、例えば、マウスやキーボード等の入力装置、並びに、ディスプレイやスピーカ等の出力装置の少なくとも一方を含んでよい。
【０１６８】
バス７６は、ＣＰＵ７１、記憶部７２、メモリ７３、ＩＦ部７４、及び、Ｉ／Ｏ部７５を相互に接続する。
【０１６９】
なお、第二の変形例に係る情報処理装置１（＃０〜＃ｍ）は、それぞれ、上述した一実施形態に係る情報処理装置１と同様のハードウェア構成（図１参照）を備えるものとするので、ここでは説明を省略する。
【０１７０】
〔３−３〕第二の変形例に係る管理サーバの機能構成例
図１８は、図１６に例示した第二の変形例としての管理サーバ７０の機能構成を例示する図である。
【０１７１】
この図１８に示すように、管理サーバ７０は、例示的に、ユーザ要件受信部８１、振り分けルール定義部８２、ＣＰＵ管理情報取得部８３、並び替え部８４、コア振り分け部８５、及び、仮想サーバ構築部８６を備えてよい。これらのユーザ要件受信部８１、振り分けルール定義部８２、ＣＰＵ管理情報取得部８３、並び替え部８４、コア振り分け部８５、及び、仮想サーバ構築部８６は、ＣＰＵ７１によって実現される。
【０１７２】
また、管理サーバ７０は、記憶部７２に、振り分けルール定義８７、及び、集約ＣＰＵ管理情報８８を格納してよい。
【０１７３】
ユーザ要件受信部８１は、利用者から所望の性能（スペック）を備える仮想サーバの構築依頼を受信する。利用者が所望する性能とは、例えば、周波数やコア数である。この利用者が所望する性能は、ユーザ端末９０から送信されてもよい。
【０１７４】
振り分けルール定義部８２は、例えば、仮想サーバの構築を依頼した利用者に関する契約形態や料金体系を、図示しない顧客管理サーバから取得し、振り分けルール定義８７を作成（定義）する。この際、振り分けルール定義部８２は、クラウド事業者の利益を考慮し、例えば、当該クラウド事業者の利益が最大化するようにハードウェアリソース（例えば、コア１１）を最適化した振り分けルール定義８７を作成してもよい。
【０１７５】
図１９は、振り分けルール定義部８２が作成する振り分けルール定義８７の一例である。第二の変形例では、振り分けルール定義８７をテーブル形式で表現しているが、振り分けルール定義８７に格納される情報の表現形式はテーブルに限られるものではなく、種々変形して実施することができる。
【０１７６】
この図１９に例示する振り分けルール定義８７は、フィールドとして、“対象とする情報処理装置番号”と“周波数の刻み幅”とを備え、これらのフィールドに対するそれぞれの定義値を格納する。
【０１７７】
振り分けルール定義８７のフィールド“対象とする情報処理装置番号”は、グループへの振り分け（グループ分け）の対象とする情報処理装置１の情報処理装置番号を格納する。図１９に示す例では、グループ分けの対象とする情報処理装置番号が、“０”，“１”，“２”であること、すなわち、グループ分けの対象とする情報処理装置１が、情報処理装置＃０，情報処理装置＃１，情報処理装置＃２であることを示す。
【０１７８】
また、振り分けルール定義８７のフィールド“周波数の刻み幅”は、グループ分けする際の周波数の刻み幅を格納する。この周波数の刻み幅とは、最大周波数に基づいてグループ分けを行なう際の単位であり、同一のグループに振り分ける場合の最大周波数の誤差に相当する。この誤差が刻み幅に収まる場合には同一グループに振り分けられる。図１９に示す例では、周波数の刻み幅が“０．１ＧＨｚ”であることを示す。
【０１７９】
図１８に示す管理サーバ７０の機能構成の説明に戻り、ＣＰＵ管理情報取得部８３は、各情報処理装置１の記憶部１３に格納されるＯＳ用ＣＰＵ管理情報５２を取得する。なお、記憶部１３に格納されるＯＳ用ＣＰＵ管理情報５２と、各情報処理装置１のＢＩＯＳメモリ１５に格納されるＣＰＵ管理情報４５とは同様の情報を格納しているため、ＣＰＵ管理情報取得部８３は、ＣＰＵ管理情報４５を取得することに等しい。
【０１８０】
また、ＣＰＵ管理情報取得部８３は、取得した各情報処理装置１のＣＰＵ管理情報５２を集約して、集約ＣＰＵ管理情報８８（後述）を作成する。そして、後述する並び替え部８４が、必要に応じてレコードの並び替えを行なった集約ＣＰＵ管理情報８８を、記憶部７２に格納する。
【０１８１】
並び替え部８４は、例えば、利用者によって選択された優先度のオプション（図７の優先順位付けルール定義４７参照）を確認し、当該優先度のオプションに基づき、集約ＣＰＵ管理情報８８（後述）におけるコア１１のレコードを並べ替える。なお、第二の変形例において、利用者は、仮想サーバの構築を依頼する際、優先度のオプションを選択してもよいし、事前に優先度のオプションを選択しておいてもよい。事前に優先度のオプションを選択する場合には、選択された優先度のオプションが、管理サーバ７０の記憶部７２に格納されてもよい。
【０１８２】
なお、上述した一実施形態、及び、第一の変形例に係るソート部３５が、この並び替え部８４と概ね同等の機能を有する。すなわち、一実施形態、及び、第一の変形例では、ソート部３５が、各情報処理装置１に備えられていたが、第二の変形例では、このソート部３５に相当する並び替え部８４が管理サーバ７０に備えられる。
【０１８３】
具体的に、並び替え部８４は、例えば、優先順位付けルール定義４７における最優先の特性（第１優先度）に基づき、集約ＣＰＵ管理情報８８（後述）の情報を並び替える。
【０１８４】
ここで、図２０を用いて、集約ＣＰＵ管理情報８８について説明する。
【０１８５】
図２０は、ＣＰＵ管理情報取得部８３が集約した各情報処理装置１のＣＰＵ管理情報４５を、並び替え部８４によって、最大周波数が大きい順番に並び替えられた集約ＣＰＵ管理情報８８を例示する。図２０に示す例では、集約ＣＰＵ管理情報８８をテーブル形式で表現しているが、集約ＣＰＵ管理情報８８に格納される情報の表現形式はテーブルに限られるものではなく、種々変形して実施することができる。
【０１８６】
この図２０に示す集約ＣＰＵ管理情報８８は、フィールドとして、“情報処理装置番号”“物理ＣＰＵ番号”、“物理コア番号”、“ＨＴ番号”、“論理コア番号”、“最大周波数”、“消費電力”、及び、“グループ”を備える。この集約ＣＰＵ管理情報８８のフィールドのうち、“物理ＣＰＵ番号”、“物理コア番号”、“ＨＴ番号”、“論理コア番号”、“最大周波数”、及び、“消費電力”は、図４に例示した一実施形態に係るＣＰＵ管理情報４５と同様のため、説明を省略する。
【０１８７】
集約ＣＰＵ管理情報８８のフィールド“情報処理装置番号”は、情報処理装置１を一意に特定するための識別子を格納するものであり、“０”から“ｍ”の整数を格納するものである。なお、情報処理装置１を表す符号である、１−０〜１−ｍや＃０〜＃ｍにおいて、符号“−”（ハイフン）や“＃”の後に付される整数０〜ｍが、情報処理装置番号に相当する。図２０に例示する集約ＣＰＵ管理情報８８は、例えば、情報処理装置番号が“０”である情報処理装置１に搭載される、物理コア番号が“０”であるコア１１の最大周波数が“ａａａＧＨｚ”であることを示している。
【０１８８】
集約ＣＰＵ管理情報８８のフィールド“グループ”は、後述するコア振り分け部８５によって振り分けられる各コア１１のグループ（名）を格納するものである。図２０に例示する集約ＣＰＵ管理情報８８は、例えば、情報処理装置番号が“０”である情報処理装置１に搭載される、物理コア番号が“０”であるコア１１は、グループＡに振り分けられることを示している。
【０１８９】
なお、情報処理装置システム１００の初回起動時には、このフィールド“グループ”には、“ＮＵＬＬ”が格納されるものとする（図２５参照）。
【０１９０】
コア振り分け部８５は、記憶部７２の振り分けルール定義８７（図１９参照）で定義される、対象とする情報処理装置番号を参照し、振り分けルール定義８７に定義されている情報処理装置＃０，情報処理装置＃１，情報処理装置＃２を対象にグループ分けを行なう。その際、コア振り分け部８５は、振り分けルール定義８７で定義されている周波数の刻み幅に応じて、コア１１を複数グループに振り分ける。この周波数の刻み幅に基づくコア１１の振り分けについては後述する。
【０１９１】
なお、上述した一実施形態、及び、第一の変形例に係る割り当て部６１が、このコア振り分け部８５と概ね同等の機能を有する。すなわち、一実施形態、及び、第一の変形例では、割り当て部６１が、各情報処理装置１に備えられていたが、第二の変形例では、この割り当て部６１に相当するコア振り分け部８５が管理サーバ７０に備えられる。
【０１９２】
仮想サーバ構築部８６は、コア振り分け部８５によって振り分けられた（グループ分けされた）同一のグループに属するコア１１のうち、必要数のコア１１を用いて仮想サーバを構築する。仮想サーバ構築部８６は、運用ポリシーとし、例えば、利用者がハイパフォーマンスを求める場合に最大周波数が大きいグループのコア１１を用いることや、利用者が低価格を求める場合に最大周波数が小さいグループのコア１１を用いることを予め設定してもよい。そして、仮想サーバ構築部８６は、この運用ポリシーにしたがって、いずれのグループに属するコア１１を用いるかを決定してもよい。なお、コア１１を用いた仮想サーバの構築は、公知の手法を用いて実現するので、ここではその具体的な説明を省略する。
【０１９３】
そして、仮想サーバ構築部８６は、構築した仮想サーバを利用者（ユーザ端末９０）に提供する。
【０１９４】
〔３−４〕第二の変形例に係る情報処理装置の機能構成例
図２１は、図１６に例示した第二の変形例としての情報処理装置１の機能構成を例示する図である。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【０１９５】
この図２１に示すように、第二の変形例に係る情報処理装置１は、例示的に、ＢＩＯＳ処理部２１、ＯＳ処理部２２、入力部２３、及び、表示部２４を備えてよい。また、ＢＩＯＳメモリ１５は、起動プログラム４１、特性測定プログラム４２、変更フラグ４３、ＣＰＵ識別情報４４、及び、ＣＰＵ管理情報４５を備えてよい。これらのＢＩＯＳ処理部２１、ＯＳ処理部２２、入力部２３、及び、表示部２４については、一実施形態に係る情報処理装置１において既に説明したので、ここでは説明を省略する。また、起動プログラム４１、特性測定プログラム４２、変更フラグ４３、ＣＰＵ識別情報４４、及び、ＣＰＵ管理情報４５についても、一実施形態に係る情報処理装置１において既に説明したので、ここでは説明を省略する。
【０１９６】
さらに、ＢＩＯＳ処理部２１は、ＰＯＳＴ実行部３１、ＣＰＵ管理情報生成部３２、ＣＰＵ変更確認部３３、特性測定部３４、ＣＰＵ管理情報更新部３６、及び、ＣＰＵ管理情報送信部３７を備えてよい。
【０１９７】
第二の変形例においても、情報処理装置１に搭載される複数のＣＰＵ１０のうちプライマリのＣＰＵ１０が、起動プログラム４１を実行する。これにより、ＰＯＳＴ実行部３１、ＣＰＵ管理情報生成部３２、ＣＰＵ変更確認部３３、特性測定部３４、ＣＰＵ管理情報更新部３６、及び、ＣＰＵ管理情報送信部３７の機能を実現する。これらのＰＯＳＴ実行部３１、ＣＰＵ管理情報生成部３２、ＣＰＵ変更確認部３３、及び、特性測定部３４については、一実施形態に係る情報処理装置１において既に説明したので、ここでは説明を省略する。
【０１９８】
ＣＰＵ管理情報更新部３６は、ＢＩＯＳメモリ１５に格納されているＣＰＵ管理情報４５を、ＯＳ処理部２２のＣＰＵ管理情報書換部６２（後述）に対して送信する。
【０１９９】
ＣＰＵ管理情報送信部３７は、管理サーバ７０からＣＰＵ管理情報４５の送信依頼を受けて、管理サーバ７０に対して、記憶部１３のＯＳ用ＣＰＵ管理情報５２を送信する。ここで、ＣＰＵ管理情報送信部３７は管理サーバ７０に対してＯＳ用ＣＰＵ管理情報５２を送信するものとしたが、これに替えて、ＢＩＯＳメモリ１５のＣＰＵ管理情報４５を送信してもよい。
【０２００】
また、図２１に示すように、ＯＳ処理部２２は、ＣＰＵ管理情報書換部６２を備えてよい。このＣＰＵ管理情報書換部６２については、一実施形態に係る情報処理装置１において既に説明したので、ここでは説明を省略する。
【０２０１】
〔３−５〕第二の変形例に係る情報処理システムにおける処理
上述の如く構成された第二の変形例に係る情報処理システム１００において、情報処理装置１のコア１１をグループに振り分けて仮想サーバを構築する処理の一例を、図２２に示すフローチャート（ステップＡ１〜Ａ４）に従って説明する。その際、前述の図１９と、後述の図２３〜図２８を参照する。
【０２０２】
この図２２は、第二の変形例に係る情報処理システム１００において、コア１１をグループに振り分けて仮想サーバを構築する処理を説明するためのフローチャートである。なお、この図２２に例示する処理は、管理サーバ７０のユーザ要件受信部８１が、利用者から所望の性能を備える仮想サーバの構築依頼を受けて開始されるものとする。
【０２０３】
図２３は、第二の変形例に係る情報処理装置＃０のＣＰＵ管理情報４５を例示する図であり、図２４は、第二の変形例に係る情報処理装置＃１のＣＰＵ管理情報４５を例示する図である。
【０２０４】
図２５は、第二の変形例に係る情報処理システム１００における集約ＣＰＵ管理情報８８を例示する図である。この集約ＣＰＵ管理情報８８は、情報処理装置＃０のＣＰＵ管理情報４５と情報処理装置＃１のＣＰＵ管理情報４５とを集約した情報を例示する。
【０２０５】
図２６，図２８は、第二の変形例に係る情報処理システム１００において、コアのグループへの振り分けを例示する図である。
【０２０６】
図２７は、第二の変形例に係る情報処理システム１００における振り分けルール定義８７を例示する図である。
【０２０７】
なお、第二の変形例では、情報処理システム１００は、情報処理装置＃０と情報処理装置＃１とを備えるものとする。また、各情報処理装置１はＣＰＵ＃０（１０−０）〜ＣＰＵ＃ｎ（１０−ｎ）を備え、各ＣＰＵ１０がそれぞれ２つのコア１１を備えるものとする。
【０２０８】
そして、振り分けルール定義部８２は、利用者からの仮想サーバ構築の依頼を受け、図１９に例示する振り分けルール定義８７を定義するものとする。
【０２０９】
図２２に示すステップＡ１において、管理サーバ７０のユーザ要件受信部８１は、利用者のユーザ端末９０から仮想サーバの構築依頼を受け、電源投入する等して情報処理装置＃０と情報処理装置＃１とを起動させる。なお、情報処理装置１は起動の指示を受けると、上述した図６に示すステップＳ１〜Ｓ１１の処理を経て、コア１１毎の特性を測定し、ＢＩＯＳメモリ１５のＣＰＵ管理情報４５や記憶部１３のＯＳ用ＣＰＵ管理情報５２を更新（収集）してもよい。
【０２１０】
続くステップＡ２において、管理サーバ７０のＣＰＵ管理情報取得部８３は、情報処理装置＃０と情報処理装置＃１との各記憶部１３に格納されるＯＳ用ＣＰＵ管理情報５２をそれぞれ取得（収集）する。ここで、ＣＰＵ管理情報取得部８３は、取得した各情報処理装置１のＯＳ用ＣＰＵ管理情報５２を自身のメモリ７３に格納してもよい。なお、上述したように、このＯＳ用ＣＰＵ管理情報５２は、ＢＩＯＳメモリ１５のＣＰＵ管理情報４５と格納する情報が同様であるため、便宜上、ＣＰＵ管理情報取得部８３は、ＣＰＵ管理情報４５を取得するものとして記載する。
【０２１１】
このステップＡ２において、ＣＰＵ管理情報取得部８３が取得した、情報処理装置＃０のＣＰＵ管理情報４５と、情報処理装置＃１のＣＰＵ管理情報４５を、それぞれ、図２３と図２４とに例示する。
【０２１２】
ＣＰＵ管理情報取得部８３は、取得した、情報処理装置＃０のＣＰＵ管理情報４５と、情報処理装置＃１のＣＰＵ管理情報４５とを集約（収集）して、集約ＣＰＵ管理情報８８を作成する。
【０２１３】
そして、管理サーバ７０の並び替え部８４は、利用者によって選択された優先度のオプションを確認する等して、当該優先度のオプションに基づき、集約ＣＰＵ管理情報８８におけるコア１１のレコードを並べ替える。
【０２１４】
第二の変形例では、一例として、図７に例示する優先順位付けルール定義４７における矢印Ａに示すように、利用者によって選択された優先度のオプションが“高性能”である場合について説明する。
【０２１５】
具体的に、並び替え部８４は、優先順位付けルール定義４７における最優先の特性（第１優先度）に基づき、集約ＣＰＵ管理情報８８の情報をソートする。本例においては、最優先の特性が“最大周波数（大きい順番）”であるから、並び替え部８４は最大周波数が大きい順番（降順；図２５の符号Ｊ参照）に並ぶように、集約ＣＰＵ管理情報８８におけるコア１１のレコードを並べ替える。
【０２１６】
図２５は、並び替え部８４が、集約ＣＰＵ管理情報８８において、コア１１のレコードを、最大周波数が大きい順番に並び替えた結果を例示する。ＣＰＵ管理情報取得部８３は、並び替え部８４によってレコードが並び替えられた集約ＣＰＵ管理情報８８を記憶部７２に格納する。
【０２１７】
続くステップＡ３において、管理サーバ７０のコア振り分け部８５は、記憶部７２の振り分けルール定義８７（図１９参照）を参照し、コア１１をグループに振り分ける。このコア振り分け部８５によるグループへの振り分け処理について図２６を用いて説明する。
【０２１８】
コア振り分け部８５は、振り分けルール定義８７（図１９参照）で定義されている、対象とする情報処理装置番号を参照し、情報処理装置＃０，情報処理装置＃１，情報処理装置＃２を対象に、これらのＣＰＵ１０に含まれるコア１１のグループ分けを行なう。
【０２１９】
また、コア振り分け部８５は、振り分けルール定義８７（図１９参照）を参照して、周波数の刻み幅が“０．１ＧＨｚ”であることを取得する。コア振り分け部８５は、複数のコア１１に対して０．１ＧＨｚを最小単位とするグループ分け（振り分け）を行なう。
【０２２０】
コア振り分け部８５は、例えば、最大周波数が２．０ＧＨｚ以上となるコア１１のうち、最大周波数が２．２ＧＨｚであるコア１１、すなわち、２．２ＧＨｚ相当の周波数で動作するコア１１をグループＡに振り分ける（図２６の符号Ｋ参照）。また、コア振り分け部８５は、最大周波数が２．１ＧＨｚであるコア１１、すなわち、２．１ＧＨｚ相当の周波数で動作するコア１１をグループＢに振り分ける（図２６の符号Ｌ参照）。また、コア振り分け部８５は、最大周波数が２．０ＧＨｚであるコア１１、すなわち、２．０ＧＨｚ相当の周波数で動作するコア１１をグループＣに振り分ける（図２６の符号Ｍ参照）。
【０２２１】
続くステップＡ４において、仮想サーバ構築部８６は、運用ポリシーに基づき、同一のグループに属するコア１１を用いて仮想サーバを構築する。例えば、仮想サーバ構築部８６が、グループＢに属するコア１１を用いて仮想サーバを構築する場合、論理コア番号が“４”であるコア１１と論理コア番号が“５”であるコア１１とを用いて仮想サーバを構築する。
【０２２２】
そして、仮想サーバ構築部８６は、構築した仮想サーバを利用者（ユーザ端末９０）に提供して、処理を終了する。
【０２２３】
次に、図２７に例示する振り分けルール定義８７を用いて、仮想サーバ構築部８６が仮想サーバを構築する場合の管理サーバ７０における処理について、図２２に示すフローチャートを用いて説明する。
【０２２４】
図２７は、振り分けルール定義部８２が作成する振り分けルール定義８７の一例である。この図２７に例示する振り分けルール定義８７は、グループ分けの対象とする情報処理装置１の情報処理装置番号が、“０”であること、すなわち、グループ分けの対象とする情報処理装置１が情報処理装置＃０のみであることを示す。
【０２２５】
また、図２７に例示する振り分けルール定義８７は、グループ分けする際の周波数の刻み幅が“０．２ＧＨｚ”であることを示す。
【０２２６】
本例でも、まず、図２２に示すステップＡ１とステップＡ２との処理を経るが、図１９を用いて上述した処理と同様のため、ここでは説明を省略する。
【０２２７】
ステップＡ３において、管理サーバ７０のコア振り分け部８５は、記憶部７２の振り分けルール定義８７（図２７参照）を参照し、コア１１をグループに振り分ける。このコア振り分け部８５によるグループへの振り分け処理について図２８を用いて説明する。
【０２２８】
コア振り分け部８５は、振り分けルール定義８７（図２７参照）で定義されている、対象とする情報処理装置番号を参照してグループ分けを行なう。図２７に例示する振り分けルール定義８７においては、サーバ情報処理装置＃０のみを対象にグループ分けが行なわれ（図２８の符号Ｎ，Ｑ参照）、情報処理装置＃１は対象外となっている（図２８の符号Ｐ参照）。
【０２２９】
また、コア振り分け部８５は、振り分けルール定義８７（図２７参照）で定義されている周波数の刻み幅が“０．２ＧＨｚ”であることを取得する。コア振り分け部８５は、周波数の刻み幅が“０．２ＧＨｚ”であるので、２．１ＧＨｚのコア１１を２．０ＧＨｚのコア１１と同じグループとして扱う。したがって、コア振り分け部８５は最大周波数が２．０ＧＨｚ以上のコア１１のうち最大周波数が２．２ＧＨｚ以上、且つ、２．４ＧＨｚ未満のコア１１、すなわち、２．２ＧＨｚ相当の周波数で動作するコア１１をグループＡに振り分ける（図２８の符号Ｎ参照）。また、コア振り分け部８５は、最大周波数が２．０ＧＨｚ以上であり、且つ、２．２ＧＨｚ未満であるコア１１、すなわち、２．０ＧＨｚ相当の周波数で動作するコア１１をグループＢに振り分ける（図２８の符号Ｑ参照）。
【０２３０】
続くステップＡ４において、仮想サーバ構築部８６は、同一のグループに属するコア１１を用いて仮想サーバを構築する。例えば、仮想サーバ構築部８６が、グループＡに属するコア１１を用いて仮想サーバを構築する場合、論理コア番号が“２”であるコア１１と論理コア番号が“３”であるコア１１とを用いて仮想サーバを構築する。
【０２３１】
そして、仮想サーバ構築部８６は、構築した仮想サーバを利用者（ユーザ端末９０）に提供して、処理を終了する。
【０２３２】
上述のように、第二の変形例に係る情報処理システム１００において、複数の情報処理装置１に備えられた複数のコア１１についても、利用者の要求に応じたコアの最適な割り当て制御を行なうことができ、上述した実施形態と同様の作用効果が得られる。
【０２３３】
また、第二の変形例に係る情報処理システム１００において、利用者が所望する性能に応じて、コア１１の最大周波数が類似したコア１１の組み合わせを決定し、これらのコア１１を用いて仮想サーバを構築し利用者に提供する。これにより、クラウド事業者は、顧客が所望した性能を備える仮想サーバを、既存のコア１１を効率的に組み合わせて構築し提供できる。したがって、クラウド事業者においては、稼動させるコア１１や情報処理装置１の数を最小限に抑えることができるので、省電力の効果が高くなる。また、クラウド事業者においては、ハードウェアのリソースを効率的に利用できるため、ハードウェアに要するコストを削減することができ、結果として、競争力のあるサービスを低価格で顧客に提供できる。
【０２３４】
また、第二の変形例に係る情報処理システム１００では、運用ポリシーに基づき、一のグループに属するコア１１のうち必要数のコア１１を用いて仮想サーバを構築する。これにより、利用者の所望する性能に応じた仮想サーバを利用者に提供できると共に、利用者の要求に応じたコアの最適な割り当て制御を行なうことができる。
【０２３５】
〔４〕その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０２３６】
上述した実施形態では、ＣＰＵ管理情報書換部６２が、ＣＰＵ管理情報４５を受信し、受信したＣＰＵ管理情報４５に基づき記憶部１３に格納されるＯＳ用ＣＰＵ管理情報５２を更新するものとしたが、記憶部１３にＯＳ用ＣＰＵ管理情報５２を備えなくてもよい。この場合、ＣＰＵ管理情報書換部６２は、受信したＣＰＵ管理情報４５の複製を作成してＯＳ用ＣＰＵ管理情報５２とし、このＯＳ用ＣＰＵ管理情報５２を記憶部１３に格納してもよい。
【０２３７】
上述した実施形態では、各コア１１に特性測定プログラム４２を実行させることにより特性を測定したが、その代わりに、ＢＭＣ（Baseboard Management Controller；ベースボード管理コントローラ）から各コア１１の特性に関する情報を取得してもよい。
【０２３８】
上述した実施形態では、コア１１の特性が最大周波数と消費電力とである例を示したが、コア１１の特性はこれらに限られるものではない。コア１１の特性を上記以外とする場合には、コア１１に実行させるプログラムを変更することで、種々変形して実施することができる。
【０２３９】
上述した第二の変形例では、並び替え部８４が、集約ＣＰＵ管理情報８８において、コア１１のレコードを、最大周波数が大きい順番に並び替える場合を例示したが、並び替えの手法はこれに限られるものではない。例えば、並び替え部８４は、消費電力が少ない順番に、集約ＣＰＵ管理情報８８におけるコア１１のレコードを並び替えてもよい。
【０２４０】
上述した第二の変形例では、コア振り分け部８５が、複数の情報処理装置１に搭載される複数のＣＰＵ１０のコア１１をグループに振り分ける手法を例示したが、コア１１に替えてＣＰＵ１０をグループに振り分けてもよい。
【０２４１】
〔５〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０２４２】
（付記１）
複数の演算部を備える情報処理装置において、
前記複数の演算部のうち一の演算部が、
前記複数の演算部についての複数の特性に関して設定される動作モードに基づいて、前記複数の演算部に対して割り当て順序を設定し、
前記割り当て順序に従って、前記複数の演算部をプロセスに割り当てる、
ことを特徴とする情報処理装置。
【０２４３】
（付記２）
前記一の演算部が、
前記動作モードに対応させて前記複数の特性に対する優先順位を規定するルール定義を参照し、前記優先順位が最も高い特性に基づいて前記割り当て順序を設定する、
ことを特徴とする付記１記載の情報処理装置。
【０２４４】
（付記３）
前記一の演算部が、
前記複数の演算部のうち少なくとも一の演算部の構成の変更を検出した場合に、前記複数の演算部について前記複数の特性を測定する、
ことを特徴とする付記１または２記載の情報処理装置。
【０２４５】
（付記４）
前記一の演算部が、
前記動作モードの変更を検出した場合に、変更された前記動作モードに基づき前記複数の演算部に対して前記割り当て順序を再設定する、
ことを特徴とする付記１〜付記３のいずれかに記載の情報処理装置。
【０２４６】
（付記５）
複数の演算部を備える情報処理装置において、
前記複数の演算部のうち一の演算部に、
前記複数の演算部についての複数の特性に関して設定される動作モードに基づいて、前記複数の演算部に対して割り当て順序を設定し、
前記割り当て順序に従って、前記複数の演算部をプロセスに割り当てる、
処理を実行させることを特徴とする制御プログラム。
【０２４７】
（付記６）
前記一の演算部に、
前記動作モードに対応させて前記複数の特性に対する優先順位を規定するルール定義を参照し、前記優先順位が最も高い特性に基づいて前記割り当て順序を設定する、
処理を実行させることを特徴とする、付記５記載の制御プログラム。
【０２４８】
（付記７）
前記一の演算部に、
前記複数の演算部のうち少なくとも一の演算部の構成の変更を検出した場合に、前記複数の演算部について前記複数の特性を測定する、
処理を実行させることを特徴とする、付記５または６記載の制御プログラム。
【０２４９】
（付記８）
前記一の演算部に、
前記動作モードの変更を検出した場合に、変更された前記動作モードに基づき前記複数の演算部に対して前記割り当て順序を再設定する、
処理を実行させることを特徴とする、付記５〜付記７のいずれかに記載の制御プログラム。
【０２５０】
（付記９）
複数の演算部を備える複数の情報処理装置と、前記複数の情報処理装置を管理する管理装置とを備える情報処理システムであって、
前記複数の情報処理装置は、
前記複数の演算部についての複数の特性を収集し、
前記管理装置は、
前記複数の情報処理装置から前記複数の特性を収集し、
前記複数の情報処理装置の備える前記複数の演算部についての複数の特性に関して設定される振り分け定義に基づいて、前記複数の演算部を複数のグループに振り分け、
前記複数のグループのうち一の前記グループに属する演算部を用いて仮想装置を構築する、
ことを特徴とする情報処理システム。
【０２５１】
（付記１０）
前記管理装置が、
前記動作モードに対応させて前記複数の特性に対する優先順位を規定するルール定義を参照し、前記優先順位が最も高い特性に基づいて前記複数のグループに振り分けを行なう、
ことを特徴とする付記９記載の情報処理システム。
【符号の説明】
【０２５２】
１    情報処理装置
１０    ＣＰＵ
１１    コア
１３    記憶部
１４    メモリ
１５    ＢＩＯＳメモリ
１６    ＩＦ部
１７    Ｉ／Ｏ部
１８    バス
２１    ＢＩＯＳ処理部
２２    ＯＳ処理部
２３    入力部
２４    表示部
３１    ＰＯＳＴ実行部
３２    ＣＰＵ管理情報生成部
３３    ＣＰＵ変更確認部
３４    特性測定部
３５    ソート部
３６    ＣＰＵ管理情報更新部
４１    起動プログラム
４２    特性測定プログラム
４３    変更フラグ
４４    ＣＰＵ識別情報
４５    ＣＰＵ管理情報（演算部管理情報）
４６    優先度設定情報
４７    優先順位付けルール定義
５１    ＯＳ
５２    ＯＳ用ＣＰＵ管理情報（演算部管理情報）
６１    割り当て部
６２    ＣＰＵ管理情報書換部
６３    優先度設定変更受信部
６４    ＣＰＵ管理情報格納部
７０    管理サーバ（管理装置）
７１    ＣＰＵ
７２    記憶部
７３    メモリ
７４    ＩＦ部
７５    Ｉ／Ｏ部
７６    バス
７７    制御プログラム
８１    ユーザ要件受信部
８２    振り分けルール定義部
８３    ＣＰＵ管理情報取得部
８４    並び替え部
８５    コア振り分け部
８６    仮想サーバ構築部
８７    振り分けルール定義
８８    集約ＣＰＵ管理情報
９０    ユーザ端末
１００    情報処理システム
【図１】
2019207690.tif 000003
【図２】
2019207690.tif 000004
【図３】
2019207690.tif 000005
【図４】
2019207690.tif 000006
【図５】
2019207690.tif 000007
【図６】
2019207690.tif 000008
【図７】
2019207690.tif 000009
【図８】
2019207690.tif 000010
【図９】
2019207690.tif 000011
【図１０】
2019207690.tif 000012
【図１１】
2019207690.tif 000013
【図１２】
2019207690.tif 000014
【図１３】
2019207690.tif 000015
【図１４】
2019207690.tif 000016
【図１５】
2019207690.tif 000017
【図１６】
2019207690.tif 000018
【図１７】
2019207690.tif 000019
【図１８】
2019207690.tif 000020
【図１９】
2019207690.tif 000021
【図２０】
2019207690.tif 000022
【図２１】
2019207690.tif 000023
【図２２】
2019207690.tif 000024
【図２３】
2019207690.tif 000025
【図２４】
2019207690.tif 000026
【図２５】
2019207690.tif 000027
【図２６】
2019207690.tif 000028
【図２７】
2019207690.tif 000029
【図２８】
2019207690.tif 000030