(57)【特許請求の範囲】
【請求項１】
複数のＣＰＵコアを搭載するマルチコア計算機を含む複数の計算機より構成される分散計算機システム上に実現された仮想計算機環境を用いて並列処理を行う並列処理装置において、
前記分散計算機システム上の全ＣＰＵコアは、各々投入された全てのジョブを均等に時分割処理すると共に、
任意のジョブを投入する際に、無負荷のＣＰＵコアでの実行時間が既知の計測用ジョブを、前記任意ジョブ投入対象となる前記分散計算機システム上の全ＣＰＵコアに同時に投入して各ＣＰＵコアの実行時間を計測する実行時間計測手段と、
前記計測用ジョブの既知の実行時間と計測された実際の実行時間との比率から前記任意ジョブ投入対象となる前記分散計算機システム上の各ＣＰＵコアの実稼働ジョブ数を算出する実稼働ジョブ数算出手段と、
前記各ＣＰＵコアの実稼働ジョブ数に基づいて、最も負荷が小さいＣＰＵコアを選定し、当該ＣＰＵコアに対して、前記任意ジョブを投入するジョブ投入手段とを備えたことを特徴とする並列処理装置。
【請求項２】
前記実行時間計測手段は、前記計測用ジョブの投入を、前記任意ジョブの投入を要求する処理単位毎に独立して実施することを特徴とする請求項１記載の並列処理装置。
【請求項３】
各ＣＰＵコアの稼働ジョブ数を登録するＣＰＵコア負荷状況管理テーブルを設け、
前記実稼働ジョブ数算出手段は、算出した各ＣＰＵコアの稼働ジョブ数を前記ＣＰＵコア負荷状況管理テーブルに登録し、
前記ジョブ投入手段は、前記ＣＰＵコア負荷状況管理テーブルの稼働ジョブ数に基づいて、最も負荷が小さいＣＰＵコアを選定することを特徴とする請求項１記載の並列処理装置。
【請求項４】
各ＣＰＵコアに前記計測用ジョブが投入中であるか否かを示す計測用ジョブ投入許可部を設け、
前記実行時間計測手段は、処理単位から前記任意ジョブ投入要求があった場合、前記計測用ジョブ投入許可部を参照し、前記任意ジョブ投入の対象となる計算機のＣＰＵコアに前記計測用ジョブが投入中でない場合にのみ当該計測用ジョブの投入を行うことを特徴とする請求項２記載の並列処理装置。
【請求項５】
前記実行時間計測手段は、前記計測用ジョブの投入を定期的に実施することを特徴とする請求項１から請求項３のうちのいずれか１項記載の並列処理装置。
【請求項６】
前記実行時間計測手段は、前記計測用ジョブの投入を処理単位毎に時分割で実施することを特徴とする請求項２記載の並列処理装置。
【請求項７】
前記実行時間計測手段は、高負荷でかつ投入頻度が高いジョブを投入する処理単位に対しては、他の処理単位よりも多くの前記計測用ジョブを投入するよう重み付けすることを特徴とする請求項６記載の並列処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコア計算機を含む１つ以上の計算機からなる並列分散計算機システム上に実現した、仮想計算機環境において、動的負荷分散を実施する並列処理装置に関する。
【背景技術】
【０００２】
近年、複数の計算機をネットワークで統合した分散計算機環境を、幾つものプロジェクトや業務で、共有して利用する形態が主流となっている。本形態では、１台のコンピュータをプロジェクトや業務毎のユーザーに対して複数のコンピュータに見せる環境を提供する「仮想計算機」と称する技術が使われることが多い。仮想的に作り出したコンピュータ（仮想計算機）は機能的に実際の１台のコンピュータ（実計算機）として見え、１つの仮想計算機上で１つのＯＳ（オペレーティング・システム）を稼働させることができる。ＣＰＵ（中央演算処理装置）は時分割、主記憶は仮想記憶、ハードディスクは領域分割によって実計算機の資源を分割して複数の仮想計算機を実現する。
【０００３】
この仮想計算機技術を利用することにより、仮想計算機の数を、動的に、または静的に増やすことで、現在運用中の業務を止めることなく、連続して試験などの新たなプロジェクトを追加・実施できるという特長がある。特に近年、性質の異なる様々なプロジェクト・業務を執り行う必要があるため、本技術は大変有効となる。また、上述したように同じ環境で試験や訓練なども平行して実施できるため、信頼性向上にも繋がる。しかし、処理量がますます増大する傾向にあり、この課題に対処するためには、システム全体での負荷バランスが重要となる。特に、このような仮想計算機環境では、様々なプロジェクト・業務の処理が、異なるタイミングで実行され、システムでの処理負荷は変動することとなるため、動的に負荷バランスを実現する技術が求められる。
【０００４】
なお、仮想計算機の特長は、各プロジェクト・業務の処理が独立に実行できるということであり、他のプロジェクト・業務の処理がどの物理計算機上で実行されているのかを考慮する必要がない点である。しかし、これは逆に、どの物理計算機の負荷が高い／低い状態なのかを知ることができないというデメリットにもなっている。即ち、他よりも高性能な計算機があり、そこにジョブを投入したとしても、実は他のプロジェクト・業務のジョブが多く実行され、高負荷状態であるならば、当該ジョブの実行に長時間を要する可能性もある。逆に、他よりも性能が低い計算機へジョブを投入したとしても、高性能計算機が上記のような状態では、高性能計算機より早くジョブの実行を完了できる可能性もある。
【０００５】
このような課題を解決するためには、動的な負荷バランス技術が必須であり、そのためには、現状のシステムの負荷状況を把握できる仕組みが必要となる。例えば、特許文献１に記載された負荷分散制御システムはこの課題を解決するために考案されたアイデアであり、余剰能力が最も高い計算機にジョブを割り当てることが開示されている。
【０００６】
また、例えば、特許文献２に記載されている装置も、この課題を解決するために考案されたアイデアであり、小さなジョブ（計測用ジョブ）を投入することにより実行時間を計り、余剰能力を算出することが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平９−２１２４６７号公報
【特許文献２】特開平７−２３４８４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記の特許文献１に記載されたような装置では、余剰能力の算出において、ジョブの実行ステップ数やＣＰＵの使用率を使用しているが、ジョブの実行ステップ数は一般に不明であるし、仮想計算機の場合の実ＣＰＵの稼働率は上述したように不明なので、余剰能力は算出できなかった。基本的に特許文献１に記載された装置では静的情報を利用してＣＰＵコアの余剰能力を見積もるものであるため、精度の良い結果を得るのは困難であった。
【０００９】
また、特許文献２に記載されたようなシステムでは、対象とする計算機に関して、マルチ・プロセッサ（マルチコアＣＰＵ）の場合を考慮していないため、マルチコアＣＰＵの全てのコアが使用されていない限り、計測ジョブは負荷が０のコアで実行した時の時間（既知時間）となってしまう。また、何個のＣＰＵコアが空いているかも分からないといったように、マルチコアＣＰＵを用いたシステムでは高い精度を得るのは困難であった。
【００１０】
この発明は上記のような課題を解決するためになされたもので、マルチコア計算機を含むような仮想計算機環境を用いた並列処理装置であっても、実態に合った、精度の良い負荷状況を把握することができ、良好な負荷バランスを実現することのできる並列処理装置を得ることを目的とする。
【課題を解決するための手段】
【００１１】
この発明に係る並列処理装置は、複数のＣＰＵコアを搭載するマルチコア計算機を含む複数の計算機より構成される分散計算機システム上に実現された仮想計算機環境を用いて並列処理を行う並列処理装置において、分散計算機システム上の全ＣＰＵコアは、各々投入された全てのジョブを均等に時分割処理すると共に、任意のジョブを投入する際に、無負荷のＣＰＵコアでの実行時間が既知の計測用ジョブを、任意ジョブ投入対象となる分散計算機システム上の全ＣＰＵコアに同時に投入して各ＣＰＵコアの実行時間を計測する実行時間計測手段と、計測用ジョブの既知の実行時間と計測された実際の実行時間との比率から任意ジョブ投入対象となる分散計算機システム上の各ＣＰＵコアの実稼働ジョブ数を算出する実稼働ジョブ数算出手段と、各ＣＰＵコアの実稼働ジョブ数に基づいて、最も負荷が小さいＣＰＵコアを選定し、そのＣＰＵコアに対して、任意ジョブを投入するジョブ投入手段とを備えたものである。
【発明の効果】
【００１２】
この発明の並列処理装置は、無負荷のＣＰＵコアでの実行時間が既知の計測用ジョブを全ＣＰＵコアに同時に投入して実行時間を計測し、この計測結果に基づいてＣＰＵコアの実稼働ジョブ数を算出して最も負荷が小さいＣＰＵコアを選定するようにしたので、マルチコア計算機を含むような仮想計算機環境を用いた並列処理装置であっても、実態に合った、精度の良い負荷状況を把握することができ、良好な負荷バランスを実現することができる。
【図面の簡単な説明】
【００１３】
【図１】この発明の実施の形態１による並列処理装置を適用するシステム例を示す構成図である。
【図２】この発明の実施の形態１による並列処理装置を示す機能ブロック図である。
【図３】この発明の実施の形態１による並列処理装置の仮想／物理計算機の負荷状況を示す説明図である。
【図４】従来方式を仮想計算機環境に適用した場合の説明図である。
【図５】この発明の実施の形態１による並列処理装置を仮想計算機環境に適用した場合の説明図である。
【図６】この発明の実施の形態１による並列処理装置を複数の仮想計算機環境に適用した場合の説明図である。
【図７】この発明の実施の形態２による並列処理装置の構成図である。
【図８】この発明の実施の形態２による並列処理装置の機能ブロック図である。
【図９】この発明の実施の形態３による並列処理装置の構成図である。
【図１０】この発明の実施の形態３による並列処理装置の機能ブロック図である。
【図１１】この発明の実施の形態４による並列処理装置の機能ブロック図である。
【図１２】この発明の実施の形態４による並列処理装置の計測用ジョブ投入タイミングを示す説明図である。
【発明を実施するための形態】
【００１４】
実施の形態１．
図１は、３台の物理計算機Ａ〜Ｃをベースにした仮想計算機環境のシステムの例を示したものである。本例では、各物理計算機上に３台の仮想計算機を実現している。このため、本システムでは、仮想的に、９台（＝３×３）の計算機を実現していることになる。また本例では、実運用、試験用、そして訓練用の３つの業務処理１〜３が、それぞれ独立に処理単位として本仮想計算機環境を利用しているものとする。各業務処理は、本計算機上で実行されている他の業務処理を知らない状態であり（知る必要が無い為）、全ての計算機３台を独占して利用できるものと考えて良い。
【００１５】
図２は、この発明の実施の形態１による並列処理装置を示す機能ブロック図である。図示の並列処理装置１００は、実行時間計測手段１０１、実稼働ジョブ数算出手段１０２、ジョブ投入手段１０３を備えている。また、物理計算機２００ａ，２００ｂ，２００ｃは、それぞれ図１の物理計算機Ａ〜Ｃに相当する計算機であり、それぞれが複数のＣＰＵコアを搭載するマルチコア計算機である。
【００１６】
実行時間計測手段１０１は、図１における業務処理毎に、複数の処理（ジョブ）が実行中である状態で任意のジョブを投入する際に、無負荷のＣＰＵコアでの実行時間が既知の計測用ジョブを、任意ジョブ投入対象となる物理計算機上の全ＣＰＵコアに同時に投入して実行時間を計測する手段である。実稼働ジョブ数算出手段１０２は、計測用ジョブの既知の実行時間と計測された実際の実行時間との比率から各ＣＰＵコアの実稼働ジョブ数を算出する手段である。ジョブ投入手段１０３は、実稼働ジョブ数に基づいて、最も負荷が小さいＣＰＵコアを選定し、そのＣＰＵコアに対して、任意ジョブを投入する手段である。
【００１７】
以下、実施の形態１の並列処理装置の動作について説明する。
図３は、図１の状態での仮想／物理計算機の負荷状況を示したものである。この図から分かるように、物理計算機Ａにジョブが１つ、物理計算機Ｂにジョブが２つ、そして物理計算機Ｃにジョブ２つが実行中の状態であるが、各業務処理側からはこれらの（物理）計算機の負荷状況を知らないことになる。従って、例えば、業務処理１において、新たなジョブを本システムに投入しようとした時に、既に業務処理１は仮想計算機Ａ１とＢ１を利用しているので、仮想計算機Ｃ１に投入すれば高速に実行できると考えてしまうことになるが、実態は仮想計算機Ａ１（物理計算機Ａ）に投入するのが当該ジョブを最も早く実行できることとなる。なお、ここでは、物理計算機Ａ〜Ｃの性能が全て均一であるとの仮定での説明である。
【００１８】
図４は、例えば特許文献２の「分散計算機システム構築支援装置」に基づく従来方式を、ＣＰＵコア数＝６としたマルチコア計算機をベースとする仮想計算機環境へ適用した場合の例を示したものである。例えば、図４（ａ）に示すようにコア１〜３上でそれぞれジョブ１〜３が実行中であった場合、図４（ｂ）に示すように、従来方式に基づき、検定のための計測用ジョブＭ１を１つだけ投入しただけでは、ジョブが実行されていない、例えば、コア４に割り付けられることになるため、計測用ジョブは既知時間で実行が完了することになり、本計算機は負荷が０だと誤認識してしまうことになる。このような従来の方法では、本計算機上でジョブが３つ実行中であることや、空いている（ジョブが実行されていない）コア数も認識できないことになる。
【００１９】
図５は、図４で示した問題を解決するための本発明の実施の形態を示したものである。実行時間計測手段１０１は、図示のように、検定のための計測用ジョブを６個（Ｍ１〜Ｍ６）同時に投入すると、Ｍ１〜Ｍ３では、既に実行中のジョブと計測用ジョブとが時分割で実行されるので、計測ジョブの実行時間は既知時間の２倍となり、Ｍ４〜Ｍ６は既知時間となる。このように、コア数分の計測用ジョブを投入することにより、実稼働ジョブ数算出手段１０２は、３つのコアの稼働ジョブ数は１で、残り３つのコアの稼働ジョブ数は０であることが認識できることになる。なお、以下の式（１）により、本稼働ジョブ数を算出することができる。
稼働ジョブ数：＝計測用ジョブの実行時間／既知時間−１      （１）
【００２０】
なお、図５はＣＰＵコア数６を搭載した実計算機上に１つの仮想計算機（仮想計算機Ａ）を実現した例であり、図６は、実計算機上に２つの仮想計算機（仮想計算機Ａ、Ｂ）を実現した例である。図６の例では、検定のための計測用ジョブを６個（Ｍ１〜Ｍ６）同時に投入した場合、計測用ジョブＭ２、Ｍ４の実行時間が既知時間の２倍、計測用ジョブＭ５の実行時間が既知時間の３倍と計測される。従って、式（１）により、仮想計算機ＡのＣＰＵコア２では１つのジョブ（ジョブ１）が実行され、仮想計算機ＢのＣＰＵコア４では１つのジョブ（ジョブ１）が、また、ＣＰＵコア５では２つのジョブ（ジョブ１とジョブ２）が実行されていることが分かる。このような点から、仮想計算機Ａの方が負荷が小さく、新たなジョブを投入する場合は、仮想計算機Ａを選択した方が良いことになる。また、空いているＣＰＵコアに対して、ピンポイントでジョブを投入してもよい。
【００２１】
本計測用ジョブを定期的にシステムに投入することにより、負荷変動に対応できることになる。このように、負荷変動に対応したコア毎の稼働ジョブ数が正確に把握できるため、ジョブ投入手段１０３は、最も負荷が小さいＣＰＵコアを選定し、そのＣＰＵコアに対して、いずれかの業務処理から要求のあったジョブを投入することができる。
【００２２】
以上説明したように、実施の形態１の並列処理装置によれば、複数のＣＰＵコアを搭載するマルチコア計算機を含む複数の計算機より構成される分散計算機システム上に実現された仮想計算機環境を用いて並列処理を行う並列処理装置において、分散計算機システム上の全ＣＰＵコアは、各々投入された全てのジョブを均等に時分割処理すると共に、任意のジョブを投入する際に、無負荷のＣＰＵコアでの実行時間が既知の計測用ジョブを、任意ジョブ投入対象となる分散計算機システム上の全ＣＰＵコアに同時に投入して各ＣＰＵコアの実行時間を計測する実行時間計測手段と、計測用ジョブの既知の実行時間と計測された実際の実行時間との比率から任意ジョブ投入対象となる分散計算機システム上の各ＣＰＵコアの実稼働ジョブ数を算出する実稼働ジョブ数算出手段と、各ＣＰＵコアの実稼働ジョブ数に基づいて、最も負荷が小さいＣＰＵコアを選定し、そのＣＰＵコアに対して、任意ジョブを投入するジョブ投入手段とを備えたので、マルチコア計算機を含むような仮想計算機環境を用いた並列処理装置であっても、実態に合った、精度の良い負荷状況を把握することができ、良好な負荷バランスを実現することができる。
【００２３】
また、実施の形態１の並列処理装置によれば、実行時間計測手段は、計測用ジョブの投入を、任意ジョブの投入を要求する処理単位毎に独立して実施するようにしたので、プロジェクト・業務といった処理単位毎に精度の良い負荷状況を把握することができる。
【００２４】
また、実施の形態１の並列処理装置によれば、実行時間計測手段は、計測用ジョブの投入を定期的に実施するようにしたので、負荷変動に対応することができる。
【００２５】
実施の形態２．
実施の形態２は、図７に示すように、各ＣＰＵコアの実稼働ジョブ数を管理する管理部を、各業務処理とは別に独立して設けた例である。図７の並列処理装置の構成に対応した機能ブロック図を図８に示す。
図８において、処理実行部３００ａ，３００ｂは、それぞれ図７における業務処理１、２に対応した機能部であり、管理部４００は、これら処理実行部３００ａ，３００ｂとは独立して設けられている。管理部４００は、実行時間計測手段１０１〜ジョブ投入手段１０３を備えており、それぞれの基本的な機能は、実施の形態１における実行時間計測手段１０１〜ジョブ投入手段１０３と同様であるが、ＣＰＵコア負荷状況管理テーブル５００を用いて各ＣＰＵコアの稼働ジョブ数を管理する点が異なっている。すなわち、実行時間計測手段１０１は、定期的に全ＣＰＵコアへ計測用ジョブを投入し（図７中の計測用ジョブ参照）、実稼働ジョブ数算出手段１０２は、その結果をＣＰＵコア負荷状況管理テーブル５００に登録する。このＣＰＵコア負荷状況管理テーブル５００は、図７中に示すように、各物理計算機２００ａ〜物理計算機２００ｃのコア毎の稼働ジョブ数を管理するためのテーブルである。また、ジョブ投入手段１０３は、ジョブを投入する際に、ＣＰＵコア負荷状況管理テーブル５００を参照し、負荷の低いＣＰＵコアを選定し、そのＣＰＵコアにジョブを投入する。
【００２６】
なお、管理部４００が自主的に計測用ジョブを投入するのではなく、各処理実行部３００ａ，３００ｂからの要求を受けて計測用ジョブの投入を実施するようにしてもよい。
【００２７】
以上説明したように、実施の形態２の並列処理装置によれば、各ＣＰＵコアの稼働ジョブ数を登録するＣＰＵコア負荷状況管理テーブルを設け、実稼働ジョブ数算出手段は、算出した各ＣＰＵコアの稼働ジョブ数をＣＰＵコア負荷状況管理テーブルに登録し、ジョブ投入手段は、ＣＰＵコア負荷状況管理テーブルの稼働ジョブ数に基づいて、最も負荷が小さいＣＰＵコアを選定するようにしたので、負荷状況に応じたジョブの投入を容易に管理することができる。
【００２８】
実施の形態３．
実施の形態３は、図９に示すように、実施の形態２で示したような独立した管理部は設けずに、業務処理毎に計測用ジョブの投入を管理するようにしたものである。図９の並列処理装置の構成に対応した機能ブロック図を図１０に示す。なお、図１０において、処理実行部３００ｂ，３００ｃの内部構成は処理実行部３００ａと同様であるため、これら処理実行部３００ｂ，３００ｃについてはその内部構成の図示は省略している。
【００２９】
実施の形態３では、業務処理間で、計測用ジョブの投入時間が重ならないように、排他制御（調整）を行う必要があり、この調整を計測用ジョブ投入許可部６００が実施する。すなわち、実施の形態３では、処理実行部３００ａ〜３００ｃ毎に、実行時間計測手段１０１〜ジョブ投入手段１０３を備えており、各処理実行部３００ａ〜３００ｃが計測用ジョブを投入する場合に計測用ジョブ投入許可部６００を参照する。この計測用ジョブ投入許可部６００は、各ＣＰＵコアに測定用ジョブが投入中であるか否かを示すもので、実行時間計測手段１０１は、任意ジョブを投入する場合、計測用ジョブ投入許可部６００を参照し、任意ジョブ投入の対象となる計算機のＣＰＵコアに計測用ジョブが投入中でない場合にのみ計測用ジョブの投入を行うよう構成されている。
【００３０】
計測用ジョブ投入許可部６００の具体的な実現方法としては、単純に、１（投入中）／０（投入無し）のフラグを設けるもので、測定用ジョブの投入許可要求があった場合、その時点でフラグが０であれば、計測用ジョブ投入許可部６００は要求のあった処理実行部３００ａ〜３００ｃに投入許可を与えてフラグを１に設定し、フラグが１であれば許可しない、とするものである。なお、許可した計測用ジョブの投入によって実稼働ジョブ数算出手段１０２がＣＰＵコアの実稼働ジョブ数を算出した場合、計測用ジョブ投入許可部６００はフラグを０（投入無し）にリセットする。また、ジョブ投入手段１０３の動作については実施の形態１と同様である。
【００３１】
このように、実施の形態３では、実施の形態２で示した管理部４００を設ける必要が無いため、比較的簡単に実装することができるが、各業務処理は自身でシステムの負荷状況を調べる必要がある。
【００３２】
以上説明したように、実施の形態３の並列処理装置によれば、各ＣＰＵコアに計測用ジョブが投入中であるか否かを示す計測用ジョブ投入許可部を設け、実行時間計測手段は、処理単位から任意ジョブ投入要求があった場合、計測用ジョブ投入許可部を参照し、任意ジョブ投入の対象となる計算機のＣＰＵコアに計測用ジョブが投入中でない場合にのみ計測用ジョブの投入を行うようにしたので、ジョブ投入を管理するための機能の実装を容易に行うことができる。
【００３３】
実施の形態４．
実施の形態４は、実施の形態３で示した計測用ジョブ投入許可部６００をも設けずに処理実行部３００ａ〜３００ｃだけで計測用ジョブを投入する例を示したものである。
図１１は、実施の形態４の並列処理装置を示す機能ブロック図である。
各処理実行部３００ａ〜３００ｃは、それぞれ実行時間計測手段１０１、実稼働ジョブ数算出手段１０２、ジョブ投入手段１０３を備えている。なお、処理実行部３００ｂ，３００ｃの内部構成については、処理実行部３００ａと同様であるため、その図示は省略している。各処理実行部３００ａ〜３００ｃの実行時間計測手段１０１は、計測用ジョブの投入を各処理実行部３００ａ〜３００ｃ毎に時分割で行うよう構成されている。図１２は、各処理実行部３００ａ〜３００ｃが実行する業務処理１〜３における計測用ジョブの投入タイミングを示している。
【００３４】
図１２に示すように、予め、業務処理間で計測用ジョブの投入時間が重ならないような時間間隔（Δｔ）を設定する。そして、このΔｔを単位に各業務処理は他の業務処理と計測用ジョブ投入時間が重ならないように、全ての業務処理を実行する前に、自身の与えられた計測用ジョブ投入可能時刻の中のいずれかの時刻に、当該計測用ジョブを投入するものである。例えば、図１２の例では、業務処理１〜３の当該計測用ジョブ投入可能時刻は以下の式（２）〜式（４）の通りである。
業務処理１の計測用ジョブ投入可能時刻：＝１＋３×ｋ      （２）
業務処理２の計測用ジョブ投入可能時刻：＝２＋３×ｋ      （３）
業務処理３の計測用ジョブ投入可能時刻：＝３＋３×ｋ      （４）
ここで、ｋ＝０，１，２，３…（０以上の整数値）
それぞれの処理実行部３００ａ〜３００ｃは、この投入可能時刻の中から適当な時刻を選び、計測用ジョブを投入すれば良いこととなる（図１２の計測用ジョブ投入を参照）。
【００３５】
なお、処理負荷が大きいジョブを持つ業務処理には、システムへの負荷バランスに大きな影響を持ち、より適したＣＰＵコアへのジョブ投入が求められるため、その計測用ジョブ投入可能時刻を他よりも多めに与えることも考えられる。例えば、各業務処理の負荷値（ジョブの平均実行時間等）の比率を基準に、各業務処理の計測用ジョブ投入可能時刻を決定しても良い。なお、この実施の形態４で説明したアイデアは、実施の形態２及び３とは異なり、処理の実行中（動的）に計測用ジョブ投入タイミングを調整するのではなく、全業務処理を実行する前に、静的に決めておくものであり、動的実行に比べて柔軟性に欠けるが、実行中に計測用ジョブの投入を調整する必要が無いので、低コストで実施できるという効果がある。
【００３６】
以上説明したように、実施の形態４の並列処理装置によれば、実行時間計測手段は、計測用ジョブの投入を処理単位毎に時分割で実施するようにしたので、ジョブ投入を管理するための機能を低コストで実現することができる。
【００３７】
また、実施の形態４の並列処理装置によれば、実行時間計測手段は、高負荷でかつ投入頻度が高いジョブを投入する処理単位に対しては、他の処理単位よりも多くの計測用ジョブを投入するよう重み付けするようにしたので、各処理単位の負荷値に応じた負荷バランスを実現することができる。
【００３８】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００３９】
１００  並列処理装置、１０１  実行時間計測手段、１０２  実稼働ジョブ数算出手段、１０３  ジョブ投入手段、２００ａ〜２００ｃ  物理計算機、３００ａ〜３００ｃ  処理実行部、４００  管理部、５００  ＣＰＵコア負荷状況管理テーブル、６００  計測用ジョブ投入許可部。
【図１】
0005804940.tif 000002
【図２】
0005804940.tif 000003
【図３】
0005804940.tif 000004
【図４】
0005804940.tif 000005
【図５】
0005804940.tif 000006
【図６】
0005804940.tif 000007
【図７】
0005804940.tif 000008
【図８】
0005804940.tif 000009
【図９】
0005804940.tif 000010
【図１０】
0005804940.tif 000011
【図１１】
0005804940.tif 000012
【図１２】
0005804940.tif 000013