KR101990735B1 - 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법 및 장치 - Google Patents

사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법 및 장치 Download PDF

Info

Publication number
KR101990735B1
KR101990735B1 KR1020180037373A KR20180037373A KR101990735B1 KR 101990735 B1 KR101990735 B1 KR 101990735B1 KR 1020180037373 A KR1020180037373 A KR 1020180037373A KR 20180037373 A KR20180037373 A KR 20180037373A KR 101990735 B1 KR101990735 B1 KR 101990735B1
Authority
KR
South Korea
Prior art keywords
graph
matrix
vector
data
division
Prior art date
Application number
KR1020180037373A
Other languages
English (en)
Inventor
강유
박치완
박하명
윤민지
Original Assignee
서울대학교산학협력단
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 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020180037373A priority Critical patent/KR101990735B1/ko
Application granted granted Critical
Publication of KR101990735B1 publication Critical patent/KR101990735B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 일 실시예는, 그래프 마이닝의 대상이 되는, 복수의 정점들과 복수의 간선들로 구성된 그래프 데이터를 수집하는 통신부; 상기 그래프 데이터에 상응하는 그래프 행렬에 대한 분할 방식을 결정하는 데이터 분할 방식 결정부; 상기 그래프 행렬에 대한 행렬-벡터 연산을 수행할 복수의 연산 장치들의 메모리 크기 및 상기 연산 장치들의 개수를 고려하여, 상기 그래프 행렬 또는 상기 정점들에 상응하는 벡터에 대한 분할 크기를 결정하는 데이터 분할 크기 결정부; 상기 분할 방식과 상기 분할 크기에 기반하여 상기 벡터를 벡터 블록들로 분할하고, 상기 그래프 행렬을 상기 벡터 블록들에 상응하는 그래프 부행렬들로 분할하는 데이터 분할부; 및 각각의 상기 연산 장치들에 상기 벡터 블록들과 이에 상응하는 상기 그래프 부행렬들을 분배하여 행렬-벡터 연산을 처리하는 데이터 연산 분배부를 포함하는 것을 특징으로 하는, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치를 제공한다.

Description

사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법 및 장치 {METHOD AND APPARATUS FOR SCALABLE GRAPH MINING USING GRAPH PRE-PARTITIONING}
본 발명은 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치 및 그 방법에 관한 것으로, 그래프 데이터를 분할하여 연산을 분산함으로써 분산 처리에 따른 입출력 비용을 낮추어 높은 효율로 대규모 그래프 마이닝을 지원하는 장치 및 그 방법에 관한 것이다.
최근 빅데이터 분석을 통하여 사용자에게 맞춤형 추천을 제공하거나 트랜드를 분석하는 서비스 등에 대한 분야가 주목을 받고 있다. 특히, 수 많은 정점들과 간선들로 구성된 네트워크에 대한 분석을 위한 여러 방법들이 제시되었다. 여기서, 네트워크 관계 등은 복수의 정점들과 정점들 사이의 연결 관계를 나타내는 간선들로 구성된 그래프로 나타낼 수 있는데, 그래프는 행렬의 형태로도 나타낼 수 있다. 따라서, 네트워크의 분석은 네트워크에 상응하는 행렬에 대한 연산을 통한 그래프 마이닝으로 수행할 수 있었다.
하지만, 그래프의 크기가 커짐에 따라 따라 행렬의 크기도 커지며, 이에 따라 그래프 마이닝에 요구되는 연산량이 방대해지므로 연산에 수행되는 시간이 매우 오래 걸리거나 연산 장치의 메모리를 초과하여 연산이 불가능해지는 문제점이 있었다. 또한, 그래프 마이닝에서는 행렬과 벡터의 연산이 이루어지고 연산 결과가 수렴할 때까지 행렬과 벡터의 연산이 반복적으로 이루어지므로, 연산량이 방대하였다. 이에, 방대한 연산량을 빠르게 처리하고 메모리 초과 상태를 막기 위하여 여러 연산 장치들을 동원하여 분산 처리를 수행하는 방법을 이용하기도 하는데, 이 경우 각 연산 장치들 사이의 데이터 전송에 따른 입출력 비용(I/O cost)이 크며, 입출력 비용에 따른 병목현상이 발생하거나 불필요한 트래픽 낭비를 유발하는 문제점이 있다. 따라서, 입출력 비용을 효과적으로 줄이면서 그래프 마이닝을 위한 연산을 분산 처리할 수 있는 기술이 요구된다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라할 수는 없다.
국내 공개특허공보 제10-2017-0001171호
본 발명의 목적은 그래프 마이닝을 위한 그래프 행렬을 분할하고 이에 대한 연산을 여러 연산 장치들에 분산하여 처리하는, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치 및 그 방법을 제공하는 것이다.
또한, 본 발명의 목적은 그래프 행렬을 원소 분포를 고려하여 희소 부행렬과 밀집 부행렬로 분할하고 이에 대한 연산을 여러 연산 장치들에 분산하여 처리하는, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치 및 그 방법을 제공하는 것이다.
본 발명의 일 실시예는, 그래프 마이닝의 대상이 되는, 복수의 정점들과 복수의 간선들로 구성된 그래프 데이터를 수집하는 통신부; 상기 그래프 데이터에 상응하는 그래프 행렬에 대한 분할 방식을 결정하는 데이터 분할 방식 결정부; 상기 그래프 행렬에 대한 행렬-벡터 연산을 수행할 복수의 연산 장치들의 메모리 크기 및 상기 연산 장치들의 개수를 고려하여, 상기 그래프 행렬 또는 상기 정점들에 상응하는 벡터에 대한 분할 크기를 결정하는 데이터 분할 크기 결정부; 상기 분할 방식과 상기 분할 크기에 기반하여 상기 벡터를 벡터 블록들로 분할하고, 상기 그래프 행렬을 상기 벡터 블록들에 상응하는 그래프 부행렬들로 분할하는 데이터 분할부; 및 각각의 상기 연산 장치들에 상기 벡터 블록들과 이에 상응하는 상기 그래프 부행렬들을 분배하여 행렬-벡터 연산을 처리하는 데이터 연산 분배부를 포함하는 것을 특징으로 하는, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치를 제공한다.
이때, 상기 데이터 분할부는 상기 분할 방식과 상기 분할 크기에 기반하여 상기 행렬-벡터 연산들에 따른 결과 벡터를 결과 벡터 블록들로 분할하고, 상기 데이터 연산 분배부는 상기 결과 벡터가 기설정된 오차 이내로 수렴할 때까지, 각각의 상기 연산 장치들에 이미 분배된 상기 그래프 부행렬들에 상응하는 상기 결과 벡터 블록들을 분배하여 행렬-벡터 연산을 반복하여 처리할 수 있다.
이때, 상기 데이터 분할부는 상기 분할 방식이 종 분할 방식인 경우, 상기 그래프 행렬을 상기 분할 크기에 따라 서로 동일한 크기의 그래프 행렬 블록들로 격자로 분할하고, 종 방향으로 인접한 상기 그래프 행렬 블록들을 서로 종 방향으로 결합하여 그래프 부행렬들을 구성하고; 상기 분할 방식이 횡 분할 방식인 경우, 상기 그래프 행렬을 상기 분할 크기에 따라 서로 동일한 크기의 그래프 행렬 블록들로 격자로 분할하고, 횡 방향으로 인접한 상기 그래프 행렬 블록들을 서로 횡 방향으로 결합하여 그래프 부행렬들을 구성할 수 있다.
이때, 상기 데이터 분할부는 상기 분할 방식이 선택적 분할 방식인 경우, 상기 그래프 행렬에 대하여 상기 종 분할 방식에 따른 입출력 비용과 상기 횡 분할 방식에 따른 입출력 비용을 비교하여 더 적은 입출력 비용을 갖는 방식을 선택하여 이용할 수 있다.
이때, 상기 데이터 분할부는 상기 분할 방식이 하이브리드 분할 방식인 경우, 상기 그래프 행렬을 상기 분할 크기에 따라 서로 동일한 크기의 그래프 행렬 블록들로 격자로 분할하고, 상기 그래프 행렬의 원소 분포를 고려하여 각각의 상기 그래프 행렬 블록들을 희소 열들에 상응하는 희소 부행렬과 밀집 열들에 상응하는 밀집 부행렬로 분할하고, 종 방향으로 인접한 희소 부행렬들을 종 방향으로 결합하고, 횡 방향으로 인접한 밀집 부행렬들을 횡 방향으로 결합하여 그래프 부행렬들을 구성할 수 있다.
본 발명에 따르면 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치 및 그 방법에 의해, 그래프 마이닝의 대상이 되는 그래프 행렬을 분할하여 이에 대한 연산을 여러 연산 장치들에 분산함으로써, 행렬과 벡터의 연산이 반복적으로 수행되더라도 그래프 행렬에 대한 입출력을 중복 수행하지 않아 입출력 비용이 감소하고, 각 연산 장치에서는 분할된 행렬에 대한 연산을 처리하므로 메모리 초과의 문제를 극복할 수 있다.
또한, 본 발명은 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치 및 그 방법에 의해, 그래프 행렬을 원소 분포를 고려하여 희소 부행렬과 밀집 부행렬로 분할함으로써, 다양한 분포를 갖는 여러 그래프 행렬들에 대하여도 효과적으로 입출력 비용을 낮출 수 있다.
도 1은 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 시스템의 구성을 나타낸 도면이다.
도 2는 도 1에 도시된 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치의 일 예를 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법을 나타낸 동작 흐름도이다.
도 4 및 5는 그래프의 예시와 그래프의 행렬 표현을 나타낸 도면이다.
도 6은 본 발명의 일 실시예에서 종 분할 방식에 따라 사용자 정의된 행렬-벡터 연산을 수행하는 과정을 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 그래프 행렬을 격자로 분할한 결과의 예시를 나타낸 도면이다.
도 8 및 9는 본 발명의 일 실시예에 따른 횡 분할 방식으로 행렬을 분할하고 연산 장치들에 분배하는 예시와 그 알고리즘을 나타낸 도면이다.
도 10 및 11은 본 발명의 일 실시예에 따른 종 분할 방식으로 행렬을 분할하고 연산 장치들에 분배하는 예시와 그 알고리즘을 나타낸 도면이다.
도 12는 본 발명의 일 실시예에 따른 선택적 분할 방식으로 행렬을 분할하고 연산을 분배하는 알고리즘을 나타낸 도면이다.
도 13 및 14는 본 발명의 일 실시예에 따른 하이브리드 분할 방식으로 행렬을 분할하고 연산 장치들에 분배하는 예시와 그 알고리즘을 나타낸 도면이다.
도 15 및 16은 본 발명의 일 실시예에서 실제 그래프 마이닝 수행시 각 데이터 분할 방식에 따른 연산 시간과 입출력 비용을 비교한 그래프이다.
도 17은 본 발명의 일 실시예에 따라 희소 행렬들과 밀집 행렬들을 구분하는 문턱값의 변화에 따른 연산 시간과 입출력 비용을 비교한 그래프이다.
도 18은 본 발명의 일 실시예에 따른 하이브리드 분할 방식을 이용하는 경우에 있어서, 연산 장치들의 개수가 증가함에 따른 연산 속도 증가량을 기존의 방법과 비교한 그래프이다.
도 19는 본 발명의 일 실시예에 따른 하이브리드 분할 방식을 이용하는 경우에 있어서, 분산 시스템의 종류에 따른 연산 시간을 비교한 그래프이다.
도 20은 본 발명의 일 실시예에 따른 하이브리드 분할 방식을 이용한 그래프 마이닝의 연산 시간과 기존의 방식들을 이용한 그래프 마이닝의 연산 시간들을 비교한 그래프이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성되어 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는한 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 시스템(100)의 구성을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 시스템(100)에서 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(110)는 그래프 데이터 제공 장치(120) 및 그래프 데이터 분석 장치(130)와 상호 연결된다. 또한, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(110)는 하나 이상의 연산 장치들(140)과 상호 연결될 수 있다.
본 발명의 일 실시예에 따른 분산 처리를 통한 그래프 마이닝 장치(110)는 그래프 마이닝의 대상이 되는 그래프 데이터를 입력 받고, 데이터 분할 방식을 결정하고, 데이터 분할 크기를 결정한다. 그리고, 결정된 데이터 분할 방식과 데이터 분할 크기에 따라서 그래프 데이터에 상응하는 그래프 행렬을 분할하고, 정점들에 대한 벡터를 분할한다. 그리고, 분할한 그래프 행렬과 벡터를 연산 장치들(140)에 분배하여 행렬-벡터 연산을 분산 처리하는 것을 특징으로 한다.
그래프 마이닝는 그래프의 크기가 커짐에 따라 단일 장치에서 연산할 수 없는 문제점이 있었으며, 이를 해결하기 위하여 분산 처리 시스템을 통하여 연산을 분산 처리하였다. 하지만, 컴퓨터의 연산 성능이 증가하는 것에 비하여 데이터를 송수신하는 속도의 증가가 더디어 연산에 필요한 데이터와 연산 결과를 송수신하는데 발생하는 입출력 비용이 컸었다. 따라서, 본 발명에서는 최초에 그래프 행렬을 미리 분할하여 연산 장치들(140)에 분배하고, 반복되는 행렬-벡터 연산을 수행할 때에는 그래프 행렬은 송수신 하지 않음으로써 효과적으로 입출력 비용을 감소시킬 수 있다.
하기 표 1은 본 명세서에서 이용되는 기호들을 나타낸다.
기호 정의
v 벡터, 또는 정점들의 집합
θ 희소(sparse) 부행렬과 밀집(dense) 부행렬을 나누는 차수 문턱값
out(p) 정점 p에서 출력되는(out) 이웃한 정점들의 집합
b 벡터 블록의 개수 또는 정점 파티션의 개수
ψ 정점 파티션 함수: v -> {1, ..., b}
vi v의 i번째 원소
v(i) ψ(p)=i인 벡터 원소 (p, vp)의 집합
Figure 112018031976852-pat00001
|out(p)|<θ인 벡터 원소 (p, vp)∈v(i)의 집합
Figure 112018031976852-pat00002
|out(p)|≥θ인 벡터 원소 (p, vp)∈v(i)의 집합
|v| 벡터 v의 크기, 또는 그래프의 정점들의 개수
M 그래프 행렬, 또는 간선들의 집합
mi,j 행렬 M의 (i, j)번째 원소
M(i,j) ψ(p)=i, ψ(q)=j인 행렬 원소 (p, q, mp,q)의 집합
Figure 112018031976852-pat00003
|out(p)|<θ인 행렬 원소 (p, q, mp,q)∈ M(i,j)의 집합
Figure 112018031976852-pat00004
|out(p)|≥θ인 행렬 원소 (p, q, mp,q)∈ M(i,j)의 집합
|M| 행렬 M의 0이 아닌 원소의 개수(=그래프의 간선 개수)
Figure 112018031976852-pat00005
사용자 정의된 행렬-벡터 연산
여기서, 그래프 마이닝을 위한 행렬-벡터 연산은 일반화된 반복적 행렬-벡터 곱셈(GIM-V: Generalized Iterative Matrix-Vector Multiplication) 형태로 표현될 수 있다. 그리고, GIM-V는 combine2, combineAll, assign의 연산을 사용할 수 있다. combine2(mi,j, vj)는 행렬의 원소 mi,j와 벡터의 원소 vj의 연산 결과로서 xi,j를 반환하며, 상기 연산은 단순히 곱셈에 한정되지는 않는다. comebineAll({xi,1, ..., xi,n})은 입력된 값들인 xi,1, ..., xi,n를 하나로 합친 연산 결과로서 ri를 반환하며, 상기 연산은 단순히 합에 한정되지는 않는다. assign(vi, ri)는 vi와 ri의 연산 결과를 새로운 vi를 반환하며, vi의 수렴성을 확인할 수 있다. 따라서, 그래프 행렬 M과 벡터 v의 사용자 정의된 행렬-벡터 연산에 따른 결과 벡터 v'의 i 번째 원소는 하기 수학식 1과 같이 표현할 수 있다.
Figure 112018031976852-pat00006
그리고, 하기 표 2는 GIM-V에서 사용되는 알고리즘들의 예시를 나타낸다.
알고리즘 GIM-V 함수
PageRank
Figure 112018031976852-pat00007

Figure 112018031976852-pat00008

Figure 112018031976852-pat00009
Random Walk with Restart
Figure 112018031976852-pat00010

Figure 112018031976852-pat00011

Figure 112018031976852-pat00012
Single Source Shortest Path
Figure 112018031976852-pat00013

Figure 112018031976852-pat00014

Figure 112018031976852-pat00015
Connected Component
Figure 112018031976852-pat00016

Figure 112018031976852-pat00017

Figure 112018031976852-pat00018
그래프 데이터 제공 장치(120)는 그래프 마이닝의 대상이 되는 그래프 데이터를 제공하는 장치로, 그래프 데이터를 저장하고 있는 데이터베이스를 포함할 수 있다. 또한, 다차원 데이터 제공 장치(120)는 그래프 데이터를 수집하여 저장할 수 있다.그래프 데이터 분석 장치(130)는 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(110)로부터 획득한 그래프 행렬과 벡터의 반복 연산에 따른 연산 결과를 이용하여 마이닝 대상 그래프를 분석한다.
연산 장치(140)는 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(110)와 구분되어 존재하는 연산이 가능한 장치이다. 이는 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(110)의 연산을 대신 수행해주는 역할을 할 수 있으며, 분산 처리 시스템을 의미할 수 있다.
이때, 연산 장치(140)는 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(110)로부터 분할된 그래프 행렬과 분할된 벡터를 입력 받아 행렬-벡터 연산을 대신 수행할 수 있고, 이에 따른 연산 결과를 분산 저장소에 저장할 수 있다. 여기서, 분산 저장소는 복수의 연산 장치들(140)과 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(110)가 공유하는 별도의 저장소를 의미할 수도 있고, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(110)에 구비된 저장소를 의미할 수도 있다.
이때, 연산 장치(140)는 그래프 마이닝 과정에서 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(110)로부터 분할된 그래프 행렬을 최초에 한 번 입력받을 수 있다. 즉, 동일한 그래프 마이닝 과정에서 반복되는 행렬-벡터 연산시 분할된 그래프 행렬은 최초에 한 번 연산 장치(140)로 전달되고, 그 이후에는 분할된 그래프 행렬이 연산 장치(140)에 저장되어 반복적으로 연산에 사용될 수 있다.
도 2는 도 1에 도시된 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(110)의 일 예를 나타낸 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(110)는 제어부(210), 통신부(220), 메모리(230), 데이터 분할 방식 선택부(240), 데이터 분할 크기 결정부(250), 데이터 분할부(260) 및 데이터 연산 분배부(270) 등을 포함한다.
상세히, 제어부(210)는 일횡의 중앙처리장치로서 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 전체 과정을 제어한다. 즉, 제어부(210)는 데이터 분할 방식 선택부(240), 데이터 분할 크기 결정부(250), 데이터 분할부(260) 및 데이터 연산 분배부(270) 등을 제어하여 다양한 기능을 제공할 수 있다.
여기서, 제어부(210)는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 횡류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
통신부(220)는 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(110)와 그래프 데이터 제공 장치(120), 그래프 데이터 분석 장치(130) 및 연산 장치(140) 간의 송수신 신호를 전송하는데 필요한 통신 인터페이스를 제공한다.
여기서, 통신부(220)는 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다.
메모리(230)는 제어부(210)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 여기서, 메모리(230)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
이때, 메모리(230)는 그래프 행렬와 벡터의 연산에 따른 결과를 저장할 수 있다.
데이터 분할 방식 선택부(240)는 행렬-벡터 연산에 있어서 그래프 행렬과 벡터를 분할하는 방식을 선택한다.
이때, 데이터 분할 방식 선택부(240)는 데이터 분할 방식은 종(vertical) 분할 방식, 횡(horizontal) 분할 방식, 선택적 분할 방식 및 하이브리드(hybrid) 분할 방식 중에서 하나를 선택할 수 있다. 여기서, 종 분할 방식은 그래프 행렬을 종 방향으로 분할하여 연산을 분배하기 위한 방식이고, 횡 분할 방식은 그래프 행렬을 횡 방향으로 분할하여 연산을 분배하기 위한 방식이다. 선택적 분할 방식은 종 분할 방식과 횡 분할 방식 중에서 입출력 비용이 적은 방식을 선택하는 방식이다. 하이브리드 분할 방식은 그래프 행렬을 횡 방향과 종 방향 모두 분할하고, 각 분할된 행렬에 대하여 다시 희소(sparse) 부행렬과 밀집(dense) 부행렬로 분할하여 연산을 분배하기 위한 방식이다.
특히, 분할 방식은 표현하기에 따라서 그래프 행렬을 격자로 분할한 이후 결합하여 분배하는 방식을 의미할 수도 있다. 예컨대, 종 방향 분할 방식은 격자로 분할된 행렬들 중에서 종 방향으로 인접한 행렬들을 결합하여 연산을 분배하기 위한 방식이고, 횡 방향 분할 방식은 격자로 분할된 행렬들 중에서 횡 방향으로 인접한 행렬들을 결합하여 연산을 분배하기 위한 방식을 의미할 수 있다.
이때, 데이터 분할 방식 선택부(240)는 사용자의 입력에 따라 데이터 분할 방식을 선택할 수 있다.
이때, 데이터 분할 방식 선택부(240)는 데이터 분할 방식을 기본 값으로 하이브리드 분할 방식으로 선택할 수 있다.
데이터 분할 크기 결정부(250)는 행렬-벡터 연산을 분산하기 위하여 분할 개수 b와 이에 따른 분할 크기를 결정할 수 있다. 여기서, 분할 개수는 데이터 분할 방식에 따라 벡터 분할 개수를 의미할 수도 있고, 행렬 분할 개수를 의미할 수도 있으며, 벡터 분할 개수 및 행렬 분할 개수 모두를 의미할 수 있다.
이때, 데이터 분할 크기 결정부(250)는 분산 처리를 수행할 연산 장치들(도 1의 140 참조, worker)의 개수 W, 벡터 v의 크기 |v| 및 메모리 크기 Mem를 고려하여 분할 개수 b를 결정할 수 있다.
이때, 데이터 분할 크기 결정부(250)는 분산 연산의 병렬성을 최대화하기 위하여 하기 수학식 2를 만족하는 경우에는 분할 개수 b를 연산 장치들의 개수 W로 결정할 수 있고, 하기 수학식 2를 만족하지 않는 경우에는 분할 개수 b를 O(|v|/Mem)으로 결정할 수 있다. 즉, 분할된 벡터가 연산 장치들의 메모리에 수용하기 충분한 경우에는 연산 장치들의 숫자만큼 벡터를 분할하는 것이 연산의 병렬성을 극대화할 수 있기 때문이다.
Figure 112018031976852-pat00019
이때, 데이터 분할 크기 결정부(250)는 결정된 분할 개수 b에 따라 벡터의 분할 개수와 벡터의 분할 크기, 그래프 행렬의 분할 개수와 그래프 행렬의 분할 크기를 결정할 수 있다. 예컨대, 분할 개수 b에 따라 그래프 행렬을 가로 b개 또는 세로 b개로 분할하도록 행렬 분할 개수를 결정할 수 있다. 즉, 행렬 분할 개수는 단순히 분할 개수뿐만 아니라 분할 방향에 대한 정보와 함께 이용될 수 있다.
데이터 분할부(260)는 결정된 데이터 분할 방식과 데이터 분할 크기에 기반하여 그래프 행렬과 벡터를 분할한다.
이때, 데이터 분할부(260)는 데이터 분할 방식이 종 분할 방식인 경우, 분할된 행렬들이 서로 동일한 크기를 갖도록 그래프 행렬을 분할 개수만큼 격자로 분할하고, 종 방향으로 인접한 분할된 행렬들을 결합하며, 벡터를 분할 개수만큼 서로 동일한 크기를 갖도록 분할할 수 있다. 예컨대, 데이터 분할 방식이 종 분할 방식이고, 그래프 행렬이 6x6 행렬이고, 벡터의 크기가 6이며, 분할 개수가 3인 경우, 그래프 행렬을 6x2 행렬 3개로 분할하고, 벡터는 크기 2의 벡터 3개로 분할할 수 있다. 또는, 그래프 행렬을 2x2 행렬 9개로 분할하고, 종 방향으로 인접한 행렬들을 결합하여 3개의 6x2 행렬들을 구성할 수 있다.
이때, 데이터 분할부(260)는 데이터 분할 방식이 횡 분할 방식인 경우, 분할된 행렬들이 서로 동일한 크기를 갖도록 그래프 행렬을 분할 개수만큼 격자로 분할하고, 횡 방향으로 인접한 분할된 행렬들을 결합할 수 있다. 예컨대, 데이터 분할 방식이 횡 분할 방식이고, 그래프 행렬이 6x6 행렬이고, 벡터의 크기가 6이며, 분할 개수가 3인 경우, 그래프 행렬을 2x6 행렬 3개로 분할하고, 벡터는 분할하지 않을 수 있다. 또는, 그래프 행렬을 2x2 행렬 9개로 분할하고, 횡 방향으로 인접한 행렬들을 결합하여 3개의 2x6 행렬들을 구성할 수 있다.
이때, 데이터 분할부(260)는 데이터 분할 방식이 선택적 분할 방식인 경우, 그래프 행렬에 대한 분석을 통하여 종 분할 방식과 횡 분할 방식 중에서 입출력 비용이 적은 방식에 따라 그래프 행렬과 벡터를 분할할 수 있다. 여기서, 횡 분할 방식에 따른 행렬-벡터 연산의 1회 수행시 입출력 비용의 기대값 E[Ch]은 하기 수학식 3과 같이 표현할 수 있고, 종 분할 방식에 따른 행렬-벡터 연산의 1회 수행시 입출력 비용의 기대값 E[Cv]은 하기 수학식 4와 같다. 따라서 하기 수학식 5를 만족하는 경우에는 횡 분할 방식을 따르며, 그렇지 않은 경우에는 종 분할 방식을 따를 수 있다.
Figure 112018031976852-pat00020
Figure 112018031976852-pat00021
Figure 112018031976852-pat00022
이때, 데이터 분할부(260)는 데이터 분할 방식이 하이브리드 분할 방식인 경우, 분할된 행렬들이 서로 동일한 크기를 갖도록 그래프 행렬을 분할 개수만큼 격자로 분할하고, 각 분할된 행렬들에 대하여 그래프 행렬의 원소 분포를 고려하여 희소 열들에 상응하는 희소 부행렬과 밀집 열들에 상응하는 밀집 부행렬로 분할하고, 종 방향으로 인접한 희소 부행렬들을 서로 결합하고, 횡 방향으로 인접한 밀집 부행렬들을 서로 결합하며, 벡터는 희소 부행렬 및 밀집 부행렬과 연산 가능한 단위로 분할될 수 있다. 즉, 희소 부행렬들과 밀집 부행렬들은 희소 열들과 밀집 열들을 기반으로 분할하므로, 종 방향으로 인접한 희소 부행렬들은 서로 동일한 크기를 가지며, 종 방향으로 인접한 밀집 부행렬들은 서로 동일한 크기를 갖는다.
예컨대, 데이터 분할 방식이 하이브리드 분할 방식이고, 그래프 행렬이 6x6 행렬이고, 벡터의 크기가 6이며, 분할 개수가 2인 경우, 그래프 행렬을 3x3 행렬 4개로 분할하고, 각 분할된 3x3 행렬에 대하여 좌측 3x2 행렬을 희소 부행렬, 우측 3x1 행렬을 밀집 부행렬로 분할하며, 종 방향으로 인접한 희소 부행렬들을 결합하여 6x2 행렬 2개를 구성하고, 횡 방향으로 인접한 밀집 부행렬들을 결합하여 3x2 행렬 2개를 구성할 수 있다. 그리고, 벡터는 결합된 희소 부행렬들 및 밀집 부행렬들과 연산이 가능하도록 순서대로 크기가 2, 1, 2, 1인 벡터들로 분할하고, 크기가 2인 벡터들은 희소 부행렬들의 연산을 위한 벡터이므로 별도의 결합을 하지 않지만, 크기가 1인 벡터들은 밀집 부행렬들의 연산을 위한 벡터이므로 서로 결합하여 크기 2인 벡터로 구성할 수 있다.
여기서, 희소 부행렬과 밀집 부행렬을 나눌 때, 우선 정점들에 대한 벡터 v에 대하여 각 정점들에 대하여 출력 차수(out-degree)가 문턱값 θ보다 작은 것들을 희소 벡터로 구분하고, 출력 차수가 문턱값 θ보다 크거나 같은 것들을 밀집 벡터로 구분할 수 있다. 그리고, 희소 부행렬은 시작 정점들(source vertices)이 희소 벡터에 포함되는 영역으로 분할하고, 밀집 부행렬은 각 시작 정점들이 밀집 벡터에 포함되는 영역으로 분할할 수 있다. 즉, 희소 부행렬에 포함된 시작 정점들은 출력 차수가 문턱값 θ보다 작으며, 밀집 부행렬에 포함된 시작 정점들은 출력 차수가 문턱값 θ보다 크거나 같다. 이에 따라, 각 분할된 그래프 행렬 내부에서도 희소 영역과 밀집 영역을 구분하여 효과적인 연산 방식을 적용할 수 있다. 그리고, 하이브리드 분할 방식에 따른 행렬-벡터 연산의 1회 수행시 입출력 비용의 기대값 E[Chb]은 하기 수학식 6과 같다. 하기 수학식 6에서 b는 벡터 v의 분할된 블록 개수이며, Pout(θ)는 출력 차수가 θ보다 작은 정점들의 비율이며, pin(d)는 입력 차수(in-degree)가 d인 정점들의 비율이다.
Figure 112018031976852-pat00023
Figure 112018031976852-pat00024
이때, 데이터 분할부(260)는 그래프 마이닝을 위한 행렬-벡터 연산이 반복될 때, 각 연산 단계의 연산 결과 벡터를 이미 결정된 분할 방식과 분할 크기에 기반하여 다시 분할할 수 있다. 즉, 그래프 마이닝에서는 행렬-벡터 연산이 반복적으로 수행되며, 그래프 행렬과 벡터의 연산으로 생성되는 연산 결과 벡터는 다시 그래프 행렬과 연산되어 다시 새로운 연산 결과 벡터를 생성하게 된다. 따라서 각 연산 단계에서 연산 결과 벡터는 다시 미리 결정된 분할 방식과 분할 크기에 기반하여 분할되어야 연산 장치들(도 1의 140 참조)에 대하여 분산 처리가 가능하다.
데이터 연산 분배부(270)는 분할된 그래프 행렬들에 대한 연산들을 각 연산 장치들(도 1의 140 참조)에 분배한다.
이때, 데이터 연산 분배부(270)는 그래프 마이닝의 최초 연산 분배 단계에서는 각각의 분할된 그래프 행렬들과 이에 대응되는 분할된 벡터 블록들을 함께 각 연산 장치들(도 1의 140 참조)에 분배하고, 이후 연산 분배 단계에서는 이전 연산 결과 벡터를 분할한 벡터 블록들만을 연산 장치들(도 1의 140 참조)에 분배할 수 있다. 여기서, 이전 연산 결과 벡터를 분할한 벡터 블록들은 연산 장치들(도 1의 140 참조)에 분배된 분할된 그래프 행렬에 대응되도록 연산 장치들(도 1의 140 참조)에 분배된다. 예컨대, 그래프 행렬 M이 2개의 행렬들 M1, M2로 분할되어 각각 연산 장치 1 및 연산 장치 2에 분배되고, 벡터 v가 2개의 벡터 블록들 v1, v2로 분할되어 각각 연산 장치 1 및 연산 장치 2에 분배된 경우, 해당 연산에 따른 연산 결과 벡터 v'도 이후 연산 단계에서 v'1, v'2로 분할되어 각각 연산 장치 1 및 연산 장치 2로 분배되어 다시 행렬-벡터 연산을 수행할 수 있다.
이때, 데이터 연산 분배부(270)는 그래프 마이닝을 위한 행렬-벡터 연산의 연산 결과 벡터가 일정 오차 이내로 수렴할 때까지 분할된 그래프 행렬들에 대한 연산들을 각 연산 장치들(도 1의 140 참조)에 분배하여 행렬-벡터 연산을 반복하여 수행할 수 있다.
도 3은 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법을 나타낸 동작 흐름도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법은, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(도 1의 110 참조)가, 그래프 마이닝의 대상이 되는 그래프 데이터를 획득한다(S301).
또한, 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법은, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(도 1의 110 참조)가, 데이터 분할 방식을 선택한다(S303).
이때, 데이터 분할 방식에는 횡 분할 방식, 종 분할 방식, 선택적 분할 방식 및 하이브리드 분할 방식 등이 포함된다.
이때, 데이터 분할 방식은 사용자의 입력 혹은 자동으로 선택될 수 있으며, 기본 설정값으로 하이브리드 분할 방식이 선택될 수 있다.
또한, 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법은, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(도 1의 110 참조)가, 그래프 데이터에 상응하는 그래프 행렬 및 그래프 행렬과 연산하는 벡터를 분할하기 위한 데이터 분할 크기를 결정한다(S305).
여기서, 데이터 분할 크기는 데이터 분할 개수와 동일한 의미로 사용될 수 있다.
이때, 데이터 분할 크기는 벡터의 크기, 연산 장치(도 1의 140 참조)의 메모리 크기, 연산 장치들(도 1의 140 참조)의 개수를 고려하여 결정할 수 있다.
또한, 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법은, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(도 1의 110 참조)가, 정해진 데이터 분할 방식과 데이터 분할 크기를 이용하여 그래프 행렬을 분할하고, 분할된 그래프 행렬들과 연산할 수 있는 크기로 벡터를 분할한다(S307).
또한, 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법은, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(도 1의 110 참조)가, 분할된 그래프 행렬들에 대한 행렬-벡터 연산을 각 연산 장치들(도 1의 140 참조)에 분배한다(S309).
또한, 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법은, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(도 1의 110 참조)가, 각 연산 장치들(도 1의 140 참조)로부터 분산 처리된 행렬-벡터 연산 결과를 획득한다(S311).
여기서, 별도로 구비된 분산 저장소에 저장된 연산 결과를 획득할 수도 있지만, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(도 1의 110 참조)에 구비된 분산 저장소에 저장된 연산 결과를 획득할 수도 있다.
또한, 본 발명의 일 실시예에 따른 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법은, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치(도 1의 110 참조)가, 연산 결과가 수렴하는지 여부를 판단한다(S313).
단계(S313)의 판단 결과, 연산 결과가 수렴하는 경우에는 절차를 종료한다.
단계(S313)의 판단 결과, 연산 결과가 수렴하지 않는 경우에는 연산 결과를 데이터 분할 크기에 따라 분할하고(S315), 다시 단계(S309)로 돌아가 분할된 그래프 행렬들에 대한 행렬-벡터 연산을 각 연산 장치들(도 1의 140 참조)에 분배한다.
여기서, 그래프 행렬은 그래프 마이닝을 수행할 때 최초에만 분할되어 각 연산 장치들(도 1의 140 참조)로 분배되고, 그 이후에는 연산 결과 벡터만 반복적으로 분할되어 각 연산 장치들(도 1의 140 참조)에 분배되어 행렬-벡터 연산이 반복된다. 따라서, 연산 결과가 수렴하지 않는 경우에는 그래프 행렬에 대하여는 분할하지 않는다.
선택적 실시예에서, 상기 단계들(S301, S303, S305, S307, S309, S311, S313 및 S315)에 있어서, 데이터 분할 방식을 선택하는 단계(S303) 및 데이터 분할 크기를 결정하는 단계(S305)는 병렬적으로 수행될 수 있다.
선택적 실시예에서, 상기 단계들(S301, S303, S305, S307, S309, S311, S313 및 S315)에 있어서, 데이터 분할 크기를 결정하는 단계(S305) 및 데이터를 분할하는 단계(S307)는 병렬적으로 수행될 수 있다.
도 4 및 5는 그래프의 예시와 그래프의 행렬 표현을 나타낸 도면이다.
도 4를 참조하면, 그래프는 6개의 정점(정점)들 v1, v2, v3, v4, v5 및 v6과 5개의 간선들 m4,1, m4,3, m4,6, m2,4 및 m5,4 로 구성된다. 여기서, m4,1은 정점 v1에서 정점 v4로의 간선을 의미한다.
도 5를 참조하면, 도 4에 도시된 그래프는 6개의 정점들로 구성되어 있으므로 해당 그래프는 6x6의 그래프 행렬로 나타낼 수 있으며, 가로축은 간선의 출발 정점(source)를 나타내며, 세로축은 간선의 도착 정점(destination)을 의미한다. 여기서, 도 4에 도시된 그래프는 5개의 간선들 m4,1, m4,3, m4,6, m2,4 및 m5,4로 구성되어 있으므로, 행렬은 (4, 1), (4, 3), (4, 6), (2, 4) 및 (5, 4)에 간선이 있음을 나타내는 1이 채워질 수 있다. 그리고, 6x6의 그래프 행렬은 크기 6의 벡터와 연산되며, 그 결과로서 새로운 크기 6의 벡터가 생성된다.
도 6은 본 발명의 일 실시예에서 종 분할 방식에 따라 사용자 정의된 행렬-벡터 연산을 수행하는 과정을 나타낸 도면이다.
도 6을 참조하면, 본 발명의 일 실시예에서 그래프 행렬 M은 6x6의 크기를 가지며, 이는 9개의 2x2 행렬들 M(1,1), M(1,2), M(1,3), M(2,1), M(2,2), M(2,3), M(3,1), M(3,2) 및 M(3,3)로 분할될 수 있다. 그리고, 벡터 v는 6의 크기를 가지며, 이는 3개의 크기 2 벡터들 v(1), v(2) 및 v(3)로 분할될 수 있다.
이때, 데이터 분할 방식이 종 분할 방식이므로, 9개의 분할된 행렬들을 종 방향으로 인접한 행렬들끼리 결합하여 3개의 6x2 행렬들로 구성하고, 이들 각각에 대하여 분할된 벡터들 v(1), v(2) 및 v(3)를 할당하여 사용자 정의된 연산을 수행할 수 있다. 각 6x2 행렬과 크기 2의 분할된 벡터가 연산되면 크기 6의 벡터들이 3개 생성되며, 이들을 합하여 연산 결과로서 새로운 크기 6의 벡터 v'를 생성할 수 있다.
도 7은 본 발명의 일 실시예에 따른 그래프 행렬을 격자로 분할한 결과의 예시를 나타낸 도면이다.
도 7을 참조하면, 본 발명의 일 실시예는 그래프 행렬 M에 대하여 설정된 분할 개수 또는 분할 크기에 따라 분할된 행렬들이 동일한 크기를 갖도록 격자로 분할할 수 있다. 도 7에서 그래프 행렬 M은 9개의 행렬들 M(1,1), M(1,2), M(1,3), M(2,1), M(2,2), M(2,3), M(3,1), M(3,2) 및 M(3,3)로 분할될 수 있다. 특히, 각 분할된 행렬들에서 우측의 강조된 영역은 밀집 부행렬을 의미하며, 각 분할된 행렬들에서 좌측의 강조되지 않은 영역은 희소 부행렬을 의미한다.
다만, 도 7에 도시된 밀집 부행렬과 희소 부행렬의 위치나 모양은 하나의 예시에 불과하며, 다양한 조합이 가능하다. 예컨대, 각 분할된 행렬들의 좌측을 밀집 부행렬로, 우측을 희소 부행렬로 분할할 수도 있다.
또한, 종 방향으로 결합된 분할된 행렬들마다 밀집 부행렬의 위치가 상이할 수 있다. 예컨대, M(1,1), M(2,1), M(3,1)으로 구성된 종 방향으로 결합된 부행렬에 대하여는 좌측 절반이 희소 부행렬이고 나머지 우측 절반은 밀집 부행렬로 분할할 수 있다. 또한, M(1,2), M(2,2), M(3,2)으로 구성된 종 방향으로 결합된 부행렬에 대하여는 중간 절반이 희소 부행렬이고, 나머지 좌우 절반은 밀집 부행렬로 분할할 수 있다. 또한, M(1,3), M(2,3), M(3,3)으로 구성된 종 방향으로 결합된 부행렬에 대하여는 우측 절반이 희소 부행렬이고 나머지 좌측 절반은 밀집 부행렬로 분할할 수 있다.
도 8 및 9는 본 발명의 일 실시예에 따른 횡 분할 방식으로 행렬을 분할하고 연산 장치들에 분배하는 예시와 그 알고리즘을 나타낸 도면이다.
도 8을 참조하면, 본 발명의 일 실시예에 따르면 도 7에 도시된 분할된 행렬들에 대하여 횡 방향으로 인접한 행렬들을 서로 결합하여 3개의 행렬들 M(1,:), M(2,:) 및 M(3,:)으로 구성할 수 있다. 그리고, 3개의 행렬들을 각각 다른 연산 장치들(도 1의 140 참조) worker 1, worker 2 및 worker 3에 분산하여 할당할 수 있다. 여기서, M(1,:)은 도 7에 도시된 행렬 M(1,1), M(1,2), M(1,3)을 횡 방향으로 결합한 행렬이며, M(2,:)은 도 7에 도시된 행렬 M(2,1), M(2,2), M(2,3)을 횡 방향으로 결합한 행렬이고, M(3,:)은 도 7에 도시된 행렬 M(3,1), M(3,2), M(3,3)을 횡 방향으로 결합한 행렬이다.
도 9는 본 발명의 일 실시예에 따른 횡 분할 방식으로 행렬을 분할하고 연산을 분배하는 알고리즘을 나타내는데, 횡 분할 방식을 이용할 경우 각 연산 장치에는 벡터 v가 분할되지 않고 분배되며, 연산 결과 벡터는 각 연산 장치들의 연산 결과에 대하여 별도의 연산 없이 획득할 수 있다(라인 4 내지 7). 따라서, 분산 저장소에 연산 결과를 저장할 때(라인 8) 이외에는 분산 저장소에 접근하지 않는다. 즉, 횡 분할 방식에 따를 경우 각 연산 장치들(도 1의 140 참조)은 서로 데이터를 주고 받을 필요가 없다. 그리고, 이러한 행렬-벡터 연산은 연산 결과 벡터가 수렴할 때까지 반복되며(라인 9), 각 반복에서 연산에 이용되는 행렬은 동일하므로 다시 분할하거나 연산 장치들(도 1의 140 참조)에 다시 분배하지 않는다.
특히, 횡 분할 방식은 밀집 행렬에 대한 연산을 수행할 경우에 입출력 비용이 낮으므로, 밀집 행렬에 적합한 특징이 있다.
도 10 및 11은 본 발명의 일 실시예에 따른 종 분할 방식으로 행렬을 분할하고 연산 장치들에 분배하는 예시와 그 알고리즘을 나타낸 도면이다.
도 10을 참조하면, 본 발명의 일 실시예에 따르면 도 7에 도시된 분할된 행렬들에 대하여 종 방향으로 인접한 행렬들을 서로 결합하여 3개의 행렬들 M(:,1), M(:,2) 및 M(:,3)으로 구성할 수 있다. 그리고, 3개의 행렬들을 각각 다른 연산 장치들(도 1의 140 참조) worker 1, worker 2 및 worker 3에 분산하여 할당할 수 있다. 여기서, M(:,1)은 도 7에 도시된 행렬 M(1,1), M(2,1), M(3,1)을 종 방향으로 결합한 행렬이며, M(:,2)은 도 7에 도시된 행렬 M(1,2), M(2,2), M(3,2)을 종 방향으로 결합한 행렬이고, M(:,3)은 도 7에 도시된 행렬 M(1,3), M(2,3), M(3,3)을 종 방향으로 결합한 행렬이다.
도 11은 본 발명의 일 실시예에 따른 종 분할 방식으로 행렬을 분할하고 연산을 분배하는 알고리즘을 나타내는데, 종 분할 방식을 이용할 경우 각 연산 장치에는 벡터 v가 분할된 그래프 행렬에 상응하도록 분할되어 분배되며, 연산 결과 벡터는 각 연산 장치들의 연산 결과를 취합하여야 획득할 수 있다. 따라서 연산 결과를 획득함에 있어서 분산 저장소에 중간 결과들을 저장한다(라인 3 내지 6). 따라서, 분산 저장소에서 중간 결과들을 불러와(라인 7) 취합하여 최종 연산 결과를 획득하고 다시 분산 저장소에 저장한다(라인 8 및 9). 그리고, 이러한 행렬-벡터 연산은 연산 결과 벡터가 수렴할 때까지 반복되며(라인 10), 각 반복에서 연산에 이용되는 행렬은 동일하므로 다시 분할하거나 연산 장치들(도 1의 140 참조)에 다시 분배하지 않는다.
특히, 종 분할 방식은 희소 행렬에 대한 연산을 수행할 경우에 입출력 비용이 낮으므로, 희소 행렬에 적합한 특징이 있다.
도 12는 본 발명의 일 실시예에 따른 선택적 분할 방식으로 행렬을 분할하고 연산을 분배하는 알고리즘을 나타낸 도면이다.
도 12은 본 발명의 일 실시예에 따른 선택적 분할 방식으로 행렬을 분할하고 연산을 분배하는 알고리즘을 나타내는데, 종 분할 방식에 따른 입출력 비용과 횡 분할 방식에 따른 입출력 비용을 비교하고(라인 1), 횡 분할 방식의 입출력 비용이 횡 분할 방식의 입출력 비용보다 작은 경우에는 횡 분할 방식에 따라 연산을 수행하고(라인 2), 그렇지 않은 경우에는 종 분할 방식에 따라 연산을 수행한다(라인 4).
도 13 및 14는 본 발명의 일 실시예에 따른 하이브리드 분할 방식으로 행렬을 분할하고 연산 장치들에 분배하는 예시와 그 알고리즘을 나타낸 도면이다.
도 13을 참조하면, 본 발명의 일 실시예에 따르면 도 7에 도시된 분할된 행렬들에 대하여 다시 희소 행렬들과 밀집 행렬들로 분할한다. 여기서, 각각의 희소 행렬들과 밀집 행렬들은 서로 크기가 같다. 그리고, 종 방향으로 인접한 희소 행렬들을 종 방향으로 결합하여 3개의 결합된 희소 행렬들 Ms (:,1), Ms (:,2) 및 Ms (:,3)로 구성하고, 횡 방향으로 인접한 밀집 행렬들을 횡 방향으로 결합하여 3개의 결합된 밀집 행렬들 Md (1,:), Md (2,:) 및 Md (3,:)로 구성할 수 있다. 그리고, 3개의 결합 밀집 행렬들과 3개의 결합된 밀집 행렬들을 각각 다른 연산 장치들(도 1의 140 참조) worker 1, worker 2 및 worker 3에 분산하여 할당할 수 있다. 여기서, Ms (:,1)은 도 7에 도시된 행렬 M(1,1), M(2,1), M(3,1)의 희소 행렬들을 종 방향으로 결합한 행렬이며, Ms (:,2)은 도 7에 도시된 행렬 M(1,2), M(2,2), M(3,2)의 희소 행렬들을 종 방향으로 결합한 행렬이고, Ms (:,3)은 도 7에 도시된 행렬 M(1,3), M(2,3), M(3,3)의 희소 행렬들을 종 방향으로 결합한 행렬이다. 그리고, Md (1,:)은 도 7에 도시된 행렬 M(1,1), M(1,2), M(1,3)의 밀집 행렬들을 횡 방향으로 결합한 행렬이며, Md (2,:)은 도 7에 도시된 행렬 M(2,1), M(2,2), M(2,3)의 밀집 행렬들을 횡 방향으로 결합한 행렬이고, Md (3,:)은 도 7에 도시된 행렬 M(3,1), M(3,2), M(3,3)의 밀집 행렬들을 횡 방향으로 결합한 행렬이다.
도 14는 본 발명의 일 실시예에 따른 하이브리드 분할 방식으로 행렬을 분할하고 연산을 분배하는 알고리즘을 나타내는데, 하이브리드 분할 방식을 이용할 경우 각 연산 장치에는 벡터 v가 분할된 그래프 행렬에 상응하도록 분할되어 분배되며, 연산 결과 벡터는 각 연산 장치들의 연산 결과를 취합하여야 획득할 수 있다.
상세히, 결합된 희소 행렬들은 종 분할 방식을 이용하므로 연산 결과를 획득함에 있어서 분산 저장소에 중간 결과들을 저장한다(라인 5 내지 8). 따라서, 분산 저장소에서 중간 결과들을 불러와(라인 9) 취합하여 희소 행렬들에 대한 최종 연산 결과를 획득하여 다시 분산 저장소에 저장한다(라인 10).
반면에, 결합된 밀집 행렬들은 횡 분할 방식을 이용하므로 밀집 행렬들에 대한 연산 결과는 각 연산 장치들의 연산 결과에 대하여 별도의 연산 없이 획득할 수 있다(라인 11 내지 14). 따라서, 분산 저장소에 밀집 행렬들에 대한 연산 결과를 저장할 때(라인 17) 이외에는 분산 저장소에 접근하지 않는다.
그리고, 이러한 행렬-벡터 연산은 연산 결과 벡터가 수렴할 때까지 반복되며(라인 18), 각 반복에서 연산에 이용되는 행렬은 동일하므로 다시 분할하거나 연산 장치들(도 1의 140 참조)에 다시 분배하지 않는다.
특히, 하이브리드 분할 방식은 희소 행렬에 대하여는 희소 행렬에 적합한 종 분할 방식을 이용하고, 밀집 행렬에 대하여는 밀집 행렬에 적합한 횡 분할 방식을 이용함으로써, 그래프 마이닝에 수반되는 연산에서 소비되는 입출력 비용을 효과적으로 낮출 수 있다.
도 15 및 16은 본 발명의 일 실시예에서 실제 그래프 마이닝 수행시 각 데이터 분할 방식에 따른 연산 시간과 입출력 비용을 비교한 그래프이다.
도 15 및 16은 선택적 분할 방식 대비 다른 분할 방식의 연산 시간과 입출력 비용을 나타낸 것이다. 그리고, 도 15 및 16에서 사용된 실제 그래프 데이터는 하기 표 3와 같다.
그래프 정점(Vertices) 간선(Edges)
ClueWeb12 (CW12) 6,231,126,594 71,746,553,402
ClueWeb09 (CW09) 1,684,876,525 7,939,647,897
YahooWeb (YW) 720,242,173 6,636,600,779
Twitter (TW) 41,652,230 1,468,365,182
RMAT26 (RM26) 42,147,725 5,000,000,000
도 15 및 16을 참조하면, 각 실제 그래프 데이터의 정점과 간선 개수가 많아지면 연산 시간이나 입출력 비용이 증가함을 알 수 있다. 그리고, 각 데이터별로 횡 분할 방식과 종 분할 방식의 효율이 상이함을 알 수 있다. 그리고, 특정 데이터(YW)에 대하여는 횡 분할 방식을 이용할 경우에 종 분할 방식을 이용할 경우에 비하여 연산 시간이 5.1배 더 걸리며 입출력 비용이 6.4배 많음을 확인할 수 있다. 특히, 모든 데이터에 대하여 하이브리드 분할 방식이 가장 연산 시간이 짧으면서 입출력 비용이 작음을 확인할 수 있다. 이는, 하이브리드 분할 방식은 그래프 데이터의 분포를 고려하여 그래프 행렬을 희소 행렬들과 밀집 행렬들로 분할하고 각각에 적합한 분할 방식을 적용함에 따라 연산과 입출력 효율이 증가하기 때문이다.
도 17은 본 발명의 일 실시예에 따라 희소 행렬들과 밀집 행렬들을 구분하는 문턱값의 변화에 따른 연산 시간과 입출력 비용을 비교한 그래프이다.
본 발명의 일 실시예에서 문턱값 θ는 희소 행렬들과 밀집 행렬들을 구분하는 기준으로 이용되며, θ가 0인 경우에는 하이브리드 분할 방식은 횡 분할 방식과 동일해지며, θ가 ∞인 경우에는 하이브리드 분할 방식은 종 분할 방식과 동일해진다.
도 17은 표 3의 실제 그래프 데이터 TW에 대하여 그래프 마이닝을 수행한 결과를 나타낸다. 도 17을 참조하면, θ가 0인 경우에는 연산 시간이 가장 길며 입출력 비용도 가장 크다. 이는 그래프 마이닝에 사용된 실제 그래프 데이터 TW가 희소 행렬이기 때문이다. 그리고 θ가 증가함에 따라 연산 시간과 입출력 비용도 감소하지만, 일정 수준을 넘어서면 연산 시간과 입출력 비용이 서서히 증가한다. 도 17의 예시에서는 θ가 100일 때 입출력 비용이 가장 작으며, θ가 200일 때 연산 속도가 가장 빠름을 확인할 수 있다. 따라서, 연산 속도가 가장 빠른 θ가 200일 때가 최적의 문턱값이라 볼 수 있으며, 이 경우에는 θ가 ∞인 경우와 비교하여 44%의 입출력 비용이 낮은 효과가 있다.
도 18은 본 발명의 일 실시예에 따른 하이브리드 분할 방식을 이용하는 경우에 있어서, 연산 장치들의 개수가 증가함에 따른 연산 속도 증가량을 기존의 방법과 비교한 그래프이다.
도 18은 표 3의 실제 그래프 데이터 YW에 대하여 그래프 마이닝을 수행한 결과를 나타내며, 본 발명의 일 실시예에 따른 하이브리드 분할 방식은 PMV이며, 기존의 방법은 PEGASUS이다. 도 18을 참조하면, 본 발명의 일 실시예에 따른 하이브리드 분할 방식에 따라 그래프 마이닝을 수행하는 경우에는 연산 장치들(도 1의 140 참조)이 증가함에 따른 연산 속도 증가율의 기울기가 1에 가까움을 알 수 있다. 즉, 연산 장치들이 16개에서 2배(32개)로 늘어날 경우 연산 속도가 약 2배가 되며, 4배(64개)로 늘어날 경우 연산속도가 약 3.5배가 된다. 반면에, 기존의 방식은 연산 장치들이 증가함에 따른 연산 속도의 증가율의 기울기가 약 0.5에 불과하다. 즉, 본 발명의 일 실시예에 따른 하이브리드 분할 방식을 이용할 경우 기존의 방식을 이용하는 것에 비하여 연산 장치들이 증가함에 따른 연산 효율 증가량이 약 2배 좋다.
도 19는 본 발명의 일 실시예에 따른 하이브리드 분할 방식을 이용하는 경우에 있어서, 분산 시스템의 종류에 따른 연산 시간을 비교한 그래프이다.
도 19는 표 3에 도시된 실제 그래프 데이터 CW12의 간선 숫자를 변화시키면서, 두 분산 시스템들 Spark 및 Hadoop에서 본 발명의 일 실시예에 따른 하이브리드 분할 방식을 이용하여 그래프 마이닝을 수행하였을 때의 연산 시간을 나타낸다. 도 19를 참조하면, 분산 시스템 Hadoop은 간선 숫자가 적을 때 연산 시간이 짧으며, 분산 시스템 Spark는 간선 숫자가 많을 때 연산 시간이 짧다. 즉, 그래프가 큰 경우에는 분산 시스템 Hadoop이 연산 속도가 빠르고, 그래프가 작은 경우에는 분산 시스템 Spark가 연산 속도가 빠르다.
도 20은 본 발명의 일 실시예에 따른 하이브리드 분할 방식을 이용한 그래프 마이닝의 연산 시간과 기존의 방식들을 이용한 그래프 마이닝의 연산 시간들을 비교한 그래프이다.
도 20은 표 3에 도시된 실제 그래프 데이터 CW12에 대하여 그래프 마이닝을 수행하였을 때의 연산 시간들을 비교한 것이며, 본 발명의 일 실시예에 따른 하이브리드 분할 방식은 PMV이며, 기존의 방식들은 PEGASUS, GraphLab, GraphX 및 Giraph이다. 도 20을 참조하면, GraphLab, Graph X는 Giraph는 간선 숫자가 적은 경우에는 연산 시간이 본 발명에 따른 PMV보다 짧지만, 간선이 증가함에 따라 메모리 초과(o.o.m.: out of memory) 상태가 되어 그래프 마이닝이 불가능해진다. 그리고 PEGASUS는 다른 기존의 방식들에 비하여 더 많은 간선에 대하여도 연산이 가능하지만 연산 시간이 본 발명에 따른 PMV보다 훨씬 오래 걸리며, 간선이 증가함에 따라 연산 시간 초과(o.o.t.: out of time) 상태가 되어 현실적으로 그래프 마이닝에 부적합하다. 도 20에서의 연산 시간 초과는 연산 시간이 5시간을 초과하는 경우를 나타낸다.
즉, 본 발명의 일 실시예에 따른 하이브리드 분할 방식을 이용하여 그래프 마이닝을 하는 경우에는 기존의 방식들에 비하여 연산 시간도 손해보지 않으면서 큰 그래프들에 대하여도 효과적으로 연산을 수행할 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
본 발명에서 설명하는 특정 실행들은 실시예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 횡이래 전자적인 구성들, 제어시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, ““필수적인””, ““중요하게”” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 시스템
110: 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치
120: 그래프 데이터 제공 장치 130: 그래프 데이터 분석 장치
140: 연산 장치
210: 제어부 220: 통신부
230: 메모리 240: 데이터 분할 방식 선택부
250: 데이터 분할 크기 결정부 260: 데이터 분할부
270: 데이터 연산 분배부

Claims (5)

  1. 그래프 마이닝의 대상이 되는, 복수의 정점들과 복수의 간선들로 구성된 그래프 데이터를 수집하는 통신부;
    상기 그래프 데이터에 상응하는 그래프 행렬에 대한 분할 방식을 결정하는 데이터 분할 방식 결정부;
    상기 그래프 행렬에 대한 행렬-벡터 연산을 수행할 복수의 연산 장치들의 메모리 크기 및 상기 연산 장치들의 개수를 고려하여, 상기 그래프 행렬 또는 상기 정점들에 상응하는 벡터에 대한 분할 크기를 결정하는 데이터 분할 크기 결정부;
    상기 분할 방식과 상기 분할 크기에 기반하여 상기 벡터를 벡터 블록들로 분할하고, 상기 그래프 행렬을 상기 벡터 블록들에 상응하는 그래프 부행렬들로 분할하는 데이터 분할부; 및
    각각의 상기 연산 장치들에 상기 벡터 블록들과 이에 상응하는 상기 그래프 부행렬들을 분배하여 행렬-벡터 연산을 처리하는 데이터 연산 분배부
    를 포함하는 것을 특징으로 하는, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치.
  2. 청구항 1에 있어서,
    상기 데이터 분할부는
    상기 분할 방식과 상기 분할 크기에 기반하여 상기 행렬-벡터 연산들에 따른 결과 벡터를 결과 벡터 블록들로 분할하고,
    상기 데이터 연산 분배부는
    상기 결과 벡터가 기설정된 오차 이내로 수렴할 때까지, 각각의 상기 연산 장치들에 이미 분배된 상기 그래프 부행렬들에 상응하는 상기 결과 벡터 블록들을 분배하여 행렬-벡터 연산을 반복하여 처리하는 것을 특징으로 하는, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치.
  3. 청구항 2에 있어서,
    상기 데이터 분할부는
    상기 분할 방식이 종 분할 방식인 경우, 상기 그래프 행렬을 상기 분할 크기에 따라 서로 동일한 크기의 그래프 행렬 블록들로 격자로 분할하고, 종 방향으로 인접한 상기 그래프 행렬 블록들을 서로 종 방향으로 결합하여 그래프 부행렬들을 구성하고;
    상기 분할 방식이 횡 분할 방식인 경우, 상기 그래프 행렬을 상기 분할 크기에 따라 서로 동일한 크기의 그래프 행렬 블록들로 격자로 분할하고, 횡 방향으로 인접한 상기 그래프 행렬 블록들을 서로 횡 방향으로 결합하여 그래프 부행렬들을 구성하는 것을 특징으로 하는, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치.
  4. 청구항 3에 있어서,
    상기 데이터 분할부는
    상기 분할 방식이 선택적 분할 방식인 경우, 상기 그래프 행렬에 대하여 상기 종 분할 방식에 따른 입출력 비용과 상기 횡 분할 방식에 따른 입출력 비용을 비교하여 더 적은 입출력 비용을 갖는 방식을 선택하여 이용하는 것을 특징으로 하는, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치.
  5. 청구항 2에 있어서,
    상기 데이터 분할부는
    상기 분할 방식이 하이브리드 분할 방식인 경우, 상기 그래프 행렬을 상기 분할 크기에 따라 서로 동일한 크기의 그래프 행렬 블록들로 격자로 분할하고, 상기 그래프 행렬의 원소 분포를 고려하여 각각의 상기 그래프 행렬 블록들을 희소 열들에 상응하는 희소 부행렬과 밀집 열들에 상응하는 밀집 부행렬로 분할하고, 종 방향으로 인접한 희소 부행렬들을 종 방향으로 결합하고, 횡 방향으로 인접한 밀집 부행렬들을 횡 방향으로 결합하여 그래프 부행렬들을 구성하는 것을 특징으로 하는, 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 장치.
KR1020180037373A 2018-03-30 2018-03-30 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법 및 장치 KR101990735B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180037373A KR101990735B1 (ko) 2018-03-30 2018-03-30 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180037373A KR101990735B1 (ko) 2018-03-30 2018-03-30 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101990735B1 true KR101990735B1 (ko) 2019-06-18

Family

ID=67103128

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180037373A KR101990735B1 (ko) 2018-03-30 2018-03-30 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101990735B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210116356A (ko) * 2020-03-13 2021-09-27 성재모 매트릭스 연산 방법 및 그 장치
CN114511579A (zh) * 2022-01-26 2022-05-17 上海伯镭智能科技有限公司 一种多矿车协同数据共享方法及装置
CN115221101A (zh) * 2021-04-16 2022-10-21 中科寒武纪科技股份有限公司 用于优化片上系统的矩阵乘操作的方法和相关产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070089389A (ko) * 2006-02-28 2007-08-31 민순규 동식물성 부산물의 자원화 처리 시스템 및 처리 방법
KR101441035B1 (ko) * 2012-09-20 2014-11-03 (주)프람트테크놀로지 개선된 하이퍼 큐브 인데스 구축방법을 포함한 하이퍼 큐브를 이용한 추론 검색 방법
KR20170001171A (ko) 2015-06-25 2017-01-04 경희대학교 산학협력단 소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법
JP2017117449A (ja) * 2015-12-24 2017-06-29 インテル コーポレイション ベクトル推定に基づくグラフ分割を伴う、コンピューティング装置のデータフロープログラミング
KR20170089389A (ko) * 2016-01-26 2017-08-03 한양대학교 산학협력단 단일 머신 기반의 대용량 희소행렬 곱셈을 위한 메모리 할당 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070089389A (ko) * 2006-02-28 2007-08-31 민순규 동식물성 부산물의 자원화 처리 시스템 및 처리 방법
KR101441035B1 (ko) * 2012-09-20 2014-11-03 (주)프람트테크놀로지 개선된 하이퍼 큐브 인데스 구축방법을 포함한 하이퍼 큐브를 이용한 추론 검색 방법
KR20170001171A (ko) 2015-06-25 2017-01-04 경희대학교 산학협력단 소셜 네트워크 분석을 위한 그래프 압축 수행장치 및 방법
JP2017117449A (ja) * 2015-12-24 2017-06-29 インテル コーポレイション ベクトル推定に基づくグラフ分割を伴う、コンピューティング装置のデータフロープログラミング
KR20170089389A (ko) * 2016-01-26 2017-08-03 한양대학교 산학협력단 단일 머신 기반의 대용량 희소행렬 곱셈을 위한 메모리 할당 장치 및 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210116356A (ko) * 2020-03-13 2021-09-27 성재모 매트릭스 연산 방법 및 그 장치
KR102512704B1 (ko) * 2020-03-13 2023-03-21 성재모 매트릭스 연산 방법 및 그 장치
CN115221101A (zh) * 2021-04-16 2022-10-21 中科寒武纪科技股份有限公司 用于优化片上系统的矩阵乘操作的方法和相关产品
CN115221101B (zh) * 2021-04-16 2023-12-19 中科寒武纪科技股份有限公司 用于优化片上系统的矩阵乘操作的方法和相关产品
CN114511579A (zh) * 2022-01-26 2022-05-17 上海伯镭智能科技有限公司 一种多矿车协同数据共享方法及装置
CN114511579B (zh) * 2022-01-26 2024-02-02 上海伯镭智能科技有限公司 一种多矿车协同数据共享方法及装置

Similar Documents

Publication Publication Date Title
KR101990735B1 (ko) 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법 및 장치
US20170169326A1 (en) Systems and methods for a multi-core optimized recurrent neural network
CN108170639B (zh) 基于分布式环境的张量cp分解实现方法
Ou et al. Fast and parallel mapping algorithms for irregular problems
Daas et al. Parallel algorithms for tensor train arithmetic
CN114035936B (zh) 一种基于人工智能的多维并行处理方法、系统、设备和可读存储介质
US10922606B2 (en) Multi-directional reduction in large scale deep-learning
WO2017118335A1 (zh) 一种映射方法和设备
JPWO2019082859A1 (ja) 推論装置、畳み込み演算実行方法及びプログラム
US6031979A (en) Circuit partitioning apparatus for executing parallel circuit simulation and method therefor
KR101361080B1 (ko) 행렬간 연산 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
CN117786412A (zh) 大型语言模型的弹性训练方法、集群系统、产品及介质
Kuhlemann et al. Improving the communication pattern in matrix-vector operations for large scale-free graphs by disaggregation
CN112200310A (zh) 智能处理器、数据处理方法及存储介质
CN116366572A (zh) 一种面向spn小颗粒的集中式时隙分配方法和装置
KR102494565B1 (ko) 콘볼루션 신경망의 하드웨어 구조 최적화 방법
Liu et al. Encoding and decoding algorithms for arbitrary dimensional Hilbert order
Nguyen et al. Optimize coding and node selection for coded distributed computing over wireless edge networks
Jiang et al. Prarch: Pattern-based reconfigurable architecture for deep neural network acceleration
Faigle et al. Greedy oriented flows
Tashev et al. Computer simulations of a modified MiMa-algorithm for a crossbar packet switch
Mrazek et al. Automatic design of arbitrary-size approximate sorting networks with error guarantee
US20210089693A1 (en) Optimization techniques for quantum computing device simulation
Sergiyenko et al. Genetic Programming of Discrete Cosine Transform Processors
CN111984746B (zh) 一种基于网格地图生成仿真地图的方法和装置

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant