JP2004272369A - Graph dividing means - Google Patents

Graph dividing means Download PDF

Info

Publication number
JP2004272369A
JP2004272369A JP2003058831A JP2003058831A JP2004272369A JP 2004272369 A JP2004272369 A JP 2004272369A JP 2003058831 A JP2003058831 A JP 2003058831A JP 2003058831 A JP2003058831 A JP 2003058831A JP 2004272369 A JP2004272369 A JP 2004272369A
Authority
JP
Japan
Prior art keywords
graph
new
weight
edge
node
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.)
Pending
Application number
JP2003058831A
Other languages
Japanese (ja)
Inventor
Kenji Uehara
憲二 上原
Shigeru Sakuma
繁 咲間
Masumi Iwai
真澄 岩井
Nobuzane Nishiuchi
信実 西内
Takamitsu Fujiwara
隆充 藤原
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2003058831A priority Critical patent/JP2004272369A/en
Publication of JP2004272369A publication Critical patent/JP2004272369A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To flexibly re-divide a graph according to change following the time of the weight of a new node and the weight of a new edge after the graphic is divided. <P>SOLUTION: After the lapse of a certain time since the division processing of a graph, a threshold managing part 35 makes a load managing part 34 calculate the weight of a new node and the weight of a new edge based on a current parameter. When at least one of the weight of the new node and the weight of the new edge exceeds a threshold, a graph re-division instructing part 36 makes a graph division processing part 33 execute the division processing of the graph again. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
この発明はグラフ分割装置に関するものである。
【0002】
【従来の技術】
それぞれ数量を持ち互いに関連し合う複数の処理、物体等を効率的かつ適切に複数箇所に配分するための現実の事象を解決するためにグラフ分割が使用されている。例えば、従来のグラフ分割システムには、未分割グラフに対してシード発見的解法および確率的サーチを施して初期グラフ分割を得て、この初期グラフ分割にカーニガン/リン・アルゴリズム(Kernighan and Lin Algorithm)を施してさらに適切な最終グラフ分割を生成するものがある(例えば、特許文献1参照)。
【0003】
【特許文献1】
特開平8−212249号公報
【0004】
【発明が解決しようとする課題】
しかし、従来のグラフ分割装置で生成された最終グラフ分割は固定的なものであり、時間の経過に従ってノードの重み(コスト)および/またはエッジの重み(コスト)が変化する現実の事象に適用した場合には、その後の柔軟で自動的なグラフの再分割ができないという課題があった。例えば、並列に実行可能で各々が互いの演算値を交換し合う複数のサブプロセスを有するプログラムについては、プロセッサの処理負担の均等化および各プロセッサ間の情報交換量の最小化を目的として、サブプロセスを複数のプロセッサに配分するためのグラフ分割が使用しうる。しかし、これらのサブプロセスの進行に伴い、プロセッサの処理負担(分割後の新ノードの重みに相当する)が不均等になったり、各プロセッサ間の情報交換量(分割後の新エッジの重みに相当する)が増大したりすることが考えられる。そこで、一旦グラフ分割処理がされた後でも、分割後の新ノードの重みおよび新エッジの重みを適宜見直して、柔軟にグラフの再分割を行うことができる装置が望まれている。
【0005】
この発明は、上述のような課題を解決するためになされたものであり、分割後の新ノードの重みおよび新エッジの重みの時間に従った変化に応じて柔軟にグラフを再分割することができるグラフ分割装置を得ることを目的とする。
【0006】
【課題を解決するための手段】
この発明に係るグラフ分割装置は、複数の元ノードとそれらを接続する複数の元エッジを有するグラフを分割するグラフ分割装置において、グラフを分割して生ずる元ノードの部分集合である新ノードの各々の重みと上記新ノードを接続する新エッジの各々の重みを可変のパラメータに基づいて計算することが可能な重み計算部と、グラフを様々な分割形式で分割して生ずる元ノードの部分集合である新ノード候補と上記新ノード候補を接続する新エッジ候補の組み合わせを上記重み計算部に与えて、各新ノード候補の重みと各新エッジ候補の重みを上記重み計算部に算出させ、計算された各新ノード候補の重みと各新エッジ候補の重みが準最適となる組み合わせに従ってグラフを分割するグラフ分割処理部と、上記グラフ分割処理部によるグラフの分割処理からある時間の経過後に、上記グラフ分割処理部で分割されたグラフの新ノードの重みおよび新エッジの重みを現在のパラメータに基づいて上記重み計算部に計算させる分割後計算指示部と、上記新ノードの重みおよび上記新エッジの重みの少なくともいずれかが閾値を超えている場合に、上記グラフ分割処理部に上記グラフの分割処理を再度行わせるグラフ再分割指示部とを備えるものである。
【0007】
【発明の実施の形態】
以下、図面を参照しながらこの発明に係る様々な実施の形態を説明する。
実施の形態1.
まず、グラフ分割処理の概念を図1および図2を参照しながら説明する。図1は未分割のグラフの一例を示し、図2は図1のグラフを分割した後のグラフの一例を示す。図1に例示された未分割のグラフは、複数のノードn1〜n8と、図示のようにノード間を接続する複数のエッジe1〜e10を有する。符号n1〜n8はノード識別情報、e1〜e10はエッジ識別情報である。ここで二つの仮想的な分割線D1,D2によりグラフを三つの部分集合に分割すると想定する。
【0008】
この結果得られた分割後のグラフを図2に示す。図2に例示された分割後のグラフは、複数の新ノードN1〜N3と、図示のようにノード間を接続する複数の新エッジE1〜E2を有する。符号N1〜N3はノード識別情報、E1〜E2はエッジ識別情報である。図2に添付された表は、未分割のグラフのノードn1〜n8およびエッジe1〜e10と、分割後のグラフの新ノードN1〜N3および新エッジE1〜E2との対応関係を示す。この例では、分割後の三つの部分集合に分割後の新ノードN1〜N3が対応し、新ノードN1〜N3の各々が、各部分集合に含まれる未分割のグラフのノードの集合とエッジの集合の組で表されている。また、二つの仮想的な分割線D1,D2に分割後の新エッジE1〜E2が対応し、新エッジE1〜E2の各々は分割線D1,D2で横切られる未分割のグラフのエッジの集合で表されている。例えば、新ノードN1は、元ノードn1,n2,n3および元エッジe1,e2,e3から構成され、新エッジE1は元エッジe3,e5から構成されている、
【0009】
この実施の形態に係るグラフ分割の用途の一例として、並列に実行可能で各々が互いの演算値を交換し合う複数のサブプロセスを有するプログラムについて、サブプロセスを複数のプロセッサに配分するためのグラフ分割処理では、元ノードn1〜n8がサブプロセスに対応し、元エッジe1〜e10がサブプロセス間の情報交換がある部分に対応し、分割で生じた部分集合すなわち新ノードN1〜N3が利用可能な最大数のプロセッサに対応し、新エッジE1〜E2がプロセッサ間の情報交換経路に相当する。つまり、三つの新ノードN1〜N3に対応する三つの利用可能なプロセッサが、二つの新エッジE1〜E2に対応する情報交換経路を用いて情報を交換し合う。この用途でのグラフ分割では、全体の情報処理の効率化を図るために、元ノードの重み(サブプロセスの処理負担)を可能な限り均等に新ノードに割り当てるとともに、重み(情報交換量)が大きい元エッジの両端の元ノード(サブプロセス)を可能な限り同一の新ノード(プロセッサ)に配分し、重みが小さい元エッジの両端の元ノードを別個の新ノードに配分する。
【0010】
この実施の形態に係るグラフ分割装置は、このようにグラフ分割がされた後、ノードの重みおよびエッジの重みといった状況の変化に応じて、グラフを再分割することができる。上記のサブプロセスの配分の例に関していえば、サブプロセスの進行に伴い、プロセッサの処理負担(ノードの重みに相当する)が不均等になったか不均等になると予測され得たり、各プロセッサ間の情報交換量(エッジの重みに相当する)が増大したか増大すると予測され得たりした場合に、グラフを再分割することができる。例えば、あるサブプロセスの処理負担が大幅に増加し、一つのプロセッサを独占的に使用するのが好ましい場合が考えられ、逆にあるサブプロセスの処理負担が大幅に減少し、一つのプロセッサを他のサブプロセスと共同で使用するのが好ましい場合が考えられる。また、プロセッサ間の情報交換量が大になってその情報交換に係る二つのサブプロセスを一つのプロセッサで実行するのが好ましい場合が考えられる。
【0011】
図3は、実施の形態1によるグラフ分割装置の構成を示すブロック図である。図示のように、グラフ分割装置は、グラフ構成管理部32、グラフ分割処理部33、負荷管理部(重み計算部)34、閾値管理部(分割後計算指示部)35、グラフ再分割指示部36、および分割結果出力部37を備える。これらは、プログラムに従ってコンピュータの中央演算処理装置が行う動作のモジュールを表しており、実際には一体として中央演算処理装置を構成する。
【0012】
グラフ構成管理部32は、操作者が指定した未分割のグラフの構成を記憶して管理する機能を有しており、さらにはグラフが分割された後は分割されたグラフの構成を未分割のグラフの構成と対応付けて記憶して管理する機能を有する。すなわち、グラフ構成管理部32は、操作者が指定した未分割のグラフの元ノードおよび元エッジの配置関係を記憶し、グラフが分割された後は、新ノードと新エッジの配置関係を記憶するとともに、元ノードおよび元エッジと新ノードおよび新エッジとの対応関係を記憶する。
【0013】
図4は、グラフ構成管理部32に記憶された未分割のグラフの管理情報構造を示す。グラフ分割がされた後もグラフ構成管理部32はこの元の管理情報を再分割に利用するために記憶し続ける。元ノードを管理するための管理情報には、元ノード数42、元ノードn1〜n8の各々についての元ノード構成情報44がある。元ノード構成情報44の各々は、元ノード識別情報442(例えばn1)と当該元ノードの重み計算情報443を有する。元ノードの重み計算情報443は、経時的に変化する元ノードの重み(例えば各サブプロセスの処理負荷に相当する可変のパラメータ)の現在値またはその現在値を計算するために使用される情報である。元ノードの重み計算情報443の内容および取得方法は、このグラフ分割装置が監視するシステム、特にその処理方式に依存して異なる。例えば、元ノードの重み計算情報443は、対応するサブプロセスが次に実行するルーティンの長さ、複雑さ、およびメモリの使用の程度などを指定する情報でよい。また、元ノードの重み計算情報443は、このグラフ分割装置が監視する図示しないプロセッサから受信した情報でもよいし、このグラフ分割装置がプログラムの進捗状況を監視して得た情報でもよい。グラフ構成管理部32は、変化する元ノードの重み計算情報443を逐次的または周期的に更新する。
【0014】
元エッジを管理するための管理情報には、元エッジ数43、元エッジe1〜e10の各々についての元エッジ構成情報45がある。元エッジ構成情報45の各々は、元エッジ識別情報452(例えばe1)と、当該元エッジの始点ノード識別情報453(例えば図1に示すように元エッジe1につきn1)と、当該元エッジの終点ノード識別情報454(例えば元エッジe1につきn3)と、当該元エッジの重み計算情報455を有する。元エッジの重み計算情報455は、経時的に変化する元エッジの重み(例えばサブプロセス間の情報交換量に相当する可変のパラメータ)の現在値またはその現在値を計算するために使用される情報である。元エッジの重み計算情報455の内容および取得方法は、このグラフ分割装置が監視するシステム、特にその通信方式に依存して異なる。例えば、元エッジの重み計算情報455は、関連するサブプロセスが次に実行するルーティンに含まれる情報交換指令の回数などを指定する情報でよい。また、元エッジの重み計算情報455は、このグラフ分割装置が監視する図示しないプロセッサから受信した情報でもよいし、このグラフ分割装置がプログラムの進捗状況を監視して得た情報でもよい。グラフ構成管理部32は、変化する元エッジの重み計算情報455を逐次的または周期的に更新する。
【0015】
初期のグラフ分割にあたっては、グラフ構成管理部32が保持する各元ノード構成情報44の元ノードの重み計算情報443および各元エッジ構成情報45の元エッジの重み計算情報455に基づいて、負荷管理部34が、元ノードn1〜n8の各々の重みと元エッジe1〜e10の各々の重みを計算する。もし、これらの重み計算情報が重みの現在値そのものを表す場合には、負荷管理部34はグラフ構成管理部32は重み計算情報を読み出すだけでよい。これらの重みと、元エッジ構成情報45(特に、個々のノードの接続関係を示す元エッジ識別情報452、始点ノード識別情報453、終点ノード識別情報454)に基づいて、グラフ分割処理部33は、所定のグラフ分割方法によって、グラフを操作者が指定した数(後述する図5の新ノード数52に相当する)の新ノードに分割する。
【0016】
この分割を行うために、グラフ分割処理部33は、元エッジ構成情報45に示された個々のノードの接続関係に基づいて、グラフをある分割形式(例えば図1に示す分割線D1,D2)で分割して生ずる元ノードの部分集合である新ノード候補と新エッジ候補の組み合わせを得る。そして、グラフ分割処理部33は、新ノード候補と新エッジ候補の組み合わせを負荷管理部34に与えて、各新ノード候補の重みと各新エッジ候補の重みを負荷管理部34に算出させる。各新ノード候補の重みは、その新ノード候補を構成する元ノードの重みを合計するかそのような元ノードと元エッジの重みを合計することにより算出でき、各新エッジ候補の重みは、その新エッジ候補を構成する元エッジの重みを合計することにより算出できる。例えばこの段階の新ノード候補の一つが図2の新ノードN1であれば、その重みは元ノードn1,n2,n3の重みの合計、または元ノードn1,n2,n3と元エッジe1,e2,e3の重みの合計と考えてよい。またこの段階の新エッジ候補の一つが図2の新エッジE1であれば、その重みは元エッジe4,e5の重みの合計と考えてよい。
【0017】
また、グラフ分割処理部33は、分割形式を様々に変えて、その結果の新ノード候補と新エッジ候補の組み合わせを負荷管理部34に与えて、各新ノード候補の重みと各新エッジ候補の重みを負荷管理部34に算出させることを繰り返す。そして、計算された各新ノード候補の重みが可能な限り均一で各新エッジ候補の重みが可能な限り最小となる組み合わせに従って、グラフ分割処理部33はグラフを分割する。このような分割の方法としては、例えば、カーニガン/リン・アルゴリズム(Kernighan and Lin Algorithm)、FiducciaとMattheysesが提案した辺数に対する線形時間解法、SA(Simulated Annealing)法、遺伝的アルゴリズムのような既存のグラフ分割方法のいずれを使用してもよい。
【0018】
また、以下のように、目標となる新ノード数が得られるまで分割線を徐々に増加させてゆく分割方法を採用してもよい。この分割方法では、まず分割線で区分された二つの部分に属する元ノードの重みの合計が可能な限り均等で、分割線を横切る元エッジの重みの合計が可能な限り最小となるように、一つの分割線でグラフを二分割する。そして各部分の元ノードの重みの合計を比較し、元ノードの重みの合計が大きい方の部分を同様の手法で二分割する。以後、部分の数が指定された新ノード数になるまで、元ノードの重みの合計が大きい部分の二分割を繰り返す。
【0019】
グラフ分割処理部33は分割結果をグラフ構成管理部32に通知し、これに従って、グラフ構成管理部32は分割後のグラフの管理情報を生成して記憶する。図5は、このようにしてグラフ構成管理部32に記憶された分割後のグラフの管理情報構造を示す。グラフが再分割されるまで、グラフ構成管理部32はこの新管理情報を記憶し続け、再分割されたら再分割結果に従って更新する。
【0020】
新ノードを管理するための管理情報には、操作者が指定した新ノード数52、新ノードN1〜N3の各々についての新ノード構成情報54がある。新ノード構成情報54の各々は、新ノード識別情報542(例えばN1)と当該新ノードの重み計算情報543と対応する元ノードの集合と元エッジの集合の組544を有する。対応する元ノードの集合と元エッジの集合の組544は、例えば図2に示す新エッジE1につき<{n1,n2,n3},{e1,e2,e3}>のような新エッジが含む元ノードの集合と元エッジの集合である。
【0021】
新ノードの重み計算情報543は、経時的に変化する新ノードの重み(例えば各プロセッサの処理負荷に相当する)の現在値を計算するために使用される情報である。各新ノードの重みは、その新ノードを構成する元ノードの重みを合計するかそのような元ノードと元エッジの重みを合計することにより算出できる。例えば図2の新ノードN1の重みは元ノードn1,n2,n3の重みの合計、または元ノードn1,n2,n3と元エッジe1,e2,e3の重みの合計と考えてよい。従って、新ノードの重み計算情報543は、当該新ノードが含む元ノードの重み計算情報443(および元エッジの重み計算情報455)の合計を計算することを表す計算式でよい。
【0022】
新エッジを管理するための管理情報には、新エッジ数53、新エッジE1〜E2の各々についての新エッジ構成情報55がある。新エッジ構成情報55の各々は、新エッジ識別情報552(例えばE1)と、当該新エッジの始点ノード識別情報553(例えば図2に示すように新エッジE1につきN1)と、当該新エッジの終点ノード識別情報554(例えば新エッジE1につきN2)と、当該新エッジの重み計算情報555と、対応する元エッジの集合556を有する。対応する元エッジの集合556は、例えば図2に示す新エッジE1につき{e4,e5}のような新エッジが含む元エッジの集合である。
【0023】
新エッジの重み計算情報555は、経時的に変化する新エッジの重み(例えばプロセッサ間の情報交換量に相当する)の現在値を計算するために使用される情報である。各新エッジの重みは、その新エッジを構成する元エッジの重みを合計することにより算出できる。例えば図2の新エッジE1であれば、その重みは元エッジe4,e5の重みの合計と考えてよい。従って、新エッジの重み計算情報555は、当該新エッジが含む元エッジの重み計算情報455の合計を計算することを表す計算式でよい。
【0024】
グラフ分割処理部33は分割結果を分割結果出力部37にも通知する。分割結果出力部37の実体は、このグラフ分割装置が取り扱う現実の事象に依存して異なりうる。例えば、分割結果出力部37は、ディスプレイにグラフ分割の結果を表示させる表示制御部でもよいし、プリンタにグラフ分割の結果を印刷させる印刷制御部でもよい。複数のプロセッサに複数のサブプロセスを適切に割り当てる用途においては、分割結果出力部37は、分割結果の部分集合(新ノード)に従ってプロセッサがグループとして協働するように、取り扱うプロセッサの各々に指令を送信する送信指令部であってよい。
【0025】
閾値管理部35は、上記のようなグラフ分割処理部33によるグラフの分割処理の後に時間をおいて、分割されたグラフの新ノードN1〜N3の重みおよび新エッジE1〜E2の重みを負荷管理部34に計算させる。好ましくは、新ノードの各々の重み、新エッジの各々の重みを別個に周期的に計算するとよい。閾値管理部35は、負荷管理部34による重みの計算結果の各々を各々の閾値と比較する。もしいずれかの新ノードの重みまたはいずれかの新エッジの重みが閾値を超えている場合には、閾値管理部35は、その旨をグラフ再分割指示部36に通知する。
【0026】
図6は、このような比較を行うために閾値管理部35が保持する閾値管理情報を示す。閾値管理情報には、新ノードの閾値管理情報62と、新エッジの閾値管理情報63がある。新ノードの閾値管理情報62は新ノードの個数分存在し、新エッジの閾値管理情報63は新エッジの個数分存在する。新ノードの閾値管理情報62の各々は、新ノード識別情報622(例えばN1)と、当該新ノードの重み計算周期623と、当該新ノードの重み閾値624を有する。新ノード識別情報622は図5の新ノード識別情報542に相当する。新ノードの重み計算周期623は当該新ノードの重みを分割後に計算するまでの期間を示す。新ノードの重み閾値624は当該新ノードの重みの計算値と比較される閾値を示す。
【0027】
また、新エッジの閾値管理情報63の各々は、新エッジ識別情報632(例えばE1)と、当該新エッジの重み計算周期633と、当該新エッジの重み閾値634を有する。新エッジ識別情報632は図5の新エッジ識別情報552に相当する。新エッジの重み計算周期633は当該新エッジの重みを分割後に計算するまでの期間を示す。新エッジの重み閾値634は当該新エッジの重みの計算値と比較される閾値を示す。
【0028】
閾値管理部35は、グラフの分割後に各新ノードの閾値管理情報62および新エッジの閾値管理情報63を参照し、グラフの分割からの経過時間がいずれか一つ以上の新ノードの重み計算周期623またはいずれかの新エッジの重み計算周期633に達しているか監視し、計算周期に達している新ノードまたは新エッジの重みを計算するように負荷管理部34に指示する。この指示に応じて、負荷管理部34は、新ノードの重み計算情報543または新エッジの重み計算情報555(図5参照)に基づいて、当該新ノードまたは新エッジの重みを計算する。算出された新ノードまたは新エッジの重みは閾値管理部35に返され、閾値管理部35は算出された重みを対応する新ノードの重み閾値624または新エッジの重み閾値634と比較する。算出された重みが閾値を超えている場合には、閾値管理部35は、その新ノードの新ノード識別情報622またはその新エッジの新エッジ識別情報632を閾値超過ノードの集合または閾値超過エッジの集合に加える。つまり閾値超過ノードの集合にいずれか一つ以上の新ノード識別情報622があれば、それに対応する新ノードが過負荷であり、閾値超過エッジの集合にいずれか一つ以上の新エッジ識別情報632があれば、それに対応する新エッジが過負荷である。
【0029】
グラフ再分割指示部36は、閾値超過ノードの集合および閾値超過エッジの集合を参照し、いずれかが空集合でなければ(すなわち新ノードの重みおよび新エッジの重みの少なくともいずれかが閾値を超えている場合には)、グラフ分割処理部33にグラフの分割処理を再度行わせる。この再度のグラフ分割処理については、上記の初期のグラフ分割と同様に、全ての元ノードの各々の重みと全ての元エッジの各々の重みに基づいて、元のグラフ全体を新ノードに分割してもよい。ただし、再分割の処理効率ひいては処理全体の効率を高めるために、以下のように必要最小限の範囲(部分グラフ)を再分割処理の対象とし、残りの範囲はそのまま維持するのが好ましい。
【0030】
ある新ノードの重みが閾値を超えた場合には、グラフ再分割指示部36は、閾値超過ノードの集合に存在する新ノード識別情報622をキーとしてグラフ構成管理部32の記憶内容に基づいて、その新ノードが含む元ノードと元エッジ、その新ノードが直接接続された新エッジが含む元エッジ、およびその新ノードが上記新エッジのみを介して接続された新ノードが含む元ノードと元エッジの集合を生成する。新ノードが含む元ノードと元エッジは、グラフ構成管理部32に保持された新ノード構成情報54のうち新ノード識別情報622に一致する新ノード識別情報542を持つものを参照し、その中の元ノードの集合と元エッジの集合の組544(図5)を読むことにより把握される。新ノードが直接接続された新エッジが含む元エッジは、グラフ構成管理部32に保持された新エッジ構成情報55の始点ノード識別情報553または終点ノード識別情報554に新ノード識別情報が一致する場合に、その新エッジ構成情報55の元エッジの集合556を読むことにより把握される。新ノードが上記新エッジのみを介して接続された新ノードが含む元ノードと元エッジは、新エッジ構成情報55の始点ノード識別情報553に新ノード識別情報が一致する場合に、終点ノード識別情報554に対応する新ノード構成情報54を参照し、その中の元ノードの集合と元エッジの集合の組544を読むことにより把握される。あるいは、新ノードが上記新エッジのみを介して接続された新ノードが含む元ノードと元エッジは、新エッジ構成情報55の終点ノード識別情報554に新ノード識別情報が一致する場合に、始点ノード識別情報553に対応する新ノード構成情報54を参照し、その中の元ノードの集合と元エッジの集合の組544を読むことにより把握される。
【0031】
例えば、図2の新ノードN1が閾値を超えた場合には、新ノードN1が含む元ノードn1,n2,n3と元エッジe1,e2,e3、新ノードN1が直接接続された新エッジE1が含む元エッジe4,e5、および新ノードN1がその新エッジE1を介して接続された新ノードN2が含む元ノードn4,n5,n6と元エッジe6,e7,e8が、この集合を構成する。この集合が再分割処理の対象となる部分グラフに相当する。グラフ再分割指示部36は、この集合を再分割処理の対象として分割処理部に指示する。従って、上記の場合には、新ノードN1,N2と新エッジE1は再編されるが、新ノードN3と新エッジE2、すなわち元ノードn7,n8と元エッジe9,e10は再分割処理の対象とはならず、新ノードN3と新エッジE2はそのまま維持される。
【0032】
また、ある新エッジの重みが閾値を超えた場合には、グラフ再分割指示部36は、閾値超過エッジの集合に存在する新エッジ識別情報632をキーとしてグラフ構成管理部32の記憶内容に基づいて、その新エッジが含む元エッジおよびその新エッジが直接接続された新ノードが含む元ノードと元エッジの集合を生成する。その新エッジが含む元エッジは、グラフ構成管理部32に保持された新エッジ構成情報55のうち新エッジ識別情報632に一致する新エッジ識別情報552を持つものを参照し、その中の元エッジの集合556(図5)を読むことにより把握される。その新エッジが直接接続された新ノードが含む元ノードと元エッジは、その新エッジ構成情報55の始点ノード識別情報553または終点ノード識別情報554に対応する新ノード構成情報54を参照し、その中の元ノードの集合と元エッジの集合の組544を読むことにより把握される。
【0033】
例えば、図2の新エッジE1が閾値を超えた場合には、新エッジE1が含む元エッジe4,e5、新エッジE1が直接接続された新ノードN1が含む元ノードn1,n2,n3と元エッジe1,e2,e3、および新エッジE1が直接接続された新ノードN2が含む元ノードn4,n5,n6と元エッジe6,e7,e8が、この集合を構成する。この集合が再分割処理の対象となる部分グラフに相当する。グラフ再分割指示部36は、この集合を再分割処理の対象として分割処理部に指示する。従って、上記の場合には、新ノードN1,N2と新エッジE1は再編されるが、新ノードN3と新エッジE2、すなわち元ノードn7,n8と元エッジe9,e10は再分割処理の対象とはならず、新ノードN3と新エッジE2はそのまま維持される。
【0034】
このような必要最小限の再分割処理におけるさらなる条件は、維持される同一の新エッジを構成する元エッジに直接接続され再分割対象の同一の新ノードに属していた元ノードが、再分割により別個の新ノードに配分されてはならないことである。例えば、図2の新エッジE1が残される場合には、新エッジE1が含む元エッジe4,e5に直接接続され同一の新ノードN2に属していた元ノードn4,n5は再分割後も同一の新ノードに配分されるべきである。この条件を指定する指示もグラフ再分割指示部36が作成し、グラフ分割処理部33に通知する。
【0035】
グラフ再分割指示部36からの指示に基づいてグラフ分割処理部33は、再分割の対象となる部分グラフについて、分割形式を様々に変えながら、新ノード候補と新エッジ候補の組み合わせを負荷管理部34に与えて、各新ノード候補の重みと各新エッジ候補の重みを負荷管理部34に算出させる。そして、計算された各新ノード候補の重みが可能な限り均一で各新エッジ候補の重みが可能な限り最小となる組み合わせに従って、グラフ分割処理部33は部分グラフを、再分割対象のノード数分の新ノードに分割する。このようにして新ノードの重みおよび新エッジの重みの時間に従った変化に応じて、柔軟にしかも必要最小限の範囲で新ノードおよび新エッジを再編することができる。
【0036】
グラフ分割処理部33は再分割結果をグラフ構成管理部32に通知し、これに従って、グラフ構成管理部32は分割後のグラフの管理情報を更新する。また、グラフ分割処理部33は再分割結果を分割結果出力部37に通知する。分割結果出力部37は、再分割結果に応じて処理を行う。例えば、分割結果出力部37は、ディスプレイに再分割結果を表示させるか、プリンタに再分割結果を印刷させるか、再分割に関連するプロセッサの各々に再分割結果に従って動作するように指令を送信する。
【0037】
この再分割の後も、閾値管理部35は、グラフの分割からの経過時間がいずれかの新ノードの重み計算周期623またはいずれかの新エッジの重み計算周期633に達した時に、その新ノードまたは新エッジの重みを計算するように負荷管理部34に指示し、重みが閾値を超えていればグラフ再分割指示部36がグラフ分割処理部33に再分割処理を行わせる。以後、これらの工程を繰り返す。
【0038】
図7はこの実施の形態によるグラフ分割装置の動作の手順を示す。まず、図示しない入力装置を用いて操作者が分割前のグラフの構成、すなわち図4に示す未分割のグラフの元ノード数42、元エッジ数43、元ノード構成情報44、元エッジ構成情報45を入力する。また操作者は入力装置を用いて分割後のグラフの新ノード数を入力する。ステップST72の初期入力処理では、グラフ構成管理部32は、入力された情報42〜45を未分割のグラフの管理情報として保持し、新ノード数を新ノード数52として保持する。
【0039】
次に、ステップST73の初期分割処理では、負荷管理部34から得た元ノードn1〜n8の各々の重みと元エッジe1〜e10の各々の重みと、元エッジ構成情報45に基づいて、グラフ分割処理部33は、グラフを新ノード数52で指定された数の新ノードに分割し、分割結果をグラフ構成管理部32と分割結果出力部37に通知する。グラフ構成管理部32は、分割結果に従って、新エッジ数53、新ノード構成情報54、新エッジ構成情報55を保持する。分割結果出力部37は、分割結果に従って上記のように動作する。
【0040】
次に、ステップST74の閾値超過集合生成処理では、閾値管理部35は、計算周期に達している新ノードまたは新エッジの重みを負荷管理部34に計算させ、算出された新ノードまたは新エッジの重みを対応する新ノードの重み閾値624または新エッジの重み閾値634と比較する。算出された重みが閾値を超えている場合には、閾値管理部35は、その新ノードの新ノード識別情報622またはその新エッジの新エッジ識別情報632を閾値超過ノードの集合または閾値超過エッジの集合に加える。
【0041】
次に、ステップST75の閾値超過判定では、閾値管理部35が出力した閾値超過ノードの集合と閾値超過エッジの集合の少なくとも一方が空集合でないか判定する。この判定で閾値超過ノードまたは閾値超過エッジがあれば(少なくとも一方の集合が空集合でないならば)、手順はステップST76の再分割処理へ進み、グラフ再分割指示部36はグラフ分割処理部33にグラフの分割処理を再度行わせる。ステップST76の後、手順はステップST74に戻り、次の計算周期まで待機する。また、ステップST75の判定で閾値超過ノードも閾値超過エッジもなければ(両方の集合が空集合であるならば)、手順はステップST74に戻り、次の計算周期まで待機する。
【0042】
以上のように、この実施の形態1によれば、グラフの分割処理からある時間の経過後に、閾値管理部35が、新ノードの重みおよび新エッジの重みを現在のパラメータに基づいて負荷管理部34に計算させ、新ノードの重みおよび新エッジの重みの少なくともいずれかが閾値を超えている場合に、グラフ再分割指示部36がグラフ分割処理部33にグラフの分割処理を再度行わせるので、分割後の新ノードの重みおよび新エッジの重みの時間に従った変化に応じて柔軟にグラフを再分割することができる。
【0043】
また、グラフ再分割指示部36は、新ノードの重みまたは新エッジの重みが閾値を超えた場合には、グラフ構成管理部32の記憶内容に基づいて、その新ノードまたは新エッジと関連性の高い元ノードと元エッジの集合を生成し、この集合を分割処理の対象としてグラフ分割処理部33に指示するので、必要最小限の範囲(部分グラフ)を再分割処理の対象とし、残りの範囲はそのまま維持することができ、再分割の処理効率ひいては処理全体の効率を高めることが可能である。
【0044】
実施の形態2.
図8は、この発明の実施の形態2に係るグラフ分割装置を示すブロック図である。図示のように、このグラフ分割装置は、図3に示すものと同じ構成要素に加えて、ノード数変更指示部38と分割後計算時期変更指示部39を備える。図示の構成要素は、プログラムに従ってコンピュータの中央演算処理装置が行う動作のモジュールを表しており、実際には一体として中央演算処理装置を構成する。
【0045】
ノード数変更指示部38は、グラフ分割装置の動作開始後に新ノードの数を変更する指示をグラフ構成管理部32とグラフ分割処理部33に直接的または間接的に与える。従って、一旦初期入力処理(図7のステップST72)が終了してグラフ分割装置の動作が進行を開始した後も、必要性があった場合に、分割後のグラフの新ノードの数を増減できる。例えば、グラフ分割装置が上記のようなプロセッサへのサブプロセスの割り当てに使用される場合には、プロセッサの新規追加や故障といった新ノードの数の増減の必要性が生ずる。
【0046】
このような新ノードの数の増減のトリガーは、手動でも自動でも発生させてよい。例えば、新ノードの数の増減の必要性があった場合に、操作者は入力装置を介して分割後のグラフの新ノードの数をノード数変更指示部38に任意の時期に通知してもよい。あるいは、新ノードに相当するプロセッサの数の変化をノード数変更指示部38は自動認識してもよい。このようなトリガーを受けて、ノード数変更指示部38は新ノードの数を指示する割り込みコマンドをグラフ構成管理部32とグラフ分割処理部33に与える。グラフ構成管理部32は、この数を次回の再分割後の新ノード数52として保持する。また、グラフ分割処理部33は、指示された新ノードの数に従ってグラフの分割処理を再度行なう。この場合の再分割処理は、割り込みコマンドの受信直後に行ってもよいし、新ノードまたは新エッジの重みが閾値を超えたと閾値管理部35で判断された後に行ってもよい。また、この場合の再分割処理では、全ての元ノードの各々の重みと全ての元エッジの各々の重みに基づいて、元のグラフ全体を割り込みコマンドで指定された数の新ノードに分割してよいし、上記のように必要最小限の範囲(部分グラフ)を再分割処理の対象としてもよい。
【0047】
なお、新ノードの数を削減する場合には、削減される新ノード識別情報も割り込みコマンドに指定されると好ましい。これにより、もはや利用しない新ノードの再編を避けてグラフ分割処理部33はグラフの再分割を行いうる。
【0048】
分割後計算時期変更指示部39は、グラフ分割装置の動作開始後に新ノードの重みおよび新エッジの重みを計算させる時期を変更する指示を閾値管理部35に直接的または間接的に与える。従って、一旦初期入力処理(図7のステップST72)が終了してグラフ分割装置の動作が進行を開始した後も、必要性があった場合に、新ノードの重みおよび新エッジの重みの計算周期を増減できる。例えば、グラフ分割装置が上記のようなプロセッサへのサブプロセスの割り当てに使用される場合には、プロセッサの処理負荷または情報交換量が安定している場合には計算周期は長くてよく、プロセッサの処理負荷または情報交換量が短期間で変動するのであれば計算周期は短くするのが好ましい。また、計算周期は、各ノード、各エッジについて個別に再設定できると好ましい。
【0049】
このような新ノードの重みおよび新エッジの重みの計算周期の増減のトリガーは、手動でも自動でも発生させてよい。例えば、操作者は入力装置を介して、変更すべき新ノードまたは新エッジの計算周期を分割後計算時期変更指示部39に任意の時期に通知してもよい。あるいは、新ノードまたは新エッジの各々について長期間にわたって図7の閾値超過判定結果が超過なしの場合には分割後計算時期変更指示部39はその新ノードまたは新エッジの計算周期を自動的に延長し、図7の閾値超過判定結果が毎回超過ありの場合には分割後計算時期変更指示部39は計算周期を自動的に短縮してもよい。
【0050】
このようなトリガーを受けて、分割後計算時期変更指示部39は新ノードの重みおよび新エッジの重みを計算させる周期を変更する割り込みコマンドを閾値管理部35に与える。閾値管理部35は、この周期を対応する新ノードまたは新エッジの計算周期623または633として保持する。以後、当該新ノードまたは新エッジについては、再設定された周期で重みが算出される。
【0051】
以上のように、この実施の形態2では、実施の形態1の効果に加えて、ノード数変更指示部38がグラフ分割装置の動作開始後に新ノードの数を変更する指示をグラフ分割処理部33に与えるので、必要な時点で新ノード数の変更が可能であるという効果が得られる。
【0052】
また、分割後計算時期変更指示部39がグラフ分割装置の動作開始後に新ノードの重みおよび新エッジの重みを計算させる時期を変更する指示を閾値管理部35に与えるので、必要な時点で新ノードの重みおよび新エッジの重みを計算させる時期を変更することが可能である。
【0053】
以上、複数のサブプロセスを複数のプロセッサに配分する事象を取り扱う例をこの発明の用途として例示したが、この発明をこの用途に限定する意図ではなく、この発明は時間の変化に応じて要因が変動しうる他の現実の事象、例えば人員や装置の適切な場所への配置に適用することが可能である。
【0054】
【発明の効果】
以上のように、この発明によれば、複数の元ノードとそれらを接続する複数の元エッジを有するグラフを分割するグラフ分割装置において、グラフを分割して生ずる元ノードの部分集合である新ノードの各々の重みと上記新ノードを接続する新エッジの各々の重みを可変のパラメータに基づいて計算することが可能な重み計算部と、グラフを様々な分割形式で分割して生ずる元ノードの部分集合である新ノード候補と上記新ノード候補を接続する新エッジ候補の組み合わせを上記重み計算部に与えて、各新ノード候補の重みと各新エッジ候補の重みを上記重み計算部に算出させ、計算された各新ノード候補の重みと各新エッジ候補の重みが準最適となる組み合わせに従ってグラフを分割するグラフ分割処理部と、上記グラフ分割処理部によるグラフの分割処理からある時間の経過後に、上記グラフ分割処理部で分割されたグラフの新ノードの重みおよび新エッジの重みを現在のパラメータに基づいて上記重み計算部に計算させる分割後計算指示部と、上記新ノードの重みおよび上記新エッジの重みの少なくともいずれかが閾値を超えている場合に、上記グラフ分割処理部に上記グラフの分割処理を再度行わせるグラフ再分割指示部とを備えるので、分割後の新ノードの重みおよび新エッジの重みの時間に従った変化に応じて柔軟にグラフを再分割することができる。
【図面の簡単な説明】
【図1】グラフ分割処理の概念を説明するため、未分割のグラフの一例を示す模式図である。
【図2】図1のグラフを分割した後のグラフの一例を示す模式図である。
【図3】この発明の実施の形態1によるグラフ分割装置の構成を示すブロック図である。
【図4】図3のグラフ分割装置のグラフ構成管理部に記憶された未分割のグラフの管理情報構造を示す模式図である。
【図5】グラフ構成管理部に記憶された分割後のグラフの管理情報構造を示す模式図である。
【図6】図3のグラフ分割装置の閾値管理部が保持する閾値管理情報を示す模式図である。
【図7】実施の形態1によるグラフ分割装置の動作の手順を示すフローチャートである。
【図8】この発明の実施の形態2に係るグラフ分割装置を示すブロック図である。
【符号の説明】
32 グラフ構成管理部、33 グラフ分割処理部、34 負荷管理部(重み計算部)、35 閾値管理部(分割後計算指示部)、36 グラフ再分割指示部、37 分割結果出力部、38 ノード数変更指示部、39 分割後計算時期変更指示部、42 元ノード数、43 元エッジ数、44 元ノード構成情報、45 元エッジ構成情報、52 新ノード数、53 新エッジ数、54 新ノード構成情報、55 新エッジ構成情報、62 新ノードの閾値管理情報、63 新エッジの閾値管理情報、442 元ノード識別情報、443 元ノードの重み計算情報、452 元エッジ識別情報、453 始点ノード識別情報、454 終点ノード識別情報、455 元エッジの重み計算情報、542 新ノード識別情報、543 新ノードの重み計算情報、544 元ノードの集合と元エッジの集合の組、552 新エッジ識別情報、553 始点ノード識別情報、554 終点ノード識別情報、555 新エッジの重み計算情報、556 元エッジの集合、622 新ノード識別情報、623 新ノードの重み計算周期、624 新ノードの重み閾値、632 新エッジ識別情報、633 新エッジの重み計算周期、634 新エッジの重み閾値、e1〜e10 元エッジ、n1〜n8 元ノード、D1,D2 分割線、E1〜E2 新エッジ、N1〜N3 新ノード。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a graph partitioning device.
[0002]
[Prior art]
Graph partitioning is used to solve a real event for efficiently and appropriately allocating a plurality of processes, objects, and the like, each having a quantity, to each other. For example, in a conventional graph partitioning system, a seed heuristic and a stochastic search are performed on an undivided graph to obtain an initial graph partition, and the initial graph partition is performed using a Kernigan and Lin Algorithm. To generate a more appropriate final graph partition (for example, see Patent Document 1).
[0003]
[Patent Document 1]
JP-A-8-212249
[0004]
[Problems to be solved by the invention]
However, the final graph partition generated by the conventional graph partitioning apparatus is fixed, and is applied to a real event in which the weight (cost) of a node and / or the weight (cost) of an edge changes over time. In such a case, there has been a problem that the subsequent flexible and automatic graph division cannot be performed. For example, for a program having a plurality of sub-processes that can be executed in parallel and exchange each other's operation values, the sub-processes are used for the purpose of equalizing the processing load of the processors and minimizing the amount of information exchange between the processors. Graph partitioning to distribute a process to multiple processors may be used. However, as these sub-processes progress, the processing load on the processors (corresponding to the weight of the new node after division) becomes uneven, and the amount of information exchange between the processors (the weight of the new edge after division Or equivalent) may be increased. Therefore, there is a demand for a device that can flexibly re-divide a graph by appropriately reviewing the weight of a new node after division and the weight of a new edge even after graph division processing is once performed.
[0005]
The present invention has been made to solve the above-described problem, and it is possible to flexibly re-divide a graph according to a change in weight of a new node after division and weight of a new edge with time. It is an object of the present invention to obtain a graph partitioning device capable of performing the above.
[0006]
[Means for Solving the Problems]
A graph partitioning device according to the present invention is a graph partitioning device for partitioning a graph having a plurality of source nodes and a plurality of source edges connecting them, wherein each of the new nodes is a subset of the source nodes generated by partitioning the graph. And a weight calculation unit that can calculate the weight of each of the new edges connecting the new nodes based on the variable parameters, and a subset of the original nodes generated by dividing the graph in various division formats. The combination of a new node candidate and a new edge candidate connecting the new node candidate is given to the weight calculation unit, and the weight of each new node candidate and the weight of each new edge candidate are calculated by the weight calculation unit. A graph division processing unit that divides a graph according to a combination in which the weight of each new node candidate and the weight of each new edge candidate are suboptimal, and the graph division processing unit A post-division calculation instruction unit that causes the weight calculation unit to calculate the weight of the new node and the weight of the new edge of the graph divided by the graph division processing unit based on current parameters after a certain time has elapsed from the rough division processing. And a graph re-division instructing unit that causes the graph division processing unit to perform the graph division processing again when at least one of the weight of the new node and the weight of the new edge exceeds a threshold value. It is.
[0007]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, various embodiments according to the present invention will be described with reference to the drawings.
Embodiment 1 FIG.
First, the concept of the graph division processing will be described with reference to FIGS. FIG. 1 shows an example of an undivided graph, and FIG. 2 shows an example of a graph obtained by dividing the graph of FIG. The undivided graph illustrated in FIG. 1 has a plurality of nodes n1 to n8 and a plurality of edges e1 to e10 connecting the nodes as illustrated. Symbols n1 to n8 are node identification information, and e1 to e10 are edge identification information. Here, it is assumed that the graph is divided into three subsets by two virtual dividing lines D1 and D2.
[0008]
FIG. 2 shows the resulting graph after the division. The divided graph illustrated in FIG. 2 includes a plurality of new nodes N1 to N3 and a plurality of new edges E1 to E2 connecting the nodes as illustrated. Symbols N1 to N3 are node identification information, and E1 to E2 are edge identification information. The table attached to FIG. 2 shows the correspondence between the nodes n1 to n8 and the edges e1 to e10 of the undivided graph, and the new nodes N1 to N3 and the new edges E1 to E2 of the divided graph. In this example, the new nodes N1 to N3 after the division correspond to the three subsets after the division, and each of the new nodes N1 to N3 corresponds to the set of nodes of the undivided graph included in each subset and the edge of the edge. It is represented by a set of sets. The new edges E1 and E2 after division correspond to the two virtual division lines D1 and D2, and each of the new edges E1 and E2 is a set of edges of an undivided graph traversed by the division lines D1 and D2. Is represented. For example, the new node N1 is composed of the original nodes n1, n2, n3 and the original edges e1, e2, e3, and the new edge E1 is composed of the original edges e3, e5.
[0009]
As an example of the use of the graph division according to this embodiment, for a program having a plurality of sub-processes that can be executed in parallel and exchange each other's operation values, a graph for distributing the sub-processes to a plurality of processors. In the division processing, the original nodes n1 to n8 correspond to the sub-processes, the original edges e1 to e10 correspond to the portions where information exchange between the sub-processes exists, and the subset generated by the division, that is, the new nodes N1 to N3 can be used. The new edges E1 and E2 correspond to the information exchange path between the processors. That is, the three available processors corresponding to the three new nodes N1 to N3 exchange information using the information exchange paths corresponding to the two new edges E1 to E2. In this case, in order to increase the efficiency of the overall information processing, the weight of the original node (the processing load of the sub-process) is allocated to the new node as uniformly as possible, and the weight (the amount of information exchange) is changed. The original nodes (sub-processes) at both ends of the large original edge are allocated to the same new node (processor) as much as possible, and the original nodes at both ends of the original edge having a small weight are allocated to separate new nodes.
[0010]
The graph dividing apparatus according to this embodiment can re-divide the graph according to a change in the situation such as the weight of the node and the weight of the edge after the graph is divided in this way. Concerning the above example of the distribution of sub-processes, as the sub-process progresses, the processing load (corresponding to the weight of the node) of the processor can be predicted to be uneven or uneven, or the The graph can be subdivided if the amount of information exchange (corresponding to edge weights) has increased or can be predicted to increase. For example, the processing load of a certain sub-process may increase significantly, and it may be preferable to exclusively use one processor.On the other hand, the processing load of a certain sub-process may decrease significantly, and one processor may be replaced by another. It may be preferable to use it jointly with the subprocess. Further, there may be a case where the amount of information exchange between the processors becomes large and it is preferable to execute two sub-processes related to the information exchange by one processor.
[0011]
FIG. 3 is a block diagram showing a configuration of the graph partitioning device according to the first embodiment. As illustrated, the graph dividing apparatus includes a graph configuration management unit 32, a graph division processing unit 33, a load management unit (weight calculation unit) 34, a threshold management unit (calculation instruction unit after division) 35, and a graph re-division instruction unit 36. , And a division result output unit 37. These represent modules of operations performed by the central processing unit of the computer according to the program, and actually constitute the central processing unit integrally.
[0012]
The graph configuration management unit 32 has a function of storing and managing the configuration of an undivided graph specified by the operator. Further, after the graph is divided, the graph configuration management unit 32 converts the configuration of the divided graph into an undivided graph. It has a function of storing and managing in association with the configuration of the graph. That is, the graph configuration management unit 32 stores the arrangement relationship between the original nodes and the original edges of the undivided graph designated by the operator, and after the graph is divided, stores the arrangement relationship between the new nodes and the new edges. In addition, the correspondence between the original node and the original edge and the new node and the new edge is stored.
[0013]
FIG. 4 shows a management information structure of an undivided graph stored in the graph configuration management unit 32. Even after the graph division, the graph configuration management unit 32 continues to store the original management information for use in re-division. The management information for managing the source nodes includes the source node number 42 and the source node configuration information 44 for each of the source nodes n1 to n8. Each of the source node configuration information 44 has source node identification information 442 (for example, n1) and weight calculation information 443 of the source node. The original node weight calculation information 443 is the current value of the original node weight (for example, a variable parameter corresponding to the processing load of each subprocess) that changes with time or information used to calculate the current value. is there. The contents of the weight calculation information 443 of the original node and the method of obtaining the weight calculation information 443 differ depending on the system monitored by the graph dividing apparatus, particularly on the processing method. For example, the weight calculation information 443 of the former node may be information that specifies the length, complexity, degree of memory use, and the like of the routine to be executed next by the corresponding subprocess. Also, the weight calculation information 443 of the original node may be information received from a processor (not shown) monitored by the graph dividing device, or information obtained by monitoring the progress of the program by the graph dividing device. The graph configuration management unit 32 sequentially or periodically updates the weight calculation information 443 of the changing original node.
[0014]
Management information for managing the original edge includes the original edge number 43 and the original edge configuration information 45 for each of the original edges e1 to e10. Each of the original edge configuration information 45 includes the original edge identification information 452 (eg, e1), the start node identification information 453 of the original edge (eg, n1 for the original edge e1 as shown in FIG. 1), and the end point of the original edge. It has node identification information 454 (for example, n3 for the original edge e1) and weight calculation information 455 of the original edge. The original edge weight calculation information 455 is the current value of the original edge weight (for example, a variable parameter corresponding to the amount of information exchange between sub-processes) that changes with time or information used to calculate the current value. It is. The content and the acquisition method of the original edge weight calculation information 455 differ depending on the system monitored by the graph dividing apparatus, particularly, the communication method. For example, the original edge weight calculation information 455 may be information specifying the number of times of information exchange instructions included in a routine to be executed next by a related subprocess. The original edge weight calculation information 455 may be information received from a processor (not shown) monitored by the graph dividing device, or information obtained by monitoring the progress of the program by the graph dividing device. The graph configuration management unit 32 sequentially or periodically updates the weight calculation information 455 of the changing original edge.
[0015]
In the initial graph division, load management is performed based on the original node weight calculation information 443 of the original node configuration information 44 and the original edge weight calculation information 455 of each original edge configuration information 45 held by the graph configuration management unit 32. The unit 34 calculates the weight of each of the original nodes n1 to n8 and the weight of each of the original edges e1 to e10. If the weight calculation information represents the current value of the weight itself, the load management unit 34 need only read the weight calculation information from the graph configuration management unit 32. Based on these weights and the original edge configuration information 45 (especially, the original edge identification information 452, the start node identification information 453, and the end node identification information 454 indicating the connection relation of individual nodes), the graph division processing unit 33 The graph is divided into a number of new nodes specified by the operator (corresponding to the number of new nodes 52 in FIG. 5 described later) by a predetermined graph division method.
[0016]
In order to perform this division, the graph division processing unit 33 converts the graph into a certain division format (for example, the division lines D1 and D2 shown in FIG. 1) based on the connection relation between the individual nodes indicated in the original edge configuration information 45. To obtain a combination of a new node candidate and a new edge candidate which is a subset of the original nodes generated by the division. Then, the graph division processing unit 33 gives the combination of the new node candidate and the new edge candidate to the load management unit 34, and causes the load management unit 34 to calculate the weight of each new node candidate and the weight of each new edge candidate. The weight of each new node candidate can be calculated by summing the weights of the original nodes that make up the new node candidate or by summing the weights of such an original node and the original edge. It can be calculated by summing the weights of the original edges constituting the new edge candidate. For example, if one of the new node candidates at this stage is the new node N1 in FIG. 2, the weight is the sum of the weights of the original nodes n1, n2, n3, or the original nodes n1, n2, n3 and the original edges e1, e2, It can be considered as the sum of the weights of e3. If one of the new edge candidates at this stage is the new edge E1 in FIG. 2, the weight may be considered to be the sum of the weights of the original edges e4 and e5.
[0017]
Further, the graph division processing unit 33 changes the division format in various ways, gives the resulting combination of the new node candidate and the new edge candidate to the load management unit 34, and weights each new node candidate and calculates the weight of each new edge candidate. The calculation of the weight by the load management unit 34 is repeated. Then, the graph division processing unit 33 divides the graph according to a combination in which the calculated weight of each new node candidate is as uniform as possible and the weight of each new edge candidate is as small as possible. Examples of such a division method include existing methods such as a Kernigan / Lin algorithm, a linear time solution to the number of sides proposed by Fiduccia and Mattheyses, a Simulated Annealing (SA) method, and a genetic algorithm. Any of the graph division methods described above may be used.
[0018]
As described below, a division method in which the number of division lines is gradually increased until a target number of new nodes is obtained may be adopted. In this division method, first, the sum of the weights of the original nodes belonging to the two parts separated by the dividing line is as equal as possible, and the sum of the weights of the original edges crossing the dividing line is minimized as much as possible. Divide the graph into two by one dividing line. Then, the sum of the weights of the original nodes of the respective parts is compared, and the part having the larger sum of the weights of the original nodes is divided into two parts by the same method. Thereafter, until the number of parts reaches the specified number of new nodes, the division of the part having the larger total weight of the original nodes into two is repeated.
[0019]
The graph division processing unit 33 notifies the graph configuration management unit 32 of the division result, and in accordance with the notification, the graph configuration management unit 32 generates and stores management information of the divided graph. FIG. 5 shows the management information structure of the divided graph stored in the graph configuration management unit 32 in this way. Until the graph is subdivided, the graph configuration management unit 32 keeps storing this new management information, and updates the new management information according to the subdivision result when subdivided.
[0020]
The management information for managing the new nodes includes the number of new nodes 52 specified by the operator and new node configuration information 54 for each of the new nodes N1 to N3. Each of the new node configuration information 54 has a new node identification information 542 (for example, N1) and a set 544 of a set of original nodes and a set of original edges corresponding to the weight calculation information 543 of the new node. The set 544 of the corresponding set of the original node and the set of the original edge is, for example, an element included in the new edge such as <{n1, n2, n3}, {e1, e2, e3}> for the new edge E1 shown in FIG. It is a set of nodes and a set of original edges.
[0021]
The new node weight calculation information 543 is information used to calculate the current value of the weight of the new node that changes over time (for example, corresponding to the processing load of each processor). The weight of each new node can be calculated by summing the weights of the former nodes constituting the new node or by summing the weights of the former nodes and the former edges. For example, the weight of the new node N1 in FIG. 2 may be considered as the sum of the weights of the original nodes n1, n2, and n3, or the sum of the weights of the original nodes n1, n2, and n3 and the original edges e1, e2, and e3. Therefore, the weight calculation information 543 of the new node may be a calculation formula indicating that the sum of the weight calculation information 443 of the original node included in the new node (and the weight calculation information 455 of the original edge) is calculated.
[0022]
The management information for managing the new edge includes a new edge number 53 and new edge configuration information 55 for each of the new edges E1 and E2. Each of the new edge configuration information 55 includes new edge identification information 552 (for example, E1), start node identification information 553 of the new edge (for example, N1 for each new edge E1 as shown in FIG. 2), and an end point of the new edge. It has node identification information 554 (for example, N2 for new edge E1), weight calculation information 555 of the new edge, and a set 556 of corresponding original edges. The corresponding original edge set 556 is a set of the original edges included in the new edge such as {e4, e5} for the new edge E1 shown in FIG.
[0023]
The new edge weight calculation information 555 is information used to calculate the current value of the weight of the new edge that changes with time (e.g., corresponding to the amount of information exchange between processors). The weight of each new edge can be calculated by summing the weights of the original edges constituting the new edge. For example, in the case of the new edge E1 in FIG. 2, its weight may be considered as the sum of the weights of the original edges e4 and e5. Therefore, the new edge weight calculation information 555 may be a calculation expression indicating that the sum of the original edge weight calculation information 455 included in the new edge is calculated.
[0024]
The graph division processing unit 33 also notifies the division result to the division result output unit 37. The entity of the division result output unit 37 may differ depending on the actual event handled by the graph division device. For example, the division result output unit 37 may be a display control unit that causes a display to display the result of the graph division, or a print control unit that causes a printer to print the result of the graph division. In an application in which a plurality of sub-processes are appropriately assigned to a plurality of processors, the division result output unit 37 issues a command to each of the processors to be handled so that the processors cooperate as a group according to a subset (new node) of the division result. It may be a transmission command unit for transmitting.
[0025]
The threshold management unit 35 performs load management on the weights of the new nodes N1 to N3 and the weights of the new edges E1 and E2 of the divided graph at a time after the graph division processing by the graph division processing unit 33 as described above. Let the unit 34 calculate. Preferably, the weight of each new node and the weight of each new edge are calculated separately and periodically. The threshold management unit 35 compares each of the calculation results of the weights by the load management unit 34 with each threshold. If the weight of any new node or the weight of any new edge exceeds the threshold, the threshold management unit 35 notifies the graph re-division instruction unit 36 of that fact.
[0026]
FIG. 6 shows threshold management information held by the threshold management unit 35 for performing such a comparison. The threshold management information includes threshold management information 62 of a new node and threshold management information 63 of a new edge. The threshold management information 62 of the new node exists for the number of new nodes, and the threshold management information 63 of the new edge exists for the number of new edges. Each of the new node threshold management information 62 has new node identification information 622 (for example, N1), a weight calculation cycle 623 of the new node, and a weight threshold 624 of the new node. The new node identification information 622 corresponds to the new node identification information 542 in FIG. The new node weight calculation cycle 623 indicates a period until the weight of the new node is calculated after the division. The weight threshold value 624 of the new node indicates a threshold value to be compared with the calculated value of the weight of the new node.
[0027]
Each of the new edge threshold management information 63 has new edge identification information 632 (for example, E1), a weight calculation cycle 633 of the new edge, and a weight threshold 634 of the new edge. The new edge identification information 632 corresponds to the new edge identification information 552 in FIG. The new edge weight calculation cycle 633 indicates a period until the weight of the new edge is calculated after the division. The new edge weight threshold 634 indicates a threshold to be compared with the calculated value of the weight of the new edge.
[0028]
The threshold management unit 35 refers to the threshold management information 62 of each new node and the threshold management information 63 of the new edge after the graph is divided, and calculates the weight calculation cycle of the new node whose elapsed time from the graph division is one or more. 623 or any new edge weight calculation cycle 633 is monitored, and the load management unit 34 is instructed to calculate the weight of the new node or new edge that has reached the calculation cycle. In response to this instruction, the load management unit 34 calculates the weight of the new node or the new edge based on the weight calculation information 543 of the new node or the weight calculation information 555 of the new edge (see FIG. 5). The calculated new node or new edge weight is returned to the threshold management unit 35, and the threshold management unit 35 compares the calculated weight with the corresponding new node weight threshold 624 or new edge weight threshold 634. If the calculated weight exceeds the threshold, the threshold management unit 35 determines the new node identification information 622 of the new node or the new edge identification information 632 of the new edge as a set of threshold excess nodes or a threshold excess edge. Add to the set. That is, if any one or more new node identification information 622 is included in the set of threshold excess nodes, the corresponding new node is overloaded, and any one or more new edge identification information 632 is included in the set of threshold excess edges. If there is, the corresponding new edge is overloaded.
[0029]
The graph re-division instructing unit 36 refers to the set of the threshold excess nodes and the set of the threshold excess edges, and if any of them is not an empty set (that is, at least one of the weight of the new node and the weight of the new edge exceeds the threshold) If it is, the graph division processing unit 33 performs the graph division processing again. In this graph division process again, the entire original graph is divided into new nodes based on the respective weights of all the original nodes and the respective weights of all the original edges, similarly to the initial graph division described above. You may. However, in order to increase the processing efficiency of the subdivision and hence the efficiency of the entire processing, it is preferable that the necessary minimum range (subgraph) is subjected to the subdivision processing as described below, and the remaining range is maintained as it is.
[0030]
If the weight of a certain new node exceeds the threshold, the graph re-division instructing unit 36 uses the new node identification information 622 that exists in the set of nodes whose threshold has been exceeded as a key based on the storage contents of the graph configuration management unit 32. The original node and the original edge included in the new node, the original edge included in the new edge to which the new node is directly connected, and the original node and the original edge included in the new node connected to the new node only through the new edge Generate a set of The original node and the original edge included in the new node refer to the new node configuration information 54 held in the graph configuration management unit 32 having the new node identification information 542 that matches the new node identification information 622, and the It is grasped by reading the set 544 (FIG. 5) of the set of the original node and the set of the original edge. The original edge included in the new edge to which the new node is directly connected, when the new node identification information matches the start node identification information 553 or the end node identification information 554 of the new edge configuration information 55 held in the graph configuration management unit 32 First, the set 556 of the original edge of the new edge configuration information 55 is read. The original node and the original edge included in the new node to which the new node is connected only via the new edge are the end node identification information when the new node identification information matches the start node identification information 553 of the new edge configuration information 55. Reference is made to the new node configuration information 54 corresponding to 554, and this is grasped by reading a set 544 of a set of original nodes and a set of original edges therein. Alternatively, the original node and the original edge included in the new node to which the new node is connected only via the new edge are determined when the new node identification information matches the end node identification information 554 of the new edge configuration information 55. It is grasped by referring to the new node configuration information 54 corresponding to the identification information 553 and reading a set 544 of a set of original nodes and a set of original edges therein.
[0031]
For example, when the new node N1 in FIG. 2 exceeds the threshold, the original nodes n1, n2, n3 included in the new node N1, the original edges e1, e2, e3, and the new edge E1 directly connected to the new node N1 are generated. The source nodes e4, e5, and e6, and the source nodes n4, n5, and n6 and the source edges e6, e7, and e8 of the new node N2 to which the new node N1 is connected via the new edge E1 constitute this set. This set corresponds to a subgraph to be subdivided. The graph re-division instructing unit 36 instructs the set to be subjected to the re-division processing to the division processing unit. Therefore, in the above case, the new nodes N1 and N2 and the new edge E1 are reorganized, but the new nodes N3 and E2, that is, the original nodes n7 and n8 and the original edges e9 and e10 are subject to the re-division processing. The new node N3 and the new edge E2 are maintained as they are.
[0032]
When the weight of a certain new edge exceeds the threshold value, the graph re-division instructing unit 36 uses the new edge identification information 632 existing in the set of the threshold excess edges as a key based on the storage contents of the graph configuration management unit 32. Then, a set of the original edge included in the new edge and the original node and the original edge included in the new node directly connected to the new edge is generated. The original edge included in the new edge refers to the new edge configuration information 55 held in the graph configuration management unit 32 having the new edge identification information 552 that matches the new edge identification information 632, and the original edge in the new edge configuration information 55 is referred to. By reading the set 556 (FIG. 5). The original node and the original edge included in the new node to which the new edge is directly connected refer to the new node configuration information 54 corresponding to the start node identification information 553 or the end node identification information 554 of the new edge configuration information 55, and It is grasped by reading a set 544 of a set of the original nodes and a set of the original edges therein.
[0033]
For example, when the new edge E1 in FIG. 2 exceeds the threshold value, the original edges e4 and e5 included in the new edge E1, the original nodes n1, n2, and n3 included in the new node N1 to which the new edge E1 is directly connected are included. The original nodes n4, n5, n6 and the original edges e6, e7, e8 included in the new nodes N2 to which the edges e1, e2, e3 and the new edge E1 are directly connected constitute this set. This set corresponds to a subgraph to be subdivided. The graph re-division instructing unit 36 instructs the set to be subjected to the re-division processing to the division processing unit. Therefore, in the above case, the new nodes N1 and N2 and the new edge E1 are reorganized, but the new nodes N3 and E2, that is, the original nodes n7 and n8 and the original edges e9 and e10 are subject to the re-division processing. The new node N3 and the new edge E2 are maintained as they are.
[0034]
A further condition in such minimum necessary subdivision processing is that an original node directly connected to an original edge constituting the same new edge to be maintained and belonging to the same new node to be subdivided is subjected to subdivision by subdivision. It must not be allocated to a separate new node. For example, when the new edge E1 in FIG. 2 is left, the original nodes n4 and n5 that are directly connected to the original edges e4 and e5 included in the new edge E1 and belong to the same new node N2 have the same Should be allocated to new nodes. The instruction for designating this condition is also created by the graph re-division instructing unit 36 and notified to the graph division processing unit 33.
[0035]
Based on the instruction from the graph re-division instructing unit 36, the graph division processing unit 33 determines the combination of the new node candidate and the new edge candidate for the subgraph to be re-divided while changing the division format in various ways. , And the load management unit 34 calculates the weight of each new node candidate and the weight of each new edge candidate. Then, according to a combination in which the calculated weights of the new node candidates are as uniform as possible and the weights of the new edge candidates are as small as possible, the graph division processing unit 33 divides the subgraph by the number of nodes to be subdivided. Is divided into new nodes. In this manner, the new node and the new edge can be flexibly reorganized in a minimum necessary range in accordance with the time-dependent changes in the weight of the new node and the weight of the new edge.
[0036]
The graph division processing unit 33 notifies the graph division management unit 32 of the result of the redivision, and the graph configuration management unit 32 updates the management information of the graph after division according to the notification. Further, the graph division processing unit 33 notifies the division result output unit 37 of the subdivision result. The division result output unit 37 performs a process according to the re-division result. For example, the division result output unit 37 sends a command to display the subdivision result on the display, to cause the printer to print the subdivision result, or to operate each of the processors related to the subdivision to operate according to the subdivision result. .
[0037]
Even after this subdivision, when the elapsed time from the graph division reaches the weight calculation cycle 623 of any new node or the weight calculation cycle 633 of any new edge, the threshold management unit 35 Alternatively, the load management unit 34 is instructed to calculate the weight of the new edge, and if the weight exceeds the threshold, the graph re-division instruction unit 36 causes the graph division processing unit 33 to perform the re-division processing. Thereafter, these steps are repeated.
[0038]
FIG. 7 shows the procedure of the operation of the graph dividing apparatus according to this embodiment. First, the operator uses an input device (not shown) to configure the graph before division, that is, the original node number 42, the original edge number 43, the original node configuration information 44, and the original edge configuration information 45 of the undivided graph shown in FIG. Enter Further, the operator uses the input device to input the number of new nodes of the divided graph. In the initial input process of step ST72, the graph configuration management unit 32 holds the input information 42 to 45 as management information of the undivided graph, and holds the new node number as the new node number 52.
[0039]
Next, in the initial division processing of step ST73, the graph division is performed based on the respective weights of the original nodes n1 to n8 and the respective weights of the original edges e1 to e10 obtained from the load management unit 34 and the original edge configuration information 45. The processing unit 33 divides the graph into new nodes of the number specified by the new node number 52, and notifies the graph configuration management unit 32 and the division result output unit 37 of the division result. The graph configuration management unit 32 holds a new edge number 53, new node configuration information 54, and new edge configuration information 55 according to the division result. The division result output unit 37 operates as described above according to the division result.
[0040]
Next, in the threshold excess set generation processing in step ST74, the threshold management unit 35 causes the load management unit 34 to calculate the weight of the new node or new edge that has reached the calculation cycle, and calculates the weight of the calculated new node or new edge. The weight is compared with the weight threshold 624 of the corresponding new node or the weight threshold 634 of the new edge. If the calculated weight exceeds the threshold, the threshold management unit 35 determines the new node identification information 622 of the new node or the new edge identification information 632 of the new edge as a set of threshold excess nodes or a threshold excess edge. Add to the set.
[0041]
Next, in the threshold excess determination of step ST75, it is determined whether at least one of the set of threshold excess nodes and the set of threshold excess edges output by the threshold management unit 35 is not an empty set. If there is a threshold-exceeding node or a threshold-exceeding edge in this determination (if at least one set is not an empty set), the procedure proceeds to the re-division processing in step ST76. Causes the graph to be split again. After step ST76, the procedure returns to step ST74, and waits until the next calculation cycle. If neither the threshold excess node nor the threshold excess edge is determined in step ST75 (if both sets are empty sets), the procedure returns to step ST74 and waits until the next calculation cycle.
[0042]
As described above, according to the first embodiment, after a lapse of a certain time from the graph division processing, the threshold management unit 35 determines the weight of the new node and the weight of the new edge based on the current parameters. When at least one of the weight of the new node and the weight of the new edge exceeds the threshold value, the graph re-division instructing unit 36 causes the graph division processing unit 33 to perform the graph division processing again. The graph can be re-divided flexibly according to the time-dependent changes of the weight of the new node and the weight of the new edge after the division.
[0043]
When the weight of the new node or the weight of the new edge exceeds the threshold value, the graph re-partition instructing unit 36, based on the storage contents of the graph configuration management unit 32, A set of high original nodes and original edges is generated, and this set is instructed to the graph division processing unit 33 as an object of division processing. Therefore, a minimum necessary range (subgraph) is subjected to redivision processing, and the remaining range is Can be maintained as it is, and the processing efficiency of subdivision, and thus the efficiency of the entire processing, can be increased.
[0044]
Embodiment 2 FIG.
FIG. 8 is a block diagram showing a graph dividing apparatus according to Embodiment 2 of the present invention. As shown, the graph dividing apparatus includes a node number change instructing unit 38 and a post-division calculation time change instructing unit 39 in addition to the same components as those shown in FIG. The illustrated components represent the modules of the operations performed by the central processing unit of the computer according to the program, and actually constitute the central processing unit as a whole.
[0045]
The node number change instructing unit 38 directly or indirectly gives an instruction to change the number of new nodes to the graph configuration management unit 32 and the graph division processing unit 33 after the operation of the graph dividing apparatus starts. Therefore, even after the initial input process (step ST72 in FIG. 7) is completed and the operation of the graph dividing apparatus starts, if necessary, the number of new nodes in the divided graph can be increased or decreased if necessary. . For example, when the graph partitioning apparatus is used for allocating sub-processes to processors as described above, it becomes necessary to increase or decrease the number of new nodes, such as new addition of a processor or failure.
[0046]
Such a trigger for increasing or decreasing the number of new nodes may be generated manually or automatically. For example, when it is necessary to increase or decrease the number of new nodes, the operator may notify the number of new nodes of the divided graph to the node number change instructing unit 38 at any time via the input device. Good. Alternatively, the node number change instructing unit 38 may automatically recognize a change in the number of processors corresponding to the new node. Upon receiving such a trigger, the node number change instructing unit 38 gives an interrupt command for instructing the number of new nodes to the graph configuration management unit 32 and the graph division processing unit 33. The graph configuration management unit 32 holds this number as the new node number 52 after the next subdivision. Further, the graph division processing unit 33 performs the graph division processing again according to the designated number of new nodes. The subdivision processing in this case may be performed immediately after receiving the interrupt command, or may be performed after the threshold management unit 35 determines that the weight of the new node or the new edge has exceeded the threshold. Further, in the re-division process in this case, the entire original graph is divided into the number of new nodes specified by the interrupt command based on the respective weights of all the original nodes and the respective weights of all the original edges. Alternatively, the minimum necessary range (subgraph) may be subjected to the subdivision processing as described above.
[0047]
When the number of new nodes is reduced, it is preferable that the new node identification information to be reduced is also specified in the interrupt command. Thus, the graph division processing unit 33 can redivide the graph while avoiding reorganization of a new node that is no longer used.
[0048]
The post-division calculation time change instructing unit 39 directly or indirectly gives an instruction to the threshold management unit 35 to change the time to calculate the weight of the new node and the weight of the new edge after the operation of the graph dividing apparatus starts. Therefore, even after the initial input process (step ST72 in FIG. 7) is completed and the operation of the graph dividing apparatus starts to proceed, if necessary, the calculation cycle of the weight of the new node and the weight of the new edge can be calculated. Can be increased or decreased. For example, when the graph partitioning device is used for allocating sub-processes to processors as described above, the calculation cycle may be long when the processing load of the processor or the amount of information exchange is stable, and If the processing load or the amount of information exchange fluctuates in a short period of time, it is preferable to shorten the calculation cycle. Further, it is preferable that the calculation cycle can be individually reset for each node and each edge.
[0049]
Such a trigger for increasing or decreasing the calculation cycle of the weight of the new node and the weight of the new edge may be generated manually or automatically. For example, the operator may notify the post-division calculation time change instructing unit 39 of the calculation cycle of the new node or new edge to be changed at an arbitrary time via the input device. Alternatively, in the case where the threshold excess determination result of FIG. 7 is not exceeded for a long time for each new node or new edge, the post-division calculation time change instructing unit 39 automatically extends the calculation cycle of the new node or new edge. However, in the case where the threshold excess determination result in FIG. 7 has been exceeded each time, the post-division calculation time change instructing unit 39 may automatically shorten the calculation cycle.
[0050]
In response to such a trigger, the post-division calculation time change instructing unit 39 gives the threshold management unit 35 an interrupt command for changing the cycle for calculating the weight of the new node and the weight of the new edge. The threshold management unit 35 holds this cycle as the calculation cycle 623 or 633 of the corresponding new node or new edge. Thereafter, the weight of the new node or new edge is calculated at the reset cycle.
[0051]
As described above, in the second embodiment, in addition to the effects of the first embodiment, in addition to the effects of the first embodiment, the node number change instructing unit 38 issues an instruction to change the number of new nodes after the operation of the graph dividing apparatus is started. , The effect is obtained that the number of new nodes can be changed at a necessary time.
[0052]
In addition, the post-division calculation time change instructing unit 39 gives the threshold management unit 35 an instruction to change the time at which the weight of the new node and the weight of the new edge are calculated after the operation of the graph partitioning apparatus is started. It is possible to change the timing of calculating the weight of the new edge and the weight of the new edge.
[0053]
As described above, the example of handling the event of distributing a plurality of sub-processes to a plurality of processors has been exemplified as an application of the present invention. However, the present invention is not intended to be limited to this application. It can be applied to other real-world events that can vary, such as the placement of personnel or equipment in the appropriate locations.
[0054]
【The invention's effect】
As described above, according to the present invention, in a graph dividing apparatus that divides a graph having a plurality of original nodes and a plurality of original edges connecting them, a new node which is a subset of the original nodes generated by dividing the graph A weight calculator that can calculate each weight of the new edge and each weight of the new edge connecting the new node based on a variable parameter, and a portion of the original node generated by dividing the graph in various division formats. A combination of a new node candidate that is a set and a new edge candidate that connects the new node candidate is given to the weight calculator, and the weight of each new node candidate and the weight of each new edge candidate are calculated by the weight calculator. A graph division processing unit that divides a graph according to a combination in which the calculated weight of each new node candidate and the weight of each new edge candidate are suboptimal; A post-division calculation instruction unit that causes the weight calculation unit to calculate the weight of the new node and the weight of the new edge of the graph divided by the graph division processing unit based on current parameters after a certain time has elapsed from the rough division processing. And a graph re-division instructing unit that causes the graph division processing unit to perform the graph division processing again when at least one of the weight of the new node and the weight of the new edge exceeds a threshold value. The graph can be re-divided flexibly according to the time-dependent changes in the weight of the new node and the weight of the new edge after the division.
[Brief description of the drawings]
FIG. 1 is a schematic diagram showing an example of an undivided graph for explaining the concept of graph division processing.
FIG. 2 is a schematic diagram showing an example of a graph obtained by dividing the graph of FIG.
FIG. 3 is a block diagram showing a configuration of a graph dividing device according to the first embodiment of the present invention.
FIG. 4 is a schematic diagram illustrating a management information structure of an undivided graph stored in a graph configuration management unit of the graph dividing apparatus in FIG. 3;
FIG. 5 is a schematic diagram illustrating a management information structure of a divided graph stored in a graph configuration management unit.
FIG. 6 is a schematic diagram illustrating threshold management information held by a threshold management unit of the graph division device of FIG. 3;
FIG. 7 is a flowchart illustrating a procedure of an operation of the graph dividing apparatus according to the first embodiment;
FIG. 8 is a block diagram showing a graph dividing apparatus according to Embodiment 2 of the present invention.
[Explanation of symbols]
32 graph configuration management unit, 33 graph division processing unit, 34 load management unit (weight calculation unit), 35 threshold management unit (calculation instruction unit after division), 36 graph redivision instruction unit, 37 division result output unit, 38 number of nodes Change instructing unit, 39 Post-division calculation time change instructing unit, 42 source node number, 43 source edge number, 44 source node configuration information, 45 source edge configuration information, 52 new node number, 53 new edge number, 54 new node configuration information , 55 new edge configuration information, 62 new node threshold management information, 63 new edge threshold management information, 442 source node identification information, 443 source node weight calculation information, 452 source edge identification information, 453 source node identification information, 454 End point node identification information, 455 original edge weight calculation information, 542 new node identification information, 543 new node weight calculation information, 544 original node collection 552 New edge identification information, 553 Start node identification information, 554 End node identification information, 555 New edge weight calculation information, 556 Original edge set, 622 New node identification information, 623 New node identification information Weight calculation cycle, 624 new node weight threshold, 632 new edge identification information, 633 new edge weight calculation cycle, 634 new edge weight threshold, e1 to e10 original edge, n1 to n8 original node, D1, D2 dividing line, E1 to E2 new edge, N1 to N3 new node.

Claims (4)

複数の元ノードとそれらを接続する複数の元エッジを有するグラフを分割するグラフ分割装置において、
グラフを分割して生ずる元ノードの部分集合である新ノードの各々の重みと上記新ノードを接続する新エッジの各々の重みを可変のパラメータに基づいて計算することが可能な重み計算部と、
グラフを様々な分割形式で分割して生ずる元ノードの部分集合である新ノード候補と上記新ノード候補を接続する新エッジ候補の組み合わせを上記重み計算部に与えて、各新ノード候補の重みと各新エッジ候補の重みを上記重み計算部に算出させ、計算された各新ノード候補の重みと各新エッジ候補の重みが準最適となる組み合わせに従ってグラフを分割するグラフ分割処理部と、
上記グラフ分割処理部によるグラフの分割処理からある時間の経過後に、上記グラフ分割処理部で分割されたグラフの新ノードの重みおよび新エッジの重みを現在のパラメータに基づいて上記重み計算部に計算させる分割後計算指示部と、
上記新ノードの重みおよび上記新エッジの重みの少なくともいずれかが閾値を超えている場合に、上記グラフ分割処理部に上記グラフの分割処理を再度行わせるグラフ再分割指示部とを備えることを特徴とするグラフ分割装置。
In a graph dividing apparatus for dividing a graph having a plurality of original nodes and a plurality of original edges connecting them,
A weight calculator capable of calculating each weight of a new node that is a subset of the original nodes generated by dividing the graph and each weight of a new edge connecting the new node based on a variable parameter;
A combination of a new node candidate which is a subset of the original nodes generated by dividing the graph in various division formats and a new edge candidate connecting the new node candidate is given to the weight calculation unit, and the weight of each new node candidate is A graph division processing unit that causes the weight calculation unit to calculate the weight of each new edge candidate, and divides the graph according to a combination in which the calculated weight of each new node candidate and the weight of each new edge candidate are suboptimal;
After a lapse of a certain time from the graph division processing by the graph division processing unit, the weight of the new node and the weight of the new edge of the graph divided by the graph division processing unit are calculated by the weight calculation unit based on the current parameters. A post-division calculation instructing unit,
A graph subdivision instructing unit configured to cause the graph division processing unit to perform the graph division processing again when at least one of the weight of the new node and the weight of the new edge exceeds a threshold. Graph dividing device.
元ノードと元エッジの配置関係、新ノードと新エッジの配置関係、ならびに元ノードおよび元エッジと新ノードおよび新エッジの対応関係を記憶するグラフ構成管理部をさらに備えており、
グラフ再分割指示部は、新ノードの重みが閾値を超えた場合には、上記グラフ構成管理部の記憶内容に基づいて、その新ノードが含む元ノードと元エッジ、その新ノードが直接接続された新エッジが含む元エッジ、およびその新ノードが上記新エッジのみを介して接続された新ノードが含む元ノードと元エッジの集合を生成し、この集合を分割処理の対象として分割処理部に指示し、
グラフ再分割指示部は、新エッジの重みが閾値を超えた場合には、上記グラフ構成管理部の記憶内容に基づいて、その新エッジが含む元エッジおよびその新エッジが直接接続された新ノードが含む元ノードと元エッジの集合を生成し、この集合を分割処理の対象として分割処理部に指示することを特徴とする請求項1記載のグラフ分割装置。
It further includes a graph configuration management unit that stores an arrangement relation between the original node and the original edge, an arrangement relation between the new node and the new edge, and a correspondence relation between the original node and the original edge, the new node and the new edge,
When the weight of the new node exceeds the threshold value, the graph repartition instructing unit directly connects the original node, the original edge, and the new node included in the new node based on the storage contents of the graph configuration management unit. A new edge generated by the new edge and a set of the original node and the original edge included in the new node whose new node is connected only through the new edge are generated. Instruct
When the weight of the new edge exceeds the threshold value, the graph re-partition instructing unit, based on the stored contents of the graph configuration management unit, determines the original edge included in the new edge and the new node to which the new edge is directly connected. 2. The graph dividing apparatus according to claim 1, wherein a set of an original node and an original edge included in is generated, and the set is instructed to a division processing unit as a target of the division processing.
グラフ分割装置の動作開始後に新ノードの数を変更する指示をグラフ分割処理部に与えるノード数変更指示部をさらに備えることを特徴とする請求項1記載のグラフ分割装置。2. The graph dividing apparatus according to claim 1, further comprising a node number changing instruction unit that gives an instruction to change the number of new nodes to the graph dividing processing unit after the operation of the graph dividing apparatus starts. グラフ分割装置の動作開始後に新ノードの重みおよび新エッジの重みを計算させる時期を変更する指示を重み計算部に与える分割後計算時期変更指示部をさらに備えることを特徴とする請求項1記載のグラフ分割装置。2. The post-division calculation time change instructing unit which gives an instruction to change the time to calculate the weight of the new node and the weight of the new edge after the operation of the graph dividing apparatus is started, to the weight calculation unit. Graph splitting device.
JP2003058831A 2003-03-05 2003-03-05 Graph dividing means Pending JP2004272369A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003058831A JP2004272369A (en) 2003-03-05 2003-03-05 Graph dividing means

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003058831A JP2004272369A (en) 2003-03-05 2003-03-05 Graph dividing means

Publications (1)

Publication Number Publication Date
JP2004272369A true JP2004272369A (en) 2004-09-30

Family

ID=33121849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003058831A Pending JP2004272369A (en) 2003-03-05 2003-03-05 Graph dividing means

Country Status (1)

Country Link
JP (1) JP2004272369A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719269B2 (en) 2010-01-21 2014-05-06 Fujitsu Limited Configuration information management device, distributed information management system, and distributed information management method
KR101771352B1 (en) * 2016-03-30 2017-08-24 경희대학교 산학협력단 Method for summarizing graph in dynamic environment and apparatus using the method
CN108073583A (en) * 2016-11-08 2018-05-25 华为技术有限公司 A kind of component method and device
WO2018108004A1 (en) * 2016-12-16 2018-06-21 Huawei Technologies Co., Ltd. Predictive table pre-joins in large scale data management system using graph community detection

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719269B2 (en) 2010-01-21 2014-05-06 Fujitsu Limited Configuration information management device, distributed information management system, and distributed information management method
KR101771352B1 (en) * 2016-03-30 2017-08-24 경희대학교 산학협력단 Method for summarizing graph in dynamic environment and apparatus using the method
CN108073583A (en) * 2016-11-08 2018-05-25 华为技术有限公司 A kind of component method and device
CN108073583B (en) * 2016-11-08 2020-08-25 华为技术有限公司 Picture splitting method and device
US11194861B2 (en) 2016-11-08 2021-12-07 Huawei Technologies Co., Ltd. Graph partitioning method and apparatus
WO2018108004A1 (en) * 2016-12-16 2018-06-21 Huawei Technologies Co., Ltd. Predictive table pre-joins in large scale data management system using graph community detection
US10528563B2 (en) 2016-12-16 2020-01-07 Futurewei Technologies, Inc. Predictive table pre-joins in large scale data management system using graph community detection

Similar Documents

Publication Publication Date Title
CN108009016B (en) Resource load balancing control method and cluster scheduler
US8862744B2 (en) Optimizing traffic load in a communications network
CN109993299B (en) Data training method and device, storage medium and electronic device
CN106133696B (en) Dynamic marks target capacity when scaling cloud resource
US8607236B2 (en) Information processing system
CN104901989B (en) A kind of Site Service offer system and method
WO2016148963A1 (en) Intelligent placement within a data center
CN113037800B (en) Job scheduling method and job scheduling device
CN109146381A (en) Logistics data monitoring method, device, electronic equipment and computer storage medium
CN106502918B (en) A kind of scheduling memory method and device
CN111143039B (en) Scheduling method and device of virtual machine and computer storage medium
CN108376103A (en) A kind of the equilibrium of stock control method and server of cloud platform
CN109491788A (en) A kind of virtual platform implementation of load balancing and device
CN106790332A (en) A kind of resource regulating method, system and host node
JP7368143B2 (en) Service deployment control system, service deployment control method, and storage medium
JP2015060566A (en) Work plan scheduling apparatus and method thereof
CN109361625A (en) Verify the method, apparatus and controller of forwarding-table item
CN106030539A (en) Software-installed apparatus, and software updating method
EP4057142A1 (en) Job scheduling method and job scheduling apparatus
JP2004272369A (en) Graph dividing means
JP6938944B2 (en) Information processing device and load balancing control method
CN104951442B (en) A kind of method and apparatus of definitive result vector
CN103226495B (en) One can switch course allocation method and equipment
JP6031051B2 (en) Job execution planning device
CN109729136A (en) Proxy server dissemination method and publisher server

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070911

A521 Written amendment

Effective date: 20071122

Free format text: JAPANESE INTERMEDIATE CODE: A821

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071122

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071122

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080122