JP5855594B2 - Clustering apparatus, clustering processing method and program thereof - Google Patents

Clustering apparatus, clustering processing method and program thereof Download PDF

Info

Publication number
JP5855594B2
JP5855594B2 JP2013030216A JP2013030216A JP5855594B2 JP 5855594 B2 JP5855594 B2 JP 5855594B2 JP 2013030216 A JP2013030216 A JP 2013030216A JP 2013030216 A JP2013030216 A JP 2013030216A JP 5855594 B2 JP5855594 B2 JP 5855594B2
Authority
JP
Japan
Prior art keywords
clustering
nodes
node
data
adjacent
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
JP2013030216A
Other languages
Japanese (ja)
Other versions
JP2014160337A (en
Inventor
浩昭 塩川
浩昭 塩川
健 山室
健 山室
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013030216A priority Critical patent/JP5855594B2/en
Publication of JP2014160337A publication Critical patent/JP2014160337A/en
Application granted granted Critical
Publication of JP5855594B2 publication Critical patent/JP5855594B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、クラスタリング装置、クラスタリング処理方法およびそのプログラムに関する。   The present invention relates to a clustering device, a clustering processing method, and a program thereof.

従来のグラフデータのクラスタリング技術として、クラスタリング装置(コンピュータ)が、入力されたグラフデータに含まれるすべてのエッジデータを用いてクラスタリング処理対象ノードを任意の順番で選択し、クラスタリングの中間結果を生成し、集約する。さらに、このクラスタリング装置が、集約されたクラスタに対して繰り返しクラスタリング処理を行うことにより、クラスタサイズの均一化および処理対象ノードの削減を行う技術がある(例えば、非特許文献1参照)。   As a conventional clustering technique for graph data, a clustering device (computer) selects nodes for clustering processing in any order using all edge data included in the input graph data, and generates an intermediate result of clustering. ,Summarize. Furthermore, there is a technique in which the clustering apparatus repeatedly performs clustering processing on an aggregated cluster to make the cluster size uniform and reduce the number of nodes to be processed (for example, see Non-Patent Document 1).

図1に示すように、クラスタリング装置210は、入力部211、制御部212および出力部213から構成される。入力部211は、グラフデータ記憶装置200から読み込んだグラフデータを、クラスタリング装置210の備える主記憶装置(図4参照)上に展開し、制御部212は、図2に示すフローの処理を行い、出力部213に渡す。出力部213は、制御部212により得られたクラスタリング結果を任意の装置、例えば、クラスタリング結果記憶装置220等に出力する。   As illustrated in FIG. 1, the clustering apparatus 210 includes an input unit 211, a control unit 212, and an output unit 213. The input unit 211 develops the graph data read from the graph data storage device 200 on the main storage device (see FIG. 4) included in the clustering device 210, and the control unit 212 performs the processing of the flow shown in FIG. The data is passed to the output unit 213. The output unit 213 outputs the clustering result obtained by the control unit 212 to an arbitrary device such as the clustering result storage device 220.

以下に制御部212における処理について説明する。   The processing in the control unit 212 will be described below.

まず、制御部212は、図3(A)に示すようなグラフデータが入力されると、乱数を用いてグラフデータから任意のノードを1つ選択し、その選択したノードに隣接するノードの一覧を主記憶装置上の隣接ノードキューに挿入する(S100)。   First, when graph data as shown in FIG. 3A is input, the control unit 212 selects one arbitrary node from the graph data using a random number, and a list of nodes adjacent to the selected node. Is inserted into the adjacent node queue on the main memory (S100).

次に、制御部212は、隣接ノードキューの中から乱数を用いて隣接ノードを選択し、当該隣接ノードキューから当該ノードを削除する(S110)。   Next, the control unit 212 selects an adjacent node using a random number from the adjacent node queue, and deletes the node from the adjacent node queue (S110).

制御部212は、S100で選択されたノードとS110において選択された隣接ノードの2つのノードを同じクラスタに分類した際のクラスタリング精度向上量を計算し、隣接ノードとクラスタリング精度向上量とからなる組({隣接ノード:クラスタリング精度向上量})を生成し、主記憶装置上の処理済キューに挿入する(S120)。クラスタリング精度向上量は、非特許文献1に示されるように、以下の式で求められる。   The control unit 212 calculates a clustering accuracy improvement amount when the two nodes, the node selected in S100 and the adjacent node selected in S110, are classified into the same cluster, and a set including the adjacent node and the clustering accuracy improvement amount is calculated. ({Adjacent node: clustering accuracy improvement amount}) is generated and inserted into the processed queue on the main storage device (S120). As shown in Non-Patent Document 1, the clustering accuracy improvement amount is obtained by the following equation.

[定義1]クラスタリング精度向上量ΔQを以下のように計算する。   [Definition 1] The clustering accuracy improvement amount ΔQ is calculated as follows.

Figure 0005855594
Figure 0005855594

ただし、ΔQはクラスタリング精度向上量、eijはクラスタiとクラスタjの間に存在するエッジの数、mはグラフ内に存在する全エッジ数、Cはクラスタの集合である。 Where ΔQ is the clustering accuracy improvement amount, e ij is the number of edges existing between cluster i and cluster j, m is the total number of edges existing in the graph, and C is a set of clusters.

隣接ノードキューに隣接ノードが存在する場合、つまり、ノードの持つ隣接ノードにまだ処理していないノードがあれば(S130のNo)、S110の処理に戻る。一方、隣接ノードキューに隣接ノードが存在しない場合、つまり、制御部212が、ノードの持つ隣接ノードをすべて処理した場合(S130のYes)、クラスタリング精度向上量が最大となる隣接ノードを主記憶装置上の処理済キューから選択し、ノードと隣接ノードに対して同一のクラスタラベルを付与し、主記憶装置上のクラスタ対応表に格納する。つまり、制御部212は、ノードを最もクラスタリング精度向上量の高い隣接ノードと同じクラスタに分類するようにラベル付けを行う(S140)。なお、クラスタラベル名については任意のクラスタラベルを付与するものとする。主記憶装置上のクラスタ対応表には、ノードaの隣接ノードbであった場合は、ハッシュマップの形式で{クラスタラベル:ノードa,ノードb}の組が格納される。   If there is an adjacent node in the adjacent node queue, that is, if there is an unprocessed node in the adjacent node of the node (No in S130), the process returns to S110. On the other hand, when there is no adjacent node in the adjacent node queue, that is, when the control unit 212 has processed all the adjacent nodes of the node (Yes in S130), the adjacent storage having the maximum clustering accuracy improvement amount is selected as the main storage device. Select from the above processed queue, assign the same cluster label to the node and the adjacent node, and store in the cluster correspondence table on the main storage device. That is, the control unit 212 performs labeling so that the node is classified into the same cluster as the adjacent node with the highest clustering accuracy improvement amount (S140). An arbitrary cluster label is assigned to the cluster label name. In the cluster correspondence table on the main storage device, in the case of the adjacent node b of the node a, a set of {cluster label: node a, node b} is stored in the form of a hash map.

次に、制御部212は、ノード同士のペアでクラスタリング精度向上の余地があるか否かを判定する(S150)、つまり、まず、制御部212は、主記憶装置上に展開していたグラフデータを取得し、主記憶装置上のクラスタ対応表を読み込み、ノード同士のペアでグラフデータ全体のクラスタリング精度を計算する。グラフデータ全体のクラスタリング精度は、非特許文献1に示されるように、以下の式で求められる。   Next, the control unit 212 determines whether there is room for improving clustering accuracy between pairs of nodes (S150). That is, the control unit 212 first displays the graph data developed on the main storage device. And the cluster correspondence table on the main storage device is read, and the clustering accuracy of the entire graph data is calculated by the pair of nodes. As shown in Non-Patent Document 1, the clustering accuracy of the entire graph data is obtained by the following equation.

[定義2]クラスタリング精度Qを以下のように計算する。   [Definition 2] The clustering accuracy Q is calculated as follows.

Figure 0005855594
Figure 0005855594

そして、制御部212は、前回当該処理を実行したときのクラスタリング精度との差分を求める。なお、初回実行時は前回のクラスタリング精度を0とみなして判定するものとする。上記のS100からS150の処理イメージを図3(B)に示す。差分がある場合、つまり、ノード同士のペアでクラスタリング精度向上の余地がある場合は(S150のNo)、S100に戻る。一方、当該差分がない場合、つまり、ノード同士のペアでクラスタリング精度向上の余地がない場合には(S150のYes)、制御部212は、各クラスタに対して、図3(C)に示すように、クラスタに含まれるノードとエッジを1ノードに集約し、主記憶装置のグラフデータを更新する(S160)。さらに、制御部212は、クラスタ(つまり集約されたノード)同士のペアでグラフデータ全体のクラスタリング精度を計算し、前回の当該処理を実行した時の差分を判定する。つまり、制御部212は、クラスタ同士のペアでクラスタリング精度向上の余地があるか否かを判定する(S170)。なお、制御部212は、初回実行時においては前回のクラスタリング精度を0とみなして判定するものとする。差分がある場合は(S170のNo)、S100に戻り、差分がない場合は(S170のYes)、制御部212は、最終的なクラスタ対応表をクラスタリング結果記憶装置220に出力して当該処理を終了する。   And the control part 212 calculates | requires the difference with the clustering precision at the time of performing the said process last time. In the first execution, it is determined that the previous clustering accuracy is regarded as 0. FIG. 3B shows a processing image from S100 to S150. If there is a difference, that is, if there is a room for improving clustering accuracy with a pair of nodes (No in S150), the process returns to S100. On the other hand, when there is no difference, that is, when there is no room for improving the clustering accuracy between the pairs of nodes (Yes in S150), the control unit 212 performs the processing for each cluster as shown in FIG. Then, the nodes and edges included in the cluster are aggregated into one node, and the graph data of the main storage device is updated (S160). Furthermore, the control unit 212 calculates the clustering accuracy of the entire graph data with pairs of clusters (that is, aggregated nodes), and determines the difference when the previous processing is executed. That is, the control unit 212 determines whether there is a room for improving clustering accuracy between pairs of clusters (S170). Note that the control unit 212 determines that the previous clustering accuracy is 0 at the first execution. If there is a difference (No in S170), the process returns to S100. If there is no difference (Yes in S170), the control unit 212 outputs the final cluster correspondence table to the clustering result storage device 220 and performs the process. finish.

上記の従来の技術は、クラスタサイズの均一化と、処理に利用するエッジ数・ノード数
の削減により、中間結果の集約による処理量を削減することが可能であり、1億ノード規
模のグラフデータのクラスタリング処理を2時間半程度で実行可能である。
The above-mentioned conventional technology can reduce the amount of processing by aggregation of intermediate results by making the cluster size uniform and reducing the number of edges and nodes used for processing. Can be executed in about two and a half hours.

Louvain method [Vincent D Blondel, Journal of Statistical Mechanics: Theory and Experiment, 2008年10月9日]Louvain method [Vincent D Blondel, Journal of Statistical Mechanics: Theory and Experiment, October 9, 2008]

しかし、前記した従来技術には次のような問題点がある。すなわち、従来のクラスタリング装置は、大量のグラフデータを1つのCPU(Central Processing Unit)の1スレッド上の非並列環境下でクラスタリング処理を実行するため、すべてのデータを順に処理する必要がある。このため、グラフデータが増加するにつれてクラスタリング処理時間が激増する。例えば、クラスタリング処理時間は、グラフのノード数に対して指数関数的に増加し、グラフのエッジ数に対しては線形的に増加する。そこで、本発明は、前記した問題を解決し、グラフデータのクラスタリング処理時間を低減することを目的とする。   However, the prior art described above has the following problems. That is, the conventional clustering apparatus executes a clustering process on a large amount of graph data in a non-parallel environment on one thread of one CPU (Central Processing Unit), and thus all data must be processed in order. For this reason, the clustering processing time increases dramatically as the graph data increases. For example, the clustering processing time increases exponentially with respect to the number of nodes in the graph, and increases linearly with respect to the number of edges in the graph. In view of the above, an object of the present invention is to solve the above-described problem and to reduce the clustering time of graph data.

前記した課題を解決するため、本発明は、入力されたグラフデータのクラスタリング処理対象ノードのノードを任意の順番で選択し、前記選択したノードの隣接ノードの集合Γを前記グラフデータの中から取得し、前記取得した集合Γの隣接ノードの中から任意のN個の隣接ノードを選択し、前記選択したN個の隣接ノードのデータを、SIMD(Single Instruction Multiple Data)レジスタ上に展開し、前記展開したN個の隣接ノードのデータそれぞれに対して、SIMD命令を用いてクラスタリング精度向上量を計算する処理を、前記集合Γに含まれるすべての隣接ノードに対し実行し、前記計算したクラスタリング精度向上量が最大となった前記隣接ノードと、前記選択したノードとを同じクラスタに分類するようラベル付けを行う制御部を備えることを特徴とするクラスタリング装置とした。但し、前記Nは、前記制御部のSIMDレジスタサイズR、前記グラフデータのデータ型のサイズTに対し、N=[R/T]となる値とする。このような発明によれば、クラスタリング装置がクラスタリング処理を行う際に、SIMD命令を用いるので、クラスタリング処理の性能を最大でN倍に向上させ、クラスタリング処理時間を低減することができる。なお、クラスタリング精度向上量は、[定義1]に記載した数式により計算される。   In order to solve the above-described problem, the present invention selects nodes of clustering processing target nodes of input graph data in an arbitrary order, and acquires a set Γ of adjacent nodes of the selected node from the graph data. Then, arbitrary N adjacent nodes are selected from adjacent nodes of the acquired set Γ, the data of the selected N adjacent nodes are expanded on a SIMD (Single Instruction Multiple Data) register, and A process of calculating the clustering accuracy improvement amount for each of the expanded N adjacent node data using the SIMD instruction is executed for all the adjacent nodes included in the set Γ, and the calculated clustering accuracy improvement is performed. A control unit is provided that performs labeling so that the adjacent node having the maximum amount and the selected node are classified into the same cluster. It was clustering apparatus according to claim Rukoto. However, N is a value such that N = [R / T] with respect to the SIMD register size R of the control unit and the data type size T of the graph data. According to such an invention, since the SIMD instruction is used when the clustering apparatus performs the clustering process, the performance of the clustering process can be improved up to N times and the clustering process time can be reduced. Note that the clustering accuracy improvement amount is calculated by the mathematical formula described in [Definition 1].

本発明によれば、グラフデータのクラスタリング処理時間を低減することができる。   According to the present invention, it is possible to reduce graph data clustering processing time.

図1は、従来のクラスタリング装置の構成を示す図である。FIG. 1 is a diagram showing a configuration of a conventional clustering apparatus. 図2は、従来のクラスタリング装置におけるクラスタリングの処理手順を示すフローチャートである。FIG. 2 is a flowchart showing a clustering processing procedure in the conventional clustering apparatus. 図3は、従来のクラスタリングにおける集約イメージである。FIG. 3 is an aggregate image in conventional clustering. 図4は、本実施の形態のクラスタリング装置のハードウェア構成図である。FIG. 4 is a hardware configuration diagram of the clustering apparatus according to the present embodiment. 図5は、図4のクラスタリング装置の処理手順を示すフローチャートである。FIG. 5 is a flowchart showing a processing procedure of the clustering apparatus of FIG. 図6は、図5のS210の詳細を示すフローチャートである。FIG. 6 is a flowchart showing details of S210 in FIG.

以下、図面を参照しながら、本発明の実施の形態を説明する。以下に説明する実施の形態はあくまで一例であり、本発明は、他のさまざまな形態でも実施が可能である。以下、前記した図1の構成および図2のフローチャートをベースとして説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. The embodiment described below is merely an example, and the present invention can be implemented in various other forms. The following description is based on the configuration of FIG. 1 and the flowchart of FIG.

クラスタリング装置210として用いられるコンピュータは、CPU(Central Processing Unit)100、主記憶装置110(メモリ)、二次記憶装置120(HDD(Hard Disk Drive)、SSD(Solid State Drive)等)および入出力装置130から構成される。なお、図1における制御部212は、CPU100によって実現される。また、入力部211により入力されたグラフデータ内の隣接ノードは主記憶装置110上の隣接ノードキューに展開される。さらに、処理済みキューも主記憶装置110上に配置される。グラフデータ記憶装置200およびクラスタリング結果記憶装置220は、二次記憶装置120に含まれるHDDやSSD等の記録媒体である。また、入力部211および出力部213は、入出力装置130に含まれる。   A computer used as the clustering device 210 includes a CPU (Central Processing Unit) 100, a main storage device 110 (memory), a secondary storage device 120 (HDD (Hard Disk Drive), SSD (Solid State Drive), etc.), and an input / output device. 130. Note that the control unit 212 in FIG. 1 is realized by the CPU 100. Further, adjacent nodes in the graph data input by the input unit 211 are expanded in an adjacent node queue on the main storage device 110. Further, the processed queue is also arranged on the main storage device 110. The graph data storage device 200 and the clustering result storage device 220 are recording media such as HDDs and SSDs included in the secondary storage device 120. The input unit 211 and the output unit 213 are included in the input / output device 130.

以下の実施の形態におけるクラスタリング装置210の構成は、図1と同様であるが、制御部212に用いられるCPU100はSIMD(Single Instruction Multiple Data)命令を実行可能なCPUであることを特徴とする。   The configuration of the clustering apparatus 210 in the following embodiment is the same as that in FIG. 1, but the CPU 100 used in the control unit 212 is a CPU that can execute a SIMD (Single Instruction Multiple Data) instruction.

このクラスタリング装置210の機能を実現するプログラムが、入出力装置130から二次記憶装置120にインストールされ、起動されると、このプログラムは、CPU100によりSIMD命令を利用し、並列に実行される。つまり、クラスタリング装置210は、クラスタリング処理を実行する際、主記憶装置110上にグラフデータを展開し、SIMD命令により実行する。   When a program that realizes the function of the clustering device 210 is installed from the input / output device 130 to the secondary storage device 120 and activated, this program is executed in parallel by the CPU 100 using SIMD instructions. That is, when executing the clustering process, the clustering device 210 develops the graph data on the main storage device 110 and executes it by the SIMD instruction.

なお、クラスタリング装置210の機能を実現するためのプログラムに係るプログラムモジュールやプログラムデータは、プログラムに係るプログラムモジュールやプログラムデータは、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェースを介してCPU100によって読み出されてもよい。   Note that the program module and program data related to the program for realizing the functions of the clustering apparatus 210 are the program module and program data related to the program are the network (LAN (Local Area Network), WAN (Wide Area Network), etc.). May be stored in another computer connected via the network, and read by the CPU 100 via the network interface.

以下に制御部212(CPU100)における処理について図5のフローチャートを用いて説明する。なお、以下の説明において、クラスタリング精度向上量は、前記した[定義1]で説明した計算式により計算されるものとする。   Hereinafter, processing in the control unit 212 (CPU 100) will be described with reference to the flowchart of FIG. In the following description, it is assumed that the clustering accuracy improvement amount is calculated by the calculation formula described in [Definition 1].

まず、CPU100は、図3(A)に示すようなグラフデータが入力されると、乱数を用いてグラフデータから任意のノードuを1つ選択する(S200)。   First, when graph data as shown in FIG. 3A is input, the CPU 100 selects one arbitrary node u from the graph data using a random number (S200).

次に、CPU100は、ノードuに対しSIMD命令を用いてクラスタリング処理を並列実行する(S210)。このS210の詳細は、図6を用いて後記する。   Next, the CPU 100 executes the clustering process in parallel on the node u using the SIMD instruction (S210). Details of S210 will be described later with reference to FIG.

S220にて、これ以上クラスタリング精度の向上の余地がないと判定された場合、つまり、ノード同士のペア(S210で選択したノードとその隣接ノードとのペア)でクラスタリング精度の向上の余地がないと判定された場合(S220のYes)、CPU100はこれらのノードを同じクラスタに属するノードを1ノードに集約する(S230)。最後に、クラスタ同士(つまり集約されたノード)のペアでクラスタリング精度の向上の余地がないことが確認されると(S240のYes)、CPU100は、処理を終了する。   If it is determined in S220 that there is no room for further improvement in clustering accuracy, that is, there is no room for improvement in clustering accuracy in a pair of nodes (a pair of the node selected in S210 and its adjacent node). When the determination is made (Yes in S220), the CPU 100 aggregates these nodes into one node that belongs to the same cluster (S230). Finally, when it is confirmed that there is no room for improvement in clustering accuracy between pairs of clusters (that is, aggregated nodes) (Yes in S240), the CPU 100 ends the process.

なお、S220およびS240において、クラスタリング精度の向上の余地がまだあると判定された場合(S200のNo、S240のNo)、S200へ戻る。   In S220 and S240, when it is determined that there is still room for improvement in clustering accuracy (No in S200, No in S240), the process returns to S200.

S210の詳細を、図6のフローチャートを用いて説明する。まず、CPU100は、S210において、入力されたグラフデータの中から、S200で選択されたノードuの隣接ノードの集合Γを取得する(S211)。   Details of S210 will be described with reference to the flowchart of FIG. First, in S210, the CPU 100 acquires a set Γ of adjacent nodes of the node u selected in S200 from the input graph data (S211).

次に、CPU100は、隣接ノードの集合Γから任意のN個のノードを選択する(S212)。なお、このNは、CPU100が用いるCPU性能に依存する。このNは、CPU100のSIMDレジスタサイズR、グラフデータのデータ型のサイズTに対して、N=[R/T]とする。   Next, the CPU 100 selects any N nodes from the set of adjacent nodes Γ (S212). Note that this N depends on the CPU performance used by the CPU 100. This N is N = [R / T] with respect to the SIMD register size R of the CPU 100 and the data type size T of the graph data.

その後、CPU100は、SIMDレジスタ上に、S212で選択したN個の隣接ノードを展開する(S213)。そして、CPU100は、SIMDレジスタ上のデータに対してSIMD命令を用いてN個の隣接ノードに対してクラスタリング精度向上量を並列に計算する。つまり、CPU100は、SIMDレジスタ上でS200のノードuとS212で選択したN個の隣接ノードとの間のクラスタリング精度向上量を並列に計算する(S214)。   Thereafter, the CPU 100 expands the N adjacent nodes selected in S212 on the SIMD register (S213). Then, the CPU 100 calculates the clustering accuracy improvement amount in parallel for the N adjacent nodes using the SIMD instruction for the data on the SIMD register. That is, the CPU 100 calculates in parallel the clustering accuracy improvement amount between the node u in S200 and the N adjacent nodes selected in S212 on the SIMD register (S214).

そして、CPU100は、SIMDレジスタ上から、クラスタリング精度向上量が最大の隣接ノードと、その隣接ノードとの間のクラスタリング精度向上量(向上量)を取得し(S215)、その取得した向上量が、集合Γに含まれるノードの中で最も大きければ、つまり、主記憶装置110上に保持された向上量(最大精度向上量)よりも大きければ(S216のNo)、主記憶装置110上の最大精度向上量と向上量最大ノードとを更新する(S217)。つまり、CPU100は、主記憶装置110に記憶された最大精度向上量を、S215で取得した向上量の値で更新し、向上量最大ノードを、この向上量が最大である隣接ノードとして更新する。そして、S218へ進む。   Then, the CPU 100 acquires, from the SIMD register, the adjacent node having the maximum clustering accuracy improvement amount and the clustering accuracy improvement amount (improvement amount) between the adjacent nodes (S215), and the acquired improvement amount is If it is the largest among the nodes included in the set Γ, that is, if it is larger than the improvement amount (maximum accuracy improvement amount) held on the main storage device 110 (No in S216), the maximum accuracy on the main storage device 110 The improvement amount and the maximum improvement amount node are updated (S217). That is, the CPU 100 updates the maximum accuracy improvement amount stored in the main storage device 110 with the value of the improvement amount acquired in S215, and updates the maximum improvement amount node as an adjacent node having the maximum improvement amount. Then, the process proceeds to S218.

一方、CPU100は、S215で取得した向上量が、主記憶装置110上に記憶された最大精度向上量以下であり(S216のYes)、集合Γに未処理のノードがないと判定すると(S218のYes)、S200で選択したノードuと、主記憶装置110上に保持された向上量最大ノードとを同じクラスタに分類するようにラベル付けを行い(S219)、S210の処理を終了する。一方、S218において未処理のノードがある場合(S218のNo)、S213へ戻る。   On the other hand, when the CPU 100 determines that the improvement obtained in S215 is less than or equal to the maximum accuracy improvement stored in the main storage device 110 (Yes in S216), there is no unprocessed node in the set Γ (S218). Yes), labeling is performed so that the node u selected in S200 and the maximum improvement node held on the main storage device 110 are classified into the same cluster (S219), and the process of S210 is terminated. On the other hand, when there is an unprocessed node in S218 (No in S218), the process returns to S213.

このようにクラスタリング装置210はグラフデータのクラスタリング処理においてSIMD命令を用いるので、クラスタリング処理時間を最大でN倍程度向上させ、クラスタリング処理時間を低減できる。   As described above, since the clustering apparatus 210 uses the SIMD instruction in the clustering processing of the graph data, the clustering processing time can be improved by up to about N times and the clustering processing time can be reduced.

なお、このクラスタリング装置210におけるクラスタリング処理性能はCPU100のSIMDレジスタサイズに依存するが、2012年12月現在、一般に普及しているCPU100のSIMDレジスタサイズは128bit、グラフデータのデータ型は32bitであることから、2012年12月の時点でも4倍の性能向上が見込める。   The clustering processing performance of the clustering apparatus 210 depends on the SIMD register size of the CPU 100, but as of December 2012, the SIMD register size of the CPU 100 that is generally used is 128 bits, and the data type of the graph data is 32 bits. Therefore, even as of December 2012, a four-fold improvement in performance can be expected.

100 CPU
110 主記憶装置
120 二次記憶装置
130 入出力装置
200 グラフデータ記憶装置
210 クラスタリング装置
211 入力部
212 制御部
213 出力部
220 クラスタリング結果記憶装置
100 CPU
DESCRIPTION OF SYMBOLS 110 Main storage device 120 Secondary storage device 130 Input / output device 200 Graph data storage device 210 Clustering device 211 Input unit 212 Control unit 213 Output unit 220 Clustering result storage device

Claims (4)

入力されたグラフデータのクラスタリング処理対象ノードのノードを任意の順番で選択し、
前記選択したノードの隣接ノードの集合Γを前記グラフデータの中から取得し、
前記取得した集合Γの隣接ノードの中から任意のN個の隣接ノードを選択し、
前記選択したN個の隣接ノードのデータを、SIMD(Single Instruction Multiple Data)レジスタ上に展開し、
前記展開したN個の隣接ノードのデータそれぞれに対して、SIMD命令を用いてクラスタリング精度向上量を計算する処理を、
前記集合Γに含まれるすべての隣接ノードに対し実行し、
前記計算したクラスタリング精度向上量が最大となった前記隣接ノードと、前記選択したノードとを同じクラスタに分類するようラベル付けを行う制御部を備えることを特徴とするクラスタリング装置。
但し、前記Nは、前記制御部のSIMDレジスタサイズR、前記グラフデータのデータ型のサイズTに対し、N=[R/T]となる値とする。
Select the nodes for the clustering processing target node of the input graph data in any order,
Obtaining a set Γ of adjacent nodes of the selected node from the graph data;
Selecting any N neighboring nodes from neighboring nodes of the acquired set Γ,
The data of the selected N adjacent nodes is expanded on a SIMD (Single Instruction Multiple Data) register,
A process of calculating a clustering accuracy improvement amount using SIMD instructions for each of the expanded N adjacent node data,
Execute for all neighboring nodes included in the set Γ,
A clustering apparatus, comprising: a control unit that performs labeling so that the adjacent node having the maximum improvement in the calculated clustering accuracy and the selected node are classified into the same cluster.
However, N is a value such that N = [R / T] with respect to the SIMD register size R of the control unit and the data type size T of the graph data.
前記展開したN個の隣接ノードのデータそれぞれに対して、SIMD命令を用いてクラスタリング精度向上量を計算する処理は、
前記制御部が、
前記SIMDレジスタ上で、前記選択したノードと前記選択したN個の隣接ノードとのペアそれぞれについてのクラスタリング精度向上量を並列に計算する処理であることを特徴とする請求項1に記載のクラスタリング装置。
The process of calculating the clustering accuracy improvement amount using the SIMD instruction for each of the expanded N adjacent node data,
The control unit is
2. The clustering apparatus according to claim 1, wherein the clustering apparatus is a process of calculating in parallel a clustering accuracy improvement amount for each pair of the selected node and the N adjacent nodes selected on the SIMD register. .
クラスタリング装置の制御部が、
入力されたグラフデータのクラスタリング処理対象ノードのノードを任意の順番で選択するステップと、
前記選択したノードの隣接ノードの集合Γを前記グラフデータの中から取得するステップと、
前記取得した集合Γの隣接ノードの中から任意のN個の隣接ノードを選択するステップと、
前記選択したN個の隣接ノードのデータを、SIMDレジスタ上に展開するステップと、
前記展開したN個の隣接ノードのデータそれぞれに対して、SIMD命令を用いてクラスタリング精度向上量を計算する処理ステップとを、
前記集合Γに含まれるすべての隣接ノードに対し実行するステップと、
前記計算したクラスタリング精度向上量が最大となった前記隣接ノードと、前記選択したノードとを同じクラスタに分類するようラベル付けを行うステップとを実行することを特徴とするクラスタリング処理方法。
The controller of the clustering device
A step of selecting nodes of clustering processing target nodes of input graph data in an arbitrary order;
Obtaining a set Γ of neighboring nodes of the selected node from the graph data;
Selecting any N neighboring nodes from neighboring nodes of the acquired set Γ;
Expanding the data of the selected N adjacent nodes on a SIMD register;
A processing step of calculating a clustering accuracy improvement amount using a SIMD instruction for each of the expanded N adjacent node data,
Performing for all neighboring nodes in the set Γ;
A clustering processing method comprising: performing a labeling step so as to classify the adjacent node having the maximum improvement in the calculated clustering accuracy and the selected node into the same cluster.
クラスタリング装置に、
入力されたグラフデータのクラスタリング処理対象ノードのノードを任意の順番で選択するステップと、
前記選択したノードの隣接ノードの集合Γを前記グラフデータの中から取得するステップと、
前記取得した集合Γの隣接ノードの中から任意のN個の隣接ノードを選択するステップと、
前記選択したN個の隣接ノードのデータを、SIMDレジスタ上に展開するステップと、
前記展開したN個の隣接ノードのデータそれぞれに対して、SIMD命令を用いてクラスタリング精度向上量を計算する処理ステップとを、
前記集合Γに含まれるすべての隣接ノードに対し実行するステップと、
前記計算したクラスタリング精度向上量が最大となった前記隣接ノードと、前記選択したノードとを同じクラスタに分類するようラベル付けを行うステップとを実行させるためのプログラム。
In the clustering device,
A step of selecting nodes of clustering processing target nodes of input graph data in an arbitrary order;
Obtaining a set Γ of neighboring nodes of the selected node from the graph data;
Selecting any N neighboring nodes from neighboring nodes of the acquired set Γ;
Expanding the data of the selected N adjacent nodes on a SIMD register;
A processing step of calculating a clustering accuracy improvement amount using a SIMD instruction for each of the expanded N adjacent node data,
Performing for all neighboring nodes in the set Γ;
A program for executing the step of performing labeling to classify the adjacent node having the maximum improvement in the calculated clustering accuracy and the selected node into the same cluster.
JP2013030216A 2013-02-19 2013-02-19 Clustering apparatus, clustering processing method and program thereof Expired - Fee Related JP5855594B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013030216A JP5855594B2 (en) 2013-02-19 2013-02-19 Clustering apparatus, clustering processing method and program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013030216A JP5855594B2 (en) 2013-02-19 2013-02-19 Clustering apparatus, clustering processing method and program thereof

Publications (2)

Publication Number Publication Date
JP2014160337A JP2014160337A (en) 2014-09-04
JP5855594B2 true JP5855594B2 (en) 2016-02-09

Family

ID=51611991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013030216A Expired - Fee Related JP5855594B2 (en) 2013-02-19 2013-02-19 Clustering apparatus, clustering processing method and program thereof

Country Status (1)

Country Link
JP (1) JP5855594B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102192551B1 (en) * 2020-04-09 2020-12-17 국방과학연구소 Apparatus, method, computer-readable storage medium and computer program for graph clustering
CN117333926B (en) * 2023-11-30 2024-03-15 深圳须弥云图空间科技有限公司 Picture aggregation method and device, electronic equipment and readable storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864839A (en) * 1995-03-29 1999-01-26 Tm Patents, L.P. Parallel system and method for generating classification/regression tree
JP4789814B2 (en) * 2007-01-24 2011-10-12 日本電信電話株式会社 Cluster generation apparatus and cluster generation method
US7818322B2 (en) * 2008-02-25 2010-10-19 Microsoft Corporation Efficient method for clustering nodes
WO2010139091A1 (en) * 2009-06-03 2010-12-09 Google Inc. Co-selected image classification
JP5118114B2 (en) * 2009-10-20 2013-01-16 日本電信電話株式会社 Region characteristic classification apparatus, method, and program

Also Published As

Publication number Publication date
JP2014160337A (en) 2014-09-04

Similar Documents

Publication Publication Date Title
JP6644890B2 (en) Execution order determination of neural network
Sergeyev et al. A deterministic global optimization using smooth diagonal auxiliary functions
Asta et al. Geometric network comparison
US20200218842A1 (en) Mapping logical qubits on a quantum circuit
KR20200001466A (en) Entropic clustering of objects
EP2176754A2 (en) System and method for optimizing data analysis
JP2010092222A (en) Caching mechanism based on update frequency
US11087826B2 (en) Storing method and apparatus of data
US10725907B2 (en) Information processing apparatus for specifying data region of garbage collection, information processing system and information processing method
JP5862245B2 (en) Arrangement apparatus, arrangement program, and arrangement method
Park et al. EvoGraph: An effective and efficient graph upscaling method for preserving graph properties
JP6382284B2 (en) Data flow programming of computing devices with graph partitioning based on vector estimation
TW201447765A (en) Simulation system and method thereof and computing system including the simulation system
JP5855594B2 (en) Clustering apparatus, clustering processing method and program thereof
JP5600693B2 (en) Clustering apparatus, method and program
Pena Asymptotics for a class of dynamic recurrent event models
JP5964781B2 (en) SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM
US20230393895A1 (en) Dynamic resource allocation for computational simulation
JP5600694B2 (en) Clustering apparatus, method and program
JP6365102B2 (en) Data processing apparatus and program
WO2015143708A1 (en) Method and apparatus for constructing suffix array
WO2020218246A1 (en) Optimization device, optimization method, and program
Qiu et al. Parallelizing big de bruijn graph construction on heterogeneous processors
JP2014160336A (en) Clustering device, clustering processing method, and program therefor
CN109388428B (en) Layer traversal method, control device and data processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150126

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151209

R150 Certificate of patent or registration of utility model

Ref document number: 5855594

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees