KR102063123B1 - 의존성 그래프를 이용한 데이터 처리 시스템 및 방법 - Google Patents

의존성 그래프를 이용한 데이터 처리 시스템 및 방법 Download PDF

Info

Publication number
KR102063123B1
KR102063123B1 KR1020180058478A KR20180058478A KR102063123B1 KR 102063123 B1 KR102063123 B1 KR 102063123B1 KR 1020180058478 A KR1020180058478 A KR 1020180058478A KR 20180058478 A KR20180058478 A KR 20180058478A KR 102063123 B1 KR102063123 B1 KR 102063123B1
Authority
KR
South Korea
Prior art keywords
window
dependency graph
final
unit
final operation
Prior art date
Application number
KR1020180058478A
Other languages
English (en)
Other versions
KR20190140495A (ko
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 KR1020180058478A priority Critical patent/KR102063123B1/ko
Publication of KR20190140495A publication Critical patent/KR20190140495A/ko
Application granted granted Critical
Publication of KR102063123B1 publication Critical patent/KR102063123B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Processing (AREA)

Abstract

의존성 그래프를 이용한 데이터 처리 시스템은 연산 수행이 필요한 데이터를 입력하는 입력부, 상기 입력부에 입력된 입력 데이터를 특정 구간으로 나눈 데이터 그룹인 윈도우를 생성하는 윈도우 생성부, 상기 윈도우를 특정 크기의 데이터로 파편화 하여 파편을 생성하되 먼저 생성된 파편과 중복되는 파편은 먼저 생성된 파편에 통합하고, 파편별로 연산을 하는 부분 연산을 수행하는 부분 연산부, 상기 부분 연산의 결과를 저장하고, 상기 파편과 상기 윈도우 간의 의존성 그래프를 생성하여 저장하는 의존성 그래프 관리부, 상기 의존성 그래프 관리부에 저장된 상기 의존성 그래프 및 상기 부분 연산의 결과를 이용하여 상기 윈도우의 최종 연산을 수행하는 최종 연산부 및 상기 윈도우의 최종 연산 결과를 외부로 출력하는 출력부를 포함한다.

Description

의존성 그래프를 이용한 데이터 처리 시스템 및 방법{DATA PROCESSING SYSTEM WITH DEPENDENCY GRAPH AND METHOD USING THEREOF}
본 발명은 의존성 그래프를 이용한 데이터 처리 시스템 및 방법에 관한 것이다. 보다 상세하게는 데이터의 연산을 처리함에 있어서 연산간의 의존 관계를 이용하여 기존에 수행된 연산의 재수행을 생략하거나, 효율적으로 재사용하고 이를 통해 데이터 처리량을 효과적으로 감소시키는 의존성 그래프를 이용한 데이터 처리 시스템 및 방법에 관한 것이다.
일반적으로 연산을 필요로 하는 데이터를 처리하는 시스템은 입력된 데이터의 연산을 수행하여 그 결과를 출력한다. 이러한 데이터를 처리하는 시스템에 있어서, 데이터의 연산 시간은 중요한 성능지표이다. 특히, 최근에는 빅데이터를 이용한 대용량 데이터의 처리가 이슈화되면서 연산 시간의 단축은 매우 중요한 요소로 여겨지고 있다.
데이터의 연산 시간을 단축시키기 위하여 연산 우선 순위를 이용하여 연산을 다중 연산기에 분배하는 방법, 연산 엔진을 분리하여 연산을 효과적으로 스케줄링 하는 방법 등이 연구되고 있으나, 단순히 연산을 효율적으로 분배하는 것에 집중되어 있어 단축 시킬 수 있는 연산 시간에 한계가 있으며, 불필요한 연산을 수행하고, 기존에 수행된 연산을 재사용하기 어려운 문제점이 있다.
한국공개특허공보 제10-2014-0018947호(2014.02.13)
이에 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로, 본 발명의 목적은 데이터의 연산량을 효율적으로 감소시켜 데이터 처리의 효율성을 높이며, 이로 인해 연산 요청에 대한 응답시간을 단축시키는 의존성 그래프를 이용한 데이터 처리 시스템을 제공하는 것이다.
또한 본 발명의 다른 목적은 데이터의 연산량을 효율적으로 감소시켜 데이터 처리의 효율성을 높이며, 이로 인해 연산 요청에 대한 응답시간을 단축시키는 의존성 그래프를 이용한 데이터 처리 방법을 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 의존성 그래프를 이용한 데이터 처리 시스템은 연산 수행이 필요한 데이터를 입력하는 입력부, 상기 입력부에 입력된 입력 데이터를 특정 구간으로 나눈 데이터 그룹인 윈도우를 생성하는 윈도우 생성부, 상기 윈도우를 특정 크기의 데이터로 하여 파편을 생성하되 먼저 생성된 파편과 중복되는 파편은 먼저 생성된 파편에 통합하고, 파편별로 연산을 하는 부분 연산을 수행하는 부분 연산부, 상기 부분 연산의 결과를 저장하고, 상기 파편과 상기 윈도우 간의 의존성 그래프를 생성하여 저장하는 의존성 그래프 관리부, 상기 의존성 그래프 관리부에 저장된 상기 의존성 그래프 및 상기 부분 연산의 결과를 이용하여 상기 윈도우의 최종 연산을 수행하는 최종 연산부 및 상기 윈도우의 최종 연산 결과를 외부로 출력하는 출력부를 포함한다.
본 발명의 일 실시예에 있어서, 상기 윈도우는 복수 개이고, 상기 윈도우들은 제1 특정 구간의 제1 윈도우 및 상기 제1 특정 구간과 연속되는 제2 특정 구간의 제2 윈도우를 포함하며, 상기 제1 특정 구간과 상기 제2 특정 구간은 부분적으로 중첩될 수 있다.
본 발명의 일 실시예에 있어서, 상기 부분 연산부가 상기 윈도우를 파편화하는 파편의 크기는 상기 제1 윈도우와 상기 제2 윈도우가 부분적으로 중첩되는 구간과 같은 크기일 수 있다.
본 발명의 일 실시예에 있어서, 상기 의존성 그래프는 상기 파편과 상기 제1 윈도우 및 상기 제2 윈도우와의 의존성을 나타낼 수 있다.
본 발명의 일 실시예에 있어서, 상기 최종 연산부는 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 관리부로 전송하는 최종 연산 피드백부를 포함하고, 상기 의존성 그래프 관리부는 상기 최종 연산 피드백부에서 전송 받은 상기 제1 윈도우의 최종 연산 결과를 최종 연산 피드백 저장부에 저장하고 이를 상기 의존성 그래프에 업데이트하는 의존성 그래프 업데이트부를 포함하며, 상기 최종 연산부는 상기 의존성 그래프 관리부에 저장된 상기 업데이트된 의존성 그래프 및 상기 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행할 수 있다.
본 발명의 일 실시예에 있어서, 상기 최종 연산부는 복수개이고, 상기 최종 연산부들은 제1 최종 연산부 및 제2 최종 연산부를 포함하며, 상기 제1 최종 연산부는 상기 제1 윈도우의 최종 연산을 수행하며 상기 제1 윈도우의 최종 연산 피드백부인 제1 최종 연산 피드백부를 포함하고, 상기 의존성 그래프 업데이트부는 상기 제1 최종 연산 피드백부에서 전송 받은 상기 제1 윈도우의 최종 연산 결과를 최종 연산 피드백 저장부에 저장하고 이를 상기 의존성 그래프에 업데이트하며, 상기 제2 최종 연산부는 상기 의존성 그래프 관리부에 저장된 상기 제1 윈도우의 최종 연산 결과가 반영된 상기 업데이트된 의존성 그래프 및 상기 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행할 수 있다.
본 발명의 일 실시예에 있어서, 상기 출력부는 복수개이고, 상기 출력부들은 제1 출력부 및 제2 출력부를 포함하며, 상기 제1 출력부는 상기 제1 최종 연산부의 상기 제1 윈도우의 최종 연산 결과인 제1 최종 연산 결과를 외부로 출력하고, 상기 제2 출력부는 상기 제2 최종 연산부의 상기 제2 윈도우의 최종 연산 결과인 제2 최종 연산 결과를 외부로 출력할 수 있다.
본 발명의 일 실시예에 있어서, 상기 업데이트된 의존성 그래프는 상기 제1 윈도우의 최종 연산과 상기 제2 윈도우의 최종 연산간의 의존성을 나타낼 수 있다.
본 발명의 일 실시예에 있어서, 상기 입력 데이터는 스트림, 배치, 그래프 또는 화상 데이터일 수 있다.
상기한 본 발명의 목적을 실현하기 위한 의존성 그래프를 이용한 데이터 처리 방법은 의존성 그래프를 이용한 데이터 처리 시스템에 있어서, 입력부가 연산 수행이 필요한 데이터를 입력 데이터로 입력하는 단계, 윈도우 생성부가 상기 입력 데이터를 특정 구간으로 나눈 데이터 그룹인 윈도우를 생성하는 단계, 부분 연산부가 상기 윈도우를 특정 크기의 데이터로 파편화 하여 파편을 생성하되 먼저 생성된 파편과 중복되는 파편은 먼저 생성된 파편에 통합하고, 파편별로 연산을 하는 부분 연산을 수행하는 단계, 의존성 그래프 관리부가 상기 부분 연산의 결과를 저장하고, 상기 파편과 상기 윈도우 간의 의존성 그래프를 생성하여 저장하는 단계, 최종 연산부가 의존성 그래프 관리부에 저장된 상기 의존성 그래프 및 상기 부분 연산의 결과를 이용하여 상기 윈도우의 최종 연산을 수행하는 단계 및 출력부가 상기 윈도우의 최종 연산 결과를 외부로 출력하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 윈도우는 복수개이고, 상기 윈도우들은 제1 특정 구간의 제1 윈도우 및 상기 제1 특정 구간과 연속되는 제2 특정 구간의 제2 윈도우를 포함하며, 상기 제1 특정 구간과 상기 제2 특정 구간은 부분적으로 중첩될 수 있다.
본 발명의 일 실시예에 있어서, 상기 부분 연산부가 상기 윈도우를 파편화하는 파편의 크기는 상기 제1 윈도우와 상기 제2 윈도우가 부분적으로 중첩되는 구간과 같은 크기인 일 수 있다.
본 발명의 일 실시예에 있어서, 상기 의존성 그래프는 상기 파편과 상기 제1 윈도우 및 상기 제2 윈도우와의 의존성을 나타낼 수 있다.
본 발명의 일 실시예에 있어서, 의존성 그래프를 이용한 데이터 처리 방법은 최종 연산 피드백부가 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 관리부로 전송하는 단계, 의존성 그래프 업데이트부가 상기 제1 윈도우의 최종 연산 결과를 전송 받아 최종 연산 피드백 저장부에 저장하고, 이를 상기 의존성 그래프에 업데이트하는 단계 및 최종 연산부가 상기 의존성 그래프 관리부에 저장된 상기 업데이트된 의존성 그래프 및 상기 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 의존성 그래프 관리부로 전송하는 단계의 상기 최종 연산 피드백부는 제1 최종 연산 피드백부이고, 상기 제2 윈도우의 최종 연산을 수행하는 단계의 상기 최종 연산부는 제2 최종 연산부 일 수 있다.
본 발명의 일 실시예에 있어서, 상기 출력부가 상기 최종 연산 결과를 외부로 출력하는 단계는 제1 출력부가 제1 최종 연산부의 상기 제1 윈도우의 최종 연산 결과인 제1 최종 연산 결과를 외부로 출력하는 단계 및 제2 출력부가 제2 최종 연산부의 상기 제2 윈도우의 최종 연산 결과인 제2 최종 연산 결과를 외부로 출력하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 업데이트된 의존성 그래프는 상기 제1 윈도우의 최종 연산과 상기 제2 윈도우의 최종 연산간의 의존성을 나타낼 수 있다.
본 발명의 일 실시예에 있어서, 상기 입력 데이터는 스트림, 배치, 그래프 또는 화상 데이터일 수 있다.
본 발명의 실시예들에 따르면, 의존성 그래프를 이용한 데이터 처리 시스템 및 방법은 데이터를 특정 구간으로 나누어 데이터 그룹인 윈도우를 생성하고, 생성된 윈도우를 파편화하여 부분 연산한 후 이에 대한 의존성 그래프를 생성하여 중복되는 부분 연산을 생략하거나 그 결과를 재사용하여 윈도우의 최종 연산을 수행한다. 따라서, 데이터의 연산 간 의존성 관계를 파악하여 불필요한 연산을 수행하지 않아 데이터의 총 연산량을 효율적으로 감소시키며, 연산 요청에 대한 응답시간을 효과적으로 단축시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템을 나타내는 구성도이다.
도 2는 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템의 의존성 그래프 관리부를 나타내는 구성도이다.
도 3은 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템의 최종 연산부를 나타내는 구성도이다.
도 4는 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템의 구조를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템의 구조를 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법을 나타내는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법의 제1 윈도우의 최종 연산을 수행하는 단계를 나타내는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법의 윈도우의 최종 연산을 수행하는 단계를 나타내는 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법의 최종 연산 결과를 외부로 출력하는 단계를 나타내는 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 실시예들을 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.
상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 또는 "이루어진다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템을 나타내는 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템은 입력부(100), 윈도우 생성부(200), 부분 연산부(300), 의존성 그래프 관리부(400), 최종 연산부(500) 및 출력부(600)를 포함한다.
상기 입력부(100)는 연산 수행이 필요한 데이터를 입력할 수 있다. 상기 입력부(100)에 입력된 데이터인 입력 데이터는 스트림 형태의 데이터일 수 있다. 예를 들면, 상기 입력 데이터는 시간 연속성을 갖는 스트림 형태의 데이터일 수 있다. 상기 입력 데이터는 명령어 모음 또는 배치 파일일 수 있다. 상기 입력 데이터는 화상 데이터일 수 있다. 예를 들면, 그래프 데이터 또는 화상 데이터 등일 수 있다.
상기 윈도우 생성부(200)는 상기 입력부(100)에 입력된 입력 데이터를 특정 구간으로 나눈 데이터 그룹인 윈도우를 생성할 수 있다. 예를 들면, 상기 입력 데이터는 시간 연속성을 갖는 스트림 형태의 데이터이고, 상기 특정 구간은 특정 시간 간격이며, 상기 윈도우는 상기 입력 데이터를 특정 시간 간격으로 나누어 만든 데이터의 집합일 수 있다.
상기 윈도우 생성부(200)는 상기 윈도우를 처리하기 위한 인터벌 시간을 포함하여 윈도우를 생성할 수 있다. 예를 들면, 상기 윈도우는 복수개이고, 상기 윈도우들은 제1 윈도우 및 제2 윈도우를 포함하며, 상기 제1 윈도우는 제1 시간부터 제2 시간까지 연속되는 데이터의 집합이고, 상기 인터벌은 상기 제2 시간부터 제3 시간까지의 시간이며, 상기 제2 윈도우는 상기 제2 시간부터 제4 시간까지 연속되는 데이터의 집합일 수 있다.
상기 윈도우는 복수개일 수 있다. 상기 윈도우들은 제1 특정 구간의 제1 윈도우 및 상기 제1 특정 구간과 연속되는 제2 특정 구간의 제2 윈도우를 포함할 수 있다. 상기 제1 윈도우 및 상기 제2 윈도우의 상기 제1 특정 구간과 상기 제2 특정 구간은 부분적으로 중첩될 수 있다. 예를 들면, 상기 입력 데이터는 시간 연속성을 갖는 스트림 형태의 데이터이고, 상기 제1 윈도우는 제1 시점부터 제3 시점까지 연속되는 데이터의 집합이고, 상기 제2 윈도우는 제1 시점과 제 3시점 사이에 있는 제2 시점부터 제4 시점까지 연속되는 데이터의 집합일 수 있다. 예를 들면, 상기 입력 데이터는 화상 데이터이고, 상기 제1 윈도우는 제1 좌표부터 연속되는 제3 좌표까지의 픽셀 데이터이며, 상기 제2 윈도우는 제1 좌표와 제3 좌표의 사이에 존재하는 제2 좌표부터 연속되는 제4 좌표까지의 픽셀 데이터일 수 있다. 본 발명은 다양한 형태의 입력 데이터에 대하여 상기 제1 윈도우 및 상기 제2 윈도우를 구성할 수 있다. 상기 복수개의 윈도우들은 생성 순서대로 넘버링될 수 있다.
상기 부분 연산부(300)는 상기 윈도우를 특정 크기의 데이터로 파편화 하여 파편을 생성하되 먼저 생성된 파편과 중복되는 파편은 먼저 생성된 파편에 통합하고, 파편별로 연산을 하는 부분 연산을 수행할 수 있다. 상기 부분 연산부가 상기 윈도우를 파편화하는 파편의 크기는 상기 제1 윈도우와 상기 제2 윈도우가 부분적으로 중첩되는 구간과 같은 크기일 수 있다. 예를 들면, 상기 제1 윈도우는 1구간부터 10구간 까지의 연산 데이터이며, 상기 제2 윈도우는 6구간부터 15구간 까지의 연산 데이터이고, 상기 제1 윈도우의 1구간부터 5구간까지의 연산 데이터의 집합은 제1 파편이고, 상기 제1 윈도우의 6구간부터 10구간까지의 연산 데이터의 집합은 제2 파편이고, 상기 제2 윈도우의 6구간부터 10구간까지의 연산 데이터의 집합은 상기 제1 윈도우의 제2 파편과 중첩되므로 제2 파편으로 통합되고, 상기 제2 윈도우의 11구간부터 15구간까지의 연산 데이터의 집합은 제3 파편일 수 있다.
상기 부분 연산부(300)가 상기 윈도우를 파편화하는 파편의 크기는 상기 윈도우의 최소 연산 단위와 같은 크기일 수 있다. 상기 부분 연산부(300)가 상기 윈도우를 파편화하는 파편의 크기는 가변적일 수 있다. 예를 들면, 상기 부분 연산부(300)는 상기 제1 윈도우를 최소 연산 단위로 파편화 하고, 상기 제2 윈도우를 상기 제1 윈도우와 중복되는 구간의 크기로 파편화 할 수 있다. 이때, 상기 제2 윈도우의 파편의 크기는 상기 제1 윈도우의 파편들의 부분 집합과 같은 크기일 수 있다.
상기 의존성 그래프 관리부(400)는 상기 부분 연산의 결과를 저장하고, 상기 파편과 상기 윈도우 간의 의존성 그래프를 생성하여 저장할 수 있다. 상기 의존성 그래프는 상기 파편과 상기 제1 윈도우 및 상기 제2 윈도우와의 의존성을 나타낼 수 있다. 예를 들면, 상기 의존성 그래프는 상기 제1 파편 및 제2 파편이 상기 제1 윈도우와 의존성이 있음을 나타낼 수 있다. 예를 들면, 상기 의존성 그래프는 상기 제2 파편 및 제3 파편이 상기 제2 윈도우와 의존성이 있음을 나타낼 수 있다. 예를 들면, 상기 의존성 그래프는 상기 제2 파편이 상기 제1 윈도우 및 상기 제2 윈도우와 의존성이 있음을 나타낼 수 있다. 또한, 이를 이용하여 상기 제1 윈도우와 상기 제2 윈도우가 의존성을 가짐을 나타낼 수 있다.
상기 의존성 그래프 관리부(400)는 상기 의존성 그래프를 주기적으로 초기화하고 새로 생성할 수 있다. 상기 의존성 그래프는 상기 주기동안 반복하여 업데이트 될 수 있다. 상기 의존성 그래프의 초기화 및 생성 주기는 상기 윈도우의 특정 시간보다 길 수 있다. 따라서, 상기 의존성 그래프를 생성하는 최소 간격은 상기 윈도우의 간격과 동일하거나 클 수 있다. 상기 의존성 그래프는 사용자에 의해, 특정 조건에 의해 또는 특정 시간 간격으로 초기화되어 상기 의존성 그래프의 복잡도를 낮추면서도 다양한 윈도우를 포함하여 의존성 그래프를 생성하도록 할 수 있다.
상기 최종 연산부(500)는 상기 의존성 그래프 관리부(400)에 저장된 상기 의존성 그래프 및 상기 파편들의 부분 연산의 결과를 이용하여 상기 윈도우의 최종 연산을 수행할 수 있다. 예를 들면, 상기 의존성 그래프에 따라서 상기 제1 파편 및 상기 제2 파편은 상기 제1 윈도우와 연관성을 가지며, 상기 제1 파편 및 상기 제2 파편의 부분 연산의 결과는 상기 제1 윈도우의 최종 연산에 사용될 수 있다. 예를 들면, 상기 의존성 그래프에 따라서 상기 제2 파편 및 상기 제3 파편은 상기 제1 윈도우와 연관성을 가지며, 상기 제2 파편 및 상기 제3 파편의 부분 연산의 결과는 상기 제2 윈도우의 최종 연산에 사용될 수 있다.
상기 출력부(600)는 상기 윈도우의 최종 연산 결과를 외부로 출력할 수 있다. 예를 들면, 상기 출력부(600)는 상기 제1 윈도우의 최종 연산 결과를 외부로 출력할 수 있다. 예를 들면, 상기 출력부(600)는 상기 제2 윈도우의 최종 연산 결과를 외부로 출력할 수 있다. 상기 출력부(600)가 출력하는 윈도우의 순서는 상기 윈도우 생성부에서 생성된 윈도우의 생성 순서일 수 있다. 또는, 상기 출력부(600)가 출력하는 윈도우의 순서는 상기 최종 연산부에서 연산이 완료된 순서일 수 있다. 또는, 상기 출력부(600)가 출력하는 윈도우의 순서는 사용자에 의해 선택된 순서일 수 있다. 상기 출력부(600)는 출력하는 윈도우의 넘버를 함께 출력할 수 있다. 그러나, 본 발명은 이에 한정되는 것은 아니고, 다양한 방법으로 상기 윈도우의 최종 연산 결과를 출력할 수 있다.
도 2는 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템의 의존성 그래프 관리부를 나타내는 구성도이다. 도 3은 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템의 최종 연산부를 나타내는 구성도이다.
본 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템은 의존성 그래프 생성부(410), 부분 연산 저장부(420), 의존성 그래프 업데이트부(430), 최종 연산 피드백 저장부(440), 최종 연산 계산부(510) 및 최종 연산 피드백부(520)를 제외하고는 도 1의 의존성 그래프를 이용한 데이터 처리 시스템과 실질적으로 동일하다. 따라서, 도 1의 의존성 그래프를 이용한 데이터 처리 시스템과 동일한 구성요소는 동일한 도면 부호를 부여하고, 반복되는 설명은 생략한다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템의 의존성 그래프 관리부(400)는 의존성 그래프 생성부(410), 부분 연산 저장부(420), 의존성 그래프 업데이트부(430) 및 최종 연산 피드백 저장부(440)를 포함할 수 있다.
상기 의존성 그래프 생성부(410)는 상기 부분 연산부(300)에서 수행한 부분 연산의 결과로부터 의존성 그래프를 생성할 수 있다. 상기 의존성 그래프 생성부(410)가 생성하는 상기 의존성 그래프는 상기 도 1의 의존성 그래프와 실질적으로 동일하므로 반복되는 설명은 생략한다.
상기 부분 연산 저장부(420)는 상기 부분 연산부(300)에서 수행한 부분 연산을 저장할 수 있다. 상기 부분 연산 저장부(420)에 저장된 부분 연산은 상기 최종 연산부(500)로 로드되어 상기 최종 연산부(500)에서 사용될 수 있다. 예를 들면, 상기 부분 연산 저장부(420)는 상기 제1 파편, 상기 제2 파편 및 상기 제3 파편의 부분 연산 결과를 저장할 수 있다. 상기 제1 파편, 상기 제2 파편 및 상기 제3 파편의 부분 연산 결과는 상기 최종 연산부(500)에서 사용될 수 있다.
상기 의존성 그래프 업데이트부(430)는 상기 최종 연산 피드백부(520)에서 전송 받은 상기 윈도우의 최종 연산 결과를 최종 연산 피드백 저장부에 저장하고 이를 상기 의존성 그래프에 업데이트할 수 있다. 예를 들면, 상기 최종 연산부(500)는 제1 윈도우의 최종 연산을 수행하고, 상기 최종 연산 피드백부(520)는 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 업데이트부(430) 및 상기 최종 연산 피드백 저장부(440)에 전송하며, 상기 최종 연산 피드백 저장부(440)는 상기 제1 윈도우의 최종 연산 결과를 저장하고, 상기 의존성 그래프 업데이트부(430)는 상기 제1 윈도우의 최종 연산 결과로부터 상기 의존성 그래프를 업데이트하며, 상기 최종 연산부(500)는 상기 제2 윈도우의 최종 연산 시 상기 업데이트 된 의존성 그래프를 참조할 수 있다. 상기 업데이트된 의존성 그래프는 상기 제1 윈도우의 최종 연산과 상기 제2 윈도우의 최종 연산간의 의존성을 나타낼 수 있다.
상기 의존성 그래프 업데이트부(430)는 상기 최종 연산 피드백 저장부(440)를 포함할 수 있다. 상기 최종 연산 피드백 저장부(440)는 상기 최종 연산 피드백부(520)로부터 전송 받은 최종 연산 결과를 저장할 수 있다. 상기 저장된 최종 연산 결과는 상기 최종 연산부(500)가 다음 윈도우의 최종 연산 수행 시 이용될 수 있다. 상기 최종 연산 피드백 저장부(440)는 상기 부분 연산 저장부(420)와 함께 구현될 수 있다. 예를 들면, 하나의 메모리에 상기 부분 연산 저장부(420) 및 상기 최종 연산 피드백 저장부(440)가 함께 구현될 수 있다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템의 최종 연산부(500)는 최종 연산 계산부(510) 및 최종 연산 피드백부(520)를 포함할 수 있다.
상기 최종 연산 계산부(510)는 상기 의존성 그래프 관리부에 저장된 상기 의존성 그래프 및 상기 부분 연산의 결과를 이용하여 상기 윈도우의 최종 연산을 수행할 수 있다. 상기 최종 연산 계산부(510)는 상기 도 1의 최종 연산부와 실질적으로 동일하므로 반복되는 설명은 생략한다.
상기 최종 연산 피드백부(520)는 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 관리부(400)로 전송할 수 있다. 상기 최종 연산 피드백부(520)는 상기 최종 연산 계산부에서 수행한 상기 윈도우의 최종 연산 결과를 상기 의존성 그래프 관리부(400)의 상기 의존성 그래프 업데이트부(430)로 전송할 수 있다. 예를 들면, 상기 최종 연산부(500)는 제1 윈도우의 최종 연산을 수행하고, 상기 최종 연산 피드백부(520)는 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 업데이트부(430) 및 상기 최종 연산 피드백 저장부(440)에 전송하며, 상기 최종 연산 피드백 저장부(440)는 상기 제1 윈도우의 최종 연산 결과를 저장하고, 상기 의존성 그래프 업데이트부(430)는 상기 제1 윈도우의 최종 연산 결과로부터 상기 의존성 그래프를 업데이트하며, 상기 최종 연산부(500)는 상기 제2 윈도우의 최종 연산 시 상기 업데이트 된 의존성 그래프를 참조할 수 있다.
상기 최종 연산 계산부(510)는 상기 의존성 그래프 관리부(400)에 저장된 상기 업데이트된 의존성 그래프를 참조하고 상기 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행할 수 있다. 그 외의 기능은 상기 도 1에서 설명한 상기 최종 연산부(500)와 실질적으로 동일하므로 반복되는 설명은 생략한다.
도 4는 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템의 구조를 나타내는 도면이다. 도 5는 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템의 구조를 나타내는 도면이다.
본 실시예에 따른 의존성 그래프를 이용한 데이터 처리 시스템은 도 1 내지 도 3의 의존성 그래프를 이용한 데이터 처리 시스템의 구조과 실질적으로 동일하다. 따라서, 도 1 내지 도 3의 의존성 그래프를 이용한 데이터 처리 시스템과 동일한 구성요소는 동일한 도면 부호를 부여하고, 반복되는 설명은 생략한다.
도 4 내지 도 5를 참조하면, 상기 최종 연산부(500) 및 상기 출력부(600)는 복수개일 수 있다. 이때, 상기 의존성 그래프 관리부(400)는 공유될 수 있다. 따라서, 하나의 경로로 입력되는 입력 데이터에 대한 복수개의 데이터 처리 경로 및 복수개의 출력을 가질 수 있다.
상기 최종 연산부(500)는 복수개일 수 있다. 상기 최종 연산부(500)들은 제1 최종 연산을 수행하는 제1 최종 연산부(501) 및 제2 최종 연산을 수행하는 제2 최종 연산부(502)를 포함할 수 있다. 상기 제1 최종 연산부(501)는 상기 제1 윈도우의 최종 연산을 수행하며 상기 제1 윈도우의 최종 연산 피드백부인 제1 최종 연산 피드백부를 포함할 수 있다. 상기 의존성 그래프 업데이트부는 상기 제1 최종 연산 피드백부에서 전송 받은 상기 제1 윈도우의 최종 연산 결과를 최종 연산 피드백 저장부에 저장하고 이를 상기 의존성 그래프에 업데이트할 수 있다. 상기 제2 최종 연산부(502)는 상기 의존성 그래프 관리부에 저장된 상기 제1 윈도우의 최종 연산 결과가 반영된 상기 업데이트된 의존성 그래프 및 상기 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행할 수 있다.
예를 들면, 상기 제1 최종 연산부(501)는 상기 제1 파편 및 상기 제2 파편으로부터 상기 제1 윈도우의 최종 연산을 수행하며, 상기 제1 최종 연산 피드백부는 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 업데이트부에 전송할 수 있다. 상기 의존성 그래프 업데이트부는 상기 제1 윈도우의 최종 연산 결과를 최종 연산 피드백 저장부에 저장하고, 이를 상기 의존성 그래프에 업데이트하며, 상기 제2 최종 연산부(502)는 상기 제1 윈도우의 최종 연산 결과가 업데이트된 상기 업데이트된 의존성 그래프 및 그 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행한다. 이때, 상기 제1 윈도우의 최종 연산 결과를 재사용한다.
상기 제2 최종 연산부(502)는 상기 제1 윈도우의 최종 연산 결과만으로 제2 윈도우의 연산 결과를 도출할 수 없는 경우 상기 의존성 그래프에 저장된 부분 연산 결과를 추가적으로 이용하여 제2 윈도우의 최종 연산을 수행할 수 있다.
상기 출력부(600)는 복수개일 수 있다. 상기 출력부(600)들은 제1 출력부(601) 및 제2 출력부(602)를 포함할 수 있다. 상기 제1 출력부(601)는 상기 제1 윈도우의 최종 연산 결과인 제1 최종 연산 결과를 외부로 출력할 수 있다. 상기 제2 출력부(602)는 상기 제2 최종 연산부(502)의 상기 제2 윈도우의 최종 연산 결과인 제2 최종 연산 결과를 외부로 출력할 수 있다.
도 6은 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법을 나타내는 흐름도이다.
본 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법은 도 1 내지 도 5의 의존성 그래프를 이용한 데이터 처리 시스템을 사용한다. 따라서, 도 1 내지 도 5의 의존성 그래프를 이용한 데이터 처리 시스템과 동일한 구성요소는 동일한 도면 부호를 부여하고, 반복되는 설명은 생략한다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법은 입력하는 단계(S100), 윈도우를 생성하는 단계(S200), 부분 연산을 수행하는 단계(S300), 의존성 그래프를 생성하여 저장하는 단계(S400), 윈도우의 최종 연산을 수행하는 단계(S500) 및 최종 연산 결과를 외부로 출력하는 단계(S600)를 포함한다.
상기 입력하는 단계(S100)에서는 입력부(100)가 연산 수행이 필요한 데이터를 입력 데이터로 입력할 수 있다. 상기 입력 데이터는 스트림 형태의 데이터일 수 있다. 예를 들면, 상기 입력 데이터는 시간 연속성을 갖는 스트림 형태의 데이터일 수 있다. 상기 입력 데이터는 명령어 모음 또는 배치일 수 있다. 상기 입력 데이터는 화상 데이터일 수 있다. 예를 들면, 그래프 데이터 또는 화상 데이터 등일 수 있다.
상기 윈도우를 생성하는 단계(S200)에서는 윈도우 생성부(200)가 상기 입력 데이터를 특정 구간으로 나눈 데이터 그룹인 윈도우를 생성할 수 있다. 예를 들면, 상기 입력 데이터는 시간 연속성을 갖는 스트림 형태의 데이터이고, 상기 특정 구간은 특정 시간 간격이며, 상기 윈도우는 상기 입력 데이터를 특정 시간 간격으로 나누어 만든 데이터의 집합일 수 있다.
상기 윈도우는 복수개일 수 있다. 상기 윈도우들은 제1 특정 구간의 제1 윈도우 및 상기 제1 특정 구간과 연속되는 제2 특정 구간의 제2 윈도우를 포함할 수 있다. 상기 제1 윈도우 및 상기 제2 윈도우의 상기 제1 특정 구간과 상기 제2 특정 구간은 부분적으로 중첩될 수 있다. 예를 들면, 상기 입력 데이터는 시간 연속성을 갖는 스트림 형태의 데이터이고, 상기 제1 윈도우는 제1 시점부터 제3 시점까지 연속되는 데이터의 집합이고, 상기 제2 윈도우는 제1 시점과 제 3시점 사이에 있는 제2 시점부터 제4 시점까지 연속되는 데이터의 집합일 수 있다. 예를 들면, 상기 입력 데이터는 화상 데이터이고, 상기 제1 윈도우는 제1 좌표부터 연속되는 제3 좌표까지의 픽셀 데이터이며, 상기 제2 윈도우는 제1 좌표와 제3 좌표의 사이에 존재하는 제2 좌표부터 연속되는 제4 좌표까지의 픽셀 데이터일 수 있다. 본 발명은 다양한 형태의 입력 데이터에 대하여 상기 제1 윈도우 및 상기 제2 윈도우를 구성할 수 있다. 상기 복수개의 윈도우들은 생성 순서대로 넘버링될 수 있다.
상기 부분 연산을 수행하는 단계(S300)에서는 부분 연산부(300)가 상기 윈도우를 특정 크기의 데이터로 파편화 하여 파편을 생성하되 먼저 생성된 파편과 중복되는 파편은 먼저 생성된 파편에 통합하고, 파편별로 연산을 하는 부분 연산을 수행할 수 있다. 상기 부분 연산을 수행하는 단게에서 상기 부분 연산부가 상기 윈도우를 파편화하는 파편의 크기는 상기 제1 윈도우와 상기 제2 윈도우가 부분적으로 중첩되는 구간과 같은 크기일 수 있다.
예를 들면, 상기 제1 윈도우는 1구간부터 10구간 까지의 연산 데이터이며, 상기 제2 윈도우는 6구간부터 15구간 까지의 연산 데이터이고, 상기 제1 윈도우의 1구간부터 5구간까지의 연산 데이터의 집합은 제1 파편이고, 상기 제1 윈도우의 6구간부터 10구간까지의 연산 데이터의 집합은 제2 파편이고, 상기 제2 윈도우의 6구간부터 10구간까지의 연산 데이터의 집합은 상기 제1 윈도우의 제2 파편과 중첩되므로 제2 파편이고, 상기 제2 윈도우의 11구간부터 15구간까지의 연산 데이터의 집합은 제3 파편일 수 있다.
상기 윈도우의 파편의 크기는 상기 윈도우의 최소 연산 단위와 같은 크기일 수 있다. 상기 윈도우가 파편화되는 파편의 크기는 가변적일 수 있다. 예를 들면, 상기 제1 윈도우는 최소 연산 단위로 파편화되고, 상기 제2 윈도우는 상기 제1 윈도우와 중복되는 구간의 크기로 파편화될 수 있다. 이때, 상기 제2 윈도우의 파편의 크기는 상기 제1 윈도우의 파편들의 부분 집합과 같은 크기일 수 있다.
상기 의존성 그래프를 생성하여 저장하는 단계(S400)에서는 의존성 그래프 관리부(400)가 상기 부분 연산의 결과를 부분 연산 저장부(420)에 저장할 수 있다. 상기 부분 연산 저장부(420)에 저장된 부분 연산은 상기 최종 연산부(500)로 로드되어 상기 최종 연산부(500)에서 사용될 수 있다. 예를 들면, 상기 의존성 그래프를 생성하여 저장하는 단계(S400)에서는 상기 의존성 그래프 관리부(400)의 상기 부분 연산 저장부(420)가 상기 제1 파편, 상기 제2 파편 및 상기 제3 파편의 부분 연산 결과를 저장할 수 있다. 상기 제1 파편, 상기 제2 파편 및 상기 제3 파편의 부분 연산 결과는 상기 최종 연산부(500)에서 사용될 수 있다.
상기 의존성 그래프를 생성하여 저장하는 단계(S400)에서는 상기 파편과 상기 윈도우 간의 의존성 그래프를 생성하여 저장할 수 있다. 상기 의존성 그래프는 상기 파편과 상기 제1 윈도우 및 상기 제2 윈도우와의 의존성을 나타낼 수 있다. 예를 들면, 상기 의존성 그래프는 상기 제1 파편 및 제2 파편이 상기 제1 윈도우와 의존성이 있음을 나타낼 수 있다. 예를 들면, 상기 의존성 그래프는 상기 제2 파편 및 제3 파편이 상기 제2 윈도우와 의존성이 있음을 나타낼 수 있다. 예를 들면, 상기 의존성 그래프는 상기 제2 파편이 상기 제1 윈도우 및 상기 제2 윈도우와 의존성이 있음을 나타낼 수 있다. 또한, 이를 이용하여 상기 제1 윈도우와 상기 제2 윈도우가 의존성을 가짐을 나타낼 수 있다.
의존성 그래프 관리부(400)가 상기 의존성 그래프를 주기적으로 초기화하고 새로 생성할 수 있다. 예를 들면, 상기 입력 데이터는 시간 연속성을 갖는 스트림 형태의 데이터이고, 상기 윈도우의 특정 구간은 연속된 특정 시간이고, 상기 의존성 그래프의 초기화 및 생성 주기는 상기 윈도우의 특정 시간보다 길 수 있다.
상기 의존성 그래프는 상기 주기동안 반복하여 업데이트 될 수 있다. 상기 의존성 그래프의 초기화 및 생성 주기는 상기 윈도우의 특정 시간보다 길 수 있다. 따라서, 상기 의존성 그래프를 생성하는 최소 간격은 상기 윈도우의 간격과 동일하거나 클 수 있다. 상기 의존성 그래프는 사용자에 의해, 특정 조건에 의해 또는 특정 시간 간격으로 초기화되어 상기 의존성 그래프의 복잡도를 낮추면서도 다양한 윈도우를 포함하여 의존성 그래프를 생성하도록 할 수 있다.
상기 윈도우의 최종 연산을 수행하는 단계(S500)에서는 상기 최종 연산부(500)가 의존성 그래프 관리부(400)에 저장된 상기 의존성 그래프 및 상기 파편들의 부분 연산의 결과를 이용하여 상기 윈도우의 최종 연산을 수행할 수 있다. 예를 들면, 상기 의존성 그래프에 따라서 상기 제1 파편 및 상기 제2 파편은 상기 제1 윈도우와 연관성을 가지며, 상기 제1 파편 및 상기 제2 파편의 부분 연산의 결과는 상기 제1 윈도우의 최종 연산에 사용될 수 있다. 예를 들면, 상기 의존성 그래프에 따라서 상기 제2 파편 및 상기 제3 파편은 상기 제1 윈도우와 연관성을 가지며, 상기 제2 파편 및 상기 제3 파편의 부분 연산의 결과는 상기 제2 윈도우의 최종 연산에 사용될 수 있다.
상기 최종 연산 결과를 외부로 출력하는 단계(S600)에서는 상기 윈도우의 최종 연산 결과를 외부로 출력할 수 있다. 상기 출력부(600)는 복수개일 수 있다. 예를 들면, 상기 출력부(600)는 상기 제1 윈도우의 최종 연산 결과를 외부로 출력할 수 있다. 예를 들면, 상기 출력부(600)는 상기 제2 윈도우의 최종 연산 결과를 외부로 출력할 수 있다. 상기 출력부(600)가 출력하는 윈도우의 순서는 상기 윈도우 생성부에서 생성된 윈도우의 생성 순서일 수 있다. 또는, 상기 출력부(600)가 출력하는 윈도우의 순서는 상기 최종 연산부에서 연산이 완료된 순서일 수 있다. 또는, 상기 출력부(600)가 출력하는 윈도우의 순서는 사용자에 의해 선택된 순서일 수 있다. 상기 출력부(600)는 출력하는 윈도우의 넘버를 함께 출력할 수 있다. 그러나, 본 발명은 이에 한정되는 것은 아니고, 다양한 방법으로 상기 윈도우의 최종 연산 결과를 출력할 수 있다.
도 7은 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법의 제1 윈도우의 최종 연산을 수행하는 단계를 나타내는 흐름도이다.
본 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법은 제1 윈도우의 최종 연산을 수행하는 단계(S510), 제1 윈도우의 최종 연산 결과를 의존성 그래프 관리부로 전송하는 단계(S520), 의존성 그래프에 업데이트하는 단계(S530) 및 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행하는 단계(S540)를 제외하고는 도 6 내지 도 7의 의존성 그래프를 이용한 데이터 처리 방법과 실질적으로 동일하다. 따라서, 도 6의 의존성 그래프를 이용한 데이터 처리 방법과 동일한 구성요소는 동일한 도면 부호를 부여하고, 반복되는 설명은 생략한다.
도 7을 참조하면, 상기 윈도우의 최종 연산을 수행하는 단계(S500)는 제1 윈도우의 최종 연산을 수행하는 단계(S510), 제1 윈도우의 최종 연산 결과를 의존성 그래프 관리부로 전송하는 단계(S520), 의존성 그래프에 업데이트하는 단계(S530) 및 제1 윈도우의 최종 연산 결과를 재사용하여 상기 제2 윈도우의 최종 연산을 수행하는 단계(S540)를 포함할 수 있다.
상기 제1 윈도우의 최종 연산을 수행하는 단계(S510)에서는 최종 연산부(500)가 상기 제1 윈도우에 대한 최종 연산을 수행할 수 있다. 이 동작은 도 6의 윈도우의 최종 연산을 수행하는 단계(S500)에서 윈도우를 제1 윈도우로 치환한 것과 실질적으로 동일하다. 따라서, 반복되는 설명은 생략한다.
상기 제1 윈도우의 최종 연산 결과를 의존성 그래프 관리부로 전송하는 단계(S520)에서는 최종 연산부(500)가 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 관리부(400)로 전송할 수 있다. 상기 최종 연산부(500)는 최종 연산 피드백부(520)를 포함할 수 있다. 상기 최종 연산 피드백부(520)는 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 관리부(400)로 전송할 수 있다. 상기 최종 연산 피드백부(520)는 상기 최종 연산 계산부에서 수행한 상기 윈도우의 최종 연산 결과를 상기 의존성 그래프 관리부(400)의 상기 의존성 그래프 업데이트부(430)로 전송할 수 있다. 예를 들면, 상기 최종 연산부(500)는 제1 윈도우의 최종 연산을 수행하고, 상기 최종 연산 피드백부(520)는 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 업데이트부(430) 및 상기 최종 연산 피드백 저장부(440)에 전송하며, 상기 최종 연산 피드백 저장부(440)는 상기 제1 윈도우의 최종 연산 결과를 저장하고, 상기 의존성 그래프 업데이트부(430)는 상기 제1 윈도우의 최종 연산 결과로부터 상기 의존성 그래프를 업데이트하며, 상기 최종 연산부(500)는 상기 제2 윈도우의 최종 연산 시 상기 업데이트 된 의존성 그래프를 참조할 수 있다.
상기 의존성 그래프에 업데이트하는 단계(S530)에서는 의존성 그래프 업데이트부(430)가 상기 제1 윈도우의 최종 연산 결과를 전송 받아 저장하고, 이를 상기 의존성 그래프에 업데이트할 수 있다. 예를 들면, 상기 최종 연산부(500)는 제1 윈도우의 최종 연산을 수행하고, 상기 최종 연산 피드백부(520)는 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 업데이트부(430) 및 상기 최종 연산 피드백 저장부(440)에 전송하며, 상기 최종 연산 피드백 저장부(440)는 상기 제1 윈도우의 최종 연산 결과를 저장하고, 상기 의존성 그래프 업데이트부(430)는 상기 제1 윈도우의 최종 연산 결과로부터 상기 의존성 그래프를 업데이트하며, 상기 최종 연산부(500)는 상기 제2 윈도우의 최종 연산 시 상기 업데이트 된 의존성 그래프를 참조할 수 있다. 상기 업데이트된 의존성 그래프는 상기 제1 윈도우의 최종 연산과 상기 제2 윈도우의 최종 연산간의 의존성을 나타낼 수 있다.
상기 의존성 그래프에 업데이트하는 단계(S530)에서는 상기 의존성 그래프 업데이트부(430)가 상기 최종 연산 피드백부(520)에서 전송 받은 상기 윈도우의 최종 연산 결과를 최종 연산 피드백 저장부에 저장하고 이를 상기 의존성 그래프에 업데이트할 수 있다. 상기 의존성 그래프 업데이트부(430)는 상기 최종 연산 피드백 저장부(440)를 포함할 수 있다. 상기 의존성 그래프에 업데이트하는 단계(S530)에서는 상기 최종 연산 피드백 저장부(440)가 상기 최종 연산 피드백부(520)로부터 전송 받은 최종 연산 결과를 저장할 수 있다. 상기 저장된 최종 연산 결과는 상기 최종 연산부(500)가 다음 윈도우의 최종 연산 수행 시 이용될 수 있다. 상기 최종 연산 피드백 저장부(440)는 상기 부분 연산 저장부(420)와 함께 구현될 수 있다. 예를 들면, 하나의 메모리에 상기 부분 연산 저장부(420) 및 상기 최종 연산 피드백 저장부(440)가 함께 구현될 수 있다.
상기 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행하는 단계(S540)에서는 최종 연산부(500)가 상기 의존성 그래프 관리부(400)에 저장된 상기 업데이트된 의존성 그래프를 참조하고 상기 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행할 수 있다.
도 8은 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법의 윈도우의 최종 연산을 수행하는 단계를 나타내는 흐름도이다.
도 8을 참조하면, 윈도우의 최종 연산을 수행하는 단계(S500)는 윈도우의 최종 연산을 수행하는 단계(S511), 제1 최종 연산 피드백부가 제1 윈도우의 최종 연산 결과를 의존성 그래프 관리부로 전송하는 단계(S521), 의존성 그래프에 업데이트하는 단계(S530) 및 제2 최종 연산부가 의존성 그래프 관리부에 저장된 업데이트된 의존성 그래프 및 제1 윈도우의 최종 연산 결과를 이용하여 제2 윈도우의 최종 연산을 수행하는 단계(S541)를 포함할 수 있다.
상기 도 8을 참조한 단계들은 도 5의 의존성 그래프를 이용한 데이터 처리 시스템의 구조에서 동작하는 윈도우의 최종 연산을 수행하는 단계(S500)의 세부 단계이며, 이는 도 6 내지 도 7의 제1 윈도우의 최종 연산을 수행하는 단계(S510), 제1 윈도우의 최종 연산 결과를 의존성 그래프 관리부로 전송하는 단계(S520), 의존성 그래프에 업데이트하는 단계(S530) 및 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행하는 단계(S540)의 상기 최종 연산 피드백부(520)가 제1 최종 연산 피드백부로, 제1 윈도우의 최종 연산을 수행하는 단계(S510)의 상기 최종 연산부(500)가 제1 최종 연산부(501)로, 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행하는 단계(S540)의 상기 최종 연산부(500)가 제2 최종 연산부(502)로 치환된 것을 제외하고는 도 6 내지 도 7의 의존성 그래프를 이용한 데이터 처리 방법과 실질적으로 동일하다. 따라서, 반복되는 설명은 생략한다.
도 9는 본 발명의 일 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법의 최종 연산 결과를 외부로 출력하는 단계를 나타내는 흐름도이다.
본 실시예에 따른 의존성 그래프를 이용한 데이터 처리 방법은 제1 최종 연산 결과를 외부로 출력하는 단계(S701) 및 제2 최종 연산 결과를 외부로 출력하는 단계(S702)를 제외하고는 도 6 내지 도 8의 의존성 그래프를 이용한 데이터 처리 방법과 실질적으로 동일하다. 따라서, 도 6 내지 도 8의 의존성 그래프를 이용한 데이터 처리 방법과 동일한 구성요소는 동일한 도면 부호를 부여하고, 반복되는 설명은 생략한다.
상기 제1 최종 연산 결과를 외부로 출력하는 단계(S701)에서는 제1 출력부가 제1 최종 연산부의 상기 제1 윈도우의 최종 연산 결과인 제1 최종 연산 결과를 외부로 출력할 수 있다.
상기 제2 최종 연산 결과를 외부로 출력하는 단계(S702)에서는 제2 출력부가 제2 최종 연산부의 상기 제2 윈도우의 최종 연산 결과인 제2 최종 연산 결과를 외부로 출력할 수 있다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 통상의 기술자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 입력부
200: 윈도우 생성부
300: 부분 연산부
400: 의존성 그래프 관리부
500: 최종 연산부
600: 출력부

Claims (18)

  1. 연산 수행이 필요한 데이터를 입력하는 입력부;
    상기 입력부에 입력된 입력 데이터를 특정 구간으로 나눈 데이터 그룹인 윈도우를 생성하는 윈도우 생성부;
    상기 윈도우를 특정 크기의 데이터로 파편화 하여 파편을 생성하되 먼저 생성된 파편과 중복되는 파편은 먼저 생성된 파편에 통합하고, 파편별로 연산을 하는 부분 연산을 수행하는 부분 연산부;
    상기 부분 연산의 결과를 저장하고, 상기 파편과 상기 윈도우 간의 의존성 그래프를 생성하여 저장하는 의존성 그래프 관리부;
    상기 의존성 그래프 관리부에 저장된 상기 의존성 그래프 및 상기 부분 연산의 결과를 이용하여 상기 윈도우의 최종 연산을 수행하는 최종 연산부; 및
    상기 윈도우의 최종 연산 결과를 외부로 출력하는 출력부를 포함하고,
    상기 윈도우는 복수 개이고,
    상기 윈도우들은 제1 특정 구간의 제1 윈도우 및 상기 제1 특정 구간과 연속되는 제2 특정 구간의 제2 윈도우를 포함하며,
    상기 제1 특정 구간과 상기 제2 특정 구간은 부분적으로 중첩되는 의존성 그래프를 이용한 데이터 처리 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 부분 연산부가 상기 윈도우를 파편화하는 파편의 크기는 상기 제1 윈도우와 상기 제2 윈도우가 부분적으로 중첩되는 구간과 같은 크기인 의존성 그래프를 이용한 데이터 처리 시스템.
  4. 제1항에 있어서,
    상기 의존성 그래프는 상기 파편과 상기 제1 윈도우 및 상기 제2 윈도우와의 의존성을 나타내는 의존성 그래프를 이용한 데이터 처리 시스템.
  5. 제1항에 있어서,
    상기 최종 연산부는 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 관리부로 전송하는 최종 연산 피드백부를 포함하고,
    상기 의존성 그래프 관리부는 상기 최종 연산 피드백부에서 전송 받은 상기 제1 윈도우의 최종 연산 결과를 최종 연산 피드백 저장부에 저장하고 이를 상기 의존성 그래프에 업데이트하는 의존성 그래프 업데이트부를 포함하며,
    상기 최종 연산부는 상기 의존성 그래프 관리부에 저장된 상기 업데이트된 의존성 그래프 및 상기 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행하는 의존성 그래프를 이용한 데이터 처리 시스템.
  6. 제5항에 있어서,
    상기 최종 연산부는 복수개이고,
    상기 최종 연산부들은 제1 최종 연산부 및 제2 최종 연산부를 포함하며,
    상기 제1 최종 연산부는 상기 제1 윈도우의 최종 연산을 수행하며 상기 제1 윈도우의 최종 연산 피드백부인 제1 최종 연산 피드백부를 포함하고,
    상기 의존성 그래프 업데이트부는 상기 제1 최종 연산 피드백부에서 전송 받은 상기 제1 윈도우의 최종 연산 결과를 최종 연산 피드백 저장부에 저장하고 이를 상기 의존성 그래프에 업데이트하며,
    상기 제2 최종 연산부는 상기 의존성 그래프 관리부에 저장된 상기 제1 윈도우의 최종 연산 결과가 반영된 상기 업데이트된 의존성 그래프 및 상기 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행하는 의존성 그래프를 이용한 데이터 처리 시스템.
  7. 제6항에 있어서,
    상기 출력부는 복수개이고,
    상기 출력부들은 제1 출력부 및 제2 출력부를 포함하며,
    상기 제1 출력부는 상기 제1 최종 연산부의 상기 제1 윈도우의 최종 연산 결과인 제1 최종 연산 결과를 외부로 출력하고,
    상기 제2 출력부는 상기 제2 최종 연산부의 상기 제2 윈도우의 최종 연산 결과인 제2 최종 연산 결과를 외부로 출력하는 의존성 그래프를 이용한 데이터 처리 시스템.
  8. 제5항에 있어서,
    상기 업데이트된 의존성 그래프는 상기 제1 윈도우의 최종 연산과 상기 제2 윈도우의 최종 연산간의 의존성을 나타내는 의존성 그래프를 이용한 데이터 처리 시스템.
  9. 제1항에 있어서,
    상기 입력 데이터는 스트림, 배치, 그래프 또는 화상 데이터인 의존성 그래프를 이용한 데이터 처리 시스템.
  10. 의존성 그래프를 이용한 데이터 처리 시스템에 있어서,
    입력부가 연산 수행이 필요한 데이터를 입력 데이터로 입력하는 단계;
    윈도우 생성부가 상기 입력 데이터를 특정 구간으로 나눈 데이터 그룹인 윈도우를 생성하는 단계;
    부분 연산부가 상기 윈도우를 특정 크기의 데이터로 파편화 하여 파편을 생성하되 먼저 생성된 파편과 중복되는 파편은 먼저 생성된 파편에 통합하고, 파편별로 연산을 하는 부분 연산을 수행하는 단계;
    의존성 그래프 관리부가 상기 부분 연산의 결과를 저장하고, 상기 파편과 상기 윈도우 간의 의존성 그래프를 생성하여 저장하는 단계;
    최종 연산부가 의존성 그래프 관리부에 저장된 상기 의존성 그래프 및 상기 부분 연산의 결과를 이용하여 상기 윈도우의 최종 연산을 수행하는 단계; 및
    출력부가 상기 윈도우의 최종 연산 결과를 외부로 출력하는 단계를 포함하고,
    상기 윈도우는 복수개이고,
    상기 윈도우들은 제1 특정 구간의 제1 윈도우 및 상기 제1 특정 구간과 연속되는 제2 특정 구간의 제2 윈도우를 포함하며,
    상기 제1 특정 구간과 상기 제2 특정 구간은 부분적으로 중첩되는 의존성 그래프를 이용한 데이터 처리 방법.
  11. 삭제
  12. 제10항에 있어서,
    상기 부분 연산부가 상기 윈도우를 파편화하는 파편의 크기는 상기 제1 윈도우와 상기 제2 윈도우가 부분적으로 중첩되는 구간과 같은 크기인 의존성 그래프를 이용한 데이터 처리 방법.
  13. 제10항에 있어서,
    상기 의존성 그래프는 상기 파편과 상기 제1 윈도우 및 상기 제2 윈도우와의 의존성을 나타내는 의존성 그래프를 이용한 데이터 처리 방법.
  14. 제10항에 있어서,
    최종 연산 피드백부가 상기 제1 윈도우의 최종 연산 결과를 상기 의존성 그래프 관리부로 전송하는 단계;
    의존성 그래프 업데이트부가 상기 제1 윈도우의 최종 연산 결과를 전송 받아 최종 연산 피드백 저장부에 저장하고, 이를 상기 의존성 그래프에 업데이트하는 단계; 및
    최종 연산부가 상기 의존성 그래프 관리부에 저장된 상기 업데이트된 의존성 그래프 및 상기 제1 윈도우의 최종 연산 결과를 이용하여 상기 제2 윈도우의 최종 연산을 수행하는 단계를 더 포함하는 의존성 그래프를 이용한 데이터 처리 방법.
  15. 제14항에 있어서,
    상기 의존성 그래프 관리부로 전송하는 단계의 상기 최종 연산 피드백부는 제1 최종 연산 피드백부이고,
    상기 제2 윈도우의 최종 연산을 수행하는 단계의 상기 최종 연산부는 제2 최종 연산부인 의존성 그래프를 이용한 데이터 처리 방법.
  16. 제15항에 있어서,
    상기 출력부가 상기 최종 연산 결과를 외부로 출력하는 단계는
    제1 출력부가 제1 최종 연산부의 상기 제1 윈도우의 최종 연산 결과인 제1 최종 연산 결과를 외부로 출력하는 단계; 및
    제2 출력부가 제2 최종 연산부의 상기 제2 윈도우의 최종 연산 결과인 제2 최종 연산 결과를 외부로 출력하는 단계를 포함하는 의존성 그래프를 이용한 데이터 처리 방법,
  17. 제14항에 있어서,
    상기 업데이트된 의존성 그래프는 상기 제1 윈도우의 최종 연산과 상기 제2 윈도우의 최종 연산간의 의존성을 나타내는 의존성 그래프를 이용한 데이터 처리 방법.
  18. 제10항에 있어서,
    상기 입력 데이터는 스트림, 배치, 그래프 또는 화상 데이터인 의존성 그래프를 이용한 데이터 처리 방법.
KR1020180058478A 2018-05-23 2018-05-23 의존성 그래프를 이용한 데이터 처리 시스템 및 방법 KR102063123B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180058478A KR102063123B1 (ko) 2018-05-23 2018-05-23 의존성 그래프를 이용한 데이터 처리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180058478A KR102063123B1 (ko) 2018-05-23 2018-05-23 의존성 그래프를 이용한 데이터 처리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20190140495A KR20190140495A (ko) 2019-12-20
KR102063123B1 true KR102063123B1 (ko) 2020-01-07

Family

ID=69062932

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180058478A KR102063123B1 (ko) 2018-05-23 2018-05-23 의존성 그래프를 이용한 데이터 처리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102063123B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001525623A (ja) * 1997-11-28 2001-12-11 オーセ プリンティング システムズ ゲゼルシャフト ミットベシュレンクテル ハフツング 第1の解像度のラスタのデジタルデータを第2の解像度のデジタルデータに変換する方法
JP2005258944A (ja) * 2004-03-12 2005-09-22 Internatl Business Mach Corp <Ibm> プログラム解析装置、その解析方法及びプログラム
JP2005258593A (ja) 2004-03-09 2005-09-22 Sanyo Electric Co Ltd データフローグラフ処理方法および処理装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI533129B (zh) 2011-03-25 2016-05-11 軟體機器公司 使用可分割引擎實體化的虛擬核心執行指令序列程式碼區塊

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001525623A (ja) * 1997-11-28 2001-12-11 オーセ プリンティング システムズ ゲゼルシャフト ミットベシュレンクテル ハフツング 第1の解像度のラスタのデジタルデータを第2の解像度のデジタルデータに変換する方法
JP2005258593A (ja) 2004-03-09 2005-09-22 Sanyo Electric Co Ltd データフローグラフ処理方法および処理装置
JP2005258944A (ja) * 2004-03-12 2005-09-22 Internatl Business Mach Corp <Ibm> プログラム解析装置、その解析方法及びプログラム

Also Published As

Publication number Publication date
KR20190140495A (ko) 2019-12-20

Similar Documents

Publication Publication Date Title
US11403284B2 (en) System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system
Kronqvist et al. The extended supporting hyperplane algorithm for convex mixed-integer nonlinear programming
JP6628041B2 (ja) 最適化問題解決装置、方法、及びプログラム
US20160327607A1 (en) Methods and systems for transforming fault tree diagrams of engineering systems
Kim et al. SELCOM: Selective compression scheme for lightweight nodes in blockchain system
KR20200094056A (ko) 컨벌루션 신경망 파라미터 최적화 방법, 컨벌루션 신경망 연산방법 및 그 장치
Dolgui et al. Multi-product lot-sizing and sequencing on a single imperfect machine
Vasko et al. A simple methodology that efficiently generates all optimal spanning trees for the cable-trench problem
CN107133741B (zh) 待办任务处理方法、装置、可读存储介质及电子设备
CN107145944A (zh) 基于fpga高效训练的遗传算法及系统
KR102063123B1 (ko) 의존성 그래프를 이용한 데이터 처리 시스템 및 방법
JP2010262471A (ja) 並列化スケジューリング装置
KR20210102404A (ko) 조정 가능한 수의 트랜잭션 블록 및 복수의 중간 블록을 포함하는 블록을 가진 블록체인의 생성
US11475311B2 (en) Neural network instruction streaming
US20170169129A1 (en) Information processing system, information processing method, and program
JP2009015597A (ja) スケジュール作成方法,スケジュール作成装置,およびコンピュータプログラム
Nikolova et al. Unconditional well-posedness in the energy space for the Ginzburg-Landau equation
JP5555238B2 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
WO2021124574A1 (ja) トポロジー設計装置、トポロジー設計方法、及びプログラム
JPWO2021090518A5 (ja) 学習装置、学習方法、及び、プログラム
JP5741705B2 (ja) 最適領域抽出方法およびその装置
US20130185401A1 (en) Configuration management device, configuration management method, and configuration management program
JP2016153930A (ja) 設定情報管理装置、設定情報管理方法、及び、設定情報管理プログラム
Nguyen et al. Optimize Coding and Node Selection for Coded Distributed Computing over Wireless Edge Networks
JP2020119108A (ja) データ処理装置、データ処理方法、データ処理プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant