JP2016139171A - リソース割当装置、リソース割当システム、および、リソース割当方法 - Google Patents

リソース割当装置、リソース割当システム、および、リソース割当方法 Download PDF

Info

Publication number
JP2016139171A
JP2016139171A JP2015012121A JP2015012121A JP2016139171A JP 2016139171 A JP2016139171 A JP 2016139171A JP 2015012121 A JP2015012121 A JP 2015012121A JP 2015012121 A JP2015012121 A JP 2015012121A JP 2016139171 A JP2016139171 A JP 2016139171A
Authority
JP
Japan
Prior art keywords
unit
allocation
resource
execution
core
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.)
Granted
Application number
JP2015012121A
Other languages
English (en)
Other versions
JP6445876B2 (ja
Inventor
雄大 北野
Yudai Kitano
雄大 北野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015012121A priority Critical patent/JP6445876B2/ja
Publication of JP2016139171A publication Critical patent/JP2016139171A/ja
Application granted granted Critical
Publication of JP6445876B2 publication Critical patent/JP6445876B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】共有リソースにアクセスするプロセスが複数存在するときに、システムの利用効率を高めること。【解決手段】リソース割当装置1は、1つの共有リソースを利用するプロセスについて、同じ共有リソースを利用するプロセスの集合をグループ化し、前記同じ共有リソースにアクセス可能な物理サーバ2内の同じコア上に、グループ化されたプロセスの集合をまとめて割り当てるプロセス割当部13を有する。物理サーバ2の各コアは、自身に割り当てられたグループ化されたプロセスの集合を実行するときに、あるプロセスの終了を待ってから別のプロセスを開始する。【選択図】図1

Description

本発明は、リソース割当装置、リソース割当システム、および、リソース割当方法の技術に関する。
共有データなどの共有リソースにアクセスするプロセスが複数存在するときには、同時アクセスなどによりデータの整合性がとれなくなることもある。そこで、非特許文献1には、排他ロックという同時アクセスの制御手段が記載されている。あるプロセスがあるデータに対して排他ロックをかけると、他のプロセスがそのデータに対してアクセスすることができなくなる。これにより、リソースにアクセスできるプロセスを限定することで、データの整合性を担保することができる。
なお、共有データに排他ロックをかけたプロセスは、その共有データに対する処理を終えると、ロックを解放する。その後、他のプロセスはその共有データにアクセス可能となる。
非特許文献2には、排他ロックを用いる副作用として、特定の条件下でプロセスが共有データのロックを解放しても、他のプロセスが共有データにアクセスできない事象が記載されている。
E. W. DIJKSTRA著、「Solution of a Problem in Concurrent Programming Control」、Communications of the ACM、Volume 8,Number 9、Sept.1965、p.569 北野雄大著、「マルチコア環境における処理遅延に関する一考察」、Proceedings of the 2013 IEICE Society Conference, B-16-3, Sep.2013
なお、共有データを用いてプロセスが処理できるようになるには、共有データにアクセスするための排他ロックに成功した上で、自身のプロセスが動作する計算機資源(CPUなど)に余裕があることが必要である。
一方、排他ロックに成功しても計算機資源に余裕がない場合や、計算機資源に余裕があっても他プロセスが先に排他ロックをしてしまった場合には、プロセスにとって余計な待ち時間が発生してしまう。よって、システム全体では処理能力に余裕があっても、共有リソースにアクセスするプロセスが複数存在するときには、システムの利用効率を充分に高められていなかった。
なお、システムの利用効率が悪いと、ある箇所は資源が遊休しているが、別の箇所では負荷が局所的に集中してしまうことで、システム全体の処理結果が少なくなってしまう。
そこで、本発明は、共有リソースにアクセスするプロセスが複数存在するときに、システムの利用効率を高めることを、主な課題とする。
前記課題を解決するために、本発明は、1つの共有リソースを利用するプログラムの実行単位について、同じ共有リソースを利用する前記実行単位の集合をグループ化し、前記同じ共有リソースにアクセス可能な物理サーバ内の同じ演算手段上に、グループ化された前記実行単位の集合をまとめて割り当てる割当手段を有することを特徴とする。
これにより、グループ化された実行単位の集合は同時に実行されないので、共有リソースにアクセス可能な実行単位が、適切に演算手段の計算機資源を利用することで、システムの利用効率を高めることができる。さらに、共有リソースへの障害発生時にはその影響範囲を同じグループとして容易に特定できる。
本発明は、複数の共有リソースを利用する前記実行単位の入力を受け付け、その共有リソースにアクセスするための、利用する共有リソースごとの呼出先の実行単位と、それらの呼出先の実行単位に対してアクセスの指示を呼び出すための呼出元の実行単位とに分割し、呼出先の実行単位をグループ化の対象とする分割手段を有することを特徴とする。
これにより、複数の共有リソースを利用するような複雑なプログラムでも、システムの利用効率を高めることができる。
本発明は、前記割当手段によって第1の演算手段上に割り当てられた前記実行単位を、第2の演算手段上に移動するとき、前記第1の演算手段上に割り当てられた同じグループに属する前記実行単位の集合をまとめて前記第2の演算手段上に移動する移動手段を有することを特徴とする。
これにより、共有リソースの物理的な移動などのシステム構成が変更されたときや、割当先の演算手段が混雑したときなどでも、システムの利用効率を高めつつ低コストで対応できる。
本発明は、前記割当手段が、割当候補である複数の演算手段について、各演算手段に割り当てられる実行単位の数が均等になるように、割当先の演算手段を選択することを特徴とする。
これにより、容易に各演算手段の負荷分散を実現できる。
本発明は、前記割当手段が、割当候補である複数の演算手段について、各演算手段に割り当てられる実行単位が発生される負荷が均等になるように、割当先の演算手段を選択することを特徴とする。
これにより、高精度に各演算手段の負荷分散を実現できる。
本発明は、前記割当手段が、割当候補である複数の演算手段について、前記同じ共有リソースにアクセス可能な各演算手段のうちのアクセスコストが最小の演算手段を選択することを特徴とする。
これにより、実行単位の実行時のスループットを向上させることができる。
本発明の各演算手段は、自身に割り当てられたグループ化された前記実行単位の集合を実行するときに、ある実行単位の終了を待ってから別の実行単位を開始し、
所定の実行単位の実行時間が所定時間を経過したときには、その所定の実行単位をタイムアウトさせることを特徴とする。
これにより、グループ内での実行単位間の排他制御が行われることで、共有リソースのデータ内容の整合性を保証できる。
本発明によれば、共有リソースにアクセスするプロセスが複数存在するときに、システムの利用効率を高めることができる。
本発明の一実施形態に関するリソース割当システムを示す構成図である。 本発明の一実施形態に関するリソース割当方法を示すフローチャートである。 図3(a)は、グループ化されたリソースの割当処理を示す説明図である。図3(b)は、グループ化されていないリソース割当処理の問題点を示す説明図である。 本発明の一実施形態に関するプロセス分割処理を示す説明図である。 図5(a)は、図3(a)の構成におけるグループ管理テーブルを示す構成図である。図5(b)は、図4の構成におけるグループ管理テーブルを示す構成図である。 図6(a)は、第1の割当例における割当前のグループ管理テーブルを示す構成図である。図6(b)は、第1の割当例における割当後のグループ管理テーブルを示す構成図である。 図7(a)は、第2の割当例における割当前のグループ管理テーブルを示す構成図である。図7(b)は、プロセス重みテーブルを示す構成図である。図7(c)は、第2の割当例における割当後のグループ管理テーブルを示す構成図である。 図8(a)は、第3の割当例における割当前のグループ管理テーブルを示す構成図である。図8(b)は、VM管理テーブルを示す構成図である。図8(c)は、第3の割当例における割当後のグループ管理テーブルを示す構成図である。 図9(a)は、グループ化されたプロセスの移動処理を示す構成図である。図9(b)は、グループ化されていないプロセスの移動処理の問題点を示す構成図である。
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
図1は、リソース割当システムを示す構成図である。
リソース割当システムは、リソースを提供する1台以上の物理サーバ2と、その物理サーバ2に対してプロセス(または、スレッド、タスク、ジョブなどのプログラムの実行単位)を配置することで、配置されたプロセスにリソースを割り当てるリソース割当装置1とがネットワークで接続されて構成される。
リソース割当システムの各装置は、CPU(Central Processing Unit)とメモリとハードディスク(記憶手段)とネットワークインタフェースを有するコンピュータとして構成され、このコンピュータは、CPUが、メモリ上に読み込んだプログラムを実行することにより、各処理部を動作させる。
なお、図1では、1台のリソース割当装置1が2つの物理サーバ2を外からまとめて管理(接続)する構成を例示した。一方、各物理サーバ2ごとに別々のリソース割当装置1を内蔵させ、物理サーバ2とリソース割当装置1とを同一筐体として構成してもよい。なお、同一筐体とする場合、物理サーバ2のVMを管理するホストOSなどに、リソース割当装置1の各手段を搭載すればよい。
各物理サーバ2は、1つ以上のCPUコア(以下、「コア」と略す)と、そのコアが実行する処理で利用されるデータの記憶手段(メモリ、ハードディスクなど)とを有する。なお、1台の物理サーバ2内に複数のコア(マルチコア)が存在してもよい。
さらに、物理サーバ2は、コアなどの計算機資源を管理するVM(Virtual Machine)を構築してもよい。VM内に計算機資源を隠蔽することで、利用者(利用者のプロセス)に対してハードウェアの具体的な構成を意識させずに、計算機資源を使用させる。これにより、プロセス内にハードウェアの具体的な構成を明示する必要がなくなり、プロセスのプログラミング負担を軽減させることができる。
リソース割当装置1は、物理サーバ2の各コアに対して、プロセスを割り当てる。ここで、リソース割当装置1は、VMを介さずに直接コアに対してプロセスを割り当ててもよいし、VMを介して(VMに指示を出して)コアに対してプロセスを割り当ててもよい。
なお、VMに指示を出す場合、「コアC1に、プロセスP1を配置せよ」のようなハードウェアリソースを明示する(隠蔽しない)命令を受け付けるように、VMを機能拡張する必要がある。
リソース割当装置1は、通信部11、プロセス分割部12、プロセス割当部13、プロセス移動部14、グループ管理テーブル15、プロセス重みテーブル16、および、VM管理テーブル17を有する。以下、これらの各構成要素の詳細について、図1を参照しつつ、図2に沿って説明する。
図2は、リソース割当方法を示すフローチャートである。
S11は、プロセス分割部12によるプロセス分割要否の判定処理である。プロセス分割部12は、リソース割当装置1に入力される割当対象の各プロセスについて、プロセスごとに分割が必要か否かを判定する。
まず、1つのプロセスが0または1つの共有リソース(例えば、図1の「データ」で示される共有データ)にアクセス(データリードまたはデータライト)する場合、そのプロセスは、分割が不要である(S11,No)ので処理をS13に進める。
一方、1つのプロセスが2つ以上の共有リソースにアクセスする場合、そのプロセスは、分割が必要である(S11,Yes)ので処理をS12に進める。
S12は、プロセス分割部12によるプロセス分割処理である。プロセス分割部12は、S11で分割が必要とされる1つの分割前プロセスを、1つの呼出元プロセスと複数の呼出先プロセスとに分割する。例えば、分割前プロセスが共有データA,B,Cにそれぞれアクセスする場合、その分割前プロセスは、1つの呼出元プロセスと3つの呼出先プロセス(合計4つのプロセス)へと分割される。
S13は、プロセス割当部13によるプロセスグループ化処理である。プロセス割当部13は、S11の分割が不要な各プロセスと、S12で分割された各プロセスについて、同じ共有リソースにアクセスするプロセス群を1つのグループとしてグループ化する。なお、共有リソースにアクセスしないプロセス群は、グループ化しなくてもよい。そして、グループ管理テーブル15には、S13のグループ化された結果が格納される。
S14は、プロセス割当部13によるプロセス割当処理である。プロセス割当部13は、S13のグループごとにコアを割り当てるように、通信部11を介して各コアに指示する。換言すると、同じグループに属するプロセス群は、同じコアにまとめて割り当てられる。この割当アルゴリズムは様々な手法を適用でき、プロセス重みテーブル16およびVM管理テーブル17は、それらの手法で割当先を決定するために利用される(詳細は、図6〜図8の説明を参照)。
S15は、プロセス移動部14によるプロセス移動要否の判定処理である。プロセス割当部13がすでに割り当てたプロセスが実行されるコア上に、他の優先度の高いプロセスが生起されるなどの理由により、割り当てたプロセスの実行時間が少なくなることもある。その場合、プロセス移動部14は、あるコアに割当済みのプロセスを他のコアで実行するように移動させる(S15,Yes)と判定し、処理をS16に進める。一方、プロセスの移動が不要なら(S15,No)処理を終了する。
S16は、プロセス移動部14によるプロセス移動処理である。S14と同様に、プロセス移動部14は、同じグループに属するプロセス群を、同じコアにまとめて移動するように、通信部11を介して各コアに指示する。
このように、プロセスの初回割当(S14)やプロセスの移動(S16)において、同じ共有データにアクセスするプロセス群が別々のコアで実行されないようにすることで、同じ共有データへのアクセス競合を予防できる。
図3(a)は、S13でグループ化されたリソースの割当処理(S14)を示す説明図である。
コアC1には、共有データD1にアクセスするための、グループG1に属するプロセスP1,P4がまとめて割り当てられている。
コアC2には、共有データD2にアクセスするための、グループG2に属するプロセスP2が割り当てられている。
コアC3には、共有データD3にアクセスするための、グループG3に属するプロセスP3,P5がまとめて割り当てられている。
なお、各コアは、自身にグループとして割り当てられているプロセス群に対して、以下の排他制御を実施してもよい。例えば、グループG1に属するプロセスP1,P4について、プロセスP1,P4の順に実行し、プロセスP1の実行完了を待ってからプロセスP4を開始する(つまり、プロセスP1,P4を同時には実行しない)。排他制御における各プロセスの実行順序は、例えば、キュー(待ち行列)によって管理される。この排他制御自身は、コア上のOSが実行してもよいし、コア上のユーザプロセスが実行してもよい。
さらに、排他制御の例外処理として、プロセスP1の実行開始時刻からの経過時間が所定時間(例えば、10分)を超えても実行終了しない場合、そのプロセスP1をフリーズなどの実行異常状態とみなして、プロセスP1を呼び出した呼出元プロセスに対して異常通知を行ったり、プロセスP1を中止(タイムアウト)して次のプロセスP4を実行させたりしてもよい。これにより、自由度の高い排他制御が可能となる。
図3(b)は、比較例として、グループ化されていないリソース割当処理の問題点を示す説明図である。図3(a)と異なり、共有データD1にアクセスするプロセスP1と、同じ共有データD1にアクセスするプロセスP4とが異なるコアC1,C2に割り当てられている。
この比較例では、プロセスP1が共有データD1に排他ロックをかけることで、プロセスP4に対して共有データD1へのアクセスを禁止させる。その後プロセスP1が共有データD1の排他ロックを解除(アンロック)することで、プロセスP4に対して共有データD1へのアクセスを許可する。
しかし、プロセスP1,P4は、お互いにいつ排他ロックをかけるかなどの調整を行わないので、共有データD1に対する排他ロックやロック待ちが多発し、コアC1,C2などの計算機資源の利用効率が悪い。また、アンロック漏れによるデッドロックが発生した場合、共有データD1をセマフォ管理しているコアC1のOSに問い合わせるなど、原因の究明にコストがかかる。
図4は、プロセス分割部12によるプロセス分割処理(S12)を示す説明図である。
プロセス分割部12は、図3(a)の5つのプロセスP1〜P5のうち、プロセスP2を分割対象(S11,Yes)と判断したとする。そして、プロセスP2は、共有データD1,D3を読み込み、その和を計算して共有データD2へと書き出す処理であるとする。
プロセス分割部12は、図4に示すように、1つのプロセスP2を4つのプロセスP21〜P24へと分割する。
プロセスP24は、他の呼出先プロセスP21〜P23を呼び出す呼出元プロセスである。プロセスP24は、コアC4に割り当てられ、グループには属さない。
プロセスP21は、共有データD1を読み込む呼出先プロセスであり、グループG1に属する。プロセスP24は、プロセスP21とのソケット通信を介して、共有データD1のID値を指定した読み込み命令を通知する。
プロセスP23は、共有データD3を読み込む呼出先プロセスであり、グループG3に属する。プロセスP24は、プロセスP23とのソケット通信を介して、共有データD3のID値を指定した読み込み命令を通知する。
プロセスP22は、共有データD2へ書き出す呼出先プロセスであり、グループG2に属する。プロセスP24は、プロセスP22とのソケット通信を介して、共有データD2のID値を指定した書き込み命令を通知する。この書き込み命令には、プロセスP24による計算結果である共有データD1,D3の和が書き込みデータとして指定される。
ここで、呼出元プロセスP24をグループ外としてコアC4に配置することで、各呼出先プロセスP21〜P23の負荷を軽減できる。
一方、プロセスP22とP24とを統合し(つまり、呼出元プロセスと呼出先プロセスとを1つのプロセスで兼ねる)、グループG2に属するプロセスP22が、共有データD1,D3の和を計算してもよい。これにより、分割された後のプロセスの数を4つから3つに減らすことで、プロセス管理の負担を軽減できる。
なお、各呼出先プロセスP21〜P23をミドルウェアとして事前に物理サーバ2に配備しておき、そのAPI(Application Programming Interface)を開発者に提供してもよい。これにより、アプリケーションの開発者はデータのロック、アンロックを意識しないで呼出元プロセスを作成すればよいので、開発コストが低減される。
図5(a)は、図3(a)の構成におけるグループ管理テーブル15を示す構成図である。グループ管理テーブル15は、グループごとに、そのグループが扱う共有データと、その共有データにアクセスするプロセスのIDと、そのプロセスが配置されるコアのIDとが対応づけられている。
図5(b)は、図4の構成におけるグループ管理テーブル15を示す構成図である。前記したように、図5(a)のプロセスID「P2」が、図5(b)ではグループ内のプロセスID「P21〜P23」と、グループ外のプロセスID「P24」とに分割されている。
以下、プロセス割当処理(S14)によりグループ管理テーブル15を作成する具体例について、第1の割当例(図6参照)、第2の割当例(図7参照)、第3の割当例(図8参照)を順に説明する。
図6(a)は、第1の割当例における割当前のグループ管理テーブル15を示す構成図である。図5(a)と比較すると、まだ各プロセスがどのコアに割り当てられるかが決まっていないので、「コアID」列が存在しない(または空欄である)。
図6(b)は、第1の割当例における割当後のグループ管理テーブル15を示す構成図である。
プロセス割当部13は、グループ管理テーブル15のプロセスID列のプロセス数を計測し、その結果を最右列「プロセス数」へと書き出す。次に、プロセス割当部13は、各コアで実行されるプロセス数が均等になるように、「コアID」列の割り当てを行う。例えば、図6(b)では、以下のように4〜5つの間で均等化されている。
(コアC1の総プロセス数)=2(G1)+2(G4)=4
(コアC2の総プロセス数)=4(G2)
(コアC3の総プロセス数)=3(G3)+2(G5)=5
図7(a)は、第2の割当例における割当前のグループ管理テーブル15を示す構成図である。図7(a)のグループ管理テーブル15は、図6(a)のものと同じデータである。
図7(b)は、プロセス重みテーブル16を示す構成図である。プロセス重みテーブル16は、プロセスごとに、そのプロセスのコアで実行するときの負荷(CPU利用率、メモリ利用率、共有データへのアクセス負荷など)を示す重みを特定するためのテーブルである。例えば、プロセスP1の重みは15で、プロセスP2の重みは5なので、プロセスP1はプロセスP2のほぼ3倍の負荷をかけることがわかる。
なお、重みの決定方法は、例えば以下のいずれかの方法がある。
・負荷の重みは、設計者によって静的に決定される。
・負荷の重みは、プロセスをテストコードによって実行させた結果の「実行ステップ数」を用いる。
・負荷の重みは、所定期間におけるプロセスのCPU利用時間から決定され、動的に更新される。
図7(c)は、第2の割当例における割当後のグループ管理テーブル15を示す構成図である。
プロセス割当部13は、グループ管理テーブル15のプロセスID列の各プロセスについて、プロセス重みテーブル16からその重みを特定し、その和を最右列「重みの和」へと書き出す。例えば、グループG1では、P1の重みが15であり、P6の重みが20であるので、その重みの和は35=15+20である。 次に、プロセス割当部13は、各コアで実行される重みの総和が均等になるように、「コアID」列の割り当てを行う。例えば、図7(b)では、以下のように40〜50の間で均等化されている。
(コアC1の重みの総和)=35(G1)+15(G5)=50
(コアC2の重みの総和)=25(G2)+15(G4)=40
(コアC3の重みの総和)=45(G3)
そして、プロセス割当部13は、例えばグループIDの小さい順に、そのグループに属する各プロセスを、前記均等化して決定した各コアに割り当てていく。
図8(a)は、第3の割当例における割当前のグループ管理テーブル15を示す構成図である。図8(a)のグループ管理テーブル15は、図6(a)のものと同じデータである。
図8(b)は、VM管理テーブル17を示す構成図である。VM管理テーブル17は、各共有データについて、どのVMの管理下に置かれているかを示す第1テーブル17aと、各VMについて、どのコアを収容するかを示す第2テーブル17bとにより構成される。
例えば、共有データD1がVM1の近くに配置されており(第1テーブル17aの1行目)、そのVM1がコアC1を収容する(第2テーブル17bの1行目)ので、共有データD1(を記憶する記憶手段)の配置場所に物理的に最も近いコア(つまり、通信遅延が最小であるなどのアクセスコストが最小のコア)が、コアC1であることがわかる。
図8(c)は、第3の割当例における割当後のグループ管理テーブル15を示す構成図である。
プロセス割当部13は、図8(b)で説明したように、各共有データの配置場所に対して物理的に最も近いコアを、グループ管理テーブル15の「コアID」列へと書き出す。
図9(a)は、グループ化されたプロセスの移動処理(S16)を示す構成図である。図3(a)の状態から、コアC2上のグループG2が削除され、コアC1上に優先プロセスの生起によりグループG1の実行が困難になったとする。
プロセス移動部14は、グループG1単位で、コアC1からコアC2にプロセス群を移動する。つまり、グループG1に属するプロセスP1とP4とが、まとめてコアC2に移動する。これにより、共有データD1にアクセスするプロセスP1とP4との間でのアクセス競合を防止できる。
さらに、プロセス移動部14は、共有データD1の配置が変更されるなどのシステム構成の変更に対して、グループごとにプロセスの移動先のコアを決定する。よって、システム構成の変更に対するインパクトを小さくすることができる。
図9(b)は、比較例として、グループ化されていないプロセスの移動処理の問題点を示す構成図である。図9(a)との違いは、コアC1の混雑に伴い、そのコアC1上のプロセスP1はコアC2に退避するが、プロセスP4は退避しない点である。
これにより、図3(b)と同じ状況(アクセス競合)が発生してしまう。さらに、共有データD1の配置の変更を行うときには、その共有データD1にアクセスするプロセスP1,P4が各コアに点在してしまっているので、それらを検索するなどのインパクトが大きくなってしまう。
以上説明した本実施形態のリソース割当システムは、実際のコア性能やメモリ量がVMによって隠蔽されることにより、システムの利用効率が低下してしまうような仮想化環境においては、計算機資源の効率的な利用という観点でとくに有効である。
一般的に、仮想化環境においては様々な共有データにアクセスするプロセスが様々なVMの様々なコアの上で並行に動作することになり、プロセス間の並列度は高まる。そのため、共有データに対する排他ロックやロック待ちが多発し、計算機資源の利用効率が悪い状態であった。
そこで、本実施形態のリソース割当装置1は、同じ共有データにアクセスするプロセスをグループ化し、そのグループ単位で同一コアに割り当てたり(S14)、割り当てたグループを別コアへ移動したり(S16)することによって、共有データに対するプロセス間のアクセス競合を回避させる。
これにより、同一コアに割り当てられたプロセス間での共有データへのアクセスと、コア資源の利用とを併せて実行しやすくなり、計算機資源の利用効率を高めることができる。さらに、アンロック漏れやデッドロックなど排他制御における不具合が生じた際に、不具合が発生した共有データにアクセスするプロセス群を特定するなどの障害解析が容易になる。
また、プロセス割当部13は、グループ化したプロセス群を同一コアに配置するときに、図3(a)で説明したように、グループ内にキュー(待ち行列)を形成される。データへの同時アクセスがなくなり、データに対するロック処理が不要となる。そのため、データに対するロック待ちも発生しないことから、ハードウェアリソースの効率利用が可能となる。
さらに、プロセス割当部13は、第1の割当例(図6参照)、第2の割当例(図7参照)、第3の割当例(図8参照)で説明したように、グループ間の負荷を分散(均一化)させるように、効率的なコアへの配置を行う。これにより、システム全体での負荷の偏りが低減されるので、システムの過剰な性能拡張を回避できる。
1 リソース割当装置
2 物理サーバ
11 通信部
12 プロセス分割部(分割手段)
13 プロセス割当部(割当手段)
14 プロセス移動部(移動手段)
15 グループ管理テーブル
16 プロセス重みテーブル
17 VM管理テーブル

Claims (8)

  1. 1つの共有リソースを利用するプログラムの実行単位について、同じ共有リソースを利用する前記実行単位の集合をグループ化し、前記同じ共有リソースにアクセス可能な物理サーバ内の同じ演算手段上に、グループ化された前記実行単位の集合をまとめて割り当てる割当手段を有することを特徴とする
    リソース割当装置。
  2. 複数の共有リソースを利用する前記実行単位の入力を受け付け、その共有リソースにアクセスするための、利用する共有リソースごとの呼出先の実行単位と、それらの呼出先の実行単位に対してアクセスの指示を呼び出すための呼出元の実行単位とに分割し、呼出先の実行単位をグループ化の対象とする分割手段を有することを特徴とする
    請求項1に記載のリソース割当装置。
  3. 前記割当手段によって第1の演算手段上に割り当てられた前記実行単位を、第2の演算手段上に移動するとき、前記第1の演算手段上に割り当てられた同じグループに属する前記実行単位の集合をまとめて前記第2の演算手段上に移動する移動手段を有することを特徴とする
    請求項1に記載のリソース割当装置。
  4. 前記割当手段は、割当候補である複数の演算手段について、各演算手段に割り当てられる実行単位の数が均等になるように、割当先の演算手段を選択することを特徴とする
    請求項1に記載のリソース割当装置。
  5. 前記割当手段は、割当候補である複数の演算手段について、各演算手段に割り当てられる実行単位が発生される負荷が均等になるように、割当先の演算手段を選択することを特徴とする
    請求項1に記載のリソース割当装置。
  6. 前記割当手段は、割当候補である複数の演算手段について、前記同じ共有リソースにアクセス可能な各演算手段のうちのアクセスコストが最小の演算手段を選択することを特徴とする
    請求項1に記載のリソース割当装置。
  7. 請求項1ないし請求項6のいずれか1項に記載のリソース割当装置と、前記物理サーバとを含めて構成され、
    前記物理サーバの各演算手段は、自身に割り当てられたグループ化された前記実行単位の集合を実行するときに、ある実行単位の終了を待ってから別の実行単位を開始し、
    所定の実行単位の実行時間が所定時間を経過したときには、その所定の実行単位をタイムアウトさせることを特徴とする
    リソース割当システム。
  8. リソース割当装置の割当手段は、1つの共有リソースを利用するプログラムの実行単位について、同じ共有リソースを利用する前記実行単位の集合をグループ化し、前記同じ共有リソースにアクセス可能な物理サーバ内の同じ演算手段上に、グループ化された前記実行単位の集合をまとめて割り当てることを特徴とする
    リソース割当方法。
JP2015012121A 2015-01-26 2015-01-26 リソース割当装置、リソース割当システム、および、リソース割当方法 Active JP6445876B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015012121A JP6445876B2 (ja) 2015-01-26 2015-01-26 リソース割当装置、リソース割当システム、および、リソース割当方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015012121A JP6445876B2 (ja) 2015-01-26 2015-01-26 リソース割当装置、リソース割当システム、および、リソース割当方法

Publications (2)

Publication Number Publication Date
JP2016139171A true JP2016139171A (ja) 2016-08-04
JP6445876B2 JP6445876B2 (ja) 2018-12-26

Family

ID=56559240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015012121A Active JP6445876B2 (ja) 2015-01-26 2015-01-26 リソース割当装置、リソース割当システム、および、リソース割当方法

Country Status (1)

Country Link
JP (1) JP6445876B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019106120A (ja) * 2017-12-14 2019-06-27 日本電気株式会社 プロセススケジューリング装置、プロセス実行装置およびプロセススケジューリング方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03113563A (ja) * 1989-09-28 1991-05-14 Hitachi Ltd マルチプロセッサスケジューリング方法
JPH04360265A (ja) * 1991-06-06 1992-12-14 Fujitsu Ltd データ分散を扱う並列トランザクション処理システム
JP2006277637A (ja) * 2005-03-30 2006-10-12 Nec Corp 温度監視によってジョブを割り当てるマルチプロセッサ計算機システム、及びコンピュータプログラム
JP2011134162A (ja) * 2009-12-25 2011-07-07 Internatl Business Mach Corp <Ibm> タスクの切り換えを制御するシステムおよび方法
WO2013014767A1 (ja) * 2011-07-27 2013-01-31 富士通株式会社 データ処理システム、およびスケジューリング方法
JP2014081765A (ja) * 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> 負荷分散装置、負荷分散方法および負荷分散プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03113563A (ja) * 1989-09-28 1991-05-14 Hitachi Ltd マルチプロセッサスケジューリング方法
JPH04360265A (ja) * 1991-06-06 1992-12-14 Fujitsu Ltd データ分散を扱う並列トランザクション処理システム
JP2006277637A (ja) * 2005-03-30 2006-10-12 Nec Corp 温度監視によってジョブを割り当てるマルチプロセッサ計算機システム、及びコンピュータプログラム
JP2011134162A (ja) * 2009-12-25 2011-07-07 Internatl Business Mach Corp <Ibm> タスクの切り換えを制御するシステムおよび方法
WO2013014767A1 (ja) * 2011-07-27 2013-01-31 富士通株式会社 データ処理システム、およびスケジューリング方法
JP2014081765A (ja) * 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> 負荷分散装置、負荷分散方法および負荷分散プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANDREY MIRKIN ET AL.: "Containers checkpointing and live migration", PROCEEDINGS OF THELINUX SYMPOSIUM, vol. Volume Two, JPN6018013493, 23 July 2008 (2008-07-23), US, pages 85 - 90, ISSN: 0003778143 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019106120A (ja) * 2017-12-14 2019-06-27 日本電気株式会社 プロセススケジューリング装置、プロセス実行装置およびプロセススケジューリング方法
JP7009971B2 (ja) 2017-12-14 2022-01-26 日本電気株式会社 プロセススケジューリング装置およびプロセススケジューリング方法

Also Published As

Publication number Publication date
JP6445876B2 (ja) 2018-12-26

Similar Documents

Publication Publication Date Title
US10891158B2 (en) Task scheduling method and apparatus
US11775335B2 (en) Platform independent GPU profiles for more efficient utilization of GPU resources
US8661435B2 (en) System and method for affinity dispatching for task management in an emulated multiprocessor environment
US20140130048A1 (en) Dynamic scaling of management infrastructure in virtual environments
US20130139172A1 (en) Controlling the use of computing resources in a database as a service
US20210049146A1 (en) Reconfigurable distributed processing
US11556391B2 (en) CPU utilization for service level I/O scheduling
US20210011751A1 (en) Memory-aware placement for virtual gpu enabled systems
US20220253341A1 (en) Memory-aware placement for virtual gpu enabled systems
US11886898B2 (en) GPU-remoting latency aware virtual machine migration
KR102247249B1 (ko) 데이터베이스 관리 시스템에서 비동기적 데이터 처리를 위한 컴퓨터 프로그램
JP6543219B2 (ja) 仮想マシン配置装置およびリソース管理方法
WO2013008325A1 (ja) マルチコアプロセッサシステム、および制御方法
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
US20150160973A1 (en) Domain based resource isolation in multi-core systems
JP6445876B2 (ja) リソース割当装置、リソース割当システム、および、リソース割当方法
US20150186180A1 (en) Systems and methods for affinity dispatching based on network input/output requests
US10824640B1 (en) Framework for scheduling concurrent replication cycles
KR102224446B1 (ko) Gpgpu 스레드 블록 스케줄링 확장 방법 및 장치
KR20210053830A (ko) 데이터베이스 관리 시스템에서 비동기적 데이터 처리를 위한 컴퓨터 프로그램
US9176910B2 (en) Sending a next request to a resource before a completion interrupt for a previous request
JP6251417B2 (ja) ストレージシステム、及び、記憶制御方法
US11579942B2 (en) VGPU scheduling policy-aware migration
WO2024075157A1 (ja) タスクスケジューラ装置、計算システム、タスクスケジューリング方法およびプログラム
KR20180076051A (ko) OpenCL 커널을 처리하는 방법과 이를 수행하는 컴퓨팅 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180607

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: 20181127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181130

R150 Certificate of patent or registration of utility model

Ref document number: 6445876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150