(57)【要約】【課題】ワークロード管理を適用したマルチプロセッサシステムにおいて、システム全体のスループット向上させる。【解決手段】各ワークロードへのＣＰＵ資源割り当てをプロセッサグループ毎に管理し、キャッシュヒット率が問題となるようなワークロードについては、ＣＰＵ資源割り当てを特定のプロセッサグループに偏らせることでスループット向上を実現する。このため、マルチプロセッサシステムにおいて、ワークロードへのＣＰＵ資源の割り当てルールを格納するテーブルであるワークロード表と、前記ワークロード表を基にして、プロセッサグループに前記ワークロードの配分比率を割り当て、配分表を作成する配分表登録部と、前記配分表に登録された値を基にして、登録先となる実行可能キューを決定し、実行可能となったプロセスを前記実行可能キューに登録する実行可能プロセス登録部と、前記実行可能キューからプロセスを取り出し、前記プロセスの実行を開始するプロセス実行部とを備えることを特徴とする。【選択図】図２
2007316710.tif 000002
【特許請求の範囲】
【請求項１】
ワークロードへのＣＰＵ資源の割り当てルールを格納するテーブルであるワークロード表と、
前記ワークロード表を基にして、プロセッサグループに前記ワークロードの配分比率を割り当て、配分表を作成する配分表登録部と、
前記配分表に登録された値を基にして、登録先となる実行可能キューを決定し、実行可能となったプロセスを前記実行可能キューに登録する実行可能プロセス登録部と、
前記実行可能キューからプロセスを取り出し、前記プロセスの実行を開始するプロセス実行部と
を具備する
マルチプロセッサシステム。
【請求項２】
請求項１に記載のマルチプロセッサシステムにおいて、
前記ワークロード表は、
前記ワークロードに割り当てられるべきＣＰＵ資源の全ＣＰＵ資源に対する割合を示す配分比率と、
前記ワークロードに属するプロセスを実行するプロセッサグループが固定されるべきか否かを示すプロセッサグループ固定フラグと
を有する
マルチプロセッサシステム。
【請求項３】
請求項２に記載のマルチプロセッサシステムにおいて、
前記プロセスがお互いに協調して動作し共通のメモリ領域を頻繁にアクセスするワークロードでは、前記プロセッサグループ固定フラグはＯＮ（有効）の状態であり、
前記プロセスが独立した処理となっているワークロードでは、前記プロセッサグループ固定フラグはＯＦＦ（無効）の状態である
マルチプロセッサシステム。
【請求項４】
請求項１乃至３のいずれか一項に記載のマルチプロセッサシステムにおいて、
前記プロセッサグループがｎグループ存在する時、前記配分表、及び、前記実行可能キューも、それぞれｎ個ずつ存在する
マルチプロセッサシステム。
【請求項５】
請求項１乃至４のいずれか一項に記載のマルチプロセッサシステムにおいて、
前記配分表は、
前記プロセッサグループが持つＣＰＵ資源のうち前記ワークロードに割り当てられるべきＣＰＵ資源の割合を示すプロセッサグループ内配分比率と、
前記実行可能キューに登録されたプロセスの数を示す実行可能プロセス数と、
前記プロセスが実行される順を示し、前記プロセスの実行に従い下げられる値である優先度と
を具備する
マルチプロセッサシステム。
【請求項６】
（ａ１）ワークロード管理を有効化する時、ワークロード表からワークロードを選択するステップと、
（ａ２）プロセッサグループ内配分比率を０で初期化するステップと、
（ａ３）配分表毎に前記プロセッサグループ内配分比率の合計値を求め、前記合計値の最も小さなプロセッサグループを選択するステップと、
（ａ４）前記選択したワークロードの配分比率を、前記選択したプロセッサグループに割り当てるステップと、
（ａ５）前記配分比率の値が０か否か確認するステップと、
（ａ６）前記ワークロード表の終端に達したら前記プロセッサグループ内配分比率を応じて、各ワークロードの優先度を決定するステップと、
（ａ７）前記ワークロード表に未処理のワークロードが残っていたら前記ワークロード表から次のワークロードを選択するステップと
を具備する
ワークロード管理方法。
【請求項７】
請求項６に記載のワークロード管理方法において、
前記（ａ４）ステップは、
プロセッサグループ内配分比率  ＝  ｍｉｎ（プロセッサグループ数  ×  配分比率  ，  合計値）
配分比率  ＝  配分比率  −  プロセッサグループ内配分比率
という計算を行うステップを具備する
ワークロード管理方法。
【請求項８】
請求項６又は７に記載のワークロード管理方法において、
（ｂ１）実行可能なプロセスが新たに現れた時、全ての前記実行可能キューについて、１プロセスあたりのプロセスグループ内配分比率を計算するステップと、
（ｂ２）前記１プロセスあたりのプロセスグループ内配分比率の値が最も大きい実行可能キューに、前記実行可能プロセスを登録するステップと、
（ｂ３）前記実行可能プロセス数に１を加算するステップと、
（ｂ４）前記実行可能キューに「優先度＞０」を満たすプロセスが存在しない場合、前記プロセッサグループ内配分比率を基にワークロードの優先度を再設定するステップと、
（ｂ５）前記実行可能キューに「優先度＞０」を満たすプロセスが存在する場合、処理を終了するステップと
を具備する
ワークロード管理方法。
【請求項９】
請求項６乃至８のいずれか一項に記載のワークロード管理方法において、
前記（ｂ１）ステップは、
１プロセスあたりのプロセスグループ内配分比率  ＝  プロセスグループ内配分比率  ÷  （実行可能プロセス数  ＋  １）
という計算を行うステップを具備する
ワークロード管理方法。
【請求項１０】
請求項６乃至９のいずれか一項に記載のワークロード管理方法において、
（ｃ１）プロセッサで実行中のプロセスが実行を中断した場合、又は、一定間隔毎に、前記実行可能キューにプロセスが登録されているか確認するステップと、
（ｃ２）前記実行可能キューにプロセスが存在しない場合、処理を終了するステップと、
（ｃ３）前記実行可能キューにプロセスが存在する場合、前記優先度が最も大きなワークロードのプロセスを、前記実行可能キューから一つ取り出すステップと、
（ｃ４）実行可能プロセス数から１を減算するステップと、
（ｃ５）前記優先度を減らすステップと、
（ｃ６）前記取り出したプロセスの実行を開始するステップと
を具備する
ワークロード管理方法。
【請求項１１】
請求項６乃至１０のいずれか一項に記載のワークロード管理方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークロード管理方法に関し、特にマルチプロセッサシステムにおけるワークロード管理方法に関する。
【背景技術】
【０００２】
マルチプロセッサシステム上で複数のワークロードを実行する時、各ワークロードのＣＰＵ資源の利用割合をシステム管理者が指定する場合がある。例えば、ワークロードＡに対して全ＣＰＵ資源の７０％を、残りの３０％をワークロードＢに対して割り当てるといった方針を、システム管理者が決定する。各ワークロードはそれぞれ１つ、あるいは、複数のプロセスを持つ。上記方針を満たす従来の技術として、各ワークロードに属するプロセスをなるべく均等に各プロセッサへ分散させる方法がある。
【０００３】
ところが、このように各ワークロードに属するプロセスを均等に各プロセッサ（またはプロセッサグループ）に分散させる、あるいは、均等に分散させる目的で頻繁にプロセッサ（またはプロセッサグループ）を変更すると、キャッシュメモリのヒット率が低下し、システム全体のスループットが低下する場合がある。
【０００４】
このように問題となる例を、図１を用いて説明する。
図１で示されるシステムは、プロセッサグループ１００に属するプロセッサ１０１とプロセッサ１０２、及び、プロセッサグループ２００に属するプロセッサ２０１とプロセッサ２０２、合計４つのプロセッサを持つ。プロセッサ１０１とプロセッサ１０２はキャッシュメモリ３００を共有し、プロセッサ２０１とプロセッサ２０２はキャッシュメモリ４００を共有している。ここでは、便宜的に、キャッシュを共有するプロセッサ同士をまとめてプロセッサグループと呼ぶ。図１のプロセッサグループ１００とプロセッサグループ２００との間の通信はシステムバス５００を介して行われる。また、メモリ（主記憶装置）６００を搭載したチップセット７００が、システムバス５００に接続されている。このような構成のシステムでは、共通のメモリ領域を頻繁にアクセスする複数のプロセスを異なるプロセッサグループで動作させると、キャッシュヒット率が低く、スループットが低下する。一般的に、同一のワークロードに属するプロセス同士はお互いに協調して動作する場合も多く、各プロセッサグループに均等にプロセスを分散させてしまうと、スループットが低下する。また、プロセスを実行するプロセッサを、プロセッサグループを跨いで変更した場合にも、キャッシュミスヒットのペナルティが生じる。このため、ワークロードに属するプロセスを各プロセッサに均等に分散させるために、頻繁にプロセッサグループを変更すると、スループットが低下する。
【０００５】
上記性能上の問題は、図１の「プロセッサ」を「プロセッサコア」と読み替え、「プロセッサグループ」を「プロセッサ」と読み替えることで複数のマルチコアプロセッサを用いたシステムでも同様に発生し得ることがわかる。
【０００６】
関連する技術として、特開２００３−２４８６６６号公報にマルチプロセッサシステムが開示されている。
この従来技術は、プロセッサ毎にキャッシュメモリを備える複数のプロセッサからなるマルチプロセッサシステムにおいて、プロセス毎に特定のプロセッサで実行させるという制御を行うのではなく、繁忙ロック対象資源利用処理を特定のプロセッサだけで実行するように制御することを特徴とする。
【０００７】
また、特開２００４−３０６６３号公報にマルチ・プロセッサ・システムが開示されている。
この従来技術は、自己負荷均衡をとり得るマルチ・プロセッサ・システムに関する。前記システムは複数のプロセッサ実行キューを備えており、各々の実行キューは処理すべきスレッドを保持するためのものである。このマルチ・プロセッサ・システムは、コード・データを記憶するための少なくとも１つのストレージ（記憶）・システムと、作成された各々のスレッドに優先順位を割り当てて当該作成されたスレッドを実行キューに配置するようにコード・データを処理する少なくとも一つのプロセッサとを有する。当該割当てられた優先順位は当該スレッドをあるバンド（群）に分類し、当該システムが負荷不均衡かどうかを判断し、もしある実行キューのあるバンドへ別の実行キューのそれと同じバンドにあるのよりも多くのスレッドが分類されているのであれば当該システムは負荷不均衡とする。もし当該システムが負荷不均衡であるならば、当該バンドに属する数の多いスレッドを持った方の実行キューから当該バンドに属する数の少ないスレッドを持った方の実行キューへとスレッドを移動することにより、当該システムの負荷均衡をとる。
【０００８】
特開平６−２５９３９５号公報にプロセススケジューリング方式が開示されている。
このプロセススケジューリング方式は、複数のプロセッサがバスを介して結合されたマルチプロセッサシステムにおいて、バスのトラフィック量を監視する手段と、プロセッサにバスのトラフィック及びプロセスのスケジューリングに関する情報を通知する手段と、バスのトラフィック量があるしきい値を越えている場合にプロセッサ間でのプロセスの移動を抑止するようなプロセスのスケジューリングを行う手段と、バスのトラフィック量があるしきい値を下回った場合に任意のプロセッサ間でのプロセスの移動を許すようなプロセスのスケジューリングを行う手段とを備えたことを特徴とする。
【０００９】
特開平１０−７４１８３号公報にジョブ起動システムが開示されている。
このジョブ起動システムは、並列計算機システムを構成するプロセッサのそれぞれが、ジョブの起動条件を監視して起動可能ジョブを選択する起動可能ジョブ監視部と、この起動可能ジョブの実行に関する情報を保持するためのテーブルと、ジョブ実行環境にあると自ら判断した上で当該情報に基づいて起動ジョブを選択する動作環境監視部と、この起動ジョブを実行するジョブ起動機構と、を有することを特徴とする。
【００１０】
特開平１０−２０７８５０号公報にマルチプロセッサシステムにおけるディスパッチング方式が開示されている。
このディスパッチング方式は、それぞれが複数のプロセッサとキャッシュメモリとを含む複数のプロセッサグループから構成されるマルチプロセッサシステムにおいて、前記プロセッサグループ内のいずれかのプロセッサが、自プロセッサが属するプロセッサグループのキャッシュメモリのヒット率が低下した場合に自プロセッサが属するプロセッサグループで実行されていたジョブをキャッシュメモリのヒット率が高い他のプロセッサグループへ移動するジョブ移動手段を備えたことを特徴とする。
【００１１】
【特許文献１】特開２００３−２４８６６６号公報
【特許文献２】特開２００４−３０６６３号公報
【特許文献３】特開平６−２５９３９５号公報
【特許文献４】特開平１０−７４１８３号公報
【特許文献５】特開平１０−２０７８５０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の目的は、各ワークロードへのＣＰＵ資源割り当てをプロセッサグループ毎に管理し、キャッシュヒット率が問題となるようなワークロードについては、ＣＰＵ資源割り当てを特定のプロセッサグループに偏らせることでスループット向上を実現するワークロード管理方法を提供することである。
【課題を解決するための手段】
【００１３】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。但し、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１４】
本発明のマルチプロセッサシステムは、ワークロードへのＣＰＵ資源の割り当てルールを格納するテーブルであるワークロード表（２１）と、前記ワークロード表（２１）を基にして、プロセッサグループに前記ワークロードの配分比率を割り当て、配分表（２２）を作成する配分表登録部（１１１）と、前記配分表（２２）に登録された値を基にして、登録先となる実行可能キュー（２３）を決定し、実行可能となったプロセスを前記実行可能キュー（２３）に登録する実行可能プロセス登録部（１１２）と、前記実行可能キュー（２３）からプロセスを取り出し、前記プロセスの実行を開始するプロセス実行部（１１３）とを具備する。
【００１５】
前記ワークロード表（２１）は、前記ワークロードに割り当てられるべきＣＰＵ資源の全ＣＰＵ資源に対する割合を示す配分比率（２１１）と、前記ワークロードに属するプロセスを実行するプロセッサグループ（１０）が固定されるべきか否かを示すプロセッサグループ固定フラグ（２１２）とを有する。
【００１６】
前記プロセスがお互いに協調して動作し共通のメモリ領域を頻繁にアクセスするワークロードでは、前記プロセッサグループ固定フラグ（２１２）はＯＮ（有効）の状態である。前記プロセスが独立した処理となっているワークロードでは、前記プロセッサグループ固定フラグ（２１２）はＯＦＦ（無効）の状態である。
【００１７】
前記プロセッサグループ（１０）がｎグループ存在する時、前記配分表（２２）、及び、前記実行可能キュー（２３）も、それぞれｎ個ずつ存在する。
【００１８】
前記配分表（２２）は、前記プロセッサグループ（１０）が持つＣＰＵ資源のうち前記ワークロードに割り当てられるべきＣＰＵ資源の割合を示すプロセッサグループ内配分比率（２２１）と、前記実行可能キュー（２３）に登録されたプロセスの数を示す実行可能プロセス数と、前記プロセスが実行される順を示し、前記プロセスの実行に従い下げられる値である優先度（２２３）とを具備する。
【００１９】
本発明のワークロード管理方法は、（ａ１）ワークロード管理を有効化する時、ワークロード表（２１）からワークロードを選択するステップと、（ａ２）プロセッサグループ内配分比率（２２１）を０で初期化するステップと、（ａ３）配分表（２２）毎に前記プロセッサグループ内配分比率（２２１）の合計値を求め、前記合計値の最も小さなプロセッサグループ（１０）を選択するステップと、
（ａ４）前記選択したワークロードの配分比率（２１１）を、前記選択したプロセッサグループ（１０）に割り当てるステップと、（ａ５）前記配分比率（２１１）の値が０か否か確認するステップと、
（ａ６）前記ワークロード表（２１）の終端に達したら前記プロセッサグループ内配分比率（２２１）を応じて、各ワークロードの優先度（２２３）を決定するステップと、（ａ７）前記ワークロード表（２１）に未処理のワークロードが残っていたら前記ワークロード表（２１）から次のワークロードを選択するステップとを具備する。
【００２０】
前記（ａ４）ステップは、
プロセッサグループ内配分比率  ＝  ｍｉｎ（プロセッサグループ数  ×  配分比率  ，  合計値）
配分比率  ＝  配分比率  −  プロセッサグループ内配分比率
という計算を行うステップを具備する。
【００２１】
本発明のワークロード管理方法は、（ｂ１）実行可能なプロセスが新たに現れた時、全ての前記実行可能キュー（２３）について、１プロセスあたりのプロセスグループ内配分比率（２１１）を計算するステップと、（ｂ２）前記１プロセスあたりのプロセスグループ内配分比率（２１１）の値が最も大きい実行可能キュー（２３）に、前記実行可能プロセスを登録するステップと、（ｂ３）前記実行可能プロセス数に１を加算するステップと、（ｂ４）前記実行可能キュー（２３）に「優先度（２２３）＞０」を満たすプロセスが存在しない場合、前記プロセッサグループ内配分比率（２２１）を基にワークロードの優先度（２２３）を再設定するステップと、（ｂ５）前記実行可能キュー（２３）に「優先度（２２３）＞０」を満たすプロセスが存在する場合、処理を終了するステップとを具備する。
【００２２】
前記（ｂ１）ステップは、
１プロセスあたりのプロセスグループ内配分比率  ＝  プロセスグループ内配分比率  ÷  （実行可能プロセス数  ＋  １）
という計算を行うステップを具備する。
【００２３】
本発明のワークロード管理方法は、（ｃ１）プロセッサ（１１）で実行中のプロセスが実行を中断した場合、又は、一定間隔毎に、前記実行可能キュー（２３）にプロセスが登録されているか確認するステップと、（ｃ２）前記実行可能キュー（２３）にプロセスが存在しない場合、処理を終了するステップと、（ｃ３）前記実行可能キュー（２３）にプロセスが存在する場合、前記優先度（２２３）が最も大きなワークロードのプロセスを、前記実行可能キュー（２３）から一つ取り出すステップと、（ｃ４）実行可能プロセス数から１を減算するステップと、（ｃ５）前記優先度（２２３）を減らすステップと、（ｃ６）前記取り出したプロセスの実行を開始するステップとを具備する。
【発明の効果】
【００２４】
本発明で得られる効果は、システム全体のスループットの向上である。同一のワークロードに属するプロセス同士はお互いに協調して動作し、共通のメモリ領域を頻繁にアクセスする場合がある。本発明では、このようなワークロードに対してプロセッサグループ固定フラグを指定すると、このワークロードに属するプロセスは特定のプロセッサグループに割り当てられる。従って、従来、複数のプロセッサグループに分散して割り当てられた場合に問題となっていたキャッシュヒット率低下を防ぐことができ、スループットが向上する。
【発明を実施するための最良の形態】
【００２５】
以下に本発明の第１実施形態について添付図面を参照して説明する。
本発明のマルチプロセッサシステムの詳細な構造を図２に示す。
本発明のマルチプロセッサシステムは、図２に示されるとおり、複数のプロセッサグループ１０と、主記憶装置２０とを備える。複数のプロセッサグループ１０の各々は、少なくとも１つのプロセッサ１１を備える。ここで、同一プロセッサグループ内のプロセッサはキャッシュメモリを共有するものとする。プロセッサ１１は、配分表登録部１１１、実行可能プロセス登録部１１２、プロセス実行部１１３を備える。主記憶装置２０は、ワークロード表２１、複数の配分表２２、複数の実行可能キュー２３を備える。
【００２６】
配分表登録部１１１は、ワークロード表２１を基にして、各プロセッサグループにワークロードの配分比率を割り当てる、つまり、配分表を作成するプログラムである。
【００２７】
実行可能プロセス登録部１１２は、実行可能となったプロセスを実行可能キュー２３に登録するプログラムである。この時、配分表に登録された値を基にして、どの実行可能キューに登録するか決定する。
【００２８】
プロセス実行部１１３は、実行可能キュー２３からプロセスを１つ取り出し、プロセスの実行を開始するプログラムであり、一般的なオペレーティングシステムではディスパッチャ等と呼ばれるものである。
【００２９】
ワークロード表２１は、システム管理者が決定した各ワークロードへのＣＰＵ資源の割り当てルールを格納するテーブルであり、システム起動時等の適当なタイミングで初期化される。
【００３０】
ワークロード表２１の詳細な構造を図３に示す。
ワークロード表２１は、図３に示されるとおり、ワークロード毎に、配分比率２１１とプロセッサグループ固定フラグ２１２とを持つ。配分比率２１１には、ワークロードに割り当てられるべきＣＰＵ資源の全ＣＰＵ資源に対する割合を示す。プロセッサグループ固定フラグ２１２は、そのワークロードに属するプロセスを実行するプロセッサグループが固定されるべきか否かを示す。
【００３１】
ここで、ワークロードは複数のプロセスから構成される一連の処理であるとする。プロセスは処理の実行単位である。あるワークロードは、そのワークロードに属するプロセスがお互いに協調して動作し、共通のメモリ領域を頻繁にアクセスする。このようなワークロードでは、キャッシュヒット率向上のため、プロセッサグループ固定フラグ２１２をＯＮ（有効）にすべきである。また、別のワークロードでは、そのワークロードに属するプロセスがほぼ独立した処理となっている。このようなワークロードはプロセッサグループ固定フラグ２１２をＯＦＦ（無効）にする。
【００３２】
処理の簡便のため、ワークロード毎のレコードは、プロセッサグループ固定フラグがＯＮであるものからＯＦＦであるものの順にあらかじめソートされているものとする。
【００３３】
配分表２２、及び、実行可能キュー２３は、プロセッサグループ１０に対応して存在する。すなわち、プロセッサグループ１０がｎグループ存在する時、配分表２２、及び、実行可能キュー２３も、それぞれｎ個ずつ存在する。
【００３４】
配分表２２の詳細な構造を図４に示す。
配分表２２は、図４に示されるとおり、ワークロード毎に、プロセッサグループ内配分比率２２１と実行可能プロセス数２２２と優先度２２３とを持つ。プロセッサグループ内配分比率２２１は、対応するプロセッサグループ１０が持つＣＰＵ資源のうち、そのワークロードに割り当てられるべきＣＰＵ資源の割合を示す。実行可能プロセス数２２２は、実行可能キューに登録されたプロセスの数を示す。優先度２２３は、プロセスが実行されるに従い、下げられる値であり、優先度が大きなワークロードに属するプロセスから順に実行される。
【００３５】
実行可能キュー２３は、実行可能状態となったプロセスの待ち行列であり、プロセッサグループ１０ごとに１つ存在する。各実行可能キューのプロセスは、ワークロード毎に整理され、優先度の大きい順に並べるものとする。
【００３６】
システム起動時等のワークロード管理を有効化する時、配分表登録部１１１が呼び出される。この時の配分表登録部１１１の処理の流れを、図５を用いて説明する。
（１）ステップＳ１０１
まず、ワークロード表の先頭からワークロードを一つ選択する。
（２）ステップＳ１０２
プロセッサグループ内配分比率を０で初期化する。
（３）ステップＳ１０３
次に、各プロセッサグループ（配分表）毎にプロセッサグループ内配分比率の合計値ｙを求め、合計値の最も小さなプロセッサグループを選択する。
（４）ステップＳ１０４
ステップＳ１０１で選択したワークロードについて、その配分比率をＳ１０３で選択したプロセッサグループに割り当てる。つまり、以下のような計算を行う。
プロセッサグループ内配分比率  ＝  ｍｉｎ（プロセッサグループ数  ×  配分比率  ，  ｙ）
配分比率  ＝  配分比率  −  プロセッサグループ内配分比率
（５）ステップＳ１０５
次に、配分比率の値を確認する。ゼロであったらステップＳ１０６へ進む。ゼロより大きな値であったらステップＳ１０３へ戻る。
（６）ステップＳ１０６
ワークロード表の終端に達したらステップＳ１０７へ進む。未処理のワークロードが残っていたらステップＳ１０１へ戻る。
（７）ステップＳ１０７
プロセッサグループ内配分比率を応じて、各ワークロードの優先度を決定する。
【００３７】
具体例として、プロセッサグループが２つのシステムでシステム管理者が以下のような方針を定めた場合を考える。
ワークロードａ（ＷＬ−ａ）  ：  ４０％  、  プロセッサグループ固定
ワークロードｂ（ＷＬ−ｂ）  ：  ３０％
ワークロードｃ（ＷＬ−ｃ）  ：  ３０％
この場合の最終的なプロセッサグループ内配分比率を図６−（ａ）に示す。
【００３８】
別の具体例として、プロセッサグループが２つのシステムでシステム管理者が以下のような方針を定めた場合を考える。
ワークロードａ（ＷＬ−ａ）  ：  ４０％
ワークロードｂ（ＷＬ−ｂ）  ：  ３０％  、  プロセッサグループ固定
ワークロードｃ（ＷＬ−ｃ）  ：  ３０％  、  プロセッサグループ固定
この場合の最終的なプロセッサグループ内配分比率を図６−（ｂ）に示す。
【００３９】
実行可能なプロセスが新たに現れた時、実行可能プロセス登録部１１２が呼び出される。この時の実行可能プロセス登録部１１２の処理の流れを、図７を用いて説明する。
（１）ステップＳ２０１
まず、全ての実行可能キューについて、１プロセスあたりのプロセスグループ内配分比率ｚを計算する。
ｚ  ＝  プロセスグループ内配分比率  ÷  （実行可能プロセス数  ＋  １）
（２）ステップＳ２０２
次に、ｚの値が最も大きい実行可能キューに、前記実行可能プロセスを登録する。
（３）ステップＳ２０３
実行可能プロセス数に１を加算する。
実行可能プロセス数  ＝  実行可能プロセス数  ＋  １
（４）ステップＳ２０４
実行可能キューに「優先度＞０」を満たすプロセスが存在しない場合、ステップＳ２０５へ進む。存在する場合、処理を終了する。
（５）ステップＳ２０５
プロセッサグループ内配分比率を基に各ワークロードの優先度を再設定する。
【００４０】
プロセッサ１１で実行中のプロセスが実行を中断した場合や、一定間隔毎にプロセス実行部１１３が呼び出される。この時のプロセス実行部１１３の処理の流れを、図８を用いて説明する。
（１）ステップＳ３０１
まず、実行可能キューにプロセスが登録されているか確認する。プロセスが存在する場合、ステップＳ３０２へ進む。存在しない場合、終了する。
（２）ステップＳ３０２
次に、優先度が最も大きなワークロードのプロセスを、実行可能キューから一つ取り出す。
（３）ステップＳ３０３
実行可能プロセス数を１減算する。
実行可能プロセス数  ＝  実行可能プロセス数  −  １
（４）ステップＳ３０４
優先度を減らす。
（５）ステップＳ３０５
取り出したプロセスの実行を開始する。
【００４１】
本発明の利用が考えられる分野として、複数のプロセッサグループを持つマルチプロセッサシステム、あるいは、複数のマルチコアプロセッサを持つシステムで、ワークロード毎に資源の割り当てを行うワークロード管理機能といった用途に適用できる。
【図面の簡単な説明】
【００４２】
【図１】図１は、従来のマルチプロセッサシステムの構成を示すブロック図である。
【図２】図２は、本発明のマルチプロセッサシステムの構成を示すブロック図である。
【図３】図３は、ワークロード表の詳細な構造を示す図である。
【図４】図４は、配分表の詳細な構造を示す図である。
【図５】図５は、配分表登録部処理の流れを示すフローチャートである。
【図６】図６は、プロセッサグループ内配分比率を示す図である。
【図７】図７は、実行可能プロセス登録部の処理の流れを示すフローチャートである。
【図８】図８は、プロセス実行部の処理の流れを示すフローチャートである。
【符号の説明】
【００４３】
１０…  プロセッサグループ
１１…  プロセッサ
１１１…  配分表登録部
１１２…  実行可能プロセス登録部
１１３…  プロセス実行部
２０…  主記憶装置
２１…  ワークロード表
２１１…  配分比率
２１２…  プロセッサグループ固定フラグ
２２…  配分表
２２１…  プロセッサグループ内配分比率
２２２…  実行可能プロセス数
２２３…  優先度
２３…  実行可能キュー
１００…  プロセッサグループ
１０１…  プロセッサ
１０２…  プロセッサ
２００…  プロセッサグループ
２０１…  プロセッサ
２０２…  プロセッサ
３００…  キャッシュメモリ
４００…  キャッシュメモリ
５００…  システムバス
６００…  メモリ（主記憶装置）
７００…  チップセット
【図１】
2007316710.tif 000003
【図２】
2007316710.tif 000004
【図３】
2007316710.tif 000005
【図４】
2007316710.tif 000006
【図５】
2007316710.tif 000007
【図６】
2007316710.tif 000008
【図７】
2007316710.tif 000009
【図８】
2007316710.tif 000010