JP2009245362A - Automatic distribution system and method - Google Patents

Automatic distribution system and method Download PDF

Info

Publication number
JP2009245362A
JP2009245362A JP2008093729A JP2008093729A JP2009245362A JP 2009245362 A JP2009245362 A JP 2009245362A JP 2008093729 A JP2008093729 A JP 2008093729A JP 2008093729 A JP2008093729 A JP 2008093729A JP 2009245362 A JP2009245362 A JP 2009245362A
Authority
JP
Japan
Prior art keywords
functional modules
weighted graph
graph
automatic
minimum cut
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008093729A
Other languages
Japanese (ja)
Other versions
JP5170408B2 (en
Inventor
Yutaka Omura
裕 大村
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008093729A priority Critical patent/JP5170408B2/en
Publication of JP2009245362A publication Critical patent/JP2009245362A/en
Application granted granted Critical
Publication of JP5170408B2 publication Critical patent/JP5170408B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an automatic distribution system or the like that automatically determines the arrangement optimum for functional modules on the basis of analysis information of a program, even if not determining the arrangement of all functional modules. <P>SOLUTION: The automatic distribution system includes a program analysis unit, graph creation unit, minimum cut calculation unit, and distribution system generation unit. The program analysis unit analyzes the program including the plurality of functional modules, and acquires a reference relationship between the functional modules and calling frequencies between the functional modules in program execution. The graph creation unit creates a weighted graph on the basis of the reference relationship and the number of times of calling. The minimum cut calculation unit calculates the minimum cut of the weighted graph. The distribution system generation unit automatically distributes a plurality of modules on the basis of the minimum cut. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は分散システムの分野に関し、特に分散システム上で機能モジュールの最適な配置をプログラムの解析による情報を元に自動的に行う自動分散化システム及び自動分散化方法に関する。   The present invention relates to the field of distributed systems, and more particularly to an automatic distributed system and an automatic distributed method that automatically perform optimal arrangement of functional modules on a distributed system based on information obtained by analyzing a program.

分散システムは、多くのソフトウェアアプリケーションに共通して用いられている。典型的な分散システムは、ネットワークを経由して通信を行う複数のホストから成り立つ。複数のホスト上では、各機能モジュールが稼動している。この機能モジュールはプログラムであり、開発者は複数のホストに、分散システムの機能を分離し、設計、開発を行う。分散システム稼動時には、複数のホスト上で稼動する各機能モジュールが、各々のホスト上でその機能を実現し、また、ネットワークを経由して、他のホストで稼動する機能モジュールを呼び出し、1つの分散システムとして稼動する。   Distributed systems are commonly used in many software applications. A typical distributed system consists of a plurality of hosts that communicate via a network. Each functional module is running on multiple hosts. This functional module is a program, and the developer separates the functions of the distributed system into a plurality of hosts, and performs design and development. When a distributed system is operating, each function module that operates on multiple hosts realizes that function on each host, and calls a function module that operates on another host via the network. Operates as a system.

図1は、分散システムの説明図である。図1において、二つのホスト10,12は、ネットワーク14によって接続されている。ホスト10では二つの機能モジュールA1,B1が稼動し、ホスト12では三つの機能モジュールC1,D1,E1が稼動している。ホスト10の機能モジュールA1は、ホスト12の機能モジュールD1を呼び出すことができ、ホスト12の機能モジュールD1は、ホスト10の機能モジュールA1を呼び出すことができる。また、ホスト10の機能モジュールB1は、ホスト12の機能モジュールC1を呼び出すことができ、ホスト12の機能モジュールC1は、ホスト10の機能モジュールB1を呼び出すことができる。   FIG. 1 is an explanatory diagram of a distributed system. In FIG. 1, two hosts 10 and 12 are connected by a network 14. In the host 10, two functional modules A1, B1 are operating, and in the host 12, three functional modules C1, D1, E1 are operating. The function module A1 of the host 10 can call the function module D1 of the host 12, and the function module D1 of the host 12 can call the function module A1 of the host 10. Further, the function module B1 of the host 10 can call the function module C1 of the host 12, and the function module C1 of the host 12 can call the function module B1 of the host 10.

しかし、一般に分散システムの開発には困難が伴う。特にネットワーク越しに機能モジュールを呼び出す部分の開発はツールによる支援等を用いて行ったりすることもあり、ツールの中には、そもそも開発者にネットワーク越しの呼び出しを考慮にいれさせない自動分散化システムが存在する(Addistant、J−Orchestra;特開平11−085519号公報(特許文献1参照))。   However, it is generally difficult to develop a distributed system. In particular, the development of the part that calls the functional module over the network may be performed using support by a tool, etc., and some of the tools include an automatic distributed system that does not allow the developer to consider calling over the network in the first place. Exists (Addistant, J-Orchestra; Japanese Patent Laid-Open No. 11-085519 (see Patent Document 1)).

特に開発者にネットワーク越しの呼び出しを考慮に入れさせない自動分散化システムについて、図2を参照して詳しく説明する。まず、開発者は単一ホスト20上で分散システムを稼動させることを想定して非分散システムを開発する。次に開発者は各機能モジュールA2〜E2をどのホストに配置させるかを決定する。この配置設定は機能モジュール名とホスト名との組み合わせを記憶するテーブル28を作成することにより行う。   In particular, an automatic decentralized system that does not allow developers to take into account calls over the network will be described in detail with reference to FIG. First, a developer develops a non-distributed system on the assumption that the distributed system is operated on a single host 20. Next, the developer determines on which host the function modules A2 to E2 are to be placed. This arrangement setting is performed by creating a table 28 that stores combinations of function module names and host names.

五つの機能モジュールA2〜E2からなる非分散システムと、テーブル28との入力を元に、自動分散化システム26は単一ホスト20上で稼動する非分散システムを分散システムへと変換する。図2の例では、テーブル28に基づいて、二つの機能モジュールA2,B2は、ホスト〔Host1〕 22上に配置し、三つの機能モジュールC2,D2,E2は、ホスト〔Host2〕 24上に配置している。本願においては、このような変換システムを自動分散化システムと呼ぶ。   Based on the input of the non-distributed system consisting of the five functional modules A2 to E2 and the table 28, the automatic distributed system 26 converts the non-distributed system operating on the single host 20 into a distributed system. In the example of FIG. 2, based on the table 28, the two functional modules A 2 and B 2 are arranged on the host [Host 1] 22, and the three functional modules C 2, D 2 and E 2 are arranged on the host [Host 2] 24. is doing. In this application, such a conversion system is called an automatic decentralized system.

図2に示す自動分散化システムの問題点は、全ての機能モジュールA2〜E2の配置を開発者が決定する必要があったという点である。その理由は、図2の自動分散システムは、機能モジュールの最適な配置を自動的に決定することを全く考慮に入れていないためである。   The problem with the automatic decentralization system shown in FIG. 2 is that the developer has to determine the arrangement of all functional modules A2 to E2. The reason is that the automatic distribution system of FIG. 2 does not take into account the automatic determination of the optimal arrangement of functional modules.

その他、分散システムの関連技術が、特開平03−182960号公報(特許文献2参照)に記載されている。この公知文献に記載された「並列計算機システム」の発明においては、グラフを用いて並列計算機システムを表現する。このグラフのノードは、プロセッサを表している。また、このグラフのエッジは、プロセッサ間の通信路を表している。   In addition, related technology of the distributed system is described in Japanese Patent Laid-Open No. 03-182960 (see Patent Document 2). In the invention of the “parallel computer system” described in this publicly known document, the parallel computer system is expressed using a graph. The nodes in this graph represent processors. Further, the edge of this graph represents a communication path between processors.

特開平06−075786号公報(特許文献3参照)には、「タスクスケジュリング方法」の発明が記載されている。この公知文献では、タスクスケジュールの優先順位を決定するために、通信コストを求めている(特許文献3図5,図6)。この通信コストは、〔通信の立ち上がりのオーバヘッド時間〕+〔データ転送量〕×〔単位データ量あたりのデータ転送時間〕によって計算される。   Japanese Patent Laying-Open No. 06-075786 (see Patent Document 3) describes the invention of “task scheduling method”. In this known document, a communication cost is obtained in order to determine the priority order of task schedules (Patent Document 3 FIGS. 5 and 6). This communication cost is calculated by [overhead time of communication start-up] + [data transfer amount] × [data transfer time per unit data amount].

特開平11−085519号公報Japanese Patent Laid-Open No. 11-085519 特開平03−182960号公報Japanese Patent Laid-Open No. 03-182960 特開平06−075786号公報Japanese Patent Application Laid-Open No. 06-075786

本発明の課題は、全ての機能モジュールの配置を決定しなくても、プログラムの解析情報を元に自動的に機能モジュールの最適な配置を決定する自動分散化システム及び自動分散化方法を提供することにある。   An object of the present invention is to provide an automatic decentralization system and an automatic decentralization method that automatically determine an optimal arrangement of functional modules based on program analysis information without determining the arrangement of all functional modules. There is.

本発明の一つの自動分散化システムは、プログラム解析部と、グラフ作成部と、最小カット計算部と、分散システム生成部とを具備する。プログラム解析部は、複数の機能モジュールを含むプログラムを解析し、機能モジュール間の参照関係及びプログラム実行時における機能モジュール間の呼び出し回数を取得する。グラフ作成部は、参照関係及び呼び出し回数に基づいて、重み付きグラフを作成する。最小カット計算部は、重み付きグラフの最小カットを計算する。分散システム生成部は、最小カットに基づいて、複数のモジュールを自動的に分散化する。   One automatic distributed system of the present invention includes a program analysis unit, a graph creation unit, a minimum cut calculation unit, and a distributed system generation unit. The program analysis unit analyzes a program including a plurality of functional modules, and obtains the reference relationship between the functional modules and the number of calls between the functional modules during program execution. The graph creation unit creates a weighted graph based on the reference relationship and the number of calls. The minimum cut calculation unit calculates the minimum cut of the weighted graph. The distribution system generation unit automatically distributes a plurality of modules based on the minimum cut.

本発明の別の一つの自動分散化方法は、取得することと、作成することと、計算することと、分散化することとを具備する。取得することにおいては、複数の機能モジュールを含むプログラムを解析し、機能モジュール間の参照関係及びプログラム実行時における機能モジュール間の呼び出し回数を取得する。作成することにおいては、参照関係及び呼び出し回数に基づいて、重み付きグラフを作成する。計算することにおいては、重み付きグラフの最小カットを計算する。分散化することにおいては、最小カットに基づいて、複数のモジュールを自動的に分散化する。   Another automatic decentralization method of the present invention comprises obtaining, creating, calculating, and decentralizing. In the acquisition, a program including a plurality of functional modules is analyzed, and the reference relationship between the functional modules and the number of calls between the functional modules at the time of program execution are acquired. In creating, a weighted graph is created based on the reference relationship and the number of calls. In the calculation, the minimum cut of the weighted graph is calculated. In the distribution, a plurality of modules are automatically distributed based on the minimum cut.

本発明によれば、開発者が全ての機能モジュールについて最適な配置を決定する必要がなくなる。その理由は、本発明が機能モジュールの最適な配置を自動的に決定するためである。   According to the present invention, it is not necessary for the developer to determine an optimal arrangement for all the functional modules. The reason is that the present invention automatically determines the optimal arrangement of functional modules.

本発明を実施するための最良の形態の一つについて、図面を参照して詳細に説明する。図3を参照して、本発明による一つの実施の形態における自動分散化システムの構成及び動作について説明する。本実施の形態における自動分散化システムは、プログラム解析部と、グラフ作成部と、最小カット計算部と、分散プログラム生成部とを備えている。   One of the best modes for carrying out the present invention will be described in detail with reference to the drawings. With reference to FIG. 3, the configuration and operation of an automatic decentralization system according to an embodiment of the present invention will be described. The automatic decentralization system in the present embodiment includes a program analysis unit, a graph creation unit, a minimum cut calculation unit, and a distributed program generation unit.

図3に示すように、本実施の形態における自動分散化システムは、まず、プログラム解析部によって、プログラムの解析を行う(S30)。プログラム解析部は、単一ホスト上で分散システムを稼動させることを想定した非分散のプログラムの解析を行う機能を有している。プログラム解析部は、機能モジュール間の参照関係およびプログラム実行時における各機能モジュールの呼び出し回数を取得する。解析対象は、ソースコードとすることもでき、また、バイナリコードとすることも、或いは、中間コードとすることもできる。   As shown in FIG. 3, in the automatic decentralization system according to the present embodiment, first, a program analysis unit analyzes a program (S30). The program analysis unit has a function of analyzing a non-distributed program assuming that a distributed system is operated on a single host. The program analysis unit obtains the reference relationship between the function modules and the number of times each function module is called during program execution. The analysis target can be a source code, a binary code, or an intermediate code.

本実施の形態における自動分散化システムは、次に、グラフ作成部によって、重み付きグラフの作成を行う(S32)。グラフ作成部は、プログラム解析部で得られた情報を元に、重み付きグラフを生成する機能を有している。この重み付きグラフの各ノードは、入力したプログラムに含まれる複数の機能モジュールのいずれかを表し、各エッジは機能モジュール間の参照関係を表す。さらに、重み付きグラフの各コストは、以下の式によって定義される。   Next, the automatic decentralization system according to the present embodiment creates a weighted graph by the graph creation unit (S32). The graph creation unit has a function of generating a weighted graph based on the information obtained by the program analysis unit. Each node of the weighted graph represents one of a plurality of functional modules included in the input program, and each edge represents a reference relationship between the functional modules. Further, each cost of the weighted graph is defined by the following equation.

〔コスト〕=α〔各機能モジュールへの呼び出し回数〕×β〔呼び出し時の引数のデータ量〕 [Cost] = α [Number of calls to each function module] x β [Amount of argument data when calling]

ここで、各機能モジュールへの呼び出し回数はプログラム解析部で得られる情報の一つであり、プログラムを実行した結果として取得することができる。また、呼び出し時の引数のデータ量は、その機能モジュールを呼び出す際に、呼び出し先の機能モジュールに渡すデータの総量である。それから、αおよびβは、自動分散化システムの利用者が設定可能な定数である。   Here, the number of calls to each functional module is one piece of information obtained by the program analysis unit, and can be obtained as a result of executing the program. The data amount of the argument at the time of calling is the total amount of data to be passed to the callee function module when the function module is called. Α and β are constants that can be set by the user of the automatic decentralized system.

本実施の形態における自動分散化システムは、続いて、最小カット計算部によって、最小カットの計算を行う(S34)。最小カット計算部は、グラフ作成部で作成されるグラフの最小カットを計算する機能を有する。但し、最小カット計算部は、配置設定の制約を与えられた場合には、その制約に従って、最小カットを計算できる。例えば、ユーザから、同一ホストに配置しないと指定された機能モジュールを、異なるホストに配置するようにする。このとき、それらの指定された機能モジュールは、同じ部分グラフに存在することはない。   In the automatic decentralization system in the present embodiment, the minimum cut calculation unit subsequently calculates the minimum cut (S34). The minimum cut calculation unit has a function of calculating the minimum cut of the graph created by the graph creation unit. However, the minimum cut calculation unit can calculate the minimum cut according to the restriction when the restriction of the arrangement setting is given. For example, a functional module designated by the user not to be placed on the same host is placed on a different host. At this time, those designated functional modules do not exist in the same subgraph.

本実施の形態における自動分散化システムは、最後に、分散システム生成部によって、分散プログラムへの変換を行う(S36)。分散システム生成部は、最小カット計算部で計算された部分グラフを元に、プログラムを分散システムに変換し、出力する。   In the automatic decentralization system in the present embodiment, finally, the distributed system generation unit performs conversion into a distributed program (S36). The distributed system generation unit converts the program into a distributed system based on the subgraph calculated by the minimum cut calculation unit, and outputs the converted system.

開発者が単一ホスト上で稼動させる非分散のプログラムを作成した場合を仮定する。理解を容易にするために、このプログラムは、図2の場合と同じく、複数の機能モジュールA2〜E2から成り立っているとする。実施例1における自動分散化システムは、複数の機能モジュールA2〜E2から成るプログラムを入力として、分散システム向けプログラムを自動生成する。   Assume that a developer has created a non-distributed program that runs on a single host. In order to facilitate understanding, it is assumed that this program is composed of a plurality of functional modules A2 to E2 as in the case of FIG. The automatic distributed system according to the first embodiment automatically generates a program for a distributed system with a program including a plurality of functional modules A2 to E2 as an input.

自動分散化システムが、入力としてプログラムを受け取ると、まず、プログラム解析部がプログラムの解析を行う。この解析により、プログラム解析部は、機能モジュールA2〜E2間の参照関係及び実行時の各機能モジュールの呼び出し回数を得る。次に、グラフ作成部が、その解析情報を元に、図4のような重み付きグラフを生成する。図4において、グラフのノードはプログラム上の機能モジュールA2〜E2を表し、グラフのエッジは各機能モジュールA2〜E2の呼び出し関係を表す。重み付きグラフの重みは、以下の式により定義されるコストであり、c1〜c4と計算されている。   When the automatic decentralization system receives a program as an input, first, the program analysis unit analyzes the program. By this analysis, the program analysis unit obtains the reference relationship between the function modules A2 to E2 and the number of calls of each function module at the time of execution. Next, the graph creation unit generates a weighted graph as shown in FIG. 4 based on the analysis information. In FIG. 4, the nodes of the graph represent functional modules A2 to E2 on the program, and the edges of the graph represent the calling relationship of the functional modules A2 to E2. The weight of the weighted graph is a cost defined by the following equation, and is calculated as c1 to c4.

〔コスト〕=Σα〔各機能モジュールへの呼び出し回数〕×β〔呼び出し時の引数のデータ量〕 [Cost] = Σα [Number of calls to each function module] × β [Amount of argument data when calling]

ここで、各機能モジュールA2〜E2への呼び出し回数は、プログラム解析部で得られた実行時情報であり、呼び出し時の引数のデータ量は、その機能モジュールを呼び出す際に呼び出し先の機能モジュールに渡すデータの総量である。また、αおよびβはユーザが設定可能な定数である。   Here, the number of calls to each of the function modules A2 to E2 is execution time information obtained by the program analysis unit, and the data amount of the argument at the time of the call is determined by the callee function module when the function module is called. This is the total amount of data to pass. Α and β are constants that can be set by the user.

例えば、図5のように、二つの機能モジュールA2、B2が互いに相手の機能モジュールB2、A2を呼び出しており、機能モジュールA2は、三つの機能f0、f1、f2を持ち、機能モジュールB2は、四つの機能f3、f4、f5、f6を持っていたとする。この場合、機能モジュールA2と、機能モジュールB2との間のコストは、数1のように計算される。   For example, as shown in FIG. 5, two function modules A2 and B2 call each other's function modules B2 and A2, and the function module A2 has three functions f0, f1 and f2, and the function module B2 Suppose that it has four functions f3, f4, f5, and f6. In this case, the cost between the functional module A2 and the functional module B2 is calculated as in Equation 1.

Figure 2009245362
Figure 2009245362

数1において、countとは、機能fiを呼び出す回数を計数する関数である。例えば、count(f0)は機能モジュールB2が機能モジュールA2の機能f0を呼び出す回数を意味する。また、sizeとは機能fiを呼び出す際に渡すデータの総量である。例えば、size(f0)は、機能モジュールB2が機能モジュールA2の機能f0を呼び出す際に渡すデータの総量を意味する。   In Equation 1, “count” is a function for counting the number of times of calling the function fi. For example, count (f0) means the number of times that the function module B2 calls the function f0 of the function module A2. Also, size is the total amount of data that is passed when calling the function fi. For example, size (f0) means the total amount of data that is passed when the function module B2 calls the function f0 of the function module A2.

続いて、最小カット計算部が、図4の重み付きグラフの最小カットを計算する。最後に、分散プログラム生成部が、計算された最小カットに基づいて、入力されたプログラムを分散プログラムに変換し、出力する。例えば、図2に示したものと同じような配置の分散化プログラムが出力される。   Subsequently, the minimum cut calculation unit calculates the minimum cut of the weighted graph of FIG. Finally, the distributed program generation unit converts the input program into a distributed program based on the calculated minimum cut and outputs it. For example, a distributed program having the same arrangement as that shown in FIG. 2 is output.

自動分散化システムには、配置設定の制約を与えることができる。図6は、配置設定の制約を記憶するテーブルを示す図である。図6において、テーブル60は、機能モジュール名とホスト名との組み合わせを記憶している。テーブル60の内容を参照すると、配置設定の制約は、機能モジュールA2は、ホスト〔HOST1〕に配置しなければいけないこと、機能モジュールE2は、ホスト〔HOST2〕に配置しなければいけないことを表している。   The automatic decentralization system can be given a restriction of arrangement setting. FIG. 6 is a diagram illustrating a table storing arrangement setting constraints. In FIG. 6, a table 60 stores combinations of functional module names and host names. Referring to the contents of the table 60, the arrangement setting constraint indicates that the functional module A2 must be arranged in the host [HOST1], and the functional module E2 must be arranged in the host [HOST2]. Yes.

自動分散化システムが、配置設定の制約を入力すると、最小カット計算部は、最小カットを計算するときに、配置設定の制約に従った計算を行う。配置設定の制約に矛盾するような部分グラフは認められないので、例えば、配置設定の制約として、図6のテーブルを入力した場合には、自動分散化システムは、機能モジュールA2と機能モジュールE2とを、同一の部分グラフに配置するようなカットを選択してはならないという制約に従う。   When the automatic decentralization system inputs a layout setting constraint, the minimum cut calculation unit performs a calculation according to the layout setting constraint when calculating the minimum cut. For example, when the table of FIG. 6 is input as the restriction of the arrangement setting, the automatic decentralization system can recognize the function module A2 and the function module E2. Are subject to the restriction that cuts that should be placed in the same subgraph must not be selected.

図1は、基本的な分散システムの説明図である。FIG. 1 is an explanatory diagram of a basic distributed system. 図2は、関連技術における自動分散化システムの説明図である。FIG. 2 is an explanatory diagram of an automatic decentralization system in the related art. 図3は、本実施の形態における自動分散化システムの動作を説明するフローチャートである。FIG. 3 is a flowchart for explaining the operation of the automatic decentralization system according to this embodiment. 図4は、重み付きグラフでモデル化したプログラムの説明図である。FIG. 4 is an explanatory diagram of a program modeled by a weighted graph. 図5は、コストの計算方法の説明図である。FIG. 5 is an explanatory diagram of a cost calculation method. 図6は、配置設定の制約を記憶するテーブルを示す図である。FIG. 6 is a diagram illustrating a table storing arrangement setting constraints.

符号の説明Explanation of symbols

10,12,20,22,24 ホスト
14 ネットワーク
26 自動分散化システム
28,60 テーブル
10, 12, 20, 22, 24 Host 14 Network 26 Automatic decentralized system 28, 60 Table

Claims (10)

複数の機能モジュールを含むプログラムを解析し、機能モジュール間の参照関係及びプログラム実行時における機能モジュール間の呼び出し回数を取得するプログラム解析手段と、
前記参照関係及び前記呼び出し回数に基づいて、重み付きグラフを作成するグラフ作成手段と、
前記重み付きグラフの最小カットを計算する最小カット計算手段と、
前記最小カットに基づいて、前記複数のモジュールを自動的に分散化する分散システム生成手段とを具備する
自動分散化システム。
A program analysis means for analyzing a program including a plurality of functional modules and obtaining a reference relationship between the functional modules and the number of calls between the functional modules during program execution;
Graph creating means for creating a weighted graph based on the reference relationship and the number of calls;
A minimum cut calculating means for calculating a minimum cut of the weighted graph;
An automatic distribution system comprising distribution system generation means for automatically distributing the plurality of modules based on the minimum cut.
前記グラフ作成手段は、
前記重み付きグラフのノードを機能モジュールとし、前記重み付きグラフのエッジを機能モジュール間の参照関係として、前記重み付きグラフの作成を行う
請求項1記載の自動分散化システム。
The graph creating means includes
The automatic decentralized system according to claim 1, wherein the weighted graph is created using a node of the weighted graph as a functional module and an edge of the weighted graph as a reference relationship between the functional modules.
前記グラフ作成手段は、
前記重み付きグラフの重みを、前記呼び出し回数に比例するコストに基づいて計算し、前記重み付きグラフの作成を行う
請求項2記載の自動分散化システム。
The graph creating means includes
The automatic decentralized system according to claim 2, wherein the weighted graph is calculated based on a cost proportional to the number of calls, and the weighted graph is created.
前記グラフ作成手段は、
前記重みを、機能モジュールを呼び出す時の引数のデータ量にも比例するコストに基づいて計算し、前記重み付きグラフの作成を行う
請求項3記載の自動分散化システム。
The graph creating means includes
The automatic decentralized system according to claim 3, wherein the weight is calculated based on a cost that is also proportional to an amount of data of an argument when the function module is called, and the weighted graph is created.
前記グラフ作成手段は、
α及びβを定数とした場合に、前記コストを、
〔コスト〕=α〔機能モジュール間の呼び出し回数〕×β〔呼び出し時の引数のデータ量〕
の数式によって定義される値とする
請求項4記載の自動分散化システム。
The graph creating means includes
When α and β are constants, the cost is
[Cost] = α [Number of calls between functional modules] x β [Amount of argument data at the time of call]
The automatic decentralization system according to claim 4, wherein the value is defined by the mathematical formula.
前記最小カット計算手段は、
配置設定の制約を与えられた場合には、その制約に従って、前記最小カットを計算する
請求項5記載の自動分散化システム。
The minimum cut calculation means is:
The automatic decentralization system according to claim 5, wherein when a restriction on arrangement setting is given, the minimum cut is calculated according to the restriction.
前記最小カット計算手段は、
前記配置設定の制約として、前記複数の機能モジュールのいずれかと、その機能モジュールを実行するホスト種別とを対応付けるデータを与えられる
請求項6記載の自動分散化システム。
The minimum cut calculation means is:
The automatic decentralization system according to claim 6, wherein data associating one of the plurality of function modules with a host type that executes the function module is given as the arrangement setting constraint.
複数の機能モジュールを含むプログラムを解析し、機能モジュール間の参照関係及びプログラム実行時における機能モジュール間の呼び出し回数を取得することと、
前記参照関係及び前記呼び出し回数に基づいて、重み付きグラフを作成することと、
前記重み付きグラフの最小カットを計算することと、
前記最小カットに基づいて、前記複数のモジュールを自動的に分散化することとを具備する
自動分散化方法。
Analyzing a program including a plurality of functional modules, obtaining a reference relationship between the functional modules and the number of calls between the functional modules during program execution;
Creating a weighted graph based on the reference relationship and the number of calls;
Calculating a minimum cut of the weighted graph;
Automatically distributing the plurality of modules based on the minimum cut.
前記作成することは、
前記重み付きグラフのノードを機能モジュールとし、前記重み付きグラフのエッジを機能モジュール間の参照関係として、前記重み付きグラフの作成を行うことを含む
請求項8記載の自動分散化方法。
The creation is
The automatic distribution method according to claim 8, further comprising: creating the weighted graph by using a node of the weighted graph as a functional module and using an edge of the weighted graph as a reference relationship between the functional modules.
前記作成することは、
前記呼び出し回数と、その呼び出し時における引数のデータ量とに比例するコストに基づいて、前記重み付きグラフの重みを計算し、前記重み付きグラフの作成を行うことを更に含む
請求項9記載の自動分散化方法。
The creation is
The automatic calculation according to claim 9, further comprising: calculating a weight of the weighted graph based on a cost proportional to the number of calls and a data amount of an argument at the time of the call, and creating the weighted graph. Decentralization method.
JP2008093729A 2008-03-31 2008-03-31 Automatic decentralized system and automatic decentralized method Expired - Fee Related JP5170408B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008093729A JP5170408B2 (en) 2008-03-31 2008-03-31 Automatic decentralized system and automatic decentralized method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008093729A JP5170408B2 (en) 2008-03-31 2008-03-31 Automatic decentralized system and automatic decentralized method

Publications (2)

Publication Number Publication Date
JP2009245362A true JP2009245362A (en) 2009-10-22
JP5170408B2 JP5170408B2 (en) 2013-03-27

Family

ID=41307136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008093729A Expired - Fee Related JP5170408B2 (en) 2008-03-31 2008-03-31 Automatic decentralized system and automatic decentralized method

Country Status (1)

Country Link
JP (1) JP5170408B2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141703A (en) * 2010-01-06 2011-07-21 Renesas Electronics Corp System, method and program for arranging resource
JP2012164190A (en) * 2011-02-08 2012-08-30 Hitachi Solutions Ltd Exclusive control device and exclusive control method
WO2013031998A1 (en) * 2011-09-02 2013-03-07 日本電気株式会社 Design support device, design support method, and program
JP2013148987A (en) * 2012-01-17 2013-08-01 Fujitsu Ltd Dividing device, dividing method, and dividing program
WO2013124957A1 (en) * 2012-02-20 2013-08-29 富士通株式会社 Computer system and virtual machine arrangement method
WO2014087496A1 (en) * 2012-12-05 2014-06-12 株式会社日立製作所 Graph processing method, and information processing system
JP2018147025A (en) * 2017-03-01 2018-09-20 株式会社日立製作所 Program introduction support system, program introduction support method and program introduction support program
WO2019160008A1 (en) * 2018-02-16 2019-08-22 日本電信電話株式会社 Application division device, method and program
US11086604B2 (en) 2017-11-21 2021-08-10 Mitsubishi Electric Corporation Source code splitting device, source code analyzing device, source code splitting method, and computer readable medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134857A (en) * 1991-04-25 1993-06-01 Hitachi Ltd System for automatically generating program extending over plural computers
JPH05233575A (en) * 1992-02-19 1993-09-10 Fujitsu Ltd Inter-process communication delay reduction system
JPH0675786A (en) * 1992-08-26 1994-03-18 Hitachi Ltd Task scheduling method
JPH09171405A (en) * 1995-12-20 1997-06-30 Hitachi Ltd Device and method for controlling fa system, and control program generating method
JP2002268902A (en) * 2001-01-16 2002-09-20 Canon Inc Method and device for performing distributed processing of computer program
JP2003132039A (en) * 2001-10-22 2003-05-09 Nippon Telegr & Teleph Corp <Ntt> Scenario dividing system
JP2005285110A (en) * 2004-03-05 2005-10-13 Seiko Epson Corp Function distribution system, network device, device program, and method of function distribution
JP2007199869A (en) * 2006-01-24 2007-08-09 Univ Nagoya Automatic decentralization program and apparatus of device cooperation mechanism, and device cooperation mechanism

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134857A (en) * 1991-04-25 1993-06-01 Hitachi Ltd System for automatically generating program extending over plural computers
JPH05233575A (en) * 1992-02-19 1993-09-10 Fujitsu Ltd Inter-process communication delay reduction system
JPH0675786A (en) * 1992-08-26 1994-03-18 Hitachi Ltd Task scheduling method
JPH09171405A (en) * 1995-12-20 1997-06-30 Hitachi Ltd Device and method for controlling fa system, and control program generating method
JP2002268902A (en) * 2001-01-16 2002-09-20 Canon Inc Method and device for performing distributed processing of computer program
JP2003132039A (en) * 2001-10-22 2003-05-09 Nippon Telegr & Teleph Corp <Ntt> Scenario dividing system
JP2005285110A (en) * 2004-03-05 2005-10-13 Seiko Epson Corp Function distribution system, network device, device program, and method of function distribution
JP2007199869A (en) * 2006-01-24 2007-08-09 Univ Nagoya Automatic decentralization program and apparatus of device cooperation mechanism, and device cooperation mechanism

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141703A (en) * 2010-01-06 2011-07-21 Renesas Electronics Corp System, method and program for arranging resource
JP2012164190A (en) * 2011-02-08 2012-08-30 Hitachi Solutions Ltd Exclusive control device and exclusive control method
WO2013031998A1 (en) * 2011-09-02 2013-03-07 日本電気株式会社 Design support device, design support method, and program
JP2013148987A (en) * 2012-01-17 2013-08-01 Fujitsu Ltd Dividing device, dividing method, and dividing program
WO2013124957A1 (en) * 2012-02-20 2013-08-29 富士通株式会社 Computer system and virtual machine arrangement method
JPWO2013124957A1 (en) * 2012-02-20 2015-05-21 富士通株式会社 Electronic computer system and virtual machine placement method
US9244714B2 (en) 2012-02-20 2016-01-26 Fujitsu Limited Computer system and virtual machine arranging method
WO2014087496A1 (en) * 2012-12-05 2014-06-12 株式会社日立製作所 Graph processing method, and information processing system
JP2018147025A (en) * 2017-03-01 2018-09-20 株式会社日立製作所 Program introduction support system, program introduction support method and program introduction support program
US11086604B2 (en) 2017-11-21 2021-08-10 Mitsubishi Electric Corporation Source code splitting device, source code analyzing device, source code splitting method, and computer readable medium
WO2019160008A1 (en) * 2018-02-16 2019-08-22 日本電信電話株式会社 Application division device, method and program

Also Published As

Publication number Publication date
JP5170408B2 (en) 2013-03-27

Similar Documents

Publication Publication Date Title
JP5170408B2 (en) Automatic decentralized system and automatic decentralized method
Borgdorff et al. Distributed multiscale computing with MUSCLE 2, the multiscale coupling library and environment
Khan Scheduling for heterogeneous systems using constrained critical paths
US9286042B2 (en) Control flow graph application configuration
Leupers et al. MPSoC programming using the MAPS compiler
WO2009085118A2 (en) System and method for architecture-adaptable automatic parallelization of computing code
EP2972799A1 (en) Reference nodes in a computational graph
JP2007179165A (en) Computer program and method for deriving stochastic performance evaluation model from ulm design model
Neubauer et al. Enhancing symbolic system synthesis through ASPmT with partial assignment evaluation
Roig et al. A new task graph model for mapping message passing applications
Rosvall et al. Throughput propagation in constraint-based design space exploration for mixed-criticality systems
US20120192168A1 (en) Compiler device
KR101822093B1 (en) Device and method for building cloud system
Menard et al. Mocasin—rapid prototyping of rapid prototyping tools: A framework for exploring new approaches in mapping software to heterogeneous multi-cores
US9558305B1 (en) Automatic modeling, mapping, and code generation for homogeneous and heterogeneous platforms
Rust et al. Petri net based design of reconfigurable embedded real-time systems
Hoos Computer-aided design of high-performance algorithms
KR101556541B1 (en) Apparatus and method for complex event processing based high load path
Redell Response time analysis for implementation of distributed control systems
Nurmela et al. Qualitative evaluation of dependency graph representativeness
Hassane et al. Process enactment with traceability support for nfv systems
Tan et al. A stochastic model for heterogeneous computing and its application in data relocation scheme development
Siddik et al. Prioritising test cases by collaborating artefacts of software development life cycle
JP2009169862A (en) Program conversion device, method, program and recording medium
Karger et al. A theoretical and practical approach to instruction scheduling on spatial architectures

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120829

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121023

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121218

R150 Certificate of patent or registration of utility model

Ref document number: 5170408

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees