JP2016139171A - リソース割当装置、リソース割当システム、および、リソース割当方法 - Google Patents
リソース割当装置、リソース割当システム、および、リソース割当方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
非特許文献2には、排他ロックを用いる副作用として、特定の条件下でプロセスが共有データのロックを解放しても、他のプロセスが共有データにアクセスできない事象が記載されている。
なお、システムの利用効率が悪いと、ある箇所は資源が遊休しているが、別の箇所では負荷が局所的に集中してしまうことで、システム全体の処理結果が少なくなってしまう。
所定の実行単位の実行時間が所定時間を経過したときには、その所定の実行単位をタイムアウトさせることを特徴とする。
リソース割当システムは、リソースを提供する1台以上の物理サーバ2と、その物理サーバ2に対してプロセス(または、スレッド、タスク、ジョブなどのプログラムの実行単位)を配置することで、配置されたプロセスにリソースを割り当てるリソース割当装置1とがネットワークで接続されて構成される。
リソース割当システムの各装置は、CPU(Central Processing Unit)とメモリとハードディスク(記憶手段)とネットワークインタフェースを有するコンピュータとして構成され、このコンピュータは、CPUが、メモリ上に読み込んだプログラムを実行することにより、各処理部を動作させる。
さらに、物理サーバ2は、コアなどの計算機資源を管理するVM(Virtual Machine)を構築してもよい。VM内に計算機資源を隠蔽することで、利用者(利用者のプロセス)に対してハードウェアの具体的な構成を意識させずに、計算機資源を使用させる。これにより、プロセス内にハードウェアの具体的な構成を明示する必要がなくなり、プロセスのプログラミング負担を軽減させることができる。
なお、VMに指示を出す場合、「コアC1に、プロセスP1を配置せよ」のようなハードウェアリソースを明示する(隠蔽しない)命令を受け付けるように、VMを機能拡張する必要がある。
S11は、プロセス分割部12によるプロセス分割要否の判定処理である。プロセス分割部12は、リソース割当装置1に入力される割当対象の各プロセスについて、プロセスごとに分割が必要か否かを判定する。
まず、1つのプロセスが0または1つの共有リソース(例えば、図1の「データ」で示される共有データ)にアクセス(データリードまたはデータライト)する場合、そのプロセスは、分割が不要である(S11,No)ので処理をS13に進める。
一方、1つのプロセスが2つ以上の共有リソースにアクセスする場合、そのプロセスは、分割が必要である(S11,Yes)ので処理をS12に進める。
S14は、プロセス割当部13によるプロセス割当処理である。プロセス割当部13は、S13のグループごとにコアを割り当てるように、通信部11を介して各コアに指示する。換言すると、同じグループに属するプロセス群は、同じコアにまとめて割り当てられる。この割当アルゴリズムは様々な手法を適用でき、プロセス重みテーブル16およびVM管理テーブル17は、それらの手法で割当先を決定するために利用される(詳細は、図6〜図8の説明を参照)。
このように、プロセスの初回割当(S14)やプロセスの移動(S16)において、同じ共有データにアクセスするプロセス群が別々のコアで実行されないようにすることで、同じ共有データへのアクセス競合を予防できる。
コアC1には、共有データD1にアクセスするための、グループG1に属するプロセスP1,P4がまとめて割り当てられている。
コアC2には、共有データD2にアクセスするための、グループG2に属するプロセスP2が割り当てられている。
コアC3には、共有データD3にアクセスするための、グループG3に属するプロセスP3,P5がまとめて割り当てられている。
この比較例では、プロセスP1が共有データD1に排他ロックをかけることで、プロセスP4に対して共有データD1へのアクセスを禁止させる。その後プロセスP1が共有データD1の排他ロックを解除(アンロック)することで、プロセスP4に対して共有データD1へのアクセスを許可する。
プロセス分割部12は、図3(a)の5つのプロセスP1〜P5のうち、プロセスP2を分割対象(S11,Yes)と判断したとする。そして、プロセスP2は、共有データD1,D3を読み込み、その和を計算して共有データD2へと書き出す処理であるとする。
プロセスP24は、他の呼出先プロセスP21〜P23を呼び出す呼出元プロセスである。プロセスP24は、コアC4に割り当てられ、グループには属さない。
プロセスP21は、共有データD1を読み込む呼出先プロセスであり、グループG1に属する。プロセスP24は、プロセスP21とのソケット通信を介して、共有データD1のID値を指定した読み込み命令を通知する。
プロセスP23は、共有データD3を読み込む呼出先プロセスであり、グループG3に属する。プロセスP24は、プロセスP23とのソケット通信を介して、共有データD3のID値を指定した読み込み命令を通知する。
一方、プロセスP22とP24とを統合し(つまり、呼出元プロセスと呼出先プロセスとを1つのプロセスで兼ねる)、グループG2に属するプロセスP22が、共有データD1,D3の和を計算してもよい。これにより、分割された後のプロセスの数を4つから3つに減らすことで、プロセス管理の負担を軽減できる。
以下、プロセス割当処理(S14)によりグループ管理テーブル15を作成する具体例について、第1の割当例(図6参照)、第2の割当例(図7参照)、第3の割当例(図8参照)を順に説明する。
プロセス割当部13は、グループ管理テーブル15のプロセスID列のプロセス数を計測し、その結果を最右列「プロセス数」へと書き出す。次に、プロセス割当部13は、各コアで実行されるプロセス数が均等になるように、「コアID」列の割り当てを行う。例えば、図6(b)では、以下のように4〜5つの間で均等化されている。
(コアC1の総プロセス数)=2(G1)+2(G4)=4
(コアC2の総プロセス数)=4(G2)
(コアC3の総プロセス数)=3(G3)+2(G5)=5
なお、重みの決定方法は、例えば以下のいずれかの方法がある。
・負荷の重みは、設計者によって静的に決定される。
・負荷の重みは、プロセスをテストコードによって実行させた結果の「実行ステップ数」を用いる。
・負荷の重みは、所定期間におけるプロセスのCPU利用時間から決定され、動的に更新される。
プロセス割当部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の小さい順に、そのグループに属する各プロセスを、前記均等化して決定した各コアに割り当てていく。
例えば、共有データD1がVM1の近くに配置されており(第1テーブル17aの1行目)、そのVM1がコアC1を収容する(第2テーブル17bの1行目)ので、共有データD1(を記憶する記憶手段)の配置場所に物理的に最も近いコア(つまり、通信遅延が最小であるなどのアクセスコストが最小のコア)が、コアC1であることがわかる。
プロセス割当部13は、図8(b)で説明したように、各共有データの配置場所に対して物理的に最も近いコアを、グループ管理テーブル15の「コアID」列へと書き出す。
プロセス移動部14は、グループG1単位で、コアC1からコアC2にプロセス群を移動する。つまり、グループG1に属するプロセスP1とP4とが、まとめてコアC2に移動する。これにより、共有データD1にアクセスするプロセスP1とP4との間でのアクセス競合を防止できる。
さらに、プロセス移動部14は、共有データD1の配置が変更されるなどのシステム構成の変更に対して、グループごとにプロセスの移動先のコアを決定する。よって、システム構成の変更に対するインパクトを小さくすることができる。
これにより、図3(b)と同じ状況(アクセス競合)が発生してしまう。さらに、共有データD1の配置の変更を行うときには、その共有データD1にアクセスするプロセスP1,P4が各コアに点在してしまっているので、それらを検索するなどのインパクトが大きくなってしまう。
一般的に、仮想化環境においては様々な共有データにアクセスするプロセスが様々なVMの様々なコアの上で並行に動作することになり、プロセス間の並列度は高まる。そのため、共有データに対する排他ロックやロック待ちが多発し、計算機資源の利用効率が悪い状態であった。
これにより、同一コアに割り当てられたプロセス間での共有データへのアクセスと、コア資源の利用とを併せて実行しやすくなり、計算機資源の利用効率を高めることができる。さらに、アンロック漏れやデッドロックなど排他制御における不具合が生じた際に、不具合が発生した共有データにアクセスするプロセス群を特定するなどの障害解析が容易になる。
さらに、プロセス割当部13は、第1の割当例(図6参照)、第2の割当例(図7参照)、第3の割当例(図8参照)で説明したように、グループ間の負荷を分散(均一化)させるように、効率的なコアへの配置を行う。これにより、システム全体での負荷の偏りが低減されるので、システムの過剰な性能拡張を回避できる。
2 物理サーバ
11 通信部
12 プロセス分割部(分割手段)
13 プロセス割当部(割当手段)
14 プロセス移動部(移動手段)
15 グループ管理テーブル
16 プロセス重みテーブル
17 VM管理テーブル
Claims (8)
- 1つの共有リソースを利用するプログラムの実行単位について、同じ共有リソースを利用する前記実行単位の集合をグループ化し、前記同じ共有リソースにアクセス可能な物理サーバ内の同じ演算手段上に、グループ化された前記実行単位の集合をまとめて割り当てる割当手段を有することを特徴とする
リソース割当装置。 - 複数の共有リソースを利用する前記実行単位の入力を受け付け、その共有リソースにアクセスするための、利用する共有リソースごとの呼出先の実行単位と、それらの呼出先の実行単位に対してアクセスの指示を呼び出すための呼出元の実行単位とに分割し、呼出先の実行単位をグループ化の対象とする分割手段を有することを特徴とする
請求項1に記載のリソース割当装置。 - 前記割当手段によって第1の演算手段上に割り当てられた前記実行単位を、第2の演算手段上に移動するとき、前記第1の演算手段上に割り当てられた同じグループに属する前記実行単位の集合をまとめて前記第2の演算手段上に移動する移動手段を有することを特徴とする
請求項1に記載のリソース割当装置。 - 前記割当手段は、割当候補である複数の演算手段について、各演算手段に割り当てられる実行単位の数が均等になるように、割当先の演算手段を選択することを特徴とする
請求項1に記載のリソース割当装置。 - 前記割当手段は、割当候補である複数の演算手段について、各演算手段に割り当てられる実行単位が発生される負荷が均等になるように、割当先の演算手段を選択することを特徴とする
請求項1に記載のリソース割当装置。 - 前記割当手段は、割当候補である複数の演算手段について、前記同じ共有リソースにアクセス可能な各演算手段のうちのアクセスコストが最小の演算手段を選択することを特徴とする
請求項1に記載のリソース割当装置。 - 請求項1ないし請求項6のいずれか1項に記載のリソース割当装置と、前記物理サーバとを含めて構成され、
前記物理サーバの各演算手段は、自身に割り当てられたグループ化された前記実行単位の集合を実行するときに、ある実行単位の終了を待ってから別の実行単位を開始し、
所定の実行単位の実行時間が所定時間を経過したときには、その所定の実行単位をタイムアウトさせることを特徴とする
リソース割当システム。 - リソース割当装置の割当手段は、1つの共有リソースを利用するプログラムの実行単位について、同じ共有リソースを利用する前記実行単位の集合をグループ化し、前記同じ共有リソースにアクセス可能な物理サーバ内の同じ演算手段上に、グループ化された前記実行単位の集合をまとめて割り当てることを特徴とする
リソース割当方法。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019106120A (ja) * | 2017-12-14 | 2019-06-27 | 日本電気株式会社 | プロセススケジューリング装置、プロセス実行装置およびプロセススケジューリング方法 |
Citations (6)
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> | 負荷分散装置、負荷分散方法および負荷分散プログラム |
-
2015
- 2015-01-26 JP JP2015012121A patent/JP6445876B2/ja active Active
Patent Citations (6)
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)
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)
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 |