JP5007050B2 - Lattice computer system, task assignment program - Google Patents
Lattice computer system, task assignment program Download PDFInfo
- Publication number
- JP5007050B2 JP5007050B2 JP2006025142A JP2006025142A JP5007050B2 JP 5007050 B2 JP5007050 B2 JP 5007050B2 JP 2006025142 A JP2006025142 A JP 2006025142A JP 2006025142 A JP2006025142 A JP 2006025142A JP 5007050 B2 JP5007050 B2 JP 5007050B2
- Authority
- JP
- Japan
- Prior art keywords
- nodes
- node
- tasks
- lattice
- computer system
- 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
本発明は、複数のノードを格子状に接続したグリッドコンピューティング技術に関し、より詳細には、格子型のコンピュータシステムにおけるタスク割り当て技術に関する。 The present invention relates to a grid computing technique in which a plurality of nodes are connected in a grid pattern, and more particularly to a task assignment technique in a grid type computer system.
ユーザがウェブブラウザ等を使用してインターネット経由でサーバシステムに送信するサービス要求は、年々増大している。このようなウェブブラウザからなされるサービス要求は、ユーザが対話的に実行するためにサーバとのセッションが長時間に及ぶ場合がある。セッションからの断続的な要求にも即時応答するためには、セッション情報やプログラムをサーバのメモリ上に保持しておかなくてはならない。サービス要求の増大とともにサーバが必要とするメモリリソースも増加する傾向にあるため、メモリリソースを安価に確保したいという要請が存在する。 Service requests that users transmit to server systems via the Internet using a web browser or the like are increasing year by year. A service request made from such a web browser may be executed for a long time by a session with the server because the user interactively executes the service request. In order to respond immediately to intermittent requests from a session, session information and programs must be stored in the server's memory. As the service demand increases, the memory resources required by the server tend to increase, and there is a demand for securing memory resources at a low cost.
そこで、比較的安価な複数のサーバまたはパーソナルコンピュータを網目状に接続してサービス要求から派生するタスクを分散することで、高速処理を実現するグリッドコンピューティングが注目されている。グリッドコンピューティングのユーザは、グリッドにプーリングされている処理能力や記憶容量を利用することができる。このようなグリッドコンピューティングにおいては、複数の子ノード、孫ノードのタスク割り当てを実行するスケジューラを有する親ノードを予め決定しておく必要がある。しかし、このような構成では、親ノードとその周辺のノードに負荷が偏り過ぎて、システム全体のスループットに影響を及ぼすことがある。 Accordingly, attention has been paid to grid computing that realizes high-speed processing by connecting a plurality of relatively inexpensive servers or personal computers in a network and distributing tasks derived from service requests. Grid computing users can use the processing power and storage capacity pooled in the grid. In such grid computing, it is necessary to determine in advance a parent node having a scheduler that executes task assignment of a plurality of child nodes and grandchild nodes. However, in such a configuration, the load is too biased on the parent node and its surrounding nodes, which may affect the throughput of the entire system.
最近の研究では、親ノードにスーパースケジューラを配置するとともに子ノードにもスケジューラを配置し、親ノードから子ノードが請け負ったタスクについては、子ノードに存在するスケジューラが孫ノードへのタスク割り当てを実行するようにして、親ノードの負荷を軽減する方法が考案されている(例えば、非特許文献1を参照)。また、特許文献1には、ローカルシステムの負荷状況に応じてタスク割り当て制御を行う分散処理システムが開示されている。
しかしながら、上記非特許文献1の技術では、利用可能なリソースがグリッド内のいずれに存在するかを考慮していないため、子ノードのスケジューラによるタスク移動が適切に実行できない可能性がある。また、上記特許文献1では、ノードが方形に接続された格子状のネットワークで適切なタスク移動を行うアルゴリズムが明示されておらず、分散システムの規模に応じたスループットを達成できない可能性がある。
However, since the technique of Non-Patent
本発明はこうした状況に鑑みてなされたものであり、その目的は、ノードを格子状に接続した格子型コンピュータシステムにおいて、ノード間の接続形態を考慮したタスク割り当てをすることで、ネットワーク経由のサービス要求を効率良く捌く技術を提供することにある。 The present invention has been made in view of such circumstances, and an object of the present invention is to provide a service via a network by assigning tasks in consideration of a connection form between nodes in a lattice type computer system in which nodes are connected in a lattice shape. The purpose is to provide technology that efficiently meets the requirements.
本発明のある態様は、それぞれがプロセッサを備える複数のノードを格子状に接続させた格子型コンピュータシステムである。格子型コンピュータシステムにおける複数のノードとノード間接続装置の接続形態にしたがって作成された論理ノードからなる格子モデルが、外部からなされる一つまたは複数のサービス要求に対応付けられた一つ以上の論理ノードを含む方形領域に分割されており、この方形領域内のいずれかの論理ノードにおいて実行されるスケジューラが、該方形領域に対応するサービス要求のジョブを構成するタスクの並列度および直列度に基づいて、方形領域内の他の論理ノードにタスクを処理するためのプログラムを割り当てる。 One embodiment of the present invention is a lattice-type computer system in which a plurality of nodes each including a processor are connected in a lattice shape. One or more logics in which a lattice model composed of logical nodes created according to the connection form of a plurality of nodes and inter-node connection devices in a lattice type computer system is associated with one or more service requests made from the outside. The scheduler is divided into square areas including nodes, and the scheduler executed in any logical node in the square area is based on the parallelism and seriality of the tasks constituting the service request job corresponding to the square area. Thus, a program for processing the task is assigned to another logical node in the rectangular area.
この態様によると、ノードの接続形態にしたがって格子モデルを予め作成しておくことで、所与の方形領域内において、サービス要求の特性を考慮したタスク割り当てをすることが可能になる。 According to this aspect, by creating a lattice model in advance according to the connection form of nodes, it is possible to perform task assignment in consideration of the characteristics of service requests in a given rectangular area.
スケジューラは、並列して実行可能なタスクを処理するためのプログラムを方形領域内で並列する論理ノードにそれぞれ割り当てる。また、格子モデル内の各論理ノードには、それぞれ対応する物理ノードの処理能力に基づいて多重度が定められており、スケジューラは、並列して実行可能なタスクを処理するプログラムを割り当てるとき、多重度を参照してもよい。さらに、スケジューラは、依存関係の存在するタスク群について、方形領域内でタスク群に含まれるタスク数と同数の隣接するノードを選択して、それぞれのタスクを処理するプログラムを割り当ててもよい。
このように、依存関係の存在するタスクの処理手順にしたがって、方形領域内で例えば左右に連続する論理ノードに直列的なタスクを割り当て、上下に連続する論理ノードに並列的なタスクを割り当てることで、タスクを連携するためのデータの流れを一方向に制限でき、ループを生じることがない。そのため、連携データが交差する位置にあたる論理ノードに突出した処理負荷がかかって、その論理ノードにおけるタスク実行に悪影響を与える状況を回避することができる。
The scheduler assigns a program for processing tasks that can be executed in parallel to logical nodes that are parallel in the rectangular area. Also, each logical node in the lattice model has a multiplicity determined based on the processing capability of the corresponding physical node. Severity may be referenced. Furthermore, the scheduler may assign a program for processing each task by selecting the same number of adjacent nodes as the number of tasks included in the task group in the rectangular area for the task group having the dependency relationship.
In this way, according to the processing procedure of the task having a dependency relationship, for example, serial tasks are assigned to logical nodes that are continuous to the left and right in the rectangular area, and parallel tasks are assigned to logical nodes that are continuous vertically. , The flow of data for linking tasks can be restricted in one direction, and no loop occurs. Therefore, it is possible to avoid a situation in which a prominent processing load is applied to the logical node corresponding to the position where the cooperation data intersects, which adversely affects task execution in the logical node.
スケジューラは、依存関係の存在するタスク群に含まれるいずれかのタスクが並列して実行可能な場合に、タスク群に含まれる各タスクの並列度の平均値を使用して、方形領域内で割り当てるべきノード数を決定してもよい。 When any task included in a task group having a dependency relationship can be executed in parallel, the scheduler uses the average value of the degree of parallelism of each task included in the task group and assigns it within the rectangular area. The number of nodes to be determined may be determined.
本発明の別の態様もまた、格子型コンピュータシステムである。このシステムは、各ノードと直結されており他のノードを経由せずにアクセス可能な記憶装置をさらに備える。記憶装置は上述したタスク処理プログラムを格納し、スケジューラからの指令に応じて、前記プログラムを該当するノードに送信する。この態様によると、格子型コンピュータシステム内のいずれのノードも孫ノードとしてタスク処理を実行することができる。 Another aspect of the present invention is also a lattice computer system. This system further includes a storage device that is directly connected to each node and can be accessed without going through other nodes. The storage device stores the task processing program described above, and transmits the program to the corresponding node in response to a command from the scheduler. According to this aspect, any node in the grid computer system can execute task processing as a grandchild node.
本発明のさらに別の態様もまた、格子型コンピュータシステムである。この格子型コンピュータシステムは、それぞれがプロセッサを備える複数のノードを格子状に接続させた格子型コンピュータシステムにおいて、該システムは少なくとも一つの親ノードと複数の子ノードを有する。親ノードは、格子型コンピュータシステムにおける複数のノードとノード間接続装置の接続形態にしたがって論理ノードからなる格子モデルを作成し、該格子モデルを外部からなされる一つまたは複数のサービス要求に対応付けられた一つ以上の論理ノードを含む方形領域に分割するスーパースケジューラを有する。子ノードは、方形領域に対応するサービス要求のジョブを構成するタスクの並列度および直列度に基づいて、方形領域内の他のノードにタスクを処理するためのプログラムを割り当てるスケジューラを有する。 Yet another embodiment of the present invention is also a lattice computer system. This grid type computer system is a grid type computer system in which a plurality of nodes each having a processor are connected in a grid pattern, and the system has at least one parent node and a plurality of child nodes. The parent node creates a lattice model composed of logical nodes according to the connection form of a plurality of nodes and inter-node connection devices in the lattice computer system, and associates the lattice model with one or more service requests made from the outside. And a super scheduler that divides the rectangular area including one or more logical nodes. The child node has a scheduler that assigns a program for processing a task to other nodes in the rectangular area based on the parallelism and seriality of the tasks constituting the service request job corresponding to the rectangular area.
この態様によると、方形領域内でのタスクの割り当ては子ノードのスケジューラで実行されるため、親ノードのスーパースケジューラのタスク割り当て負荷を軽減することができ、処理効率の向上につながる。 According to this aspect, task assignment in the rectangular area is executed by the scheduler of the child node, so that the task assignment load of the super scheduler of the parent node can be reduced, leading to improvement in processing efficiency.
なお、以上の構成要素の任意の組合せ、本発明を方法、装置、システム、記録媒体、コンピュータプログラムにより表現したものもまた、本発明の態様として有効である。 It should be noted that any combination of the above-described components and a representation of the present invention by a method, apparatus, system, recording medium, and computer program are also effective as an aspect of the present invention.
本発明によれば、ノードの接続形態にしたがって格子モデルを予め作成しておくことで、所与の方形領域内において、サービス要求の特性を考慮したタスク割り当てをすることが可能になる。 According to the present invention, it is possible to perform task assignment in consideration of the characteristics of service requests in a given rectangular area by creating a lattice model in advance according to the connection form of nodes.
図1は、本発明の一実施形態に係る格子型コンピュータシステムの構成の一例を示す。本発明が対象とする「格子型コンピュータシステム」とは、サーバまたはパーソナルコンピュータ等のそれぞれがプロセッサを備える複数のノードを格子状に接続したシステムのことを言う。 FIG. 1 shows an example of the configuration of a grid computer system according to an embodiment of the present invention. The “lattice computer system” targeted by the present invention refers to a system in which a plurality of nodes each including a processor, such as a server or a personal computer, are connected in a lattice.
図1に示すように、格子型コンピュータシステム50は、外部から発行される要求に対して一定のサービスを提供するサーバ群30を備える。サーバ群30は、複数のサーバ42と、それらを接続する多数のルータ40を含む。複数のサーバ42(図1では三台)は、ネットワークインタフェースを介して一台のルータ40に接続され、ルータ40は隣接する別のルータ40と複数列複数行(図1では三行三列)の格子を形成するように配置されている。これら格子状に配列されたルータ40の全てと通信可能なように別のルータ34が設けられ、このルータ34はインターネット、LAN、WAN等のネットワーク32に接続される。格子型コンピュータシステム50は、企業のデータセンタ等に配置され、多数のサービス要求に同時に応答することが可能である。
As shown in FIG. 1, the
ユーザは、ウェブブラウザを使用して、格子型コンピュータシステム50に対してサービス要求を発行する。このサービス要求は、例えば、証券の発注処理や、旅行の予約処理などが含まれる。これらの例に見られるサービス要求をサーバで処理する際に、ユーザはウェブブラウザを使用して対話的にサービス要求を具体化していく。
The user issues a service request to the
サーバ群30内の各サーバ42は、ルータ40を介して記憶装置36と通信可能に構成されている。サービス要求の処理に必要となるスケジューラプログラム、アプリケーションプログラム、アプリケーションの実行に必要なマスタテーブルやデータベース等は記憶装置36に格納されており、必要に応じてプログラムやデータは記憶装置36からサーバ42に送信可能となっている。記憶装置36は一般にはハードディスク装置であり、通常、複数のディスクを集めてRAIDを構成している。記憶装置36は磁気テープ装置であってもよい。
Each
図2は、サーバ群30を構成する各サーバ42の構成を示す。サーバ42は、プログラムにしたがって各種処理を実行するCPU12と、一時的にデータやプログラムを記憶するメモリ14と、ハードディスクドライブ、DVDディスクドライブなどの記憶装置16と、ネットワークに接続し各種の入出力処理を実行するネットワークインタフェース18と、これらを相互接続するバス20と、を少なくとも含む。サーバ42は、必要に応じて、キーボードやマウス等の入力装置、ディスプレイなどの出力装置を有していてもよい。なお、一つのサーバが二つ以上のネットワークインタフェース18を有していてもよい。
FIG. 2 shows the configuration of each
サーバ42は、一枚の基板にコンピュータとして動作するために必要な要素、つまりCPU、メモリ、ハードディスク、バスなどが搭載されたブレードサーバであることが好ましく、サーバ群30は、このブレードサーバが筐体に複数差し込まれているような構成を取ることが好ましいが、他の形態であってもよい。
The
ところで、図1に示すような複数のサーバを接続して使用するグリッドコンピューティングにおいては、グリッドを構成するノード間において、サービス要求から派生するタスクをどのように割り当てるかが大きな問題となる。 By the way, in grid computing using a plurality of servers connected to each other as shown in FIG. 1, how to assign a task derived from a service request between nodes constituting the grid is a big problem.
例えば、親子関係にあるノード間の帯域がサービス要求の特性に合っていないと、親子間通信のオーバーヘッドが大きくなり、システム全体のパフォーマンスに影響を及ぼす。
また、一つのサービス要求からいくつものタスクが派生し、それらのタスク間で情報を交換する場合には、タスクが割り当てられるノードを近傍にまとめた方が効率的に要求を処理することができる。しかしながら、いくつかのサービス要求に対してグリッド内のノードの占有を自由に認めると、データフローの交差などにより特定のノードの負荷が増大し、その結果システム全体のパフォーマンスが低下してしまうおそれがある。
また、ユーザがウェブブラウザを利用して発行するサービス要求は、インタラクティブに進行するため長時間のセッションとなることが多い。したがって、サーバ側では、セッション情報を大量かつ長時間保持するための十分なメモリリソースを準備しておくことが求められる。
For example, if the bandwidth between the nodes in the parent-child relationship does not match the characteristics of the service request, the overhead of communication between the parent and child increases, which affects the performance of the entire system.
In addition, when a number of tasks are derived from one service request and information is exchanged between these tasks, it is possible to process the request more efficiently by grouping nodes to which tasks are assigned in the vicinity. However, if it is possible to freely occupy a node in the grid for some service requests, the load on a specific node may increase due to data flow intersections, etc., and as a result, the performance of the entire system may deteriorate. is there.
In addition, service requests issued by a user using a web browser tend to be interactive sessions that take a long time. Therefore, on the server side, it is required to prepare sufficient memory resources for holding a large amount of session information for a long time.
以上のような事情から、グリッドコンピューティングにおいては、サービス要求の特性を考慮したタスク割り当ての必要性が高い。本実施形態では、特に格子型コンピュータシステムにおいて、サービス要求の特性に応じたタスク割り当て技術を提供するものである。 From the above situation, in grid computing, there is a high need for task assignment in consideration of the characteristics of service requests. In the present embodiment, a task assignment technique according to the characteristics of service requests is provided, particularly in a lattice computer system.
なお、本明細書において「タスク」とは、ある目的を達成するアプリケーションのプログラムコードを分割したものをいい、並列や直列といった実行の順序が定まっているものを言う。タスクは、データベーストランザクションを含む場合もあれば、ウェブページに埋め込まれているスクリプトの実行やコンポーネント呼出しを伴うもののデータベースにはアクセスしない場合もある。 In this specification, a “task” refers to a program code of an application that achieves a certain purpose, and a task whose execution order is determined in parallel or serial. A task may include a database transaction, or it may execute a script embedded in a web page or call a component, but may not access the database.
図3は、本実施形態における処理の基本的な流れを示す。まず、格子型コンピュータシステムを構成するノード間に「経路長」の概念を導入することで、論理ノードによる格子モデルを作成する(S10)。続いて、格子型コンピュータシステムで処理するサービス要求を分析して、それぞれのサービス要求の入口となる子ノードを格子モデル内で分散して配置し、さらにそれぞれのサービス要求に割り当てるべき複数のノードを格子モデル内に確保する(S12)。最後に、サービス要求の特性にしたがってタスクを各ノードに割り当てる(S14)。以下、この順序にしたがって各処理を説明する。 FIG. 3 shows a basic flow of processing in the present embodiment. First, by introducing the concept of “path length” between nodes constituting the lattice computer system, a lattice model by logical nodes is created (S10). Next, service requests processed by the grid computer system are analyzed, and child nodes that serve as entry points for the service requests are distributed and arranged in the grid model, and a plurality of nodes to be assigned to the service requests are further arranged. Secure in the lattice model (S12). Finally, tasks are assigned to each node according to the characteristics of the service request (S14). Hereinafter, each process will be described according to this order.
1.論理ノードによる格子モデルの作成
この処理では、格子型コンピュータシステムを構成するサーバ等の物理ノードを論理ノードにマッピングすることによって、格子モデルを作成する。これによって、以降のタスク割り当ての処理を容易に実現することができる。
1. Creation of Lattice Model Using Logical Nodes In this process, a lattice model is created by mapping physical nodes such as servers constituting a lattice type computer system to logical nodes. As a result, the subsequent task assignment processing can be easily realized.
より具体的には、サーバ等のノードと、ノード間を接続するルータ等のノード間接続装置の物理的な接続形態に対し「経路長」の概念を導入する。そして、システム内のノード間の位置関係をこの経路長で代表させることによって、複数の物理ノードを一つの論理ノードにまとめることが可能になる。
なお、物理ノードと論理ノードとのマッピング情報は、後述するスーパースケジューラを有する親ノードのメモリや、記憶装置36に格納される。
More specifically, the concept of “path length” is introduced to the physical connection form of nodes such as servers and inter-node connection devices such as routers connecting the nodes. Then, by representing the positional relationship between the nodes in the system by this path length, a plurality of physical nodes can be combined into one logical node.
Note that the mapping information between the physical node and the logical node is stored in the memory of the parent node having a super scheduler, which will be described later, or the
本実施形態では、ノード間の経路長を「あるノードを起点としたときに、他のノードに到達するまでに経由するルータまたはスイッチの数をカウントしたホップ数から1を引いた値」と定義する。 In this embodiment, the path length between nodes is defined as “a value obtained by subtracting 1 from the number of hops obtained by counting the number of routers or switches that pass through to reach another node when starting from a certain node”. To do.
具体例を挙げて説明すると、図4は、図1に示した格子型コンピュータシステム50について、図中左上に位置するハッチングをかけたサーバからのホップ数を示す図である。図4において、図1のサーバ42は正方形で表され、正方形の内部の数字がホップ数を表す。「R」はルータ40を表す。ルータ間の接続は太い曲線で、ルータとサーバ間の接続は細線で描かれている。ネットワーク32、ルータ34、記憶装置36については省略している。
Referring to a specific example, FIG. 4 is a diagram showing the number of hops from the hatched server located at the upper left in the figure for the
図5は、ノード間経路長を使用して図1の物理ノードを論理ノードにまとめて作成される格子モデルを示す。格子モデルにおいては、ルータは省略され、サーバを表す正方形の内部にホップ数から1を減じた値である経路長が示される。一つのルータに接続され同一の経路長を持つ複数のノードは、一つの論理ノードで表すことができる。このことを示すために、図5では格子の一点に存在する論理ノードを複数枚の正方形が重ねられた状態で表している。各論理ノード間は、物理的な距離にかかわらず一定間隔で表す。
上記ルールにしたがった結果、図1の格子型コンピュータシステム50は、三行三列の論理ノードから構成される格子モデルに帰着され、ノード間の最大経路長は「4」となる。
FIG. 5 shows a lattice model created by combining the physical nodes of FIG. 1 into logical nodes using the inter-node path length. In the lattice model, routers are omitted, and a path length that is a value obtained by subtracting 1 from the number of hops is shown inside a square representing a server. A plurality of nodes connected to one router and having the same path length can be represented by one logical node. In order to show this, FIG. 5 shows a logical node existing at one point of the lattice in a state where a plurality of squares are overlapped. The logical nodes are represented at regular intervals regardless of the physical distance.
As a result of following the above rule, the
図6は、ノード間接続装置としてルータの代わりにネットワークスイッチ46を介して複数のサーバ42が格子状に接続されたサーバ群60を有する格子型コンピュータシステム70の構成を示す。図1の構成と同様に、複数のサーバ42(図6では三台)がネットワークインタフェースを介して一台のスイッチ46に接続され、スイッチ46は隣接する別のスイッチ46と複数列複数行(図6では二行三列)の格子を形成するように配置されている。これら格子状に配列されたスイッチ46の全てと通信可能なように、ネットワーク32に接続された別のルータ34が設けられている。記憶装置36は、図1で説明したものと同一である。
FIG. 6 shows a configuration of a lattice-
ルータを用いない格子型コンピュータシステム70のようなネットワークスイッチのみによるノード間接続では、経路制御ができない。そのため、実際の伝送経路が見かけ上の経路よりも冗長になる場合があり、図4、図5で示したようにホップ数から単純に経路長を定義することができない。しかしこの場合でも、いくつかのスイッチで仮想的なネットワークグループであるVLANを構成することにより、伝送経路に制約をかけることができる。
Path control is not possible with inter-node connections using only network switches such as the lattice-
例えば図6では、左側のスイッチ群と右側のスイッチ群がそれぞれVLAN1、VLAN2を構成している。中央の二つのスイッチはVLAN1、VLAN2の両方に属し、VLANを越えるパケットについては、ネットワークスイッチの機能を利用してブリッジする。VLANの概念は周知であるのでこれ以上の説明は省略する。 For example, in FIG. 6, the left switch group and the right switch group form VLAN1 and VLAN2, respectively. The two central switches belong to both VLAN1 and VLAN2, and packets exceeding the VLAN are bridged using the network switch function. Since the concept of VLAN is well known, further explanation is omitted.
このように、ネットワークスイッチによりVLANが構成されていることを条件とすれば、上述のルータの場合と同様に、格子型コンピュータシステムを構成するノード間に経路長を定義して論理ノードによる格子モデルを作成することができる。 As described above, if the VLAN is configured by the network switch, a lattice model by logical nodes is defined by defining a path length between nodes constituting the lattice type computer system as in the case of the router described above. Can be created.
図7は、図6に示した格子型コンピュータシステム70について、図中左上に位置するハッチングをかけたサーバからのホップ数を示す図である。図4と同様にサーバ42は正方形で表され、正方形の内部の数字がホップ数を表す。「S」はスイッチ46を表す。スイッチ間の接続は太線で、スイッチとサーバ間の接続は細線で描かれている。図8は、ノード間経路長を使用して図6の物理ノードを論理ノードにまとめて作成した格子モデルを示す。図5と同様に、サーバを表す正方形の内部にはホップ数から1を減じた値である経路長が示される。図6の格子型コンピュータシステム70は二行三列の論理ノードから構成される格子モデルに帰着され、ノード間の最大経路長は「3」となる。
FIG. 7 is a diagram showing the number of hops from the hatched server located at the upper left in the figure for the lattice
図9は、二つ以上のネットワークインタフェースを備える複数のサーバ42がルータ40を介して格子状に接続されたサーバ群80を有する格子型コンピュータシステム90の構成を示す。図示するように、四台一組のサーバ42がそれぞれ左右に位置するルータ40に接続されている。左列のルータ群82は、最上列から最下列まで順序通りにルータ間が接続されているが、右列のルータ群84は、左列のルータ群82と異なる経路でルータ間が接続されている。このような構成によって、左右いずれかのルータ群のうちの一台に障害が発生した場合でも、サーバ42間でルータを越えた通信が可能になるようなバックアップシステムを構築している。
FIG. 9 shows a configuration of a lattice
図9の構成では、左右のルータ群のいずれに対してもノード間経路長を定義することができるが、バックアップ用の一方のルータ群は無視し、正常時に専ら使用されるルータ群、図9の例では左列のルータ群82を基準としてノード間経路長を定義すればよい。
In the configuration of FIG. 9, the inter-node path length can be defined for both the left and right router groups, but one router group for backup is ignored, and the router group used exclusively during normal operation. In the example, the inter-node path length may be defined based on the
図10は、図9に示した格子型コンピュータシステム90について、図中最上段に位置するハッチングをかけたサーバから左列のルータ群82を経由したときのホップ数を示す図である。図4と同様にサーバ42は正方形で表され、正方形の内部の数字がホップ数を表す。「R」はルータ40を表す。図10に示した例では、同じ行に配置されたノードの経路長は同一の値になる。図11は、ノード間経路長を利用して図9の物理ノードを論理ノードにまとめて作成した格子モデルを示す。図11の例では、論理ノードが直列に接続された格子モデルとなる。
FIG. 10 is a diagram showing the number of hops when the lattice
上述した三種類の格子型コンピュータシステムでは、一つのルータの下に配置されるサーバ(ノード)の数は全てのルータについて同一であったが、サーバの数が異なっている場合でもノード間経路長は同様に定義される。 In the three types of grid computer systems described above, the number of servers (nodes) arranged under one router is the same for all routers, but the path length between nodes is different even when the number of servers is different. Are defined similarly.
例えば図12において、各格子にルータ(図示せず)が一台ずつ配置され、正方形の数で表された複数のサーバが対応する位置のルータに接続され、さらにルータが格子状に接続されている格子型コンピュータシステムを考える。
図13は、図12の格子型コンピュータシステムを論理ノードによる格子モデルで表したものであり、正方形内の数字はノード間の経路長を表す。正方形の右上にある数字は「多重度」であり、各論理ノードに対応する物理ノード、つまりサーバの数を表している。例えば、図12の左上隅に位置する格子には六台のサーバが配置されているから、対応する論理ノードの多重度は「6」となる。この多重度は各論理ノードの処理能力の目安となり、後述する同時実行されるジョブの配置の際に使用される。
For example, in FIG. 12, one router (not shown) is arranged in each grid, a plurality of servers represented by the number of squares are connected to routers at corresponding positions, and the routers are connected in a grid. Consider a grid computer system.
FIG. 13 shows the lattice computer system of FIG. 12 in a lattice model with logical nodes, and the numbers in the squares represent the path lengths between the nodes. The number in the upper right corner of the square is “multiplicity” and represents the number of physical nodes corresponding to each logical node, that is, the number of servers. For example, since six servers are arranged in the lattice located in the upper left corner of FIG. 12, the multiplicity of the corresponding logical node is “6”. This multiplicity serves as a measure of the processing capacity of each logical node, and is used when arranging jobs to be executed simultaneously, which will be described later.
なお、多重度は、同一性能のサーバが使用されているシステムにおいては単に各論理ノードに対応する物理ノードつまりサーバの数であってよいが、処理性能の異なるサーバが配置されている場合には、性能差を考慮して多重度を算出することが好ましい。 The multiplicity may be simply the number of physical nodes, that is, the number of servers corresponding to each logical node in a system in which servers with the same performance are used, but when servers with different processing performance are arranged. It is preferable to calculate the multiplicity in consideration of the performance difference.
以上説明したように、本実施形態では、種々の形態の格子型コンピュータシステムについて、論理ノードによる格子モデルを作成することができる。 As described above, in this embodiment, a lattice model using logical nodes can be created for various types of lattice computer systems.
図14は、上述した論理ノードによる格子モデル作成のフローチャートである。
まず、格子型コンピュータシステム内で親となるノードを決定する(S20)。この親ノードは所与であってもよいし、システムの起動時にシステムの中で最も早く立ち上がったノードが親ノードとなり、そのことを他のノードに対して宣言するようにしてもよい。続いて、親ノードは、記憶装置36からスーパースケジューラを実現するためのプログラムをロードして実行する(S22)。親ノードのスーパースケジューラは、自身を起点とした他のノードとのノード間経路長、各論理ノードの多重度を上述した手順にしたがって決定する(S24)。決定された経路長を使用して、格子型コンピュータシステムの格子モデルを作成する(S26)。
FIG. 14 is a flowchart for creating a lattice model using the logical nodes described above.
First, a parent node in the lattice computer system is determined (S20). This parent node may be given, or the node that rises earliest in the system when the system is started may become the parent node, and this may be declared to other nodes. Subsequently, the parent node loads and executes a program for realizing the super scheduler from the storage device 36 (S22). The super scheduler of the parent node determines the inter-node path length with other nodes starting from itself and the multiplicity of each logical node according to the above-described procedure (S24). A lattice model of the lattice type computer system is created using the determined path length (S26).
2.子ノードの展開と方形領域の確保
続いて、親ノードのスーパースケジューラは、格子型コンピュータシステムで処理するサービス要求を分析して、それぞれのサービス要求の入口となる子ノードを格子モデル内で分散して配置し、さらにそれぞれのサービス要求に割り当てるべき複数のノードを格子モデル内に確保する。以下では、この一連の処理について説明する。
2. Next, the super-scheduler of the parent node analyzes the service requests to be processed by the grid computer system and distributes the child nodes that serve as entry points for each service request within the grid model. Furthermore, a plurality of nodes to be allocated to each service request are secured in the lattice model. Hereinafter, this series of processes will be described.
格子型コンピュータシステム内に、証券会社の発注システム、旅行会社の予約システム等の複数のシステムを構築するような場合を想定する。複数のシステムを構築する場合、それぞれのシステムを担当するべき子ノードがあることが望ましい。そこで、親ノードのスーパースケジューラは、格子モデル内に必要な数の子ノードを配置する。 A case is assumed in which a plurality of systems such as an ordering system of a securities company and a reservation system of a travel company are built in a lattice type computer system. When constructing a plurality of systems, it is desirable to have child nodes that are responsible for each system. Therefore, the super scheduler of the parent node arranges the necessary number of child nodes in the lattice model.
しかしながら、一般にグリッドコンピューティングにおいて、一つの親ノードの近傍に子ノードを集中して配置するようにすると、以下のような問題を生じる。 However, in general, in grid computing, if child nodes are concentrated and arranged near one parent node, the following problems occur.
まず、親ノードと子ノードの間の通信をする際に、他の子ノードを経由しなければならない状況が頻繁に生じるようになる。この場合、親ノードと子ノードの間での通信速度が、経由する子ノードにおける処理能力の影響を受けるだけでなく、子ノードがタスク処理に費やすべきリソースが通信により奪われてしまう。
また、格子モデル内で子ノードから孫ノードを展開しようとするとき、近傍に位置する別の子ノードによって先に確保されたノードにより孫ノードの展開が阻まれてしまい、必要な処理リソースを確保できなくなる可能性が高い。
First, when communication is performed between a parent node and a child node, a situation in which it is necessary to go through another child node frequently occurs. In this case, the communication speed between the parent node and the child node is not only influenced by the processing capability of the child node that is passed through, but also the resources that the child node should spend on task processing are lost.
In addition, when trying to expand a grandchild node from a child node in the lattice model, the expansion of the grandchild node is hindered by a node previously secured by another child node located in the vicinity, and necessary processing resources are secured. There is a high possibility that it will not be possible.
一方で、親ノードと子ノードとの経路長が離れ過ぎてしまうと通信に時間がかかるようになり、ノードの障害発生時にモデルを再構成する際などに、速やかに正常状態に復帰することができなくなるという不都合も生じる。 On the other hand, if the path length between the parent node and the child node is too far away, it will take time to communicate, and when the model is reconfigured when a node failure occurs, it can quickly return to the normal state. There is also the inconvenience of being unable to do so.
そこで本実施形態では、物理的な計算モデルを親ノードと子ノードの間、および子ノード間に適用することで、格子モデル内での子ノードの適切な分散配置を実現するようにした。 Therefore, in the present embodiment, the physical calculation model is applied between the parent node and the child node and between the child nodes, thereby realizing an appropriate distributed arrangement of the child nodes in the lattice model.
なお、本明細書においては、格子モデルの中で、スーパースケジューラを有し格子型コンピュータシステム全体のタスク割り当てを監視するノードを「親ノード」、スケジューラを有しサービス要求に応じて一定範囲内でのタスク割り当てを監視するノードを「子ノード」、子ノードのスケジューラによりタスク割り当てがなされるノードを「孫ノード」と呼ぶことにする。 In this specification, in the lattice model, a node having a super scheduler and monitoring task assignment of the entire lattice computer system is a “parent node”, and has a scheduler within a certain range according to a service request. A node that monitors task assignment is called a “child node”, and a node to which task assignment is performed by the child node scheduler is called a “grandchild node”.
物理的な計算モデルを利用した、格子モデル内での子ノードの分散配置の処理を、図15の実施例を参照して具体的に説明する。図15(a)は、ノード間の経路長を利用して作成された格子モデルの例を示す。この格子モデルは、四行四列の論理ノードから構成されるとする。なお、より多数のノードを含む格子モデルであってもよいことは言うまでもない。 The processing of the distributed arrangement of child nodes in the lattice model using a physical calculation model will be specifically described with reference to the embodiment of FIG. FIG. 15A shows an example of a lattice model created using the path length between nodes. It is assumed that this lattice model is composed of logical nodes of 4 rows and 4 columns. Needless to say, the lattice model may include a larger number of nodes.
親ノードのスーパースケジューラは、格子型コンピュータシステムに与えられる複数タスクからなるサービス要求を分析する。具体的には、システムに到来するサービス要求の種類や同時トランザクション数などの見積もりにしたがって、必要リソース量を推定する。続いて、スーパースケジューラは、この推定にしたがって、サービス要求毎に必要となるノード数を格子モデル内に確保しサービス要求処理の起点となる子ノードの数を決定する。
本実施例では、5つの子ノードが必要と決定されたものとする。また、親ノードは格子モデルの左下に位置する論理ノードに配置されるとする。
The super scheduler of the parent node analyzes a service request composed of a plurality of tasks given to the lattice type computer system. Specifically, the required resource amount is estimated according to an estimate such as the type of service request coming to the system and the number of concurrent transactions. Subsequently, according to this estimation, the super scheduler secures the number of nodes required for each service request in the lattice model and determines the number of child nodes that are the starting points of the service request processing.
In this embodiment, it is assumed that five child nodes are determined to be necessary. Further, it is assumed that the parent node is arranged at a logical node located at the lower left of the lattice model.
続いて、スーパースケジューラは、格子モデル内での子ノードの配置を決定するために、親ノードを原点とする二次元座標を設定する。そして、この二次元座標上で、格子モデルを構成する各論理ノードの座標を便宜的に設定する。その様子を図15(b)に示す。この図では、x座標が0、x1、x2、x3、y座標が0、y1、y2、y3となる格子状に論理ノードが配置される。なお、二次元座標における論理ノード間の距離は、全て同一にする。 Subsequently, the super scheduler sets two-dimensional coordinates with the parent node as the origin in order to determine the arrangement of the child nodes in the lattice model. Then, the coordinates of each logical node constituting the lattice model are set for convenience on the two-dimensional coordinates. This is shown in FIG. In this figure, the logical nodes are arranged in a lattice shape in which the x coordinate is 0, x 1 , x 2 , x 3 , and the y coordinate is 0, y 1 , y 2 , y 3 . Note that all the distances between the logical nodes in the two-dimensional coordinates are the same.
スーパースケジューラは、二次元座標上の任意の座標に、必要数(本実施例では5つ)の子ノードに対応する点を配置する。但し、子ノードが格子モデル内に収まるように、格子モデルの最も外側に位置する論理ノードのx座標(図15(b)ではx3)、y座標(同y3)以下であることが好ましい。 The super scheduler arranges points corresponding to the necessary number (five in this embodiment) of child nodes at arbitrary coordinates on the two-dimensional coordinates. However, it is preferable that the x coordinate (x 3 in FIG. 15B) and y coordinate (y 3 ) or less of the logical node located on the outermost side of the lattice model so that the child node fits in the lattice model. .
次に、親ノードのスーパースケジューラは、親ノードと子ノードとの間、および子ノード同士の間に、以下の式(1)にしたがって擬似的な引力Fsを定義するとともに、式(2)にしたがって擬似的な斥力Frを定義する(図16を参照)。以下では、式(1)、(2)を合わせて「引力・斥力モデル」と呼ぶこともある。
Fs=−Cs・d−6・・・(1)
Fr=Cr・d−12・・・(2)
なお、この定義式については、竹本信雄、フックの法則はなぜ成り立つか、[online]、1990年9月1日、[2006年1月24日検索]、インターネット<URL:http://www008.upp.so-net.ne.jp/takemoto/hooke.htm>に開示されている。
Next, the super scheduler of the parent node defines a pseudo attractive force Fs according to the following equation (1) between the parent node and the child node and between the child nodes, and the equation (2) Therefore, a pseudo repulsive force Fr is defined (see FIG. 16). Hereinafter, the expressions (1) and (2) may be collectively referred to as “attraction / repulsion model”.
Fs = −Cs · d −6 (1)
Fr = Cr · d −12 (2)
Regarding this definition, Nobuo Takemoto, why Hook's law holds, [online], September 1, 1990, [Search January 24, 2006], Internet <URL: http: // www008. upp.so-net.ne.jp/takemoto/hooke.htm>.
ここで「d」は、図15(b)に示す二次元座標上でのノード間のユークリッド距離であり、初期値は任意であってよい。また、Cs、Crは係数である。この係数は、親ノードと子ノード間の通信量に応じて決定されることが好ましい。つまり、親ノードと子ノードとが離れ過ぎていると、一部のノードに障害が発生したときに親ノードと子ノード間で通信がしにくくなるという問題があり、親ノードと子ノードとが近接し過ぎていると後述する子ノード毎の領域確保が困難になる。そのため、これらを考慮して経験的に係数を定めるか、または繰り返し処理により最適値を見つけ出すようにする。 Here, “d” is the Euclidean distance between the nodes on the two-dimensional coordinates shown in FIG. 15B, and the initial value may be arbitrary. Cs and Cr are coefficients. This coefficient is preferably determined according to the amount of communication between the parent node and the child node. In other words, if the parent node and the child node are too far apart, there is a problem that communication between the parent node and the child node becomes difficult when a failure occurs in some nodes. If they are too close together, it will be difficult to secure an area for each child node described later. Therefore, the coefficients are determined empirically in consideration of these, or the optimum value is found by iterative processing.
スーパースケジューラは、引力・斥力モデルにしたがって各ノードに働く疑似引力、疑似斥力の合計を計算し、その計算結果にしたがって子ノードを二次元座標内で移動させる計算を繰り返し実行する。そして、親ノードおよび子ノードが最も安定する座標上での位置を決定し、そのときの親ノードと子ノードの間、および子ノード間のユークリッド距離を算出する。但し、繰り返し計算中に、各子ノードの座標が格子モデルの外側に飛び出さないように、x座標とy座標の上限値および下限値が定められているものとする。 The super scheduler calculates the total of the pseudo attractive force and the pseudo repulsive force acting on each node according to the attractive force / repulsive force model, and repeatedly executes a calculation for moving the child node within the two-dimensional coordinates according to the calculation result. Then, the position on the coordinate where the parent node and the child node are most stable is determined, and the Euclidean distance between the parent node and the child node and between the child nodes at that time is calculated. However, it is assumed that the upper limit value and the lower limit value of the x coordinate and the y coordinate are determined so that the coordinates of each child node do not jump out of the lattice model during the repeated calculation.
このように、各ノードに働く力の計算と移動を繰り返すことによって、全てのノードについての最適なユークリッド距離を算出する。図15(c)は、繰り返し計算により各ノードが安定したときの二次元座標上での子ノードの位置を示す。なお、各ノードの位置は必ずしも一つに定まるとは限らないので、スーパースケジューラは、予め設定された繰り返し数を実行したら、上記のユークリッド距離の算出を終了するようにしてもよい。 In this way, the optimum Euclidean distance for all nodes is calculated by repeating the calculation and movement of the force acting on each node. FIG. 15C shows the position of the child node on the two-dimensional coordinate when each node is stabilized by repeated calculation. Note that since the position of each node is not necessarily fixed to one, the super scheduler may end the calculation of the Euclidean distance after executing a preset number of repetitions.
引力・斥力モデルを適用して親ノード、子ノードの座標上での位置が決定されると、親ノードのスーパースケジューラは、子ノードを二次元座標上で最も近い論理ノードに割り当てる。一例として、位置決定後の一つの子ノードの座標と、格子モデルの全ての論理ノードとの間のユークリッド距離を算出し、このユークリッド距離が最小になる座標を有する論理ノードにその子ノードを配置すると決定する。この処理を全ての子ノードについて繰り返す。図15(c)中の矢印は、各子ノードの最寄りの論理ノードを表している。図15(d)は、子ノードを最も近い論理ノードに配置した結果を示す。 When the position of the parent node and the child node on the coordinates is determined by applying the attractive force / repulsive force model, the super scheduler of the parent node assigns the child node to the closest logical node on the two-dimensional coordinates. As an example, calculating the Euclidean distance between the coordinates of one child node after position determination and all the logical nodes of the lattice model, and placing the child node on the logical node having the coordinates that minimize the Euclidean distance decide. This process is repeated for all child nodes. An arrow in FIG. 15C represents a logical node nearest to each child node. FIG. 15 (d) shows the result of placing child nodes in the closest logical node.
この引力・斥力モデルを適用することによって、子ノードを親ノードの近傍に偏らせず、格子モデルの全体にわたり配置することが可能になる。子ノード間に定義された斥力のために子ノードの周りに空きノードが確保されるため、後述する孫ノードの割り当てがしやすくなり、ひいては処理効率のアップにつながる。 By applying this attractive force / repulsive force model, the child nodes can be arranged over the entire lattice model without being biased in the vicinity of the parent node. Since empty nodes are secured around the child nodes due to the repulsion defined between the child nodes, it becomes easy to assign grandchild nodes, which will be described later, which leads to an increase in processing efficiency.
なお、図15の実施例では、親ノードを格子モデルの左下隅に配置したが、親ノードはこの位置に限られるわけではない。実際、格子モデルの中央付近に配置した方が、子ノードの周りに空きノードを確保しやすいという点では好ましい。
また、図15の実施例では、全てのノード間に疑似引力と疑似斥力を定義したが、一部のノード間にのみ定義してもよい。例えば、全ての親子ノード間に疑似引力と疑似斥力を定義するが、子ノード間では近隣の3つまでの子ノードとの間にのみ疑似引力と疑似斥力を定義するようにしてもよい。
In the embodiment of FIG. 15, the parent node is arranged at the lower left corner of the lattice model, but the parent node is not limited to this position. Actually, it is preferable to arrange it near the center of the lattice model because it is easy to secure empty nodes around the child nodes.
In the embodiment of FIG. 15, the pseudo attractive force and the pseudo repulsive force are defined between all the nodes, but may be defined only between some nodes. For example, a pseudo attractive force and a pseudo repulsive force are defined between all parent-child nodes, but a pseudo attractive force and a pseudo repulsive force may be defined only between up to three neighboring child nodes between child nodes.
上述のユークリッド距離を算出する際に、格子モデルのサイズに比べて子ノードのばらつきが小さく、親ノードの周囲にかたまり過ぎてしまう事態も起こりえる。このような場合は、式(1)、(2)における係数Cs、Crを適宜修正することで、子ノードを格子モデル内で広く分散させて配置することができる。したがって、スーパースケジューラは、格子モデルの大きさを考慮して係数Cs、Crを設定することが好ましい。 When calculating the above-mentioned Euclidean distance, the variation of child nodes is small compared to the size of the lattice model, and there may be a situation where the nodes are too clumped around the parent node. In such a case, the child nodes can be widely distributed in the lattice model by appropriately modifying the coefficients Cs and Cr in the equations (1) and (2). Therefore, the super scheduler preferably sets the coefficients Cs and Cr in consideration of the size of the lattice model.
格子モデル内で子ノードを分散させて配置するための別の方法として、ばねモデルを利用することもできる。これは、上述の引力・斥力モデルを近似したものとも言える。ばねモデルは、例えば次式で表すように、全体のエネルギーEによって定義される。 As another method for distributing child nodes in the lattice model, a spring model can be used. This can be said to be an approximation of the above-mentioned attractive force / repulsive force model. The spring model is defined by the total energy E, for example, as represented by the following equation.
このばねモデルでは、全てのノード同士がばねでつながれており、各ばねは格子モデルにおけるノード間の経路長の最小値である「1」の自然長を持つものと想定する。上式において、nはノードの個数、kvivjはノードvi、vj間を結ぶばねのばね定数、lvivjはそのばねの自然長、dvivjはノードvi、vj間のユークリッド距離である。 In this spring model, it is assumed that all nodes are connected by springs, and each spring has a natural length of “1” which is the minimum value of the path length between nodes in the lattice model. In the above equation, n is the number of nodes, k vivj is the spring constant of the spring connecting the nodes v i and v j , l vivj is the natural length of the spring, d vivj is the Euclidean distance between the nodes v i and v j is there.
親ノードのスーパースケジューラは、上記式で算出されたエネルギーEをノードviのユークリッド距離dviで微分し、エネルギーEが最小になるユークリッド距離を算出する。算出したユークリッド距離を用いてエネルギーEを再計算し、続いて、別のノードviのユークリッド距離dviで微分し、エネルギーEが最小になるユークリッド距離を算出し、エネルギーEを再計算する。この計算を繰り返すことによって、全てのノードについての最適なユークリッド距離を算出する。 The super scheduler of the parent node differentiates the energy E calculated by the above formula with the Euclidean distance d vi of the node v i and calculates the Euclidean distance that minimizes the energy E. And recalculates the energy E by using the calculated Euclidean distance, subsequently, differentiated by the Euclidean distance d vi of another node v i, to calculate the Euclidean distances energy E is minimized, recalculating the energy E. By repeating this calculation, the optimum Euclidean distance for all nodes is calculated.
スーパースケジューラは、算出されたユークリッド距離にしたがって、親ノードと子ノードを図15(b)に示すような二次元座標に配置する。子ノードを二次元座標上で最も近い論理ノードに割り当てる手順は、上述の引力・斥力モデルの場合と同様である。このばねモデルは計算式が簡単なことから、引力・斥力モデルと比べて計算が速いという利点がある。 The super scheduler arranges the parent node and the child node in two-dimensional coordinates as shown in FIG. 15B according to the calculated Euclidean distance. The procedure for assigning the child node to the closest logical node on the two-dimensional coordinate is the same as in the case of the above-described attractive force / repulsive force model. Since this spring model has a simple calculation formula, it has the advantage that the calculation is faster than the attractive force / repulsive force model.
なお、親ノードのスーパースケジューラには、格子全体のリソースを管理し、新たに発生したサービス要求に対応するノードを格子モデル内に確保する必要があるとき、その起点となる子ノードを格子モデル内のいずれの位置に配置するかを決定するという役割もある。
この場合、ばねモデルであれば、新たに子ノードを追加して格子モデル内での配置を決定する場合には、格子モデルに配置済みの子ノードについては座標上での位置を固定しておき、新たに追加した子ノードと配置済みの子ノードおよび親ノードとを繋ぐばねのみを設定するようにする。こうすると、新たに設定されたばねのみについてエネルギーEを求め、上記計算を繰り返すことによって、新たに追加された子ノードの格子モデル内での配置を決定することができる。
The super scheduler of the parent node manages the resources of the entire grid, and when it is necessary to secure a node corresponding to a newly generated service request in the grid model, the child node that is the starting point is stored in the grid model. It also has a role of determining which position to be placed.
In this case, in the case of a spring model, when a child node is newly added and the arrangement in the lattice model is determined, the position on the coordinates of the child node already arranged in the lattice model is fixed. Only the spring that connects the newly added child node to the arranged child node and the parent node is set. In this way, the energy E is obtained only for the newly set spring and the above calculation is repeated, whereby the arrangement of the newly added child node in the lattice model can be determined.
以上のようにして子ノードを格子モデル内の論理ノードに展開させた後、子ノードを構成する物理ノードに対して、子ノードに割り当てられるサービス要求に含まれるタスクを孫ノードに割り当てるためのスケジューラが記憶装置36から送信され、物理ノード上で実行される。子ノードのスケジューラは、それぞれ自らが必要とするリソースすなわちノード数を親ノードのスーパースケジューラに通知する。スーパースケジューラは、子ノード同士によるシステム内でのリソースの奪い合いによる影響を低下させるべく、子ノードがそれぞれ自由に使用できるノードを含む方形領域を格子モデル内に確保する。
After the child node is expanded to the logical node in the lattice model as described above, the scheduler for allocating the task included in the service request assigned to the child node to the grandchild node for the physical node constituting the child node Is transmitted from the
この格子モデル内での領域確保の方法として、本実施形態では、幾何学的な平面分割アルゴリズムである「平安京ビュー」を使用する。なお平安京ビューについては、伊藤貴之、小山田耕二、平安京ビュー〜階層型データを碁盤状に配置する視覚化手法、[online]、[2005/12/20検索]、インターネット<URL:htttp://online.vsj.or.jp/vc9/5-6.pdf>に説明されている。なお、平安京ビュー以外の他の既知の平面分割アルゴリズムを適用してもよいことは言うまでもない。 In this embodiment, “Heiankyo View” which is a geometric plane division algorithm is used as a method for securing an area in the lattice model. For Heiankyo View, Takayuki Ito, Koji Koyamada, Heiankyo View-Visualization method of arranging hierarchical data in a grid pattern, [online], [2005/12/20 search], Internet <URL: htttp: // online .vsj.or.jp / vc9 / 5-6.pdf>. Needless to say, other known plane division algorithms other than Heiankyo view may be applied.
スーパースケジューラで実行される平安京ビューのアルゴリズムは、以下のような手順となる。
まず、子ノードの格子ブロック内での位置を特定する。子ノードが格子モデル内で左からs番目、上からt番目にあるとき、これを[s,t]と表現する。この点を中心にして格子モデル内で渦巻き状に周囲のノードを確保していく。例えば、反時計回りに探索するとすれば、[s−1,t−1]〜[s−1,t+1]を探索し、続いて[s−1,t+1]〜[s+1,t+1]を探索し・・という順に、格子モデル内のノードを確保していく。
The Heiankyo view algorithm executed by the super scheduler is as follows.
First, the position of the child node in the lattice block is specified. When the child node is sth from the left and tth from the top in the lattice model, this is expressed as [s, t]. Around this point, surrounding nodes are secured spirally in the lattice model. For example, if searching in a counterclockwise direction, [s-1, t-1] to [s-1, t + 1] are searched, and then [s-1, t + 1] to [s + 1, t + 1] are searched.・ ・ The nodes in the lattice model are secured in the order of.
この処理を、複数の子ノードそれぞれについて実行していき、他の子ノードが既に獲得した領域に遭遇したら、その方向の探索を終了する。また、子ノードから通知された必要なリソース分のノード数を確保したら、格子モデル内での探索を終了し、余分なリソースを取らないようにする。この方法によって、子ノードで処理するサービス要求に必要な数のノード数を過不足なく同時に格子モデル内で確保することができる。
なお、方形領域内で縦または横方向に連続するノード数は、子ノードに割り当てられるサービス要求のジョブを構成するタスクの並列度および直列度に基づいて決定されることが好ましい。
This process is performed for each of a plurality of child nodes. When an area already acquired by another child node is encountered, the search in that direction is terminated. Further, when the number of nodes for the necessary resources notified from the child nodes is secured, the search in the lattice model is terminated so as not to take extra resources. By this method, the number of nodes required for the service request processed by the child node can be secured in the lattice model at the same time without excess or deficiency.
Note that the number of nodes that are continuous in the vertical or horizontal direction in the rectangular area is preferably determined based on the parallelism and seriality of tasks constituting the service request job assigned to the child node.
続いて、方形領域の再配置を試みる。上述の引力・斥力モデルまたはばねモデルによって配置された子ノード間の距離は、この計算を実行するときに存在していたノードの配置状況によって決まってくる。そのため、ジョブが要求する方形領域を確保するのに適したノード配置になっていない場合がありうる。したがって、一旦確保された方形領域の位置を調整する必要がある。
[s,t]番目の子ノードについて確保された方形領域の4つの頂点のx座標値をxs,xs+1、y座標値をys,ys+1と表したとき、この方形領域の配置を[xs,xs+1,ys,ys+1]と記述することにする。そして、各方形領域について、以下の二つの候補位置に、他の子ノードについて確保された方形領域と一つ以上の辺を接するように配置可能であるか否かを検証する。
候補位置1:[(xs−w),(xs+1−w),ys,ys+1]
候補位置2:[xs,xs+1,(ys−w),(ys+1−w)]
但し、wは1以上の整数であり、1から開始して、他の方形領域の辺と接するか格子領域の境界に至るまで一つずつ増加させていくものとする。
この処理を全ての子ノードについて確保された方形領域に対して実行することで、再配置処理が実現される。なお、再配置処理は実行しなくてもよい。
Subsequently, relocation of the square area is attempted. The distance between the child nodes arranged by the above-described attractive force / repulsive force model or spring model is determined by the arrangement situation of the nodes existing when this calculation is executed. For this reason, there may be a case where the node arrangement is not suitable for securing the rectangular area requested by the job. Therefore, it is necessary to adjust the position of the rectangular area once secured.
When the x coordinate values of the four vertices of the square area reserved for the [s, t] -th child node are expressed as x s , x s + 1 , and the y coordinate values are expressed as y s , y s + 1 , the arrangement of the rectangular areas is expressed as follows. [X s , x s + 1 , y s , y s + 1 ] will be described. Then, for each rectangular area, it is verified whether or not it can be arranged at one of the following two candidate positions so that one or more sides are in contact with the rectangular area reserved for other child nodes.
Candidate position 1: [(x s −w), (x s + 1 −w), y s , y s + 1 ]
Candidate position 2: [x s, x s + 1, (y s -w), (y s + 1 -w)]
However, w is an integer of 1 or more, and starts from 1 and increases by 1 until it touches the side of another rectangular area or reaches the boundary of the lattice area.
By executing this process on the square area reserved for all child nodes, the rearrangement process is realized. Note that the rearrangement process need not be executed.
図17は、図15のように配置された子ノード毎に、方形領域を確保する処理を実行した結果の一例を示す。図中の楕円が親ノードを、円が子ノードを表し、太枠の四角形は、各子ノードの必要リソースに応じて格子モデルから切り取られた方形領域を表す。方形領域内のノードは、その領域に対応するサービス要求のタスクのみを処理し、他の方形領域に対応するサービス要求のタスク処理を担当することはない。 FIG. 17 shows an example of a result of executing a process for securing a rectangular area for each child node arranged as shown in FIG. In the figure, an ellipse represents a parent node, a circle represents a child node, and a thick square represents a rectangular region cut out from the lattice model according to the necessary resources of each child node. The nodes in the square area process only the task of the service request corresponding to the area, and do not take charge of the task processing of the service request corresponding to the other square area.
子ノード毎の方形領域が確保されると、子ノードのスケジューラは、方形領域内でのタスク割り当てを担当する。タスクが割り当てられる孫ノードは、方形領域内でのみ展開される。例えば、図17において中央に位置する方形領域において、三角形の目印が付された孫ノードはこの方形領域内にのみ存在する。 When a square area for each child node is secured, the scheduler of the child node is responsible for task assignment in the square area. The grandchild node to which the task is assigned is expanded only in the rectangular area. For example, in the square area located at the center in FIG. 17, a grandchild node with a triangular mark exists only in this square area.
方形領域内での孫ノードの展開が終わった後、方形領域内のノードをまとめた仮想ノードのアドレスのみを、サービス要求のエントリポイントとすることが好ましい。スーパースケジューラは、エントリポイントにサービス要求が到来するように仮想ノードのアドレスをユーザアプリケーションに対して公開する。この後は、サービス要求は親ノードを介することなく各方形領域の仮想ノードに直接送信されるようになる。これ以降、障害の発生やブロックの組み替えの要求などが発生しない限り、親ノードのスーパースケジューラは休止する。 After the expansion of the grandchild node in the square area, it is preferable to use only the address of the virtual node that is a group of the nodes in the square area as the entry point of the service request. The super scheduler discloses the address of the virtual node to the user application so that a service request arrives at the entry point. Thereafter, the service request is directly transmitted to the virtual node in each square area without going through the parent node. Thereafter, the super-scheduler of the parent node is paused unless a failure occurs or a block rearrangement request occurs.
図18は、子ノードの展開と方形領域の確保のプロセスを示すフローチャートである。
まず、親ノードのスーパースケジューラは、格子型コンピュータシステムに与えられる複数タスクからなるサービス要求を分析する(S30)。具体的には、システムに到来するサービス要求の数や必要リソース量の見積もりをする。この見積もりは、システムのオペレータによって手作業で入力されてもよいし、過去の統計に基づいてスーパースケジューラが算出してもよい。続いて、スーパースケジューラは、この見積もりにしたがって、サービス要求毎に必要となるノード数を格子モデル内に確保するための基点となる子ノードの数を決定する(S32)。スーパースケジューラは、決定された数の子ノードと親ノードとの間に上述した引力・斥力モデル、または、ばねモデルを適用し、親ノードと子ノードの二次元座標上での位置を計算し(S34)、座標上で最も近い論理ノードに子ノードを配置する(S36)。
FIG. 18 is a flowchart showing a process of expanding a child node and securing a rectangular area.
First, the super scheduler of the parent node analyzes a service request made up of a plurality of tasks given to the grid computer system (S30). Specifically, the number of service requests coming to the system and the required resource amount are estimated. This estimate may be input manually by the system operator or may be calculated by the super scheduler based on past statistics. Subsequently, the super scheduler determines the number of child nodes that are base points for securing the number of nodes required for each service request in the lattice model according to this estimate (S32). The super scheduler applies the above-described attractive force / repulsive force model or spring model between the determined number of child nodes and the parent node, and calculates the positions of the parent node and the child nodes on the two-dimensional coordinates (S34). A child node is placed at the closest logical node on the coordinates (S36).
子ノードの配置が決定すると、記憶装置から子ノードに送信されたスケジューラが、自身のサービス要求を処理するために必要なリソースをスーパースケジューラに通知する(S38)。スーパースケジューラは、平面分割アルゴリズムを使用して、各子ノードに割り当てられるサービス要求に必要となるノード数を含む方形領域を格子モデル内に確保する(S40)。方形領域が確定すると、スーパースケジューラはノードブロック毎に仮想ノードを定義し(S42)、システム外部にはこの仮想ノードのネットワークアドレスのみを通知する。この後、子ノードのスケジューラがブロック内で孫ノードにタスクを割り当て、記憶装置に格納されているタスク処理のためのプログラムが孫ノードに送信される。 When the placement of the child node is determined, the scheduler transmitted from the storage device to the child node notifies the superscheduler of resources necessary for processing its service request (S38). The super scheduler uses the plane division algorithm to secure a square area including the number of nodes required for the service request assigned to each child node in the lattice model (S40). When the rectangular area is determined, the super scheduler defines a virtual node for each node block (S42), and notifies only the network address of this virtual node to the outside of the system. Thereafter, the scheduler of the child node assigns a task to the grandchild node in the block, and a program for task processing stored in the storage device is transmitted to the grandchild node.
図19は、スーパースケジューラのプログラムが実行される親ノードの機能ブロック図である。この場合の親ノードは、格子型コンピュータシステムにおいてタスクを割り当てる装置とみなすことができる。
親ノードは、モデル作成部102、サービス要求分析部104、子ノード数決定部106、子ノード配置部108、および方形領域確保部110を含む。モデル作成部102は、格子型コンピュータシステムにおける複数のノードとノード間接続装置の接続形態にしたがって論理ノードからなる格子モデルを作成する。サービス要求分析部104は、格子型コンピュータシステムに与えられる、複数タスクからなるサービス要求を分析する。
子ノード数決定部106は、サービス要求の分析結果にしたがって、サービス要求毎に必要となるノード数を格子モデル内に確保するための基点となる子ノードの数を決定する。子ノード配置部108は、決定された数の子ノードを格子モデル内に分散して配置する。方形領域確保部110は、子ノードを格子モデル内に分散配置した後に、各子ノードに割り当てられるサービス要求に必要となるノード数を含む方形領域を格子モデル内に確保する。
FIG. 19 is a functional block diagram of the parent node on which the super scheduler program is executed. In this case, the parent node can be regarded as a device for assigning tasks in the lattice computer system.
The parent node includes a
The child node
以上のように、本実施形態によれば、サービス要求の分析に基づいて子ノード数を決定し、サービス要求の処理に必要なリソースにしたがって、引力・斥力モデルやばねモデルといった物理的な概念、平安京ビューといった幾何学的なアルゴリズムを利用することで子ノード毎に方形領域を格子モデル内に確保するようにした。そして、方形領域内でのタスク割り当ては子ノードの有するスケジューラで実施するようにした。 As described above, according to the present embodiment, the number of child nodes is determined based on the service request analysis, and according to the resources necessary for processing the service request, physical concepts such as an attractive force / repulsive force model and a spring model, By using a geometric algorithm such as Heiankyo View, a square area is secured in the lattice model for each child node. Task assignment in the square area is performed by the scheduler of the child node.
したがって、格子型コンピュータシステムに互いに関連のない複数のサービス要求が与えられたときに、各サービス要求に必要な処理量に応じたノードを確保することができる。また、サービス要求の処理中に子ノードと孫ノードとの間には多数のトランザクション処理が発生するが、本実施形態では、同一のサービス要求に対するタスクのプログラムコードが、子ノード、孫ノードとして方形領域内の連続するノードにまとまって配置されるので、子ノードと孫ノード間の通信効率を高めることができ、処理時間の短縮に寄与する。
また、サービス要求毎に確保される方形領域内でのみ孫ノードが展開されるので、一部のサービス要求によって格子型コンピュータシステムのリソースが独占的に消費されてしまうような事態を回避することができる。さらに、サービス要求毎に別個の方形領域が確保されるため、各サービス要求に対応するシステム間でデータ処理の干渉が発生することがない。
Therefore, when a plurality of service requests that are not related to each other are given to the lattice type computer system, it is possible to secure a node corresponding to the processing amount required for each service request. In addition, a large number of transaction processes occur between child nodes and grandchild nodes during service request processing. In this embodiment, the task program code for the same service request is squared as a child node and grandchild node. Since they are arranged together in continuous nodes in the area, the communication efficiency between the child node and the grandchild node can be increased, which contributes to shortening of the processing time.
In addition, since the grandchild node is expanded only in the rectangular area secured for each service request, it is possible to avoid a situation in which the resources of the grid computer system are consumed exclusively by some service requests. it can. Furthermore, since a separate rectangular area is secured for each service request, there is no data processing interference between systems corresponding to each service request.
引力・斥力モデルを適用した場合には、親ノードと子ノードとの間に定義される引力のために、親ノードと子ノードとが格子モデル内で離れ過ぎることがない。そのため、親子ノード間の通信オーバーヘッドが削減される。さらに、親子ノード間の通信距離が短いことで、例えばシステム内のノードで障害が発生し、障害ノードを除いて格子モデルの作成や方形領域の確保を速やかに再実行することができる。また、子ノード同士の間に定義される斥力によって、子ノード同士がある程度離れて配置されているため、子ノードの周りに孫ノードを密集して配置することができる。さらに、あるサービス要求におけるジョブの同時実行数が増加して方形領域に含まれるノード数を増加させることが比較的容易に実現できるため、拡張性の点から好ましい。 When the attractive force / repulsive force model is applied, the parent node and the child node are not separated too much in the lattice model due to the attractive force defined between the parent node and the child node. Therefore, communication overhead between the parent and child nodes is reduced. Further, since the communication distance between the parent and child nodes is short, for example, a failure occurs in a node in the system, and creation of a lattice model and securing of a rectangular area can be quickly re-executed except for the failed node. In addition, since the child nodes are arranged to some extent apart by the repulsive force defined between the child nodes, the grandchild nodes can be densely arranged around the child nodes. Furthermore, it is preferable from the viewpoint of extensibility because it is relatively easy to increase the number of simultaneous executions of jobs in a service request and increase the number of nodes included in the rectangular area.
3.サービス要求の特性を考慮したタスク割り当て
子ノードのスケジューラは、ウェブブラウザを使用したユーザのインタラクティブ操作から生じるサービス要求の特性、すなわちタスクの並列度、直列度、同時実行ジョブ数に基づいて、それぞれの方形領域内でタスクをノードに割り当てる処理を実行する。
3. Task assignment taking into account the characteristics of service requests The scheduler of child nodes is based on the characteristics of service requests resulting from user interaction using a web browser, that is, the degree of parallelism, seriality, and number of jobs executed simultaneously. Executes the process of assigning tasks to nodes in the rectangular area.
ここで、タスクの並列度、直列度、同時実行ジョブ数について説明する。
インターネットを介した証券取引を例に取ると、ある顧客が異なる銘柄を同時に売買するとき、各銘柄のトランザクションは独立なので、タスクは並列に実行できる。このように、サービス要求において他のタスクの開始や終了を待たずに実行できるタスクの数を、本明細書では「並列度」と呼ぶ。このような並列的なタスクは、方形領域を構成する論理ノードの行数を増加させたり、論理ノードの多重度を増加させることで、サービス要求の増大に対応させることができる。
Here, the parallelism and seriality of tasks, and the number of simultaneously executed jobs will be described.
Taking securities trading over the Internet as an example, when a customer buys and sells different issues at the same time, the transactions for each issue are independent, so the tasks can be executed in parallel. In this specification, the number of tasks that can be executed without waiting for the start or end of another task in the service request is referred to as “parallelism”. Such a parallel task can cope with an increase in service requests by increasing the number of logical nodes constituting the rectangular area or increasing the multiplicity of logical nodes.
より複雑なサービス要求の場合には、各タスク間の依存関係を維持するフロー制御が必要になる。例えば、インターネット経由で海外旅行の予約を受け付けるウェブサイトでは、「希望旅程の入力」に続いて「交通機関の予約」「宿泊施設の予約」などの処理を逐次実行していく必要がある。このような場合、後の処理を実行するためには前の処理の情報を引き継ぐ必要がある。このようなタスク間に依存関係があり直列的に処理する必要のあるタスクの連続数を、本明細書では「直列度」と呼ぶ。直列的なタスクは実行結果が処理順序に依存するため、方形領域内で連続するノードを確保することが必要になる。 In the case of more complex service requests, it is necessary to perform flow control that maintains the dependency between each task. For example, in a website that accepts reservations for overseas travel via the Internet, it is necessary to sequentially execute processes such as “reservation for transportation facilities” and “reservation for accommodation facilities” following “input of desired itinerary”. In such a case, it is necessary to take over the information of the previous process in order to execute the subsequent process. Such a continuous number of tasks that have a dependency relationship between tasks and need to be processed in series is referred to as “seriality” in this specification. Since execution results of serial tasks depend on the processing order, it is necessary to secure continuous nodes in the rectangular area.
ジョブ同時実行数は、複数のユーザから同じサービス要求が発行された場合のサービス要求の数のことを言う。上述の例で言えば、証券取引サイトで複数のユーザが売買サービスをほぼ同時に要求する状況や、旅行予約サイトで複数のユーザが予約サービスをほぼ同時に要求する状況で、同時にサービスが提供される数に相当する。タスク並列度がユーザの待ち時間に影響するだけであるのに対して、ジョブ同時実行数は外部的要因によってもたらされる。ジョブ同時実行数の上限に達したシステムでは、ユーザからのサービス要求が拒絶されることもある。 The number of simultaneous job executions refers to the number of service requests when the same service request is issued from a plurality of users. In the above example, the number of services provided at the same time in a situation where multiple users request a trading service almost simultaneously at a securities trading site, or a situation where multiple users request a booking service almost simultaneously at a travel reservation site. It corresponds to. While the degree of task parallelism only affects user latency, the number of concurrent job executions is caused by external factors. In a system that has reached the upper limit of the number of jobs simultaneously executed, a service request from a user may be rejected.
子ノードのスケジューラは、方形領域に対応するサービス要求のジョブを構成するタスクの並列度および直列度に基づいて、方形領域内の他の論理ノードにタスクを処理するためのタスク処理プログラムを割り当てる。具体的には、並列して実行可能なタスクを処理するためのタスク処理プログラムを、方形領域内で並列する論理ノードにそれぞれ割り当てる。依存関係のある直列的なタスク群については、方形領域内で直列するタスク数と同数の隣接する論理ノードを選択して、それぞれのタスクを処理するタスク処理プログラムを割り当てる。 The scheduler of the child node assigns a task processing program for processing the task to other logical nodes in the square area based on the parallelism and seriality of the tasks constituting the service request job corresponding to the square area. Specifically, a task processing program for processing tasks that can be executed in parallel is assigned to each logical node that is parallel in the rectangular area. For serial task groups having a dependency relationship, the same number of adjacent logical nodes as the number of tasks in series in the square area are selected, and a task processing program for processing each task is assigned.
図20は、タスクの直列度と並列度にしたがったタスク割り当ての具体例を説明する図である。図中、斜線を付した丸は並列的なタスクを、白丸は直列的なタスクを表す。この例ではタスク並列度が「3」、タスクの直列度が「3」となる。所与の三行四列の方形領域において、並列的な3つのタスクは同じ列の連続する論理ノードに割り当てられ、直列的な3つのタスクは同じ行の連続する論理ノードに割り当てられる。 FIG. 20 is a diagram illustrating a specific example of task assignment according to the degree of parallelism and the degree of parallelism of tasks. In the figure, hatched circles indicate parallel tasks, and white circles indicate serial tasks. In this example, the task parallelism is “3”, and the task seriality is “3”. In a given three-row, four-column square region, three tasks in parallel are assigned to successive logical nodes in the same column, and three tasks in series are assigned to successive logical nodes in the same row.
このように、直列的なタスクの処理手順にしたがって、方形領域内で例えば左右方向に連続する論理ノードを割り当て、また並列的なタスクを上下方向に連続する論理ノードに割り当てるようにすると、タスクの処理が一方向に流れるようになり、方形領域内でデータの流れる方向が交差することがない。そのため、データが交差する論理ノードにおける処理負荷が突出して増大するような事態を回避することができる。これは、あるノードが故障したときにそのノードを除いてタスクの再割り当てをするときにも有利である。 In this way, according to the processing procedure of serial tasks, for example, logical nodes that are continuous in the left-right direction are assigned in the square area, and parallel tasks are assigned to logical nodes that are continuous in the vertical direction. The process flows in one direction, and the direction of data flow does not intersect within the square area. For this reason, it is possible to avoid a situation in which the processing load at the logical node where data intersects protrudes and increases. This is also advantageous when tasks are reassigned except for a node that fails.
図21は、ジョブ同時実行数を考慮したタスク割り当てを説明する図である。複数のジョブを同時実行するときは、(タスク並列度×ジョブ同時実行数)にしたがって論理ノードの割り当てを行う。同時実行される二つのジョブのタスク並列度がそれぞれ「2」である場合は、図示するように、それぞれ二行の論理ノードが割り当てられる。 FIG. 21 is a diagram illustrating task assignment in consideration of the number of simultaneous job executions. When a plurality of jobs are executed simultaneously, logical nodes are assigned according to (task parallelism × number of jobs executed simultaneously). When the degree of task parallelism of two jobs executed simultaneously is “2”, two rows of logical nodes are allocated as shown in the figure.
なお、子ノードのスケジューラは、依存関係の存在する直列的なタスク群に含まれるいずれかのタスクが並列して実行可能な場合に、タスク群に含まれる各タスクの並列度の平均値を使用して、方形領域内で割り当てるべきノード数を決定してもよい。 Note that the scheduler of the child node uses the average value of the parallelism of each task included in the task group when any task included in the serial task group having the dependency relationship can be executed in parallel. Thus, the number of nodes to be allocated in the rectangular area may be determined.
また、論理ノードの多重度がジョブ同時実行数以上の場合には、同じ論理ノードで複数のジョブを実行することができる。例えば、図21の例において、左上隅の二つの論理ノードの多重度がそれぞれ「3」「5」であった場合、これらの最小値はジョブの同時実行数2以上であるため、同時実行されるジョブそれぞれに二行の論理ノードを割り当てることなく、上二行の論理ノードのみでジョブを同時実行するようにしてもよい。 If the multiplicity of logical nodes is equal to or greater than the number of jobs executed simultaneously, a plurality of jobs can be executed on the same logical node. For example, in the example of FIG. 21, when the multiplicity of the two logical nodes in the upper left corner is “3” and “5”, these minimum values are equal to or greater than 2 in the simultaneous execution of jobs, so Instead of assigning two rows of logical nodes to each job, the jobs may be executed simultaneously only with the upper two rows of logical nodes.
図22は、タスクの直列度と並列度を考慮したタスク割り当てプロセスのフローチャートである。まず、各子ノードがスケジューラを記憶装置からロードする(S50)。子ノードは自身が処理するサービス要求を分析し(S52)、タスクの並列度、直列度、ジョブ同時実行数にしたがって、対応するタスク処理プログラムを方形領域内の他のノードに割り当てる(S54)。これらが孫ノードになる。タスク処理プログラムのコードは、実際のサービス要求が到着する前に記憶装置から孫ノードに送信されて、メモリに読み込まれた後、サービス要求に備えてメモリ上に待機する。 FIG. 22 is a flowchart of a task assignment process that takes into account the seriality and parallelism of tasks. First, each child node loads the scheduler from the storage device (S50). The child node analyzes the service request that it processes (S52), and assigns the corresponding task processing program to other nodes in the square area according to the parallelism, seriality, and job concurrent execution number of the task (S54). These become grandchild nodes. The code of the task processing program is transmitted from the storage device to the grandchild node before the actual service request arrives, and is read into the memory, and then waits on the memory for the service request.
子ノードのスケジューラは、タスク割り当ての結果を親ノードのスーパースケジューラに通知する(S56)。親ノードは各方形領域の仮想ノードのアドレスを外部からの要求に対して与え、以降のサービス要求は仮想ノードに直接供給される。そして、孫ノードにおいて、タスク処理プログラムによりタスクの処理が実行される(S58)。 The scheduler of the child node notifies the result of task assignment to the super scheduler of the parent node (S56). The parent node gives the address of the virtual node in each square area to the request from the outside, and the subsequent service request is directly supplied to the virtual node. Then, in the grandchild node, task processing is executed by the task processing program (S58).
従来のグリッドコンピューティングにおけるタスク割り当てでは、ノード間の接続形態を考慮していなかった。これに対し本実施形態では、ノード間に経路長の概念を導入して、格子型コンピュータシステムを構成する物理ノードを論理ノードに置き換えた格子モデルを作成することによって、サービス要求の特性を考慮した効率的なタスク割り当てが可能になる。 In task assignment in conventional grid computing, the connection form between nodes has not been considered. In contrast, in the present embodiment, the concept of path length is introduced between nodes, and the characteristics of service requests are taken into account by creating a lattice model in which physical nodes constituting a lattice computer system are replaced with logical nodes. Efficient task assignment is possible.
本実施形態は、スーパースケジューラを有する親ノードと、スケジューラを有する子ノードとが含まれる格子型コンピュータシステムと捉えることも可能である。この場合、親ノードのスーパースケジューラは、格子型コンピュータシステムにおける複数のノードとノード間接続装置の接続形態にしたがって論理ノードからなる格子モデルを作成する機能と、格子型コンピュータシステムに与えられる、複数タスクからなるサービス要求を分析する機能と、サービス要求の分析結果にしたがって、サービス要求毎に必要となるノード数を格子モデル内に確保するための基点となる子ノードの数を決定する機能と、決定された数の子ノードを格子モデル内に分散して配置する機能と、子ノードを格子モデル内に分散配置した後に、各子ノードに割り当てられるサービス要求に必要となるノード数を含む方形領域を格子モデル内に確保する機能と、を含む。また、子ノードのスケジューラは、該子ノードのために確保された方形領域内において、対応するサービス要求のジョブを構成するタスクの並列度および直列度に基づいて、方形領域内の他のノードにタスクを処理するためのタスク処理プログラムを割り当てる機能を含む。 This embodiment can also be regarded as a lattice type computer system including a parent node having a super scheduler and a child node having a scheduler. In this case, the super scheduler of the parent node has a function of creating a lattice model composed of logical nodes according to the connection form of a plurality of nodes and inter-node connection devices in the lattice computer system, and a plurality of tasks given to the lattice computer system. A function for analyzing service requests, and a function for determining the number of child nodes that serve as a base point for securing the number of nodes required for each service request in the lattice model according to the result of service request analysis. A grid model that has a function to distribute the specified number of child nodes in a lattice model and a square area that includes the number of nodes required for service requests assigned to each child node after the child nodes are distributed in the lattice model. And a function to be secured within. In addition, the scheduler of the child node transfers the other nodes in the square area based on the parallelism and seriality of the tasks constituting the corresponding service request job in the square area reserved for the child node. A function for assigning a task processing program for processing a task is included.
また、本実施形態は、親ノードで実行されるスーパースケジューラプログラムと、子ノードで実行されるスケジューラプログラムと、孫ノードで実行されるタスク処理プログラムとから構成されると捉えることも可能である。この場合の各種プログラムは、格子型コンピュータシステム内の複数のノードからアクセス可能な記憶装置から、スーパースケジューラまたはスケジューラの指令に応じて必要なノードに送信される。これによって、格子型コンピュータシステム内のいずれのノードも、親ノード、子ノード、孫ノードの全てに対応することができる。 Further, the present embodiment can also be understood as being composed of a super scheduler program executed on the parent node, a scheduler program executed on the child node, and a task processing program executed on the grandchild node. Various programs in this case are transmitted from a storage device accessible from a plurality of nodes in the lattice type computer system to a necessary node in accordance with a super scheduler or scheduler command. As a result, any node in the grid computer system can correspond to all of the parent node, child node, and grandchild node.
以上、本発明をいくつかの実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例がありうること、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。 The present invention has been described based on some embodiments. Those skilled in the art will understand that these embodiments are exemplifications, and that there may be various modifications to the combinations of the respective constituent elements and processing processes, and such modifications are also within the scope of the present invention. By the way.
請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。 It should also be understood by those skilled in the art that the functions to be fulfilled by the constituent elements described in the claims are realized by the individual functional blocks shown in the present embodiment or their linkage.
12 CPU、 14 メモリ、 16 記憶装置、 18 ネットワークインタフェース、 20 バス、 30、60、80 サーバ群、 32 ネットワーク、 34 ルータ、 36 記憶装置、 40 ルータ、 42 サーバ、 46 ネットワークスイッチ、 50、70、90 格子型コンピュータシステム、 102 モデル作成部、 104 サービス要求分析部、 106 子ノード数決定部、 108 子ノード配置部、 110 方形領域確保部。 12 CPU, 14 memory, 16 storage device, 18 network interface, 20 bus, 30, 60, 80 server group, 32 network, 34 router, 36 storage device, 40 router, 42 server, 46 network switch, 50, 70, 90 Lattice type computer system, 102 model creation unit, 104 service request analysis unit, 106 child node number determination unit, 108 child node arrangement unit, 110 rectangular area securing unit.
Claims (6)
格子型コンピュータシステムにおける複数のノードとノード間接続装置の接続形態にしたがって作成された論理ノードからなる格子モデル内で、外部からなされる一つまたは複数のサービス要求の処理に必要なリソースにしたがって、サービス要求毎に一つ以上の論理ノードを含む方形領域が動的に確保されており、
サービス要求において他のタスクの開始または終了を待たずに実行できる並列して実行可能なタスクの数を並列度と、タスク間に依存関係があり直列的に処理する必要のあるタスクの連続数を直列度と定義するとき、
前記方形領域内のいずれかの論理ノードにおいて実行されるスケジューラが、前記並列して実行可能なタスクが割り当てられる論理ノードの並びと前記依存関係の存在するタスクが割り当てられる論理ノードの並びとが前記方形領域内で直交するように、並列して実行可能なタスクを処理するためのプログラムを前記方形領域内で前記並列度と同数の論理ノードにそれぞれ割り当てるとともに、依存関係の存在するタスクを処理するためのプログラムを前記方形領域内で前記直列度と同数の隣接するノードにそれぞれ割り当てることを特徴とする格子型コンピュータシステム。 In a lattice type computer system in which a plurality of nodes each including a processor are connected in a lattice shape,
In a lattice model composed of logical nodes created according to the connection form of a plurality of nodes and inter-node connection devices in a lattice type computer system, according to resources necessary for processing one or more service requests made from the outside , A square area containing one or more logical nodes is dynamically reserved for each service request ,
The number of tasks that can be executed in parallel without waiting for the start or end of other tasks in a service request, and the number of consecutive tasks that need to be processed in series due to dependencies between tasks. When defining the degree of series,
The scheduler executed in any one of the logical nodes in the rectangular region includes a sequence of logical nodes to which the tasks that can be executed in parallel are allocated and a sequence of logical nodes to which the tasks having the dependency relationship are allocated. A program for processing tasks that can be executed in parallel so as to be orthogonal in the rectangular area is assigned to the same number of logical nodes as the degree of parallelism in the rectangular area, and a task having a dependency relationship is processed. A lattice type computer system , wherein a program for allocating is assigned to the same number of adjacent nodes as the series degree in the rectangular area .
前記スケジューラは、並列して実行可能なタスクを処理するプログラムを割り当てるとき、前記多重度を参照することを特徴とする請求項1に記載の格子型コンピュータシステム。 Each logical node in the lattice model has a multiplicity determined based on the processing capability of the corresponding physical node,
The lattice type computer system according to claim 1 , wherein the scheduler refers to the multiplicity when allocating a program that processes tasks that can be executed in parallel.
前記記憶装置は請求項1ないし3のいずれかに記載のプログラムを格納し、前記スケジューラからの指令に応じて、前記プログラムを該当するノードに送信することを特徴とする格子型コンピュータシステム。 It further includes a storage device that is directly connected to each node and can be accessed without going through other nodes,
A lattice type computer system, wherein the storage device stores the program according to any one of claims 1 to 3 and transmits the program to a corresponding node in response to a command from the scheduler.
前記親ノードは、格子型コンピュータシステムにおける複数のノードとノード間接続装置の接続形態にしたがって論理ノードからなる格子モデルを作成し、外部からなされる一つまたは複数のサービス要求の処理に必要なリソースにしたがって、サービス要求毎に一つ以上の論理ノードを含む方形領域を前記格子モデル内で動的に確保するスーパースケジューラを有し、
前記子ノードは、前記方形領域内の他のノードにタスクを処理するためのプログラムを割り当てるスケジューラを有し、
サービス要求において他のタスクの開始または終了を待たずに実行できる並列して実行可能なタスクの数を並列度と、タスク間に依存関係があり直列的に処理する必要のあるタスクの連続数を直列度と定義するとき、
前記スケジューラが、前記並列して実行可能なタスクが割り当てられる論理ノードの並びと前記依存関係の存在するタスクが割り当てられる論理ノードの並びとが前記方形領域内で直交するように、並列して実行可能なタスクを処理するためのプログラムを前記方形領域内で前記並列度と同数の論理ノードにそれぞれ割り当てるとともに、依存関係の存在するタスクを処理するためのプログラムを前記方形領域内で前記直列度と同数の隣接するノードにそれぞれ割り当てることを特徴とする格子型コンピュータシステム。 In a grid type computer system in which a plurality of nodes each including a processor are connected in a grid pattern, the system has at least one parent node and a plurality of child nodes,
The parent node creates a grid model consisting of the logical node according to the connection form of a plurality of nodes and node connecting device in the lattice-type computer system, required to process one or more service requests are made from the outer portion According to the resource, having a super scheduler that dynamically secures a square area in the lattice model that includes one or more logical nodes for each service request ;
Child nodes have a scheduler for allocating a program for processing tasks to other nodes in the lateral shape region,
The number of tasks that can be executed in parallel without waiting for the start or end of other tasks in a service request, and the number of consecutive tasks that need to be processed in series due to dependencies between tasks. When defining the degree of series,
The scheduler executes in parallel such that the sequence of logical nodes to which the tasks that can be executed in parallel are allocated and the sequence of logical nodes to which the tasks having the dependency relationship are allocated are orthogonal in the rectangular region. A program for processing possible tasks is assigned to the same number of logical nodes as the degree of parallelism in the square area, and a program for processing a task having a dependency relationship is assigned to the serial degree in the square area. A lattice type computer system characterized by assigning to the same number of adjacent nodes .
格子型コンピュータシステムにおける複数のノードとノード間接続装置の接続形態にしたがって作成された論理ノードからなる格子モデル内で、外部からなされる一つまたは複数のサービス要求の処理に必要なリソースにしたがって、サービス要求毎に一つ以上の論理ノードを含む方形領域が動的に確保されており、
サービス要求において他のタスクの開始または終了を待たずに実行できる並列して実行可能なタスクの数を並列度と、タスク間に依存関係があり直列的に処理する必要のあるタスクの連続数を直列度と定義するとき、
前記並列して実行可能なタスクが割り当てられる論理ノードの並びと前記依存関係の存在するタスクが割り当てられる論理ノードの並びとが前記方形領域内で直交するように、並列して実行可能なタスクを処理するためのプログラムを前記方形領域内で前記並列度と同数の論理ノードにそれぞれ割り当てるとともに、依存関係の存在するタスクを処理するためのプログラムを前記方形領域内で前記直列度と同数の隣接するノードにそれぞれ割り当てる機能を発揮することを特徴とするタスク割り当てプログラム。 In a lattice type computer system in which a plurality of nodes each including a processor are connected in a lattice shape,
In a lattice model composed of logical nodes created according to the connection form of a plurality of nodes and inter-node connection devices in a lattice type computer system, according to resources necessary for processing one or more service requests made from the outside , A square area containing one or more logical nodes is dynamically reserved for each service request ,
The number of tasks that can be executed in parallel without waiting for the start or end of other tasks in a service request, and the number of consecutive tasks that need to be processed in series due to dependencies between tasks. When defining the degree of series,
Tasks that can be executed in parallel so that the sequence of logical nodes to which the tasks that can be executed in parallel are assigned and the sequence of logical nodes to which the tasks having the dependency relationship are assigned are orthogonal to each other in the rectangular region A program for processing is assigned to the same number of logical nodes as the degree of parallelism in the square area, and a program for processing a task having a dependency relationship is adjacent in the square area as many as the serial degree. A task assignment program characterized by demonstrating the function assigned to each node .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006025142A JP5007050B2 (en) | 2006-02-01 | 2006-02-01 | Lattice computer system, task assignment program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006025142A JP5007050B2 (en) | 2006-02-01 | 2006-02-01 | Lattice computer system, task assignment program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007206987A JP2007206987A (en) | 2007-08-16 |
JP5007050B2 true JP5007050B2 (en) | 2012-08-22 |
Family
ID=38486403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006025142A Expired - Fee Related JP5007050B2 (en) | 2006-02-01 | 2006-02-01 | Lattice computer system, task assignment program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5007050B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9787761B2 (en) | 2014-09-29 | 2017-10-10 | International Business Machines Corporation | Allocating physical nodes for processes in an execution plan |
US9832081B2 (en) | 2014-09-29 | 2017-11-28 | International Business Machines Corporation | Allocating physical nodes for processes in an execution plan |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5326308B2 (en) * | 2008-03-13 | 2013-10-30 | 日本電気株式会社 | Computer link method and system |
CN102105866B (en) * | 2009-05-25 | 2014-02-26 | 松下电器产业株式会社 | Multiprocessor system, multiprocessor control method, and multiprocessor integrated circuit |
JP5035708B2 (en) * | 2010-04-21 | 2012-09-26 | 日本電気株式会社 | Parallel computer system, job server, job scheduling method, and job scheduling program |
JP5429382B2 (en) * | 2010-08-10 | 2014-02-26 | 富士通株式会社 | Job management apparatus and job management method |
CN104156267B (en) | 2013-05-14 | 2017-10-10 | 华为技术有限公司 | Method for allocating tasks, task allocation apparatus and network-on-chip |
JP6191401B2 (en) | 2013-11-01 | 2017-09-06 | 富士通株式会社 | Parallel computer system, control device, control method for parallel computer system, and control program for control device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6367686A (en) * | 1986-09-09 | 1988-03-26 | Fujitsu Ltd | Parallel image generating and processing device |
JPH04253256A (en) * | 1991-01-29 | 1992-09-09 | Toshiba Corp | Parallel computers |
JP3522820B2 (en) * | 1994-03-15 | 2004-04-26 | 株式会社東芝 | Distributed processing system |
JP3308770B2 (en) * | 1994-07-22 | 2002-07-29 | 三菱電機株式会社 | Information processing apparatus and calculation method in information processing apparatus |
JPH09293057A (en) * | 1996-04-26 | 1997-11-11 | Nec Corp | Task allocation method in hierarchical structure type multiprocessor system |
JP3946393B2 (en) * | 1999-10-19 | 2007-07-18 | 株式会社東芝 | Parallel computer with hierarchical structure |
-
2006
- 2006-02-01 JP JP2006025142A patent/JP5007050B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9787761B2 (en) | 2014-09-29 | 2017-10-10 | International Business Machines Corporation | Allocating physical nodes for processes in an execution plan |
US9832081B2 (en) | 2014-09-29 | 2017-11-28 | International Business Machines Corporation | Allocating physical nodes for processes in an execution plan |
US10333800B2 (en) | 2014-09-29 | 2019-06-25 | International Business Machines Corporation | Allocating physical nodes for processes in an execution plan |
Also Published As
Publication number | Publication date |
---|---|
JP2007206987A (en) | 2007-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5007050B2 (en) | Lattice computer system, task assignment program | |
CN103534687B (en) | Extensible centralized dynamic resource distribution in a clustered data grid | |
US10069749B1 (en) | Method and apparatus for disaggregated overlays via application services profiles | |
US20080229320A1 (en) | Method, an apparatus and a system for controlling of parallel execution of services | |
EP2255286B1 (en) | Routing workloads and method thereof | |
JP2007140710A (en) | Task allocation method and task allocation device | |
WO2013107012A1 (en) | Task processing system and task processing method for distributed computation | |
CN102981929B (en) | The management method of disk mirroring and system | |
US20080250420A1 (en) | Jobstream Planner Considering Network Contention & Resource Availability | |
CN107038070B (en) | Parallel task scheduling method for sensing execution reliability in cloud environment | |
CN108021435B (en) | Cloud computing task flow scheduling method with fault tolerance capability based on deadline | |
JP5245711B2 (en) | Distributed data processing system, distributed data processing method, and distributed data processing program | |
KR101471749B1 (en) | Virtual machine allcoation of cloud service for fuzzy logic driven virtual machine resource evaluation apparatus and method | |
JP5121936B2 (en) | RESOURCE ALLOCATION DEVICE, RESOURCE ALLOCATION PROGRAM, RECORDING MEDIUM, AND RESOURCE ALLOCATION METHOD | |
Sudarsan et al. | ReSHAPE: A framework for dynamic resizing and scheduling of homogeneous applications in a parallel environment | |
JP2007206986A (en) | Scheduler program, grid computer system, and task allocating device | |
Aridor et al. | Resource allocation and utilization in the Blue Gene/L supercomputer | |
US20120059938A1 (en) | Dimension-ordered application placement in a multiprocessor computer | |
Gu et al. | Performance analysis and optimization of distributed workflows in heterogeneous network environments | |
Cao et al. | Distributed workflow mapping algorithm for maximized reliability under end-to-end delay constraint | |
Bey et al. | New tasks scheduling strategy for resources allocation in cloud computing environment | |
JP5577745B2 (en) | Cluster system, process allocation method, and program | |
Altameem et al. | An agent-based approach for dynamic adjustment of scheduled jobs in computational grids | |
JP7509234B2 (en) | Computational resource cluster management device, computational resource cluster management method, and computational resource cluster management program | |
JP2007265043A (en) | Scheduler program, server system, and scheduler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080908 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120116 |
|
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: 20120522 |
|
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: 20120528 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150601 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |