JP5170408B2 - 自動分散化システム及び自動分散化方法 - Google Patents

自動分散化システム及び自動分散化方法 Download PDF

Info

Publication number
JP5170408B2
JP5170408B2 JP2008093729A JP2008093729A JP5170408B2 JP 5170408 B2 JP5170408 B2 JP 5170408B2 JP 2008093729 A JP2008093729 A JP 2008093729A JP 2008093729 A JP2008093729 A JP 2008093729A JP 5170408 B2 JP5170408 B2 JP 5170408B2
Authority
JP
Japan
Prior art keywords
functional modules
weighted graph
automatic
graph
functional
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
Application number
JP2008093729A
Other languages
English (en)
Other versions
JP2009245362A (ja
Inventor
裕 大村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/ja
Publication of JP2009245362A publication Critical patent/JP2009245362A/ja
Application granted granted Critical
Publication of JP5170408B2 publication Critical patent/JP5170408B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は分散システムの分野に関し、特に分散システム上で機能モジュールの最適な配置をプログラムの解析による情報を元に自動的に行う自動分散化システム及び自動分散化方法に関する。
分散システムは、多くのソフトウェアアプリケーションに共通して用いられている。典型的な分散システムは、ネットワークを経由して通信を行う複数のホストから成り立つ。複数のホスト上では、各機能モジュールが稼動している。この機能モジュールはプログラムであり、開発者は複数のホストに、分散システムの機能を分離し、設計、開発を行う。分散システム稼動時には、複数のホスト上で稼動する各機能モジュールが、各々のホスト上でその機能を実現し、また、ネットワークを経由して、他のホストで稼動する機能モジュールを呼び出し、1つの分散システムとして稼動する。
図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を呼び出すことができる。
しかし、一般に分散システムの開発には困難が伴う。特にネットワーク越しに機能モジュールを呼び出す部分の開発はツールによる支援等を用いて行ったりすることもあり、ツールの中には、そもそも開発者にネットワーク越しの呼び出しを考慮にいれさせない自動分散化システムが存在する(Addistant、J−Orchestra;特開平11−085519号公報(特許文献1参照))。
特に開発者にネットワーク越しの呼び出しを考慮に入れさせない自動分散化システムについて、図2を参照して詳しく説明する。まず、開発者は単一ホスト20上で分散システムを稼動させることを想定して非分散システムを開発する。次に開発者は各機能モジュールA2〜E2をどのホストに配置させるかを決定する。この配置設定は機能モジュール名とホスト名との組み合わせを記憶するテーブル28を作成することにより行う。
五つの機能モジュールA2〜E2からなる非分散システムと、テーブル28との入力を元に、自動分散化システム26は単一ホスト20上で稼動する非分散システムを分散システムへと変換する。図2の例では、テーブル28に基づいて、二つの機能モジュールA2,B2は、ホスト〔Host1〕 22上に配置し、三つの機能モジュールC2,D2,E2は、ホスト〔Host2〕 24上に配置している。本願においては、このような変換システムを自動分散化システムと呼ぶ。
図2に示す自動分散化システムの問題点は、全ての機能モジュールA2〜E2の配置を開発者が決定する必要があったという点である。その理由は、図2の自動分散システムは、機能モジュールの最適な配置を自動的に決定することを全く考慮に入れていないためである。
その他、分散システムの関連技術が、特開平03−182960号公報(特許文献2参照)に記載されている。この公知文献に記載された「並列計算機システム」の発明においては、グラフを用いて並列計算機システムを表現する。このグラフのノードは、プロセッサを表している。また、このグラフのエッジは、プロセッサ間の通信路を表している。
特開平06−075786号公報(特許文献3参照)には、「タスクスケジュリング方法」の発明が記載されている。この公知文献では、タスクスケジュールの優先順位を決定するために、通信コストを求めている(特許文献3図5,図6)。この通信コストは、〔通信の立ち上がりのオーバヘッド時間〕+〔データ転送量〕×〔単位データ量あたりのデータ転送時間〕によって計算される。
特開平11−085519号公報 特開平03−182960号公報 特開平06−075786号公報
本発明の課題は、全ての機能モジュールの配置を決定しなくても、プログラムの解析情報を元に自動的に機能モジュールの最適な配置を決定する自動分散化システム及び自動分散化方法を提供することにある。
本発明の一つの自動分散化システムは、プログラム解析部と、グラフ作成部と、最小カット計算部と、分散システム生成部とを具備する。プログラム解析部は、複数の機能モジュールを含むプログラムを解析し、機能モジュール間の参照関係及びプログラム実行時における機能モジュール間の呼び出し回数を取得する。グラフ作成部は、参照関係及び呼び出し回数に基づいて、重み付きグラフを作成する。最小カット計算部は、重み付きグラフの最小カットを計算する。分散システム生成部は、最小カットに基づいて、複数のモジュールを自動的に分散化する。
本発明の別の一つの自動分散化方法は、取得することと、作成することと、計算することと、分散化することとを具備する。取得することにおいては、複数の機能モジュールを含むプログラムを解析し、機能モジュール間の参照関係及びプログラム実行時における機能モジュール間の呼び出し回数を取得する。作成することにおいては、参照関係及び呼び出し回数に基づいて、重み付きグラフを作成する。計算することにおいては、重み付きグラフの最小カットを計算する。分散化することにおいては、最小カットに基づいて、複数のモジュールを自動的に分散化する。
本発明によれば、開発者が全ての機能モジュールについて最適な配置を決定する必要がなくなる。その理由は、本発明が機能モジュールの最適な配置を自動的に決定するためである。
本発明を実施するための最良の形態の一つについて、図面を参照して詳細に説明する。図3を参照して、本発明による一つの実施の形態における自動分散化システムの構成及び動作について説明する。本実施の形態における自動分散化システムは、プログラム解析部と、グラフ作成部と、最小カット計算部と、分散プログラム生成部とを備えている。
図3に示すように、本実施の形態における自動分散化システムは、まず、プログラム解析部によって、プログラムの解析を行う(S30)。プログラム解析部は、単一ホスト上で分散システムを稼動させることを想定した非分散のプログラムの解析を行う機能を有している。プログラム解析部は、機能モジュール間の参照関係およびプログラム実行時における各機能モジュールの呼び出し回数を取得する。解析対象は、ソースコードとすることもでき、また、バイナリコードとすることも、或いは、中間コードとすることもできる。
本実施の形態における自動分散化システムは、次に、グラフ作成部によって、重み付きグラフの作成を行う(S32)。グラフ作成部は、プログラム解析部で得られた情報を元に、重み付きグラフを生成する機能を有している。この重み付きグラフの各ノードは、入力したプログラムに含まれる複数の機能モジュールのいずれかを表し、各エッジは機能モジュール間の参照関係を表す。さらに、重み付きグラフの各コストは、以下の式によって定義される。
〔コスト〕=α〔各機能モジュールへの呼び出し回数〕×β〔呼び出し時の引数のデータ量〕
ここで、各機能モジュールへの呼び出し回数はプログラム解析部で得られる情報の一つであり、プログラムを実行した結果として取得することができる。また、呼び出し時の引数のデータ量は、その機能モジュールを呼び出す際に、呼び出し先の機能モジュールに渡すデータの総量である。それから、αおよびβは、自動分散化システムの利用者が設定可能な定数である。
本実施の形態における自動分散化システムは、続いて、最小カット計算部によって、最小カットの計算を行う(S34)。最小カット計算部は、グラフ作成部で作成されるグラフの最小カットを計算する機能を有する。但し、最小カット計算部は、配置設定の制約を与えられた場合には、その制約に従って、最小カットを計算できる。例えば、ユーザから、同一ホストに配置しないと指定された機能モジュールを、異なるホストに配置するようにする。このとき、それらの指定された機能モジュールは、同じ部分グラフに存在することはない。
本実施の形態における自動分散化システムは、最後に、分散システム生成部によって、分散プログラムへの変換を行う(S36)。分散システム生成部は、最小カット計算部で計算された部分グラフを元に、プログラムを分散システムに変換し、出力する。
開発者が単一ホスト上で稼動させる非分散のプログラムを作成した場合を仮定する。理解を容易にするために、このプログラムは、図2の場合と同じく、複数の機能モジュールA2〜E2から成り立っているとする。実施例1における自動分散化システムは、複数の機能モジュールA2〜E2から成るプログラムを入力として、分散システム向けプログラムを自動生成する。
自動分散化システムが、入力としてプログラムを受け取ると、まず、プログラム解析部がプログラムの解析を行う。この解析により、プログラム解析部は、機能モジュールA2〜E2間の参照関係及び実行時の各機能モジュールの呼び出し回数を得る。次に、グラフ作成部が、その解析情報を元に、図4のような重み付きグラフを生成する。図4において、グラフのノードはプログラム上の機能モジュールA2〜E2を表し、グラフのエッジは各機能モジュールA2〜E2の呼び出し関係を表す。重み付きグラフの重みは、以下の式により定義されるコストであり、c1〜c4と計算されている。
〔コスト〕=Σα〔各機能モジュールへの呼び出し回数〕×β〔呼び出し時の引数のデータ量〕
ここで、各機能モジュールA2〜E2への呼び出し回数は、プログラム解析部で得られた実行時情報であり、呼び出し時の引数のデータ量は、その機能モジュールを呼び出す際に呼び出し先の機能モジュールに渡すデータの総量である。また、αおよびβはユーザが設定可能な定数である。
例えば、図5のように、二つの機能モジュールA2、B2が互いに相手の機能モジュールB2、A2を呼び出しており、機能モジュールA2は、三つの機能f0、f1、f2を持ち、機能モジュールB2は、四つの機能f3、f4、f5、f6を持っていたとする。この場合、機能モジュールA2と、機能モジュールB2との間のコストは、数1のように計算される。
Figure 0005170408
数1において、countとは、機能fiを呼び出す回数を計数する関数である。例えば、count(f0)は機能モジュールB2が機能モジュールA2の機能f0を呼び出す回数を意味する。また、sizeとは機能fiを呼び出す際に渡すデータの総量である。例えば、size(f0)は、機能モジュールB2が機能モジュールA2の機能f0を呼び出す際に渡すデータの総量を意味する。
続いて、最小カット計算部が、図4の重み付きグラフの最小カットを計算する。最後に、分散プログラム生成部が、計算された最小カットに基づいて、入力されたプログラムを分散プログラムに変換し、出力する。例えば、図2に示したものと同じような配置の分散化プログラムが出力される。
自動分散化システムには、配置設定の制約を与えることができる。図6は、配置設定の制約を記憶するテーブルを示す図である。図6において、テーブル60は、機能モジュール名とホスト名との組み合わせを記憶している。テーブル60の内容を参照すると、配置設定の制約は、機能モジュールA2は、ホスト〔HOST1〕に配置しなければいけないこと、機能モジュールE2は、ホスト〔HOST2〕に配置しなければいけないことを表している。
自動分散化システムが、配置設定の制約を入力すると、最小カット計算部は、最小カットを計算するときに、配置設定の制約に従った計算を行う。配置設定の制約に矛盾するような部分グラフは認められないので、例えば、配置設定の制約として、図6のテーブルを入力した場合には、自動分散化システムは、機能モジュールA2と機能モジュールE2とを、同一の部分グラフに配置するようなカットを選択してはならないという制約に従う。
図1は、基本的な分散システムの説明図である。 図2は、関連技術における自動分散化システムの説明図である。 図3は、本実施の形態における自動分散化システムの動作を説明するフローチャートである。 図4は、重み付きグラフでモデル化したプログラムの説明図である。 図5は、コストの計算方法の説明図である。 図6は、配置設定の制約を記憶するテーブルを示す図である。
符号の説明
10,12,20,22,24 ホスト
14 ネットワーク
26 自動分散化システム
28,60 テーブル

Claims (10)

  1. 複数の機能モジュールを含むプログラムを解析し、機能モジュール間の参照関係及びプログラム実行時における機能モジュール間の呼び出し回数を取得するプログラム解析手段と、
    前記機能モジュール間の参照関係及び前記機能モジュール間の呼び出し回数に基づいて、重み付きグラフを作成するグラフ作成手段と、
    配置設定の制約として、前記複数の機能モジュールの各々と、前記各機能モジュールを実行するホスト種別とを対応付けるデータを与えられ、前記配置設定の制約に従って、前記重み付きグラフの最小カットを計算する最小カット計算手段と、
    前記最小カットに基づいて、前記複数の機能モジュールを自動的に分散化する分散システム生成手段と
    を具備する
    自動分散化システム。
  2. 前記各機能モジュールはそれぞれ、1つの機能モジュールにつき少なくとも1つの機能を持ち、
    前記機能モジュール間の参照関係は、前記各機能モジュールの機能の呼び出しの関係を表し、
    前記グラフ作成手段は、前記重み付きグラフのノードを前記各機能モジュールとし、前記重み付きグラフのエッジを前記機能モジュール間の参照関係として、前記重み付きグラフの作成を行う
    請求項1記載の自動分散化システム。
  3. 前記グラフ作成手段は、前記重み付きグラフの重みを、前記機能モジュール間の呼び出し回数と前記各機能モジュールを呼び出す時の引数のデータ量との少なくとも一方に比例するコストに基づいて計算し、前記重み付きグラフの作成を行う
    請求項2記載の自動分散化システム。
  4. 前記グラフ作成手段は、α及びβを任意に設定可能な定数と、前記コストを、〔コスト〕=Σα〔機能モジュール間の呼び出し回数〕×β〔呼び出し時の引数のデータ量〕の数式によって計算する
    請求項3に記載の自動分散化システム。
  5. 前記最小カット計算手段は、前記最小カットに基づく部分グラフを作成し、前記部分グラフを作成する際、前記配置設定の制約として同一ホストに配置しないと指定された機能モジュールを、同じ部分グラフに存在させることなく、異なるホストに配置し、
    前記分散システム生成手段は、前記部分グラフに基づいて、前記プログラムを分散システムに変換して出力する
    請求項1乃至4のいずれかに記載の自動分散化システム。
  6. 複数の機能モジュールを含むプログラムを解析し、機能モジュール間の参照関係及びプログラム実行時における機能モジュール間の呼び出し回数を取得することと、
    前記機能モジュール間の参照関係及び前記機能モジュール間の呼び出し回数に基づいて、重み付きグラフを作成することと、
    配置設定の制約として、前記複数の機能モジュールの各々と、前記各機能モジュールを実行するホスト種別とを対応付けるデータを与えられ、前記配置設定の制約に従って、前記重み付きグラフの最小カットを計算することと、
    前記最小カットに基づいて、前記複数の機能モジュールを自動的に分散化することと
    含む
    自動分散化方法。
  7. 前記各機能モジュールはそれぞれ、1つの機能モジュールにつき少なくとも1つの機能を持ち、
    前記機能モジュール間の参照関係は、前記各機能モジュールの機能の呼び出しの関係を表し、
    前記重み付きグラフの作成を行う際、前記重み付きグラフのノードを前記各機能モジュールとし、前記重み付きグラフのエッジを前記機能モジュール間の参照関係として、前記重み付きグラフの作成を行うこと
    更に含む
    請求項6に記載の自動分散化方法。
  8. 前記重み付きグラフの作成を行う際、前記機能モジュール間の呼び出し回数と前記各機能モジュールを呼び出す時の引数のデータ量との少なくとも一方とに比例するコストに基づいて、前記重み付きグラフの重みを計算し、前記重み付きグラフの作成を行うこと
    を更に含む
    請求項7に記載の自動分散化方法。
  9. 前記重み付きグラフの作成を行う際、α及びβを任意に設定可能な定数とし、前記コストを、〔コスト〕=Σα〔機能モジュール間の呼び出し回数〕×β〔呼び出し時の引数のデータ量〕の数式によって計算すること
    を更に含む
    請求項8に記載の自動分散化方法。
  10. 前記最小カットを計算する際、前記最小カットに基づく部分グラフを作成することと、
    前記部分グラフを作成する際、前記配置設定の制約として同一ホストに配置しないと指定された機能モジュールを、同じ部分グラフに存在させることなく、異なるホストに配置することと、
    前記複数の機能モジュールを自動的に分散化する際、前記部分グラフに基づいて、前記プログラムを分散システムに変換して出力することと
    を更に含む
    請求項6乃至9のいずれかに記載の自動分散化方法。
JP2008093729A 2008-03-31 2008-03-31 自動分散化システム及び自動分散化方法 Expired - Fee Related JP5170408B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008093729A JP5170408B2 (ja) 2008-03-31 2008-03-31 自動分散化システム及び自動分散化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008093729A JP5170408B2 (ja) 2008-03-31 2008-03-31 自動分散化システム及び自動分散化方法

Publications (2)

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

Family

ID=41307136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008093729A Expired - Fee Related JP5170408B2 (ja) 2008-03-31 2008-03-31 自動分散化システム及び自動分散化方法

Country Status (1)

Country Link
JP (1) JP5170408B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141703A (ja) * 2010-01-06 2011-07-21 Renesas Electronics Corp 資源配置システム、資源配置方法、及び資源配置用プログラム
JP5580754B2 (ja) * 2011-02-08 2014-08-27 株式会社日立ソリューションズ 排他制御装置および排他制御方法
WO2013031998A1 (ja) * 2011-09-02 2013-03-07 日本電気株式会社 設計支援装置、設計支援方法、及び、プログラム
JP5899946B2 (ja) * 2012-01-17 2016-04-06 富士通株式会社 分割装置、分割方法、および分割プログラム
JP5900599B2 (ja) * 2012-02-20 2016-04-06 富士通株式会社 電子計算機システム及び仮想マシン配置方法
WO2014087496A1 (ja) * 2012-12-05 2014-06-12 株式会社日立製作所 グラフ処理方法、および情報処理システム
US9398087B1 (en) * 2015-11-29 2016-07-19 International Business Machines Corporation Secure deployment of an application across deployment locations
JP6917732B2 (ja) * 2017-03-01 2021-08-11 株式会社日立製作所 プログラム導入支援システム、プログラム導入支援方法、及びプログラム導入支援プログラム
GB2581057A (en) 2017-11-21 2020-08-05 Mitsubishi Electric Corp Source-code dividing device, source-code analyzing device, source-code dividing method, and source-code dividing program
JP6839673B2 (ja) * 2018-02-16 2021-03-10 日本電信電話株式会社 アプリケーション分割装置、方法およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134857A (ja) * 1991-04-25 1993-06-01 Hitachi Ltd 複数計算機にまたがるプログラムの自動生成方式
JPH05233575A (ja) * 1992-02-19 1993-09-10 Fujitsu Ltd プロセス間通信遅延削減方式
JPH0675786A (ja) * 1992-08-26 1994-03-18 Hitachi Ltd タスクスケジュリング方法
JP3658061B2 (ja) * 1995-12-20 2005-06-08 株式会社日立製作所 Faシステムの制御装置と方法、制御プログラム生成方法
FR2819601B1 (fr) * 2001-01-16 2003-07-18 Canon Kk Procede et dispositif de partition de programme informatique
JP2003132039A (ja) * 2001-10-22 2003-05-09 Nippon Telegr & Teleph Corp <Ntt> シナリオ分割方式
JP2005285110A (ja) * 2004-03-05 2005-10-13 Seiko Epson Corp 機能分散配置システム、ネットワークデバイスおよびデバイス用プログラム、並びに機能分散配置方法
JP2007199869A (ja) * 2006-01-24 2007-08-09 Univ Nagoya デバイス連携機構の自動分散化プログラム、装置およびデバイス連携機構

Also Published As

Publication number Publication date
JP2009245362A (ja) 2009-10-22

Similar Documents

Publication Publication Date Title
JP5170408B2 (ja) 自動分散化システム及び自動分散化方法
JP4931978B2 (ja) 並列化処理方法、システム、及びプログラム
Borgdorff et al. Distributed multiscale computing with MUSCLE 2, the multiscale coupling library and environment
Chan et al. Modeling and testing of cloud applications
Leupers et al. MPSoC programming using the MAPS compiler
WO2009085118A2 (en) System and method for architecture-adaptable automatic parallelization of computing code
JP2007179165A (ja) Uml設計モデルから、確率的な性能評価モデルを導出するコンピュータ・プログラムおよび確率的な性能評価モデルを導出する方法
JP2009238230A (ja) コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム
Wang et al. Colored petri net model with automatic parallelization on real-time multicore architectures
US20120192168A1 (en) Compiler device
KR101822093B1 (ko) 클라우드 시스템 구축 장치 및 방법
Davydova et al. Mining hybrid UML models from event logs of SOA systems
Menard et al. Mocasin—rapid prototyping of rapid prototyping tools: A framework for exploring new approaches in mapping software to heterogeneous multi-cores
Stankovic et al. Visual programming for message-passing systems
Manolakos et al. Distributed Matlab based signal and image processing using JavaPorts
JP2009009207A (ja) Soaアーキテクチャのシステム設計支援方法およびsoaアーキテクチャのシステム設計支援装置
Masud et al. Automatic inference of task parallelism in task-graph-based actor models
Lambert PMSC for performance evaluation
Bobda et al. MeXT: A flow for multiprocessor exploration
Redell Response time analysis for implementation of distributed control systems
Nurmela et al. Qualitative evaluation of dependency graph representativeness
Dangelmayr et al. Aspect‐oriented component assembly—a case study in parallel software design
JP2009169862A (ja) プログラム変換装置、方法、プログラムおよび記録媒体
Goswami et al. Fast slicing of concurrent programs
Menard et al. Mocasin—Rapid Prototyping of Rapid Prototyping Tools

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