JP4348639B2 - マルチプロセッサシステム、ワークロード管理方法 - Google Patents
マルチプロセッサシステム、ワークロード管理方法 Download PDFInfo
- Publication number
- JP4348639B2 JP4348639B2 JP2006142598A JP2006142598A JP4348639B2 JP 4348639 B2 JP4348639 B2 JP 4348639B2 JP 2006142598 A JP2006142598 A JP 2006142598A JP 2006142598 A JP2006142598 A JP 2006142598A JP 4348639 B2 JP4348639 B2 JP 4348639B2
- Authority
- JP
- Japan
- Prior art keywords
- workload
- executable
- processor
- queue
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
Description
図1で示されるシステムは、プロセッサグループ100に属するプロセッサ101とプロセッサ102、及び、プロセッサグループ200に属するプロセッサ201とプロセッサ202、合計4つのプロセッサを持つ。プロセッサ101とプロセッサ102はキャッシュメモリ300を共有し、プロセッサ201とプロセッサ202はキャッシュメモリ400を共有している。ここでは、便宜的に、キャッシュを共有するプロセッサ同士をまとめてプロセッサグループと呼ぶ。図1のプロセッサグループ100とプロセッサグループ200との間の通信はシステムバス500を介して行われる。また、メモリ(主記憶装置)600を搭載したチップセット700が、システムバス500に接続されている。このような構成のシステムでは、共通のメモリ領域を頻繁にアクセスする複数のプロセスを異なるプロセッサグループで動作させると、キャッシュヒット率が低く、スループットが低下する。一般的に、同一のワークロードに属するプロセス同士はお互いに協調して動作する場合も多く、各プロセッサグループに均等にプロセスを分散させてしまうと、スループットが低下する。また、プロセスを実行するプロセッサを、プロセッサグループを跨いで変更した場合にも、キャッシュミスヒットのペナルティが生じる。このため、ワークロードに属するプロセスを各プロセッサに均等に分散させるために、頻繁にプロセッサグループを変更すると、スループットが低下する。
この従来技術は、プロセッサ毎にキャッシュメモリを備える複数のプロセッサからなるマルチプロセッサシステムにおいて、プロセス毎に特定のプロセッサで実行させるという制御を行うのではなく、繁忙ロック対象資源利用処理を特定のプロセッサだけで実行するように制御することを特徴とする。
この従来技術は、自己負荷均衡をとり得るマルチ・プロセッサ・システムに関する。前記システムは複数のプロセッサ実行キューを備えており、各々の実行キューは処理すべきスレッドを保持するためのものである。このマルチ・プロセッサ・システムは、コード・データを記憶するための少なくとも1つのストレージ(記憶)・システムと、作成された各々のスレッドに優先順位を割り当てて当該作成されたスレッドを実行キューに配置するようにコード・データを処理する少なくとも一つのプロセッサとを有する。当該割当てられた優先順位は当該スレッドをあるバンド(群)に分類し、当該システムが負荷不均衡かどうかを判断し、もしある実行キューのあるバンドへ別の実行キューのそれと同じバンドにあるのよりも多くのスレッドが分類されているのであれば当該システムは負荷不均衡とする。もし当該システムが負荷不均衡であるならば、当該バンドに属する数の多いスレッドを持った方の実行キューから当該バンドに属する数の少ないスレッドを持った方の実行キューへとスレッドを移動することにより、当該システムの負荷均衡をとる。
このプロセススケジューリング方式は、複数のプロセッサがバスを介して結合されたマルチプロセッサシステムにおいて、バスのトラフィック量を監視する手段と、プロセッサにバスのトラフィック及びプロセスのスケジューリングに関する情報を通知する手段と、バスのトラフィック量があるしきい値を越えている場合にプロセッサ間でのプロセスの移動を抑止するようなプロセスのスケジューリングを行う手段と、バスのトラフィック量があるしきい値を下回った場合に任意のプロセッサ間でのプロセスの移動を許すようなプロセスのスケジューリングを行う手段とを備えたことを特徴とする。
このジョブ起動システムは、並列計算機システムを構成するプロセッサのそれぞれが、ジョブの起動条件を監視して起動可能ジョブを選択する起動可能ジョブ監視部と、この起動可能ジョブの実行に関する情報を保持するためのテーブルと、ジョブ実行環境にあると自ら判断した上で当該情報に基づいて起動ジョブを選択する動作環境監視部と、この起動ジョブを実行するジョブ起動機構と、を有することを特徴とする。
このディスパッチング方式は、それぞれが複数のプロセッサとキャッシュメモリとを含む複数のプロセッサグループから構成されるマルチプロセッサシステムにおいて、前記プロセッサグループ内のいずれかのプロセッサが、自プロセッサが属するプロセッサグループのキャッシュメモリのヒット率が低下した場合に自プロセッサが属するプロセッサグループで実行されていたジョブをキャッシュメモリのヒット率が高い他のプロセッサグループへ移動するジョブ移動手段を備えたことを特徴とする。
(a4)前記選択したワークロードの配分比率(211)を、前記選択したプロセッサグループ(10)に割り当てるステップと、(a5)前記配分比率(211)の値が0か否か確認するステップと、
(a6)前記ワークロード表(21)の終端に達したら前記プロセッサグループ内配分比率(221)を応じて、各ワークロードの優先度(223)を決定するステップと、(a7)前記ワークロード表(21)に未処理のワークロードが残っていたら前記ワークロード表(21)から次のワークロードを選択するステップとを具備する。
プロセッサグループ内配分比率 = min(プロセッサグループ数 × 配分比率 , 合計値)
配分比率 = 配分比率 − プロセッサグループ内配分比率
という計算を行うステップを具備する。
1プロセスあたりのプロセスグループ内配分比率 = プロセスグループ内配分比率 ÷ (実行可能プロセス数 + 1)
という計算を行うステップを具備する。
本発明のマルチプロセッサシステムの詳細な構造を図2に示す。
本発明のマルチプロセッサシステムは、図2に示されるとおり、複数のプロセッサグループ10と、主記憶装置20とを備える。複数のプロセッサグループ10の各々は、少なくとも1つのプロセッサ11を備える。ここで、同一プロセッサグループ内のプロセッサはキャッシュメモリを共有するものとする。プロセッサ11は、配分表登録部111、実行可能プロセス登録部112、プロセス実行部113を備える。主記憶装置20は、ワークロード表21、複数の配分表22、複数の実行可能キュー23を備える。
ワークロード表21は、図3に示されるとおり、ワークロード毎に、配分比率211とプロセッサグループ固定フラグ212とを持つ。配分比率211には、ワークロードに割り当てられるべきCPU資源の全CPU資源に対する割合を示す。プロセッサグループ固定フラグ212は、そのワークロードに属するプロセスを実行するプロセッサグループが固定されるべきか否かを示す。
配分表22は、図4に示されるとおり、ワークロード毎に、プロセッサグループ内配分比率221と実行可能プロセス数222と優先度223とを持つ。プロセッサグループ内配分比率221は、対応するプロセッサグループ10が持つCPU資源のうち、そのワークロードに割り当てられるべきCPU資源の割合を示す。実行可能プロセス数222は、実行可能キューに登録されたプロセスの数を示す。優先度223は、プロセスが実行されるに従い、下げられる値であり、優先度が大きなワークロードに属するプロセスから順に実行される。
(1)ステップS101
まず、ワークロード表の先頭からワークロードを一つ選択する。
(2)ステップS102
プロセッサグループ内配分比率を0で初期化する。
(3)ステップS103
次に、各プロセッサグループ(配分表)毎にプロセッサグループ内配分比率の合計値yを求め、合計値の最も小さなプロセッサグループを選択する。
(4)ステップS104
ステップS101で選択したワークロードについて、その配分比率をS103で選択したプロセッサグループに割り当てる。つまり、以下のような計算を行う。
プロセッサグループ内配分比率 = min(プロセッサグループ数 × 配分比率 , y)
配分比率 = 配分比率 − プロセッサグループ内配分比率
(5)ステップS105
次に、配分比率の値を確認する。ゼロであったらステップS106へ進む。ゼロより大きな値であったらステップS103へ戻る。
(6)ステップS106
ワークロード表の終端に達したらステップS107へ進む。未処理のワークロードが残っていたらステップS101へ戻る。
(7)ステップS107
プロセッサグループ内配分比率を応じて、各ワークロードの優先度を決定する。
ワークロードa(WL−a) : 40% 、 プロセッサグループ固定
ワークロードb(WL−b) : 30%
ワークロードc(WL−c) : 30%
この場合の最終的なプロセッサグループ内配分比率を図6−(a)に示す。
ワークロードa(WL−a) : 40%
ワークロードb(WL−b) : 30% 、 プロセッサグループ固定
ワークロードc(WL−c) : 30% 、 プロセッサグループ固定
この場合の最終的なプロセッサグループ内配分比率を図6−(b)に示す。
(1)ステップS201
まず、全ての実行可能キューについて、1プロセスあたりのプロセスグループ内配分比率zを計算する。
z = プロセスグループ内配分比率 ÷ (実行可能プロセス数 + 1)
(2)ステップS202
次に、zの値が最も大きい実行可能キューに、前記実行可能プロセスを登録する。
(3)ステップS203
実行可能プロセス数に1を加算する。
実行可能プロセス数 = 実行可能プロセス数 + 1
(4)ステップS204
実行可能キューに「優先度>0」を満たすプロセスが存在しない場合、ステップS205へ進む。存在する場合、処理を終了する。
(5)ステップS205
プロセッサグループ内配分比率を基に各ワークロードの優先度を再設定する。
(1)ステップS301
まず、実行可能キューにプロセスが登録されているか確認する。プロセスが存在する場合、ステップS302へ進む。存在しない場合、終了する。
(2)ステップS302
次に、優先度が最も大きなワークロードのプロセスを、実行可能キューから一つ取り出す。
(3)ステップS303
実行可能プロセス数を1減算する。
実行可能プロセス数 = 実行可能プロセス数 − 1
(4)ステップS304
優先度を減らす。
(5)ステップS305
取り出したプロセスの実行を開始する。
11… プロセッサ
111… 配分表登録部
112… 実行可能プロセス登録部
113… プロセス実行部
20… 主記憶装置
21… ワークロード表
211… 配分比率
212… プロセッサグループ固定フラグ
22… 配分表
221… プロセッサグループ内配分比率
222… 実行可能プロセス数
223… 優先度
23… 実行可能キュー
100… プロセッサグループ
101… プロセッサ
102… プロセッサ
200… プロセッサグループ
201… プロセッサ
202… プロセッサ
300… キャッシュメモリ
400… キャッシュメモリ
500… システムバス
600… メモリ(主記憶装置)
700… チップセット
Claims (11)
- ワークロードへのCPU資源の割り当てルールを格納するテーブルであるワークロード表と、
前記ワークロード表を基にして、少なくとも1つのプロセッサを含む複数のプロセッサグループの各々にワークロードの配分比率を割り当て、配分表を作成し、ワークロード管理を有効化する時、前記ワークロード表からワークロードを選択し、前記配分表のプロセッサグループ内配分比率を0で初期化し、プロセッサグループ毎に前記プロセッサグループ内配分比率の合計値を求め、前記合計値の最も小さなプロセッサグループを選択し、前記選択されたワークロードの配分比率を前記選択されたプロセッサグループに割り当て、前記プロセッサグループ内配分比率に応じて、各ワークロードの優先度を決定する配分表登録部と、
前記配分表に登録された値を基にして、登録先となる実行可能キューを決定し、実行可能となったプロセスを実行可能プロセスとして前記実行可能キューに登録する実行可能プロセス登録部と、
前記実行可能キューからプロセスを取り出し、前記プロセスの実行を開始するプロセス実行部と
を具備する
マルチプロセッサシステム。 - 請求項1に記載のマルチプロセッサシステムであって、
前記ワークロード表は、
前記ワークロードに割り当てられるべきCPU資源の全CPU資源に対する割合を示す配分比率と、
前記ワークロードに属するプロセスの各々が互いに独立して動作する場合、OFF(無効)の状態にし、前記ワークロードに属するプロセスの各々が互いに協調して動作し、共通のメモリ領域にアクセスする場合、ON(有効)の状態にして、前記ワークロードに属するプロセスを実行するプロセッサグループを固定するためのプロセッサグループ固定フラグと
を有する
マルチプロセッサシステム。 - 請求項1又は2に記載のマルチプロセッサシステムであって、
前記配分表は、
前記プロセッサグループが持つCPU資源のうち前記ワークロードに割り当てられるべきCPU資源の割合を示すプロセッサグループ内配分比率と、
前記実行可能キューに登録された実行可能プロセスの数を示す実行可能プロセス数と、
前記プロセスが実行される順を示し、前記プロセスの実行に従い下げられる値である優先度と
を具備する
マルチプロセッサシステム。 - 請求項1乃至3のいずれか一項に記載のマルチプロセッサシステムであって、
前記実行可能プロセス登録部は、実行可能なプロセスが新たに現れた時、前記実行可能キューについて、1プロセスあたりのプロセスグループ内配分比率を計算し、前記実行可能キューのうち前記1プロセスあたりのプロセスグループ内配分比率の値が最も大きい実行可能キューに、前記新たなプロセスを登録し、前記実行可能プロセス数に1を加算し、前記実行可能キューに「優先度>0」を満たすプロセスが存在しない場合、前記プロセッサグループ内配分比率を基にワークロードの優先度を再設定し、前記実行可能キューに「優先度>0」を満たすプロセスが存在する場合、処理を終了する
マルチプロセッサシステム。 - 請求項1乃至4のいずれか一項に記載のマルチプロセッサシステムであって、
前記プロセス実行部は、プロセッサで実行中のプロセスが実行を中断した場合、又は、一定間隔毎に、前記実行可能キューにプロセスが登録されているか確認し、前記実行可能キューにプロセスが存在しない場合、処理を終了し、前記実行可能キューにプロセスが存在する場合、前記優先度が最も大きなワークロードのプロセスを、前記実行可能キューから一つ取り出し、前記実行可能プロセス数から1を減算し、前記優先度を減らし、前記取り出したプロセスの実行を開始する
マルチプロセッサシステム。 - ワークロードへのCPU資源の割り当てルールを格納したテーブルであるワークロード表を基にして、少なくとも1つのプロセッサを含む複数のプロセッサグループの各々にワークロードの配分比率を割り当て、配分表を作成するステップと、
ワークロード管理を有効化する時、前記ワークロード表からワークロードを選択するステップと、
前記配分表のプロセッサグループ内配分比率を0で初期化するステップと、
プロセッサグループ毎に前記プロセッサグループ内配分比率の合計値を求め、前記合計値の最も小さなプロセッサグループを選択するステップと、
前記選択されたワークロードの配分比率を、前記選択されたプロセッサグループに割り当てるステップと、
前記配分比率の値が0か否か確認するステップと、
前記ワークロード表の終端に達したら前記プロセッサグループ内配分比率を応じて、各ワークロードの優先度を決定するステップと、
前記ワークロード表に未処理のワークロードが残っていたら前記ワークロード表から次のワークロードを選択するステップと、
前記配分表に登録された値を基にして、登録先となる実行可能キューを決定し、実行可能となったプロセスを実行可能プロセスとして前記実行可能キューに登録するステップと、
前記実行可能キューからプロセスを取り出し、前記プロセスの実行を開始するステップと
を含む
ワークロード管理方法。 - 請求項6に記載のワークロード管理方法であって、
前記選択されたワークロードの配分比率を、前記選択されたプロセッサグループに割り当てる際に、
プロセッサグループ内配分比率 = min(プロセッサグループ数 × 配分比率 , 合計値)
配分比率 = 配分比率 − プロセッサグループ内配分比率
という計算を行うステップ
を更に含む
ワークロード管理方法。 - 請求項6又は7に記載のワークロード管理方法であって、
実行可能なプロセスが新たに現れた時、前記実行可能キューについて、1プロセスあたりのプロセスグループ内配分比率を計算するステップと、
前記実行可能キューのうち前記1プロセスあたりのプロセスグループ内配分比率の値が最も大きい実行可能キューに、前記新たなプロセスを登録するステップと、
前記実行可能プロセス数に1を加算するステップと、
前記実行可能キューに「優先度>0」を満たすプロセスが存在しない場合、前記プロセッサグループ内配分比率を基にワークロードの優先度を再設定するステップと、
前記実行可能キューに「優先度>0」を満たすプロセスが存在する場合、処理を終了するステップと
を更に含む
ワークロード管理方法。 - 請求項6乃至8のいずれか一項に記載のワークロード管理方法であって、
前記1プロセスあたりのプロセスグループ内配分比率を計算する際に、
1プロセスあたりのプロセスグループ内配分比率 = プロセスグループ内配分比率 ÷ (実行可能プロセス数 + 1)
という計算を行うステップ
を更に含む
ワークロード管理方法。 - 請求項6乃至9のいずれか一項に記載のワークロード管理方法であって、
プロセッサで実行中のプロセスが実行を中断した場合、又は、一定間隔毎に、前記実行可能キューにプロセスが登録されているか確認するステップと、
前記実行可能キューにプロセスが存在しない場合、処理を終了するステップと、
前記実行可能キューにプロセスが存在する場合、前記優先度が最も大きなワークロードのプロセスを、前記実行可能キューから一つ取り出すステップと、
前記実行可能プロセス数から1を減算するステップと、
前記優先度を減らすステップと、
前記取り出したプロセスの実行を開始するステップと
を更に含む
ワークロード管理方法。 - 請求項6乃至10のいずれか一項に記載のワークロード管理方法を、コンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006142598A JP4348639B2 (ja) | 2006-05-23 | 2006-05-23 | マルチプロセッサシステム、ワークロード管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006142598A JP4348639B2 (ja) | 2006-05-23 | 2006-05-23 | マルチプロセッサシステム、ワークロード管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007316710A JP2007316710A (ja) | 2007-12-06 |
JP4348639B2 true JP4348639B2 (ja) | 2009-10-21 |
Family
ID=38850543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006142598A Expired - Fee Related JP4348639B2 (ja) | 2006-05-23 | 2006-05-23 | マルチプロセッサシステム、ワークロード管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4348639B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4691153B2 (ja) * | 2008-12-10 | 2011-06-01 | 富士通株式会社 | マルチコアプロセッサ,制御方法および情報処理装置 |
JP5322038B2 (ja) | 2009-02-13 | 2013-10-23 | 日本電気株式会社 | 演算資源割当装置、演算資源割当方法、及び、演算資源割当プログラム |
EP2546744B1 (en) | 2010-03-11 | 2017-05-10 | Fujitsu Limited | Software control device, software control method, and software control program |
JP5379765B2 (ja) * | 2010-08-20 | 2013-12-25 | 日本電信電話株式会社 | プログラム実行装置およびプログラム実行方法 |
JP5880542B2 (ja) * | 2011-03-16 | 2016-03-09 | 富士通株式会社 | マルチコアプロセッサシステムおよびスケジューリング方法 |
JP2013149108A (ja) * | 2012-01-19 | 2013-08-01 | Canon Inc | 情報処理装置及びその制御方法、プログラム |
US9483324B2 (en) | 2012-06-26 | 2016-11-01 | Nec Corporation | Program conversion device and method, process switching method, method of determining execution scheme and program storage medium therefor, processor system, and parallel execution scheme |
TWI756974B (zh) | 2020-12-09 | 2022-03-01 | 財團法人工業技術研究院 | 機器學習系統及其資源配置方法 |
-
2006
- 2006-05-23 JP JP2006142598A patent/JP4348639B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007316710A (ja) | 2007-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4348639B2 (ja) | マルチプロセッサシステム、ワークロード管理方法 | |
EP3425502B1 (en) | Task scheduling method and device | |
US8788672B2 (en) | Microprocessor with software control over allocation of shared resources among multiple virtual servers | |
US10896065B2 (en) | Efficient critical thread scheduling for non privileged thread requests | |
JP6294586B2 (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
US7979861B2 (en) | Multi-processor system and program for causing computer to execute controlling method of multi-processor system | |
CN103064746B (zh) | 基于当前credit进行预测调度的处理器资源精确分配方法 | |
US7698529B2 (en) | Method for trading resources between partitions of a data processing system | |
US10778605B1 (en) | System and methods for sharing memory subsystem resources among datacenter applications | |
US7366814B2 (en) | Heterogeneous multiprocessor system and OS configuration method thereof | |
JP2008191949A (ja) | マルチコアシステムおよびマルチコアシステムの負荷分散方法 | |
US20090178045A1 (en) | Scheduling Memory Usage Of A Workload | |
JP2008186136A (ja) | 計算機システム | |
CN113467933B (zh) | 分布式文件系统线程池优化方法、系统、终端及存储介质 | |
WO2016202154A1 (zh) | 一种gpu资源的分配方法及系统 | |
WO2002097622A2 (en) | A resource management method | |
JP2009223842A (ja) | 仮想計算機制御プログラム及び仮想計算機システム | |
KR101330609B1 (ko) | 모바일 멀티코어 가상화 시스템에서 실시간 처리를 보장하기 위한 스케쥴링 방법 | |
US11934890B2 (en) | Opportunistic exclusive affinity for threads in a virtualized computing system | |
US20220291962A1 (en) | Stack memory allocation control based on monitored activities | |
CN112783651B (zh) | 一种云平台vGPU负载均衡调度方法、介质及装置 | |
US8490101B1 (en) | Thread scheduling in chip multithreading processors | |
JP6445876B2 (ja) | リソース割当装置、リソース割当システム、および、リソース割当方法 | |
US8566829B1 (en) | Cooperative multi-level scheduler for virtual engines | |
Wolfinger et al. | EFFICIENT UTILIZATION OF BARE METAL CORES WITH DYNAMIC MONITORING AND CALIBRATION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090402 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090625 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090708 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120731 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4348639 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120731 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130731 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |