JP6445876B2 - Resource allocation device, resource allocation system, and resource allocation method - Google Patents

Resource allocation device, resource allocation system, and resource allocation method Download PDF

Info

Publication number
JP6445876B2
JP6445876B2 JP2015012121A JP2015012121A JP6445876B2 JP 6445876 B2 JP6445876 B2 JP 6445876B2 JP 2015012121 A JP2015012121 A JP 2015012121A JP 2015012121 A JP2015012121 A JP 2015012121A JP 6445876 B2 JP6445876 B2 JP 6445876B2
Authority
JP
Japan
Prior art keywords
unit
execution
allocation
execution unit
resource
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.)
Active
Application number
JP2015012121A
Other languages
Japanese (ja)
Other versions
JP2016139171A (en
Inventor
雄大 北野
雄大 北野
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/en
Publication of JP2016139171A publication Critical patent/JP2016139171A/en
Application granted granted Critical
Publication of JP6445876B2 publication Critical patent/JP6445876B2/en
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)

Description

本発明は、リソース割当装置、リソース割当システム、および、リソース割当方法の技術に関する。   The present invention relates to a technology of a resource allocation device, a resource allocation system, and a resource allocation method.

共有データなどの共有リソースにアクセスするプロセスが複数存在するときには、同時アクセスなどによりデータの整合性がとれなくなることもある。そこで、非特許文献1には、排他ロックという同時アクセスの制御手段が記載されている。あるプロセスがあるデータに対して排他ロックをかけると、他のプロセスがそのデータに対してアクセスすることができなくなる。これにより、リソースにアクセスできるプロセスを限定することで、データの整合性を担保することができる。   When there are a plurality of processes that access shared resources such as shared data, data consistency may be lost due to simultaneous access or the like. Therefore, Non-Patent Document 1 describes a simultaneous access control means called exclusive lock. When an exclusive lock is placed on data for a process, other processes cannot access the data. Thereby, data consistency can be ensured by limiting the processes that can access the resource.

なお、共有データに排他ロックをかけたプロセスは、その共有データに対する処理を終えると、ロックを解放する。その後、他のプロセスはその共有データにアクセス可能となる。
非特許文献2には、排他ロックを用いる副作用として、特定の条件下でプロセスが共有データのロックを解放しても、他のプロセスが共有データにアクセスできない事象が記載されている。
It should be noted that the process that puts an exclusive lock on the shared data releases the lock when the process on the shared data is finished. Thereafter, other processes can access the shared data.
Non-Patent Document 2 describes, as a side effect of using an exclusive lock, an event in which another process cannot access shared data even if the process releases the shared data lock under a specific condition.

E. W. DIJKSTRA著、「Solution of a Problem in Concurrent Programming Control」、Communications of the ACM、Volume 8,Number 9、Sept.1965、p.569E. 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.2013Yudai Kitano, "A Study on Processing Delay in Multi-core Environment", Proceedings of the 2013 IEICE Society Conference, B-16-3, Sep. 2013

なお、共有データを用いてプロセスが処理できるようになるには、共有データにアクセスするための排他ロックに成功した上で、自身のプロセスが動作する計算機資源(CPUなど)に余裕があることが必要である。   In order for a process to be able to process using shared data, it is necessary that the computer resources (such as a CPU) on which the process operates have a margin after successful exclusive lock for accessing the shared data. is there.

一方、排他ロックに成功しても計算機資源に余裕がない場合や、計算機資源に余裕があっても他プロセスが先に排他ロックをしてしまった場合には、プロセスにとって余計な待ち時間が発生してしまう。よって、システム全体では処理能力に余裕があっても、共有リソースにアクセスするプロセスが複数存在するときには、システムの利用効率を充分に高められていなかった。
なお、システムの利用効率が悪いと、ある箇所は資源が遊休しているが、別の箇所では負荷が局所的に集中してしまうことで、システム全体の処理結果が少なくなってしまう。
On the other hand, if there is not enough computer resources even if the exclusive lock is successful, or if another process locks the computer first even if there is enough computer resources, an extra waiting time is generated for the process. Resulting in. Therefore, even if there is a sufficient processing capacity in the entire system, when there are a plurality of processes that access the shared resource, the utilization efficiency of the system has not been sufficiently improved.
Note that if the system usage efficiency is poor, resources are idle at one location, but the load is concentrated locally at another location, resulting in fewer processing results for the entire system.

そこで、本発明は、共有リソースにアクセスするプロセスが複数存在するときに、システムの利用効率を高めることを、主な課題とする。   Therefore, the main object of the present invention is to improve the use efficiency of the system when there are a plurality of processes accessing the shared resource.

前記課題を解決するために、本発明は、1つの共有リソースを利用するプログラムの実行単位について、同じ共有リソースを利用する前記実行単位の集合をグループ化し、前記同じ共有リソースにアクセス可能な物理サーバ内の同じ演算手段上に、グループ化された前記実行単位の集合をまとめて割り当てる割当手段と、複数の共有リソースを利用する前記実行単位の入力を受け付け、その共有リソースにアクセスするための、利用する共有リソースごとの呼出先の実行単位と、それらの呼出先の実行単位に対してアクセスの指示を呼び出すための呼出元の実行単位とに分割し、呼出先の実行単位をグループ化の対象とする分割手段と、前記割当手段によって第1の演算手段上に割り当てられた実行単位を、第2の演算手段上に移動するとき、前記第1の演算手段上に割り当てられた同じグループに属する実行単位の集合をまとめて前記第2の演算手段上に移動する移動手段と、を有し、前記割当手段は、グループ化された前記実行単位の集合が割り当てられていない演算手段上に、グループ化されていない前記呼出元の実行単位を割り当てることを特徴とする。 In order to solve the above-described problem, the present invention groups a set of execution units that use the same shared resource with respect to execution units of a program that uses one shared resource, and can access the same shared resource. Assigning means for allocating a set of the grouped execution units together on the same computing means, and receiving the input of the execution units using a plurality of shared resources and using the shared resources to access the shared resources The execution unit of the call destination for each shared resource to be divided into the execution unit of the call source for calling the access instruction to the execution unit of the call destination, and the execution unit of the call destination is grouped And when the execution unit assigned on the first calculation means by the assigning means is moved to the second calculation means. Have a, a moving means for moving on said second operation means together a set of execution units belonging to the first operation means the same groups assigned on, the assigning unit, grouped the The execution unit of the call source that is not grouped is assigned to a computing means to which no set of execution units is assigned .

これにより、グループ化された実行単位の集合は同時に実行されないので、共有リソースにアクセス可能な実行単位が、適切に演算手段の計算機資源を利用することで、システムの利用効率を高めることができる。さらに、共有リソースへの障害発生時にはその影響範囲を同じグループとして容易に特定できる。
さらに、複数の共有リソースを利用するような複雑なプログラムでも、システムの利用効率を高めることができる。
そして、共有リソースの物理的な移動などのシステム構成が変更されたときや、割当先の演算手段が混雑したときなどでも、システムの利用効率を高めつつ低コストで対応できる。
As a result, the group of execution units grouped is not executed at the same time, so that the execution unit that can access the shared resource appropriately uses the computer resources of the computing means, thereby improving the utilization efficiency of the system. Furthermore, when a failure occurs in a shared resource, the range of influence can be easily specified as the same group.
Furthermore, the efficiency of use of the system can be improved even for a complicated program that uses a plurality of shared resources.
Even when the system configuration such as physical movement of the shared resource is changed, or when the calculation means of the allocation destination is congested, it is possible to cope with the system at a low cost while improving the system utilization efficiency.

本発明は、前記割当手段が、割当候補である複数の演算手段について、各演算手段に割り当てられる実行単位の数が均等になるように、割当先の演算手段を選択することを特徴とする。   The present invention is characterized in that the allocating unit selects an allocating destination computing unit so that the number of execution units allocated to each computing unit is equal for a plurality of computing units that are allocation candidates.

これにより、容易に各演算手段の負荷分散を実現できる。   Thereby, load distribution of each calculating means can be easily realized.

本発明は、前記割当手段が、割当候補である複数の演算手段について、各演算手段に割り当てられる実行単位が発生される負荷が均等になるように、割当先の演算手段を選択することを特徴とする。   In the present invention, the allocating unit selects an allocating destination computing unit so that the load of generating the execution unit allocated to each computing unit is equal for a plurality of computing units that are allocation candidates. And

これにより、高精度に各演算手段の負荷分散を実現できる。   Thereby, load distribution of each calculation means is realizable with high precision.

本発明は、前記割当手段が、割当候補である複数の演算手段について、前記同じ共有リソースにアクセス可能な各演算手段のうちのアクセスコストが最小の演算手段を選択することを特徴とする。   The present invention is characterized in that the assigning means selects a computing means with the lowest access cost among the computing means capable of accessing the same shared resource for a plurality of computing means that are allocation candidates.

これにより、実行単位の実行時のスループットを向上させることができる。   Thereby, it is possible to improve the throughput when executing the execution unit.

本発明の各演算手段は、自身に割り当てられたグループ化された前記実行単位の集合を実行するときに、ある実行単位の終了を待ってから別の実行単位を開始し、
所定の実行単位の実行時間が所定時間を経過したときには、その所定の実行単位をタイムアウトさせ、その所定の実行単位を呼び出した呼出元の実行単位に対して異常通知を行うことを特徴とする。
Each computing means of the present invention waits for the end of a certain execution unit to start another execution unit when executing the grouped execution unit set assigned to itself,
When the execution time of a predetermined execution unit has passed a predetermined time, the predetermined execution unit is timed out, and an abnormality is notified to the execution unit of the caller that called the predetermined execution unit .

これにより、グループ内での実行単位間の排他制御が行われることで、共有リソースのデータ内容の整合性を保証できる。   As a result, exclusive control between execution units within the group is performed, so that the consistency of the data content of the shared resource can be guaranteed.

本発明によれば、共有リソースにアクセスするプロセスが複数存在するときに、システムの利用効率を高めることができる。   According to the present invention, when there are a plurality of processes that access a shared resource, the utilization efficiency of the system can be improved.

本発明の一実施形態に関するリソース割当システムを示す構成図である。It is a block diagram which shows the resource allocation system regarding one Embodiment of this invention. 本発明の一実施形態に関するリソース割当方法を示すフローチャートである。5 is a flowchart illustrating a resource allocation method according to an embodiment of the present invention. 図3(a)は、グループ化されたリソースの割当処理を示す説明図である。図3(b)は、グループ化されていないリソース割当処理の問題点を示す説明図である。FIG. 3A is an explanatory diagram illustrating grouped resource allocation processing. FIG. 3B is an explanatory diagram showing problems of resource allocation processing that is not grouped. 本発明の一実施形態に関するプロセス分割処理を示す説明図である。It is explanatory drawing which shows the process division | segmentation process regarding one Embodiment of this invention. 図5(a)は、図3(a)の構成におけるグループ管理テーブルを示す構成図である。図5(b)は、図4の構成におけるグループ管理テーブルを示す構成図である。FIG. 5A is a configuration diagram showing a group management table in the configuration of FIG. FIG. 5B is a configuration diagram showing a group management table in the configuration of FIG. 図6(a)は、第1の割当例における割当前のグループ管理テーブルを示す構成図である。図6(b)は、第1の割当例における割当後のグループ管理テーブルを示す構成図である。FIG. 6A is a configuration diagram showing a group management table before allocation in the first allocation example. FIG. 6B is a configuration diagram showing the group management table after allocation in the first allocation example. 図7(a)は、第2の割当例における割当前のグループ管理テーブルを示す構成図である。図7(b)は、プロセス重みテーブルを示す構成図である。図7(c)は、第2の割当例における割当後のグループ管理テーブルを示す構成図である。FIG. 7A is a configuration diagram showing a group management table before allocation in the second allocation example. FIG. 7B is a configuration diagram showing a process weight table. FIG. 7C is a configuration diagram showing the group management table after allocation in the second allocation example. 図8(a)は、第3の割当例における割当前のグループ管理テーブルを示す構成図である。図8(b)は、VM管理テーブルを示す構成図である。図8(c)は、第3の割当例における割当後のグループ管理テーブルを示す構成図である。FIG. 8A is a configuration diagram showing a group management table before allocation in the third allocation example. FIG. 8B is a configuration diagram showing a VM management table. FIG. 8C is a configuration diagram showing the group management table after allocation in the third allocation example. 図9(a)は、グループ化されたプロセスの移動処理を示す構成図である。図9(b)は、グループ化されていないプロセスの移動処理の問題点を示す構成図である。FIG. 9A is a configuration diagram showing the movement process of the grouped processes. FIG. 9B is a configuration diagram illustrating the problem of the migration process of processes that are not grouped.

以下、本発明の一実施形態について、図面を参照して詳細に説明する。   Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.

図1は、リソース割当システムを示す構成図である。
リソース割当システムは、リソースを提供する1台以上の物理サーバ2と、その物理サーバ2に対してプロセス(または、スレッド、タスク、ジョブなどのプログラムの実行単位)を配置することで、配置されたプロセスにリソースを割り当てるリソース割当装置1とがネットワークで接続されて構成される。
リソース割当システムの各装置は、CPU(Central Processing Unit)とメモリとハードディスク(記憶手段)とネットワークインタフェースを有するコンピュータとして構成され、このコンピュータは、CPUが、メモリ上に読み込んだプログラムを実行することにより、各処理部を動作させる。
FIG. 1 is a configuration diagram showing a resource allocation system.
The resource allocation system is arranged by arranging one or more physical servers 2 that provide resources and processes (or execution units of programs such as threads, tasks, and jobs) for the physical servers 2. A resource allocation device 1 that allocates resources to processes is connected to a network.
Each device of the resource allocation system is configured as a computer having a CPU (Central Processing Unit), a memory, a hard disk (storage means), and a network interface. This computer executes a program read on the memory by the CPU. Each processing unit is operated.

なお、図1では、1台のリソース割当装置1が2つの物理サーバ2を外からまとめて管理(接続)する構成を例示した。一方、各物理サーバ2ごとに別々のリソース割当装置1を内蔵させ、物理サーバ2とリソース割当装置1とを同一筐体として構成してもよい。なお、同一筐体とする場合、物理サーバ2のVMを管理するホストOSなどに、リソース割当装置1の各手段を搭載すればよい。   1 illustrates a configuration in which one resource allocation device 1 manages (connects) two physical servers 2 collectively from the outside. On the other hand, a separate resource allocation device 1 may be built in each physical server 2, and the physical server 2 and the resource allocation device 1 may be configured as the same casing. If the same chassis is used, each unit of the resource allocation device 1 may be mounted on a host OS that manages the VM of the physical server 2.

各物理サーバ2は、1つ以上のCPUコア(以下、「コア」と略す)と、そのコアが実行する処理で利用されるデータの記憶手段(メモリ、ハードディスクなど)とを有する。なお、1台の物理サーバ2内に複数のコア(マルチコア)が存在してもよい。
さらに、物理サーバ2は、コアなどの計算機資源を管理するVM(Virtual Machine)を構築してもよい。VM内に計算機資源を隠蔽することで、利用者(利用者のプロセス)に対してハードウェアの具体的な構成を意識させずに、計算機資源を使用させる。これにより、プロセス内にハードウェアの具体的な構成を明示する必要がなくなり、プロセスのプログラミング負担を軽減させることができる。
Each physical server 2 includes one or more CPU cores (hereinafter abbreviated as “core”) and data storage means (memory, hard disk, etc.) used in processing executed by the core. A plurality of cores (multi-cores) may exist in one physical server 2.
Furthermore, the physical server 2 may construct a VM (Virtual Machine) that manages computer resources such as cores. By concealing the computer resources in the VM, the computer resources are used without making the user (user process) aware of the specific hardware configuration. This eliminates the need to specify a specific hardware configuration in the process, thereby reducing the process programming burden.

リソース割当装置1は、物理サーバ2の各コアに対して、プロセスを割り当てる。ここで、リソース割当装置1は、VMを介さずに直接コアに対してプロセスを割り当ててもよいし、VMを介して(VMに指示を出して)コアに対してプロセスを割り当ててもよい。
なお、VMに指示を出す場合、「コアC1に、プロセスP1を配置せよ」のようなハードウェアリソースを明示する(隠蔽しない)命令を受け付けるように、VMを機能拡張する必要がある。
The resource allocation device 1 allocates a process to each core of the physical server 2. Here, the resource assignment device 1 may assign the process directly to the core without going through the VM, or may assign the process to the core through the VM (giving an instruction to the VM).
When issuing an instruction to the VM, it is necessary to expand the function of the VM so as to accept an instruction that clearly indicates (does not conceal) hardware resources such as “Place the process P1 in the core C1”.

リソース割当装置1は、通信部11、プロセス分割部12、プロセス割当部13、プロセス移動部14、グループ管理テーブル15、プロセス重みテーブル16、および、VM管理テーブル17を有する。以下、これらの各構成要素の詳細について、図1を参照しつつ、図2に沿って説明する。   The resource allocation device 1 includes a communication unit 11, a process division unit 12, a process allocation unit 13, a process migration unit 14, a group management table 15, a process weight table 16, and a VM management table 17. Hereinafter, details of each of these components will be described with reference to FIG. 2 and FIG. 2.

図2は、リソース割当方法を示すフローチャートである。
S11は、プロセス分割部12によるプロセス分割要否の判定処理である。プロセス分割部12は、リソース割当装置1に入力される割当対象の各プロセスについて、プロセスごとに分割が必要か否かを判定する。
まず、1つのプロセスが0または1つの共有リソース(例えば、図1の「データ」で示される共有データ)にアクセス(データリードまたはデータライト)する場合、そのプロセスは、分割が不要である(S11,No)ので処理をS13に進める。
一方、1つのプロセスが2つ以上の共有リソースにアクセスする場合、そのプロセスは、分割が必要である(S11,Yes)ので処理をS12に進める。
FIG. 2 is a flowchart showing a resource allocation method.
S <b> 11 is a process for determining whether process division is necessary by the process division unit 12. The process dividing unit 12 determines whether it is necessary to divide each process to be allocated input to the resource allocation device 1 for each process.
First, when one process accesses (data read or data write) 0 or one shared resource (for example, shared data indicated by “data” in FIG. 1), the process does not need to be divided (S11). , No), the process proceeds to S13.
On the other hand, when one process accesses two or more shared resources, since the process needs to be divided (S11, Yes), the process proceeds to S12.

S12は、プロセス分割部12によるプロセス分割処理である。プロセス分割部12は、S11で分割が必要とされる1つの分割前プロセスを、1つの呼出元プロセスと複数の呼出先プロセスとに分割する。例えば、分割前プロセスが共有データA,B,Cにそれぞれアクセスする場合、その分割前プロセスは、1つの呼出元プロセスと3つの呼出先プロセス(合計4つのプロセス)へと分割される。   S <b> 12 is process division processing by the process division unit 12. The process dividing unit 12 divides one pre-division process that needs to be divided in S11 into one caller process and a plurality of callee processes. For example, when the pre-division process accesses the shared data A, B, and C, the pre-division process is divided into one caller process and three callee processes (a total of four processes).

S13は、プロセス割当部13によるプロセスグループ化処理である。プロセス割当部13は、S11の分割が不要な各プロセスと、S12で分割された各プロセスについて、同じ共有リソースにアクセスするプロセス群を1つのグループとしてグループ化する。なお、共有リソースにアクセスしないプロセス群は、グループ化しなくてもよい。そして、グループ管理テーブル15には、S13のグループ化された結果が格納される。
S14は、プロセス割当部13によるプロセス割当処理である。プロセス割当部13は、S13のグループごとにコアを割り当てるように、通信部11を介して各コアに指示する。換言すると、同じグループに属するプロセス群は、同じコアにまとめて割り当てられる。この割当アルゴリズムは様々な手法を適用でき、プロセス重みテーブル16およびVM管理テーブル17は、それらの手法で割当先を決定するために利用される(詳細は、図6〜図8の説明を参照)。
S13 is a process grouping process by the process allocation unit 13. The process allocating unit 13 groups the processes that access the same shared resource as one group for each process that does not require division in S11 and each process that is divided in S12. A process group that does not access the shared resource may not be grouped. The group management table 15 stores the grouped result of S13.
S <b> 14 is process allocation processing by the process allocation unit 13. The process allocation unit 13 instructs each core via the communication unit 11 to allocate a core for each group of S13. In other words, process groups belonging to the same group are collectively assigned to the same core. Various methods can be applied to this allocation algorithm, and the process weight table 16 and the VM management table 17 are used for determining an allocation destination by these methods (for details, refer to the description of FIGS. 6 to 8). .

S15は、プロセス移動部14によるプロセス移動要否の判定処理である。プロセス割当部13がすでに割り当てたプロセスが実行されるコア上に、他の優先度の高いプロセスが生起されるなどの理由により、割り当てたプロセスの実行時間が少なくなることもある。その場合、プロセス移動部14は、あるコアに割当済みのプロセスを他のコアで実行するように移動させる(S15,Yes)と判定し、処理をS16に進める。一方、プロセスの移動が不要なら(S15,No)処理を終了する。   S15 is a process for determining whether or not the process movement unit 14 needs to move the process. The execution time of the allocated process may be reduced due to a reason that another high priority process is generated on the core where the process already allocated by the process allocation unit 13 is executed. In that case, the process moving unit 14 determines that the process assigned to a certain core is moved to be executed by another core (S15, Yes), and advances the process to S16. On the other hand, if it is not necessary to move the process (S15, No), the process is terminated.

S16は、プロセス移動部14によるプロセス移動処理である。S14と同様に、プロセス移動部14は、同じグループに属するプロセス群を、同じコアにまとめて移動するように、通信部11を介して各コアに指示する。
このように、プロセスの初回割当(S14)やプロセスの移動(S16)において、同じ共有データにアクセスするプロセス群が別々のコアで実行されないようにすることで、同じ共有データへのアクセス競合を予防できる。
S <b> 16 is a process transfer process by the process transfer unit 14. Similar to S <b> 14, the process moving unit 14 instructs each core via the communication unit 11 to move a group of processes belonging to the same group together to the same core.
In this way, in the initial allocation of processes (S14) and process migration (S16), the process group accessing the same shared data is prevented from being executed by different cores, thereby preventing access competition to the same shared data. it can.

図3(a)は、S13でグループ化されたリソースの割当処理(S14)を示す説明図である。
コアC1には、共有データD1にアクセスするための、グループG1に属するプロセスP1,P4がまとめて割り当てられている。
コアC2には、共有データD2にアクセスするための、グループG2に属するプロセスP2が割り当てられている。
コアC3には、共有データD3にアクセスするための、グループG3に属するプロセスP3,P5がまとめて割り当てられている。
FIG. 3A is an explanatory diagram showing the resource allocation process (S14) grouped in S13.
Processes P1 and P4 belonging to the group G1 for accessing the shared data D1 are collectively assigned to the core C1.
A process P2 belonging to the group G2 for accessing the shared data D2 is assigned to the core C2.
Processes P3 and P5 belonging to the group G3 for accessing the shared data D3 are collectively assigned to the core C3.

なお、各コアは、自身にグループとして割り当てられているプロセス群に対して、以下の排他制御を実施してもよい。例えば、グループG1に属するプロセスP1,P4について、プロセスP1,P4の順に実行し、プロセスP1の実行完了を待ってからプロセスP4を開始する(つまり、プロセスP1,P4を同時には実行しない)。排他制御における各プロセスの実行順序は、例えば、キュー(待ち行列)によって管理される。この排他制御自身は、コア上のOSが実行してもよいし、コア上のユーザプロセスが実行してもよい。   Each core may perform the following exclusive control on the process group assigned to itself as a group. For example, the processes P1 and P4 belonging to the group G1 are executed in the order of the processes P1 and P4, and the process P4 is started after the execution of the process P1 is completed (that is, the processes P1 and P4 are not executed simultaneously). The execution order of each process in exclusive control is managed by, for example, a queue (queue). This exclusive control itself may be executed by an OS on the core or a user process on the core.

さらに、排他制御の例外処理として、プロセスP1の実行開始時刻からの経過時間が所定時間(例えば、10分)を超えても実行終了しない場合、そのプロセスP1をフリーズなどの実行異常状態とみなして、プロセスP1を呼び出した呼出元プロセスに対して異常通知を行ったり、プロセスP1を中止(タイムアウト)して次のプロセスP4を実行させたりしてもよい。これにより、自由度の高い排他制御が可能となる。   Further, as an exception process of exclusive control, if the execution does not end even if the elapsed time from the execution start time of the process P1 exceeds a predetermined time (for example, 10 minutes), the process P1 is regarded as an abnormal execution state such as freeze. An abnormality notification may be sent to the calling source process that called the process P1, or the process P1 may be stopped (timed out) and the next process P4 may be executed. Thereby, exclusive control with a high degree of freedom becomes possible.

図3(b)は、比較例として、グループ化されていないリソース割当処理の問題点を示す説明図である。図3(a)と異なり、共有データD1にアクセスするプロセスP1と、同じ共有データD1にアクセスするプロセスP4とが異なるコアC1,C2に割り当てられている。
この比較例では、プロセスP1が共有データD1に排他ロックをかけることで、プロセスP4に対して共有データD1へのアクセスを禁止させる。その後プロセスP1が共有データD1の排他ロックを解除(アンロック)することで、プロセスP4に対して共有データD1へのアクセスを許可する。
FIG. 3B is an explanatory diagram illustrating a problem of resource allocation processing that is not grouped as a comparative example. Unlike FIG. 3A, the process P1 accessing the shared data D1 and the process P4 accessing the same shared data D1 are assigned to different cores C1 and C2.
In this comparative example, the process P1 places an exclusive lock on the shared data D1, thereby prohibiting the process P4 from accessing the shared data D1. Thereafter, the process P1 releases (unlocks) the exclusive lock of the shared data D1, thereby permitting the process P4 to access the shared data D1.

しかし、プロセスP1,P4は、お互いにいつ排他ロックをかけるかなどの調整を行わないので、共有データD1に対する排他ロックやロック待ちが多発し、コアC1,C2などの計算機資源の利用効率が悪い。また、アンロック漏れによるデッドロックが発生した場合、共有データD1をセマフォ管理しているコアC1のOSに問い合わせるなど、原因の究明にコストがかかる。   However, since the processes P1 and P4 do not make adjustments such as when to lock each other, the exclusive lock and lock waiting for the shared data D1 occur frequently, and the use efficiency of the computer resources such as the cores C1 and C2 is poor. . In addition, when a deadlock due to unlock leakage occurs, it is costly to investigate the cause such as inquiring the OS of the core C1 that manages the semaphore for the shared data D1.

図4は、プロセス分割部12によるプロセス分割処理(S12)を示す説明図である。
プロセス分割部12は、図3(a)の5つのプロセスP1〜P5のうち、プロセスP2を分割対象(S11,Yes)と判断したとする。そして、プロセスP2は、共有データD1,D3を読み込み、その和を計算して共有データD2へと書き出す処理であるとする。
FIG. 4 is an explanatory diagram showing process division processing (S12) by the process division unit 12.
Assume that the process division unit 12 determines that the process P2 is the division target (S11, Yes) among the five processes P1 to P5 in FIG. Then, it is assumed that the process P2 is processing for reading the shared data D1 and D3, calculating the sum thereof, and writing it to the shared data 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値を指定した読み込み命令を通知する。
As shown in FIG. 4, the process dividing unit 12 divides one process P2 into four processes P21 to P24.
The process P24 is a caller process that calls other callee processes P21 to P23. The process P24 is assigned to the core C4 and does not belong to the group.
The process P21 is a call destination process that reads the shared data D1, and belongs to the group G1. The process P24 notifies a read command specifying the ID value of the shared data D1 through socket communication with the process P21.
The process P23 is a call destination process that reads the shared data D3 and belongs to the group G3. The process P24 notifies a read command specifying the ID value of the shared data D3 via socket communication with the process P23.

プロセスP22は、共有データD2へ書き出す呼出先プロセスであり、グループG2に属する。プロセスP24は、プロセスP22とのソケット通信を介して、共有データD2のID値を指定した書き込み命令を通知する。この書き込み命令には、プロセスP24による計算結果である共有データD1,D3の和が書き込みデータとして指定される。   The process P22 is a call destination process that writes to the shared data D2, and belongs to the group G2. The process P24 notifies a write command specifying the ID value of the shared data D2 through socket communication with the process P22. In this write command, the sum of the shared data D1 and D3, which is the calculation result by the process P24, is designated as the write data.

ここで、呼出元プロセスP24をグループ外としてコアC4に配置することで、各呼出先プロセスP21〜P23の負荷を軽減できる。
一方、プロセスP22とP24とを統合し(つまり、呼出元プロセスと呼出先プロセスとを1つのプロセスで兼ねる)、グループG2に属するプロセスP22が、共有データD1,D3の和を計算してもよい。これにより、分割された後のプロセスの数を4つから3つに減らすことで、プロセス管理の負担を軽減できる。
Here, by placing the call source process P24 outside the group in the core C4, the load on each of the call destination processes P21 to P23 can be reduced.
On the other hand, the processes P22 and P24 may be integrated (that is, the caller process and the callee process are combined as one process), and the process P22 belonging to the group G2 may calculate the sum of the shared data D1 and D3. . Thereby, the burden of process management can be reduced by reducing the number of processes after the division from four to three.

なお、各呼出先プロセスP21〜P23をミドルウェアとして事前に物理サーバ2に配備しておき、そのAPI(Application Programming Interface)を開発者に提供してもよい。これにより、アプリケーションの開発者はデータのロック、アンロックを意識しないで呼出元プロセスを作成すればよいので、開発コストが低減される。   Note that the call destination processes P21 to P23 may be provided in advance in the physical server 2 as middleware, and the API (Application Programming Interface) may be provided to the developer. As a result, the developer of the application only needs to create the caller process without being aware of the locking and unlocking of data, thereby reducing the development cost.

図5(a)は、図3(a)の構成におけるグループ管理テーブル15を示す構成図である。グループ管理テーブル15は、グループごとに、そのグループが扱う共有データと、その共有データにアクセスするプロセスのIDと、そのプロセスが配置されるコアのIDとが対応づけられている。   FIG. 5A is a configuration diagram showing the group management table 15 in the configuration of FIG. In the group management table 15, for each group, the shared data handled by the group, the ID of the process that accesses the shared data, and the ID of the core in which the process is arranged are associated with each other.

図5(b)は、図4の構成におけるグループ管理テーブル15を示す構成図である。前記したように、図5(a)のプロセスID「P2」が、図5(b)ではグループ内のプロセスID「P21〜P23」と、グループ外のプロセスID「P24」とに分割されている。
以下、プロセス割当処理(S14)によりグループ管理テーブル15を作成する具体例について、第1の割当例(図6参照)、第2の割当例(図7参照)、第3の割当例(図8参照)を順に説明する。
FIG. 5B is a configuration diagram showing the group management table 15 in the configuration of FIG. As described above, the process ID “P2” in FIG. 5A is divided into the process IDs “P21 to P23” in the group and the process ID “P24” outside the group in FIG. 5B. .
Hereinafter, with respect to specific examples of creating the group management table 15 by the process allocation process (S14), the first allocation example (see FIG. 6), the second allocation example (see FIG. 7), and the third allocation example (FIG. 8). Reference) will be described in order.

図6(a)は、第1の割当例における割当前のグループ管理テーブル15を示す構成図である。図5(a)と比較すると、まだ各プロセスがどのコアに割り当てられるかが決まっていないので、「コアID」列が存在しない(または空欄である)。   FIG. 6A is a configuration diagram showing the group management table 15 before allocation in the first allocation example. Compared to FIG. 5A, since it is not yet determined which core each process is assigned to, the “core ID” column does not exist (or is blank).

図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
FIG. 6B is a configuration diagram showing the group management table 15 after allocation in the first allocation example.
The process allocation unit 13 measures the number of processes in the process ID column of the group management table 15 and writes the result in the rightmost column “number of processes”. Next, the process allocation unit 13 allocates the “core ID” column so that the number of processes executed in each core is equal. For example, in FIG.6 (b), it equalizes between 4-5 as follows.
(Total number of core C1 processes) = 2 (G1) +2 (G4) = 4
(Total number of core C2 processes) = 4 (G2)
(Total number of core C3 processes) = 3 (G3) +2 (G5) = 5

図7(a)は、第2の割当例における割当前のグループ管理テーブル15を示す構成図である。図7(a)のグループ管理テーブル15は、図6(a)のものと同じデータである。   FIG. 7A is a configuration diagram showing the group management table 15 before allocation in the second allocation example. The group management table 15 in FIG. 7A is the same data as that in FIG.

図7(b)は、プロセス重みテーブル16を示す構成図である。プロセス重みテーブル16は、プロセスごとに、そのプロセスのコアで実行するときの負荷(CPU利用率、メモリ利用率、共有データへのアクセス負荷など)を示す重みを特定するためのテーブルである。例えば、プロセスP1の重みは15で、プロセスP2の重みは5なので、プロセスP1はプロセスP2のほぼ3倍の負荷をかけることがわかる。
なお、重みの決定方法は、例えば以下のいずれかの方法がある。
・負荷の重みは、設計者によって静的に決定される。
・負荷の重みは、プロセスをテストコードによって実行させた結果の「実行ステップ数」を用いる。
・負荷の重みは、所定期間におけるプロセスのCPU利用時間から決定され、動的に更新される。
FIG. 7B is a configuration diagram showing the process weight table 16. The process weight table 16 is a table for specifying a weight indicating a load (a CPU usage rate, a memory usage rate, an access load to shared data, etc.) when executing at the core of the process for each process. For example, since the weight of the process P1 is 15 and the weight of the process P2 is 5, it can be seen that the process P1 applies a load almost three times that of the process P2.
Note that the weight determination method includes, for example, one of the following methods.
The load weight is statically determined by the designer.
The load weight uses the “number of execution steps” as a result of executing the process by the test code.
The load weight is determined from the CPU usage time of the process in a predetermined period and is dynamically updated.

図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の小さい順に、そのグループに属する各プロセスを、前記均等化して決定した各コアに割り当てていく。
FIG. 7C is a configuration diagram showing the group management table 15 after allocation in the second allocation example.
The process allocation unit 13 identifies the weight of each process in the process ID column of the group management table 15 from the process weight table 16 and writes the sum to the rightmost column “sum of weights”. For example, in the group G1, since the weight of P1 is 15 and the weight of P6 is 20, the sum of the weights is 35 = 15 + 20. Next, the process allocation unit 13 allocates the “core ID” column so that the sum of the weights executed in each core is equal. For example, in FIG.7 (b), it equalizes between 40-50 as follows.
(Sum of weights of core C1) = 35 (G1) +15 (G5) = 50
(Sum of weights of core C2) = 25 (G2) +15 (G4) = 40
(Sum of weights of core C3) = 45 (G3)
Then, for example, the process assigning unit 13 assigns each process belonging to the group to each core determined by equalization in ascending order of the group ID.

図8(a)は、第3の割当例における割当前のグループ管理テーブル15を示す構成図である。図8(a)のグループ管理テーブル15は、図6(a)のものと同じデータである。   FIG. 8A is a configuration diagram showing the group management table 15 before allocation in the third allocation example. The group management table 15 in FIG. 8A is the same data as that in FIG.

図8(b)は、VM管理テーブル17を示す構成図である。VM管理テーブル17は、各共有データについて、どのVMの管理下に置かれているかを示す第1テーブル17aと、各VMについて、どのコアを収容するかを示す第2テーブル17bとにより構成される。
例えば、共有データD1がVM1の近くに配置されており(第1テーブル17aの1行目)、そのVM1がコアC1を収容する(第2テーブル17bの1行目)ので、共有データD1(を記憶する記憶手段)の配置場所に物理的に最も近いコア(つまり、通信遅延が最小であるなどのアクセスコストが最小のコア)が、コアC1であることがわかる。
FIG. 8B is a configuration diagram showing the VM management table 17. The VM management table 17 includes a first table 17a indicating which VM is under the management of each shared data, and a second table 17b indicating which core is accommodated for each VM. .
For example, the shared data D1 is arranged near the VM1 (first row of the first table 17a), and the VM1 accommodates the core C1 (first row of the second table 17b). It can be seen that the core physically closest to the location of the storage means) (that is, the core having the lowest access cost such as the smallest communication delay) is the core C1.

図8(c)は、第3の割当例における割当後のグループ管理テーブル15を示す構成図である。
プロセス割当部13は、図8(b)で説明したように、各共有データの配置場所に対して物理的に最も近いコアを、グループ管理テーブル15の「コアID」列へと書き出す。
FIG. 8C is a configuration diagram showing the group management table 15 after allocation in the third allocation example.
As described with reference to FIG. 8B, the process allocation unit 13 writes the core physically closest to the location of each shared data in the “core ID” column of the group management table 15.

図9(a)は、グループ化されたプロセスの移動処理(S16)を示す構成図である。図3(a)の状態から、コアC2上のグループG2が削除され、コアC1上に優先プロセスの生起によりグループG1の実行が困難になったとする。
プロセス移動部14は、グループG1単位で、コアC1からコアC2にプロセス群を移動する。つまり、グループG1に属するプロセスP1とP4とが、まとめてコアC2に移動する。これにより、共有データD1にアクセスするプロセスP1とP4との間でのアクセス競合を防止できる。
さらに、プロセス移動部14は、共有データD1の配置が変更されるなどのシステム構成の変更に対して、グループごとにプロセスの移動先のコアを決定する。よって、システム構成の変更に対するインパクトを小さくすることができる。
FIG. 9A is a configuration diagram showing the movement process (S16) of the grouped processes. Suppose that the group G2 on the core C2 is deleted from the state of FIG. 3A, and it becomes difficult to execute the group G1 due to the occurrence of the priority process on the core C1.
The process moving unit 14 moves a process group from the core C1 to the core C2 in units of group G1. That is, the processes P1 and P4 belonging to the group G1 are moved together to the core C2. Thereby, access contention between the processes P1 and P4 accessing the shared data D1 can be prevented.
Furthermore, the process transfer unit 14 determines a process transfer destination core for each group in response to a change in the system configuration such as a change in the arrangement of the shared data D1. Therefore, the impact on the change in the system configuration can be reduced.

図9(b)は、比較例として、グループ化されていないプロセスの移動処理の問題点を示す構成図である。図9(a)との違いは、コアC1の混雑に伴い、そのコアC1上のプロセスP1はコアC2に退避するが、プロセスP4は退避しない点である。
これにより、図3(b)と同じ状況(アクセス競合)が発生してしまう。さらに、共有データD1の配置の変更を行うときには、その共有データD1にアクセスするプロセスP1,P4が各コアに点在してしまっているので、それらを検索するなどのインパクトが大きくなってしまう。
FIG. 9B is a configuration diagram illustrating a problem of the movement process of processes that are not grouped as a comparative example. The difference from FIG. 9A is that, due to the congestion of the core C1, the process P1 on the core C1 retreats to the core C2, but the process P4 does not retreat.
As a result, the same situation (access contention) as in FIG. 3B occurs. Further, when the arrangement of the shared data D1 is changed, the processes P1 and P4 that access the shared data D1 are scattered in each core, so that the impact of searching for them becomes large.

以上説明した本実施形態のリソース割当システムは、実際のコア性能やメモリ量がVMによって隠蔽されることにより、システムの利用効率が低下してしまうような仮想化環境においては、計算機資源の効率的な利用という観点でとくに有効である。
一般的に、仮想化環境においては様々な共有データにアクセスするプロセスが様々なVMの様々なコアの上で並行に動作することになり、プロセス間の並列度は高まる。そのため、共有データに対する排他ロックやロック待ちが多発し、計算機資源の利用効率が悪い状態であった。
The resource allocation system according to the present embodiment described above is efficient in computing resources in a virtual environment where the actual core performance and the amount of memory are concealed by the VM and the use efficiency of the system decreases. This is particularly effective in terms of effective use.
In general, in a virtual environment, processes accessing various shared data operate in parallel on various cores of various VMs, and the degree of parallelism between processes increases. For this reason, there are many exclusive locks and lock waits for shared data, and the use efficiency of computer resources is poor.

そこで、本実施形態のリソース割当装置1は、同じ共有データにアクセスするプロセスをグループ化し、そのグループ単位で同一コアに割り当てたり(S14)、割り当てたグループを別コアへ移動したり(S16)することによって、共有データに対するプロセス間のアクセス競合を回避させる。
これにより、同一コアに割り当てられたプロセス間での共有データへのアクセスと、コア資源の利用とを併せて実行しやすくなり、計算機資源の利用効率を高めることができる。さらに、アンロック漏れやデッドロックなど排他制御における不具合が生じた際に、不具合が発生した共有データにアクセスするプロセス群を特定するなどの障害解析が容易になる。
Therefore, the resource allocation device 1 according to the present embodiment groups processes that access the same shared data and allocates them to the same core in units of groups (S14) or moves the allocated group to another core (S16). By doing so, access conflict between processes for shared data is avoided.
As a result, it becomes easy to execute access to shared data between processes assigned to the same core and use of core resources, and the use efficiency of computer resources can be improved. Furthermore, when a failure in exclusive control such as unlock leakage or deadlock occurs, failure analysis such as specifying a process group that accesses the shared data in which the failure has occurred becomes easy.

また、プロセス割当部13は、グループ化したプロセス群を同一コアに配置するときに、図3(a)で説明したように、グループ内にキュー(待ち行列)を形成される。データへの同時アクセスがなくなり、データに対するロック処理が不要となる。そのため、データに対するロック待ちも発生しないことから、ハードウェアリソースの効率利用が可能となる。
さらに、プロセス割当部13は、第1の割当例(図6参照)、第2の割当例(図7参照)、第3の割当例(図8参照)で説明したように、グループ間の負荷を分散(均一化)させるように、効率的なコアへの配置を行う。これにより、システム全体での負荷の偏りが低減されるので、システムの過剰な性能拡張を回避できる。
Further, when the process allocation unit 13 arranges the grouped process group in the same core, as described in FIG. 3A, a queue (queue) is formed in the group. Simultaneous access to data is eliminated, and lock processing for data becomes unnecessary. For this reason, there is no waiting for lock on the data, and it is possible to efficiently use hardware resources.
Further, as described in the first allocation example (see FIG. 6), the second allocation example (see FIG. 7), and the third allocation example (see FIG. 8), the process allocation unit 13 loads between groups. In order to disperse (homogenize), the arrangement to the core is performed efficiently. As a result, load imbalance in the entire system is reduced, so that excessive performance expansion of the system can be avoided.

1 リソース割当装置
2 物理サーバ
11 通信部
12 プロセス分割部(分割手段)
13 プロセス割当部(割当手段)
14 プロセス移動部(移動手段)
15 グループ管理テーブル
16 プロセス重みテーブル
17 VM管理テーブル
1 Resource allocation device 2 Physical server 11 Communication unit 12 Process division unit (division means)
13 Process allocation part (allocation means)
14 Process moving part (moving means)
15 Group management table 16 Process weight table 17 VM management table

Claims (6)

1つの共有リソースを利用するプログラムの実行単位について、同じ共有リソースを利用する前記実行単位の集合をグループ化し、前記同じ共有リソースにアクセス可能な物理サーバ内の同じ演算手段上に、グループ化された前記実行単位の集合をまとめて割り当てる割当手段と、
複数の共有リソースを利用する前記実行単位の入力を受け付け、その共有リソースにアクセスするための、利用する共有リソースごとの呼出先の実行単位と、それらの呼出先の実行単位に対してアクセスの指示を呼び出すための呼出元の実行単位とに分割し、呼出先の実行単位をグループ化の対象とする分割手段と、
前記割当手段によって第1の演算手段上に割り当てられた実行単位を、第2の演算手段上に移動するとき、前記第1の演算手段上に割り当てられた同じグループに属する実行単位の集合をまとめて前記第2の演算手段上に移動する移動手段と、を有し、
前記割当手段は、グループ化された前記実行単位の集合が割り当てられていない演算手段上に、グループ化されていない前記呼出元の実行単位を割り当てることを特徴とする
リソース割当装置。
For execution units of a program that uses one shared resource, the set of execution units that use the same shared resource is grouped and grouped on the same computing means in a physical server that can access the same shared resource. Assigning means for collectively assigning the set of execution units;
An execution unit of a call destination for each shared resource to be used for receiving an input of the execution unit that uses a plurality of shared resources and accessing the shared resource, and an instruction to access the execution unit of those call destinations Dividing means for grouping the execution units of the call destinations into the execution units of the call source for calling
When the execution units allocated on the first calculation unit by the allocation unit are moved onto the second calculation unit, a set of execution units belonging to the same group allocated on the first calculation unit is collected. a moving means for moving on said second computing means Te have a,
The resource allocating apparatus, wherein the allocating unit allocates the unexecuted execution unit of the call source onto a computing unit to which the grouped execution unit set is not allocated.
前記割当手段は、割当候補である複数の演算手段について、各演算手段に割り当てられる実行単位の数が均等になるように、割当先の演算手段を選択することを特徴とする
請求項1に記載のリソース割当装置。
2. The allocation unit selects an allocation destination calculation unit so that the number of execution units allocated to each calculation unit is equal for a plurality of calculation units that are allocation candidates. Resource allocation device.
前記割当手段は、割当候補である複数の演算手段について、各演算手段に割り当てられる実行単位が発生される負荷が均等になるように、割当先の演算手段を選択することを特徴とする
請求項1に記載のリソース割当装置。
The allocating unit selects an allocating destination computing unit for a plurality of computing units which are allocation candidates so that the load of generating the execution unit allocated to each computing unit is equalized. The resource allocation device according to 1.
前記割当手段は、割当候補である複数の演算手段について、前記同じ共有リソースにアクセス可能な各演算手段のうちのアクセスコストが最小の演算手段を選択することを特徴とする
請求項1に記載のリソース割当装置。
The said allocation means selects the calculation means with the lowest access cost of each calculation means which can access the said same shared resource about the several calculation means which are allocation candidates. Resource allocation device.
請求項1ないし請求項4のいずれか1項に記載のリソース割当装置と、前記物理サーバとを含めて構成され、
前記物理サーバの各演算手段は、自身に割り当てられたグループ化された前記実行単位の集合を実行するときに、ある実行単位の終了を待ってから別の実行単位を開始し、
所定の実行単位の実行時間が所定時間を経過したときには、その所定の実行単位をタイムアウトさせ、その所定の実行単位を呼び出した呼出元の実行単位に対して異常通知を行うことを特徴とする
リソース割当システム。
It is comprised including the resource allocation apparatus of any one of Claim 1 thru | or 4, and the said physical server,
When each computing means of the physical server executes the set of the execution units grouped assigned to itself, it waits for the end of one execution unit and then starts another execution unit,
When the execution time of a predetermined execution unit exceeds a predetermined time, the predetermined execution unit is timed out, and an abnormality is notified to the execution unit of the caller that called the predetermined execution unit Assignment system.
リソース割当装置は、割当手段と、分割手段と、移動手段とを有しており、
前記割当手段は、1つの共有リソースを利用するプログラムの実行単位について、同じ共有リソースを利用する前記実行単位の集合をグループ化し、前記同じ共有リソースにアクセス可能な物理サーバ内の同じ演算手段上に、グループ化された前記実行単位の集合をまとめて割り当て、
前記分割手段は、複数の共有リソースを利用する前記実行単位の入力を受け付け、その共有リソースにアクセスするための、利用する共有リソースごとの呼出先の実行単位と、それらの呼出先の実行単位に対してアクセスの指示を呼び出すための呼出元の実行単位とに分割し、呼出先の実行単位をグループ化の対象とし、
前記移動手段は、前記割当手段によって第1の演算手段上に割り当てられた実行単位を、第2の演算手段上に移動するとき、前記第1の演算手段上に割り当てられた同じグループに属する実行単位の集合をまとめて前記第2の演算手段上に移動し、
前記割当手段は、グループ化された前記実行単位の集合が割り当てられていない演算手段上に、グループ化されていない前記呼出元の実行単位を割り当てることを特徴とする
リソース割当方法。
The resource allocation device includes an allocation unit, a division unit, and a movement unit,
The allocating unit groups a set of execution units that use the same shared resource with respect to an execution unit of a program that uses one shared resource, on the same arithmetic unit in a physical server that can access the same shared resource. Assigning a set of the grouped execution units together,
The dividing means receives an input of the execution unit that uses a plurality of shared resources, and accesses the execution unit of the call destination for each shared resource to access the shared resource, and the execution unit of those call destinations. It is divided into the caller's execution unit for calling the access instruction, and the callee's execution unit is the target of grouping.
The moving means, when moving the execution unit assigned on the first computing means by the assigning means to the second computing means, belongs to the same group assigned on the first computing means. together a set of units to move on the second computing means,
The resource allocating method according to claim 1, wherein the allocating unit allocates the unexecuted execution unit of the call source onto a computing unit to which the grouped execution unit set is not allocated.
JP2015012121A 2015-01-26 2015-01-26 Resource allocation device, resource allocation system, and resource allocation method Active JP6445876B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015012121A JP6445876B2 (en) 2015-01-26 2015-01-26 Resource allocation device, resource allocation system, and resource allocation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015012121A JP6445876B2 (en) 2015-01-26 2015-01-26 Resource allocation device, resource allocation system, and resource allocation method

Publications (2)

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

Family

ID=56559240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015012121A Active JP6445876B2 (en) 2015-01-26 2015-01-26 Resource allocation device, resource allocation system, and resource allocation method

Country Status (1)

Country Link
JP (1) JP6445876B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7009971B2 (en) * 2017-12-14 2022-01-26 日本電気株式会社 Process scheduling device and process scheduling method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2769367B2 (en) * 1989-09-28 1998-06-25 株式会社日立製作所 Multiprocessor scheduling method
JPH04360265A (en) * 1991-06-06 1992-12-14 Fujitsu Ltd Parallel transaction processing system for processing data distribution
JP2006277637A (en) * 2005-03-30 2006-10-12 Nec Corp Multiprocessor computer system for allocating job by temperature monitoring, and computer program
JP4965638B2 (en) * 2009-12-25 2012-07-04 インターナショナル・ビジネス・マシーンズ・コーポレーション System and method for controlling task switching
JP5765423B2 (en) * 2011-07-27 2015-08-19 富士通株式会社 Multi-core processor system and scheduling method
JP2014081765A (en) * 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> Load distribution device, load distribution method, and load distribution program

Also Published As

Publication number Publication date
JP2016139171A (en) 2016-08-04

Similar Documents

Publication Publication Date Title
US10891158B2 (en) Task scheduling method and apparatus
US8631403B2 (en) Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
US8661435B2 (en) System and method for affinity dispatching for task management in an emulated multiprocessor environment
US20090064168A1 (en) System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks By Modifying Tasks
US20120266180A1 (en) Performing Setup Operations for Receiving Different Amounts of Data While Processors are Performing Message Passing Interface Tasks
US20090063885A1 (en) System and Computer Program Product for Modifying an Operation of One or More Processors Executing Message Passing Interface Tasks
US20090064165A1 (en) Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks
US20210049146A1 (en) Reconfigurable distributed processing
US10248460B2 (en) Storage management computer
JP2008191949A (en) Multi-core system, and method for distributing load of the same
US11556391B2 (en) CPU utilization for service level I/O scheduling
US11372683B2 (en) Placement of virtual GPU requests in virtual GPU enabled systems using a requested memory requirement of the virtual GPU request
KR102247249B1 (en) A computer program for asynchronous data processing in a database management system
WO2021011319A1 (en) Memory-aware placement for virtual gpu enabled systems
US20210303327A1 (en) Gpu-remoting latency aware virtual machine migration
JP6543219B2 (en) Virtual machine allocation apparatus and resource management method
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
Kim et al. A parallel migration scheme for fast virtual machine relocation on a cloud cluster
JP6445876B2 (en) Resource allocation device, resource allocation system, and resource allocation method
US10824640B1 (en) Framework for scheduling concurrent replication cycles
KR102224446B1 (en) Gpgpu thread block scheduling extension method and apparatus
KR20210053830A (en) A computer program for asynchronous data processing in a database management system
US9176910B2 (en) Sending a next request to a resource before a completion interrupt for a previous request
CN114174991A (en) Dynamic distribution of container images
JP6251417B2 (en) Storage system and storage control method

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 Written amendment

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 Written amendment

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