KR101980320B1 - Gpu기반의 빅데이터 검색 질의 병렬 분산처리 방법 - Google Patents

Gpu기반의 빅데이터 검색 질의 병렬 분산처리 방법 Download PDF

Info

Publication number
KR101980320B1
KR101980320B1 KR1020190012695A KR20190012695A KR101980320B1 KR 101980320 B1 KR101980320 B1 KR 101980320B1 KR 1020190012695 A KR1020190012695 A KR 1020190012695A KR 20190012695 A KR20190012695 A KR 20190012695A KR 101980320 B1 KR101980320 B1 KR 101980320B1
Authority
KR
South Korea
Prior art keywords
data
gpu
query
distributed processing
host
Prior art date
Application number
KR1020190012695A
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 KR1020190012695A priority Critical patent/KR101980320B1/ko
Application granted granted Critical
Publication of KR101980320B1 publication Critical patent/KR101980320B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 GPU(graphic processing unit)와 GPU 메모리로 구성되는 GPU 보드를 갖는 복수의 호스트를 이용하여 빅데이터 시스템을 구성하고, 상기 빅데이터 시스템에 수집, 저장된 데이터의 처리/분석을 위한 검색 질의를 복수 개의 상기 호스트에서 병렬 분산처리하도록 하여 대용량의 빅데이터 검색을 고속으로 처리할 수 있는 GPU 기반의 빅데이터 검색 질의 병렬 분산처리 방법에 관한 것이다.
상기의 과제를 해결하기 위하여 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법은 사용자가 요청한 질의를 분산처리관리부에서 GPU가 내장된 복수 개의 호스트로 구성된 빅데이터 시스템 클러스터에 전송하는 질의 분산처리 단계; 데이터적재관리부가 상기 분산처리관리부로부터 처리할 데이터에 대한 정보를 수신하고, 적재요청 정보를 생성하여 상기 호스트로 요청하는 적재요청 단계; 상기 호스트가 상기 적재요청 단계에서 생성된 적재 정보에 근거하여 빅데이터 저장부로부터 데이터를 수신하고 GPU 메모리에 데이터를 적재하는 데이터적재 단계; 상기 호스트가 상기 GPU 메모리에 적재된 데이터를 분석하여 상기 질의 분산처리 단계에서 수신된 질의를 처리하여 결과 데이터를 생성하는 데이터처리 단계; 및 상기 분산처리관리부가 상기 데이터처리 단계에서 각 호스트에서 처리된 질의 처리 결과 데이터를 취합하여 질의의 최종 결과 데이터를 제공하는 처리결과 제공 단계를 포함하는 것을 특징으로 한다.

Description

GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법{PARALLEL DISTRIBUTED PROCESSING METHOD FOR BIG DATA QUERY BASED ON GPU}
본 발명은 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법에 관한 것으로서, 더욱 상세하게는 GPU(graphic processing unit)와 GPU 메모리로 구성되는 GPU 보드를 갖는 복수의 호스트를 이용하여 빅데이터 시스템을 구성하고, 상기 빅데이터 시스템에 수집, 저장된 데이터의 처리/분석을 위한 검색 질의를 복수 개의 상기 호스트에서 병렬 분산처리되도록 하여 대용량의 빅데이터 검색을 고속으로 처리할 수 있는 GPU 기반의 빅데이터 검색 질의 병렬 분산처리 방법에 관한 것이다.
빅데이터(big data)란 기존 데이터베이스 관리도구의 능력을 넘어서는 대량(수십 테라바이트 또는 페타바이트)의 정형 또는 심지어 데이터베이스 형태가 아닌 비정형의 데이터 집합조차 포함한 데이터로부터 가치를 추출하고 결과를 분석하는 기술이다.
이러한 빅데이터는 수집, 저장, 처리/분석 및 사용/시각화의 과정을 거쳐 의미있는 정보로 사용되게 된다.
상기 과정 중에서, 처리/분석은 수집된 빅데이터가 원시 상태에서 사용될 수 있는 형식으로 변환되는 과정으로서, 고급 함수 및 알고리즘을 이용하여 정렬, 집계 및 조인 등의 방식으로 데이터가 가공된다. 처리/분석을 통해 가공 데이터는 추가 처리를 위해 저장되거나, 비즈니스 인텔리전스 및 데이터 시각화 도구를 통해 사용하도록 제공된다.
한편, 수집된 빅데이터는 80% 이상이 비정형 데이터로 이루어지는 데, 비정형의 빅데이터를 처리/분석하는 데에는 복잡한 알고리즘이 요구될 뿐만 아니라, 많은 시간과 리소스(resource)를 필요로 한다.
빅데이터의 분산처리를 위한 기술로서, 등록특허공보 제10-1851664호에 빅데이터 분산처리를 위한 소형 플랫폼 서버 및 이의 동작 방법이 개시되었다.
상기 기술은 소형 플랫폼 서버에 전력을 공급하고 상기 소형 플랫폼 서버의 온습도를 측정하는 미들웨어 임베디드 컨트롤 보드와, 상기 미들웨어 임베디드 컨트롤 보드에 의해 제어되고 빅데이터 분산처리를 위해 클러스터를 구축하는 마스터 노드와, 상기 마스터 노드에 의해 각각의 역할이 할당되고, 서로 다른 컴포넌트가 설치되는 다수개의 슬래이브 노드들을 포함하는 것을 특징으로 한다.
또한, 등록특허공보 제10-1916799호에 빅데이터 서버 부하 분산 제어 장치 및 방법이 개시되었다.
상기 기술은 제어 요청 정보에 대응되는 제어 응답 정보를 클라이언트에 송신하는 컨트롤부; 복수의 빅데이터 서버의 빅데이터 분석 상태를 수집하여 상기 빅데이터 서버 각각의 빅데이터 분석 상태 정보를 생성하는 빅데이터 서버 상태감지부; 상기 클라이언트로부터 상기 제어 요청 정보에 대응되는 빅데이터 요청 정보를 수신하고, 상기 빅데이터 분석 상태 정보 및 상기 컨트롤매니저부가 미리 저장한 제어 요청 이력 정보를 기초로, 상기 빅데이터 서버 중에서 상기 빅데이터 요청 정보에 대응되는 빅데이터를 분석할 지정 빅데이터 서버를 결정하며, 선택된 상기 지정 빅데이터 서버의 주소 정보를 포함하도록 상기 제어 응답 정보를 생성하는 게이트웨이부; 및 상기 빅데이터 분석 상태 정보에 대응되는 제어 요청 정보를 기초로 상기 제어 요청 이력 정보를 업데이트하여 저장하되, 상기 빅데이터 분석 상태 정보를 기초로 상기 제어 요청 이력 정보를 분류하여 저장하는 컨트롤매니저부를 포함하는 것을 특징으로 한다.
그러나 상기의 기술들은 서버 내에서 처리 분석을 수행함에 따라 메모리 및 CPU 등의 리소스 활용이 제한되고, 하나의 요청을 따라 분석을 수행하는 과정에서 다른 요청은 대기 상태로 전환되어야 하는 문제점이 있다.
또한, 복수의 서버를 병렬로 구성함으로써, 많은 구축비용이 소요되는 단점이 있다.
한편, 대용량 데이터를 분산처리하기 위한 기술 중의 하나로서, 등록특허공보 제10-1245994호에 대용량 데이터의 분산 병렬 처리 시스템 및 방법이 개시되었다.
상기 기술은 클라이언트로부터의 작업 요청에 따라 확장 잡 트랙커가 GPU 테이블을 조회해 요청받은 작업이 GPU 테이블에 미리 정의되어 있는지 여부에 따라 CPU를 이용하는 태스크 트랙커 또는 GPU를 이용하는 GPU 태스크 트랙커에 맵리듀스 작업을 할당하는 것을 특징으로 한다.
그러나 상기의 기술은 대용량으로 수집 저장되는 데이터에 대하여 고속분산 처리할 수 있는 것인 반면, 클라이언트의 질의에 따라 처리 결과를 신속하게 분석하여 제공할 수 있는 것은 아니다.
KR 10-1851664 B1 (2018. 04. 18.) KR 10-1916799 B1 (2018. 11. 02.) KR 10-1245994 B1 (2013. 03. 14.)
본 발명은 상기 종래기술이 갖는 문제점을 해소하기 위하여 창출된 것으로서, 본 발명에서 해결하고자 하는 과제는, GPU(Graphics Processing Unit)와 GPU 메모리로 구성되는 GPU 보드를 갖는 복수의 호스트를 이용하여 빅데이터 시스템을 구성하고, 상기 빅데이터 시스템에 수집, 저장된 데이터의 처리/분석을 위한 검색 질의를 병렬 분산 처리하기 위해, 질의에 대응하는 빅데이터를 복수의 호스트의 GPU 메모리에 분할 적재하고, 호스트 각각에 구성되는 복수 개의 GPU 코어를 이용하여 병렬 분산 처리하며, 분산 처리 결과를 취합하여 그 결과를 제공할 수 있는 GPU기반의 빅데이터 검색 병렬 분산처리 방법을 제공하는 데 있다.
상기의 과제를 해결하기 위하여 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법은 사용자가 요청한 질의를 분산처리관리부에서 GPU가 내장된 복수 개의 호스트로 구성된 빅데이터 시스템 클러스터에 전송하는 질의 분산처리 단계; 데이터적재관리부가 상기 분산처리관리부로부터 처리할 데이터에 대한 정보를 수신하고, 적재요청 정보를 생성하여 상기 호스트로 요청하는 적재요청 단계; 상기 호스트가 상기 적재요청 단계에서 생성된 적재 정보에 근거하여 빅데이터 저장부로부터 데이터를 수신하고 GPU 메모리에 데이터를 적재하는 데이터적재 단계; 상기 호스트가 상기 GPU 메모리에 적재된 데이터를 분석하여 상기 질의 분산처리 단계에서 수신된 질의를 처리하여 결과 데이터를 생성하는 데이터처리 단계; 및 상기 분산처리관리부가 상기 데이터처리 단계에서 각 호스트에서 처리된 질의 처리 결과 데이터를 취합하여 질의의 최종 결과 데이터를 제공하는 처리결과 제공 단계를 포함하는 것을 특징으로 한다.
여기서, 상기 적재요청 단계는 상기 분산처리관리부로부터 질의에 대한 대상 데이터 정보와 적재 정보를 수신하는 적재요청 수신 단계; 상기 적재요청수신 단계에서 수신된 데이터 정보를 상기 빅데이터 저장부에서 확인하는 데이터 확인 단계; 상기 데이터 확인 단계에서 확인된 데이터 정보에 대해 GPU가 내장된 호스트의 GPU 메모리 량에 근거하여 저장할 데이터를 분할하는 데이터 분할단계; 및 상기 데이터 분할단계에서 생성된 데이터 분할 정보에 근거하여 분할된 데이터가 상기 GPU 메모리에 적재되도록 상기 호스트에 요청하는 적재요청 단계를 포함하는 것을 특징으로 한다.
또한, 상기 데이터 분할단계는 질의 대상 데이터의 총량, 클러스터를 구성하는 GPU가 내장된 각 호스트의 이용 가능한 GPU 메모리 량에 근거하여 데이터가 분할되는 것을 특징으로 한다.
또한, 상기 데이터 분할단계는 상기 질의 대상 데이터 총량이 클러스터를 구성하는 각 호스트의 이용 가능한 GPU 메모리의 총량보다 상대적으로 큰 경우, 이용 가능한 GPU 메모리 총량 단위로 질의 대상 데이터를 1차 분할하고, 상기 1차 분할된 데이터가 순서대로 각 호스트별로 이용 가능한 GPU 메모리에 크기에 따라 분할 적재되는 것을 특징으로 한다.
또한, 상기 데이터처리 단계는 상기 GPU 메모리에 적재된 데이터를 GPU 코어 개수에 따라 분할하고, 상기 GPU 코어에서 상기 GPU 메모리에 적재된 데이터를 병렬처리 분석하여 수신된 질의에 대한 결과 데이터를 생성하는 것을 특징으로 한다.
또한, 상기 처리결과 제공 단계는 상기 분산처리관리부에서 상기 호스트로부터 결과 데이터를 수신하고, 수신된 결과 데이터를 풀(result pool)에 저장 관리하고, 완료된 질의에 대하여 그 결과 데이터를 취합하여 사용자 단말기로 제공하고, 상기 분산처리관리부와 상기 호스트 사이의 요청 신호 및 응답 신호는 상태 큐(Result Status Queue)를 이용하여 질의, 결과 응답, 요청의 이벤트 신호를 송수신하도록 구성되는 것을 특징으로 한다.
본 발명에 의하면, 검색 질의에 대응하여 빅데이터를 빅데이터 시스템을 구성하는 복수의 호스트내의 GPU 코어와 이용 가능한 GPU 메모리의 크기에 대응하여 분할 처리함으로써, 검색 질의를 병렬로 신속하게 처리하여 제공할 수 있는 장점이 있다.
또한, 대용량의 빅데이터 검색 질의를 병렬 분산 처리함으로써, 시스템의 과부하를 방지하고, 질의에 대한 응답 지연 및 장애를 최소화할 수 있는 장점이 있다.
도 1은 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법이 적용된 시스템의 구성도.
도 2는 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법이 적용된 시스템에서 데이터를 적재하기 위한 데이터적재관리부와 호스트의 동작 예를 나타낸 도면.
도 3은 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법이 적용된 시스템의 각 호스트에서 GPU 질의 엔진을 통해 질의에 대한 병렬처리 동작을 나타낸 도면.
도 4는 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법의 흐름도.
도 5는 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법에서 적재요청 단계에 대한 흐름도.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 더욱 상세하게 설명한다.
본 발명은 GPU(graphic processing unit)와 GPU 메모리로 구성되는 GPU 보드를 갖는 복수의 호스트를 이용하여 빅데이터 시스템을 구성하고, 상기 빅데이터 시스템에 수집, 저장된 데이터의 처리/분석을 위한 검색 질의를 상기 복수의 호스트에서 병렬/분산처리하도록 하여 대용량의 빅데이터의 검색을 고속으로 처리할 수 있는 GPU 기반의 빅데이터 검색 질의 병렬 분산처리 방법에 관한 것이다.
도 1은 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법이 적용된 시스템의 구성도이다.
첨부된 도 1을 참조하면, 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법이 적용된 시스템은 분산처리관리부(100), 데이터적재관리부(200), 호스트(300) 및 빅데이터 저장부(400)를 포함하여 구성된다.
분산처리관리부(100)는 사용자 단말기로부터 질의(query)를 수신하고, 수신된 질의를 GPU를 내장한 빅데이터 시스템 클러스터의 각 호스트(300)로 전송하며, 상기 호스트(300)에 대한 처리 상태를 관리하며, 상기 호스트(300)로부터 전송된 처리 결과 데이터를 수신하여 이를 취합하고, 취합된 결과를 상기 사용자 단말기로 제공하는 기능을 수행한다.
즉, 상기 분산처리관리부(100)는 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법이 적용된 시스템의 전체적인 제어를 담당한다.
상기 분산처리관리부(100)의 기능을 부연하면, 사용자 단말기로부터 수신된 질의를 복수 개의 호스트로 제공한다.
또한, 상기 호스트(300)로부터 전송된 GPU 질의 엔진의 정보를 수신하여 호스트(200)에 대한 정보를 관리한다.
또한, 상기 호스트(300)로부터 전송된 질의에 대한 처리 결과 데이터를 수신하고, 수신된 처리 결과 데이터를 취합하여 사용자 단말기에 제공한다.
아울러, 상기 분산처리관리부(100)는 상기 사용자 단말기로부터 수신된 질의를 수행할 대상 데이터에 대한 적재 요청을 데이터적재관리부(200)에 전송한다.
이에, 상기 분산처리관리부(100)는 호스트의 처리 상태를 관리하기 위해 GPU 노드 관리모듈(110)을 포함하여 구성되며, 각 호스트(300)에 데이터를 적재하도록 데이터적재관리부(200)에 요청한다.
GPU 노드 관리모듈(110)은 복수 개의 호스트(300)의 실시간 상태정보를 수집하여 저장 관리한다.
여기서, 상기 상태정보는 호스트(300)에서 질의의 실행 또는 완료의 실시간 정보로서, GPU 프로세스의 사용량, GPU 메모리에 대한 적재 중 또는 완료 정보, 질의에 대한 실행 또는 완료 정보, GPU 코어에 대한 사용량, GPU 코어 수 등을 포함한다.
상기의 구성에 따라 상기 분산처리관리부(100)에 질의가 수신되면, 상기 분산처리관리부(100)는 질의를 처리하기 위한 준비 작업을 수행한다. 질의 대상 데이터의 총량, GPU를 내장한 빅데이터 시스템 클러스터의 각 호스트(300)에서 사용 가능한 GPU 메모리 크기와 총량, 질의를 처리하기 위한 각 호스트의 상태 정보와 함께 데이터적재관리부에 데이터 적재 요청을 한다.
상기 적재 요청에 따라 데이터적재관리부(200)는 처리할 질의 대상 데이터의 총량, 호스트에서 처리할 수 있는 데이터 총량 및 호스트 상태정보에 근거하여 각 호스트(300) 별 데이터 할당량을 산출한다.
데이터적재관리부(200)는 호스트(300)에 데이터가 적재되도록 제어하는 기능을 수행한다.
상세하게 상기 데이터적재관리부(200)는 상기 분산처리관리부(100)로부터 질의와 상기 질의에 대응하는 질의 대상 데이터 정보를 수신하고, 수신된 질의 대상 데이터 정보에 따라 상기 질의 대상 데이터가 저장되어 있는 빅데이터 저장부(400)에서 확인한 후, 상기 빅데이터 저장부(400)에 저장된 대상 데이터를 산출된 적재 정보로 분할한다.
이때, 상기 대상 데이터의 분할은 각 호스트(300)에 포함된 GPU 메모리에 근거하여 이루어지게 된다. 또한, 적재 정보로는 질의 대상 데이터에 대한 각 호스트의 GPU 메모리 총량에 의한 1차 데이터 분할 정보, 1차 분할 데이터에 대해 각 호스트의 적재량(GPU 메모리 크기)에 따른 분할 정보 등으로 구성될 수 있다.
또한, 상기 데이터적재관리부(300)는 생성된 적재 정보에 근거하여 호스트(300)에 분할된 데이터가 적재되도록 요청한다.
여기서, 대상 데이터가 호스트에 적재되는 분할 데이터의 량보다 상대적으로 더 많은 경우, 상기 데이터적재관리부(300)는 사용자 단말기로부터 수신된 질의 처리에 대한 분할 데이터가 상기 호스트(300)에 모두 적재될 때까지 반복하여 수행되도록 구성된다.
도 2는 본 발명에 따른 GPU기반의 빅데이터 검색 질의 분산처리 방법이 적용된 시스템에서 데이터적재관리부가 호스트에 데이터를 적재하는 일 실시 예를 나타낸 도면이다.
상기 데이터적재관리부(200)는 처리 대상 데이터 량이 빅데이터 시스템 클러스터를 구성하는 각 호스트(300)의 사용 가능한 GPU 메모리의 총량 보다 상대적으로 큰 경우, 처리 대상 데이터를 사용 가능한 GPU 메모리의 총량 단위로 1차 분할하고, 분할된 데이터를 각 호스트의 GPU 메모리 크기에 따라 2차 분할 적재한다.
상기 데이터적재관리부(200)는 빅데이터 저장부(400)에서 확인한 질의에 대응하는 대상 데이터 정보에 근거하여, 대상 데이터 량이 클러스터의 호스트(300) 전체에서 처리될 수 있는 데이터 량보다 상대적으로 큰 경우, 대상 데이터를 수 개로 1차 분할(DATA 1, DATA2 등)하고, 1차 분할된 데이터를 순차적으로 호스트(300) 각각에서 처리할 수 있는 데이터로 2차 분할하여 각 호스트(300)에 적재되도록 한다.
즉, 상기 데이터적재관리부(200)에서 이루어지는 1차 분할은 호스트(300) 전체에서 한 번에 처리될 수 있는 데이터 량에 근거하여 이루어지는 것으로서, 질의 대상 데이터의 량(크기) 및 클러스터에서 처리될 수 있는 질의 대상 데이터 량(크기)에 따라 복수 개로 분할되게 된다.
또한, 상기 데이터적재관리부(200)는 1차 분할된 데이터가 모두 처리될 때까지 호스트(300)에 적재되도록 제어한다.
호스트(300)는 상기 데이터적재관리부(300)로부터 적재 요청된 데이터를 빅데이터 저장부(400)에서 읽어와 GPU 메모리에 적재하고, GPU 메모리에 적재된 데이터를 분석하여 수신된 질의를 처리하여 결과 데이터를 생성하는 기능을 수행하는 것으로서, 복수 개로 구성되는 빅데이터 시스템 클러스터로 구축된 빅데이터 시스템 내의 호스트이다.
즉, 빅데이터 시스템 클러스터는 복수 개의 호스트(300)와 빅데이터 저장부(400)를 포함하여 이루어진다.
도 3은 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법이 적용된 시스템의 각 호스트에서 GPU 질의 엔진을 통해 질의에 대한 병렬처리 동작을 나타낸 도면이다.
분산처리관리부(100)에서 각 호스트(300)의 GPU 노드 에이전트(310)로 질의가 전달되면, 상기 GPU 노드 에이전트(310)는 질의를 GPU 질의 엔진(320)에 전달한다.
상기 GPU 질의 엔진(320)은 GPU 코어의 개수와, GPU 메모리(VRAM)(330)에 저장되어 있는 데이터의 량에 근거하여 하나의 GPU 코어가 질의를 처리할 수 있는 데이터 할당량을 계산한다.
GPU 질의 엔진(320)은 계산된 할당량으로 각 GPU 코어가 질의할 데이터 영역을 할당하고, GPU의 GPU 메모리(330)에 저장된 데이터에 대해서 질의 처리를 수행한다. 이때 GPU에 내장된 GPU 코어 개수 만큼 전체 GPU 메모리(330)에 저장된 데이터 영역을 나누어 검색하게 된다.
예를 들어, 256MB의 데이터가 GPU 메모리(330)에 적재되어 있는 상태에서, GPU 코어의 수가 256개이면, 1개의 GPU 코어에서는 1MB의 데이터 영역에 대해서 질의 처리를 수행한다. GPU에서는 각 GPU 코어가 병렬 동작에 의해 질의 처리를 실행하므로, 질의 처리에 소요되는 시간이 단축된다.
이후, GPU 질의 엔진(320)은 각 코어에서 처리된 결과를 취합하여 최종 처리 결과를 GPU 노드 에이전트(310)로 전달한다.
호스트(300, 도 1 참조)는 GPU 에이전트(310), GPU 질의 엔진(320), GPU 메모리(330), GPU 코어(340) 및 GPU 모니터 모듈(350)을 포함하여 구성된다.
GPU 노드 에이전트(310)는 질의 처리를 수행하는 로직으로서, 상기 데이터적재관리부(300)로부터 적재 요청된 데이터를 빅데이터 저장부(400)에서 읽어와 GPU 메모리에 적재되도록 제어하고, 상기 분산처리관리부(100)로부터 전송된 질의를 수신하며, 수신된 질의를 GPU 질의 엔진(320)에 전송되게 하고, 질의에 대한 처리 결과를 상기 분산처리관리부(100)로 전송한다.
또한, 상기 GPU 노드 에이전트(310)는 GPU의 상태정보를 관리하고, 상태정보를 상기 분산처리관리부(100)로 전송하는 기능을 수행한다.
여기서, 상기 상태정보는 호스트(300)에서 질의의 실행 또는 완료의 실시간 정보로서, GPU 프로세스의 사용량, GPU 메모리에 대한 적재 중 또는 완료 정보, 질의에 대한 실행 또는 완료 정보, GPU 코어에 대한 사용량, GPU 코어 수 등을 포함한다.
GPU 질의 엔진(320)은 GPU 코어를 이용하여 질의를 병렬처리하는 기능을 수행한다.
이때, 상기 GPU 코어(340)는 호스트(300) 내부의 GPU를 구성하는 처리회로의 핵심 부분으로 수백 ~ 수천개의 복수 개로 구성되는데, 상기 GPU 질의 엔진(320)은 상기 GPU 메모리에 적재된 데이터를 GPU 코어(340) 개수에 따라 분할하고, 상기 GPU에서 상기 GPU 메모리(330)에 적재된 데이터를 병렬처리 분석하여 수신된 질의에 대한 결과 데이터를 생성한다.
이에, GPU 메모리(330)에 적재된 데이터가 각 코어의 수에 따라 분할되어 병렬 처리됨으로써, 질의 요청에 대해 신속한 결과 데이터를 생성할 수 있는 장점이 있다.
GPU 모니터 모듈(350)은 호스트(300)의 GPU에 대한 상태정보를 검출하여 저장 관리하고, 상기 분산처리관리부(100)의 GPU 노드 관리모듈(110)에서 요청하는 이벤트에 대응하여 검출된 상태정보를 제공한다.
빅데이터 저장부(400, 도 1 참조)는 빅데이터가 저장 관리되는 것으로서, 하둡 분산 파일 시스템(hadoop distributed file system, HDFS)을 이용하여, 빅데이터를 저장 관리한다.
하둡 분산 파일 시스템(HDFS; Hadoop Distributed File System)은 하둡 프레임워크를 위해 자바 언어로 작성된 분산 확장 파일 시스템으로서, 복수 개의 분산처리서버를 통해 대용량의 파일 관리를 지원하고 다중 파일 복사본을 저장하여 가용성을 보장하는 구조를 가지며, 데이터 노드에 저장된 데이터 블록의 메타 데이터 정보를 저장하는 네임 노드(Name node)와 실제 분할된 데이터 블록과 복제된 데이터 블록을 저장하는 데이터 노드(Data node)들을 포함하여 구성된다. 상기 노드는 물리적인 구성으로 본다면 하드웨어인 분산처리 서버를 의미하고, 논리적인 구성으로 본다면 특정 알고리즘을 수행하는 분산처리소프트웨어를 의미한다.
상기 네임 노드에는 복수 개의 분산처리 서버에 분산 저장된 데이터 블록의 메타 데이터(meta data) 정보가 저장되는 데, 상기 메타 데이터는 데이터 블록이 저장된 디렉토리 구조, 데이터 블록 및 시간에 대한 정보 등을 포함한다. 이때, 상기 네임 노드에 저장된 메타 데이터가 장애에 의해 컴퓨터에서 읽을 수 없거나 변형되게 되면, 하둡 분산 파일 시스템 전체가 정지되는 문제점이 발생한다. 이를 방지하기 위해서 상기 네임 노드는 복제된 네임 노드가 구비되는 이중화 방식으로 구성될 수 있다.
상기 빅데이터 저장부(400)는 분산처리 시스템 방식으로 복수 개의 분산처리서버에 분할되어 저장 관리되나, 외부에서는 하나의 서버에 저장된 하나의 빅데이터로 간주된다.
다음으로, 상기와 같이 구성된 시스템을 이용하여 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법에 대해서 설명한다.
도 4는 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법의 흐름도이다.
첨부된 도 4를 참조하면, 본 발명에 따른 GPU기반의 빅데이터 검색 질의 분산처리 방법은 질의 분산처리 단계(S10), 적재요청 단계(S20), 데이터적재 단계(S30), 데이터처리 단계(S40) 및 처리결과 제공 단계(S50)를 포함하여 이루어진다.
1. 질의 분산처리 단계(S10)
분산처리관리부(100)에서 수신된 질의를 클러스터로 구성되는 복수 개의 호스트(300)에 전송하는 단계이다.
각 호스트(300)로 전송된 질의는 상기 호스트(300)에 저장 관리되고, 상기 호스트(300)는 GPU 메모리(330)에 데이터가 적재된 이후, 적재된 데이터를 이용하여 질의에 대한 처리를 수행하게 된다.
이에, 상기 질의 분산처리 단계(S10)는 필요에 따라 데이터적재 단계(S30) 이후 수행되도록 구성될 수 있다.
2. 적재요청 단계(S20)
적재요청 단계(S20)는 데이터적재관리부(200)에서 상기 분산처리관리부(100)로부터 처리할 데이터에 대한 정보를 수신하고, 적재요청 정보를 생성하여 요청하는 단계이다.
여기서, 상기 분산처리관리부(100)는 호스트(300)로부터 GPU 프로세스의 사용량, GPU 메모리에 대한 적재 중 또는 완료 정보, 질의에 대한 실행 또는 완료 정보, GPU 코어 사용량 및 GPU 코어 수를 포함하는 상태정보를 수신하고, 수신된 상태정보에 근거하여 호스트에서 처리할 수 있는 데이터 량을 산출하고, 각 호스트(300) 별로 데이터 할당량을 산출하며, 각 호스트(300) 별로 산출된 데이터 할당량을 포함하는 적재정보를 생성하여 상기 데이터적재관리부(200)로 제공하게 된다.
도 5는 본 발명에 따른 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법에서 적재요청 단계에 대한 흐름도를 나타낸 것이다.
첨부된 도 5를 참조하면, 적재요청 단계는 적재요청 수신 단계(S21), 데이터 확인 단계(S22), 데이터 분할단계(S23) 및 데이터 적재요청 단계(S24)를 포함한다.
2-1. 적재요청 수신 단계(S21)
적재요청 수신 단계(S21)는 데이터적재관리부(200)에서 분산처리관리부(100)로부터 질의에 대한 대상 데이터 정보와 적재 정보를 수신하는 단계이다.
2-2. 데이터 확인 단계(S22)
데이터 확인 단계(S22)는 데이터적재관리부(200)가 상기 적재요청 수신 단계(S21)에서 수신된 데이터 정보를 빅데이터 저장부(400)에서 확인하는 단계이다.
2-3. 데이터 분할단계(S23)
데이터 분할단계(S23)는 데이터적재관리부(200)가 수신된 적재 정보에 근거하여 상기 데이터 확인 단계(S22)에서 확인된 데이터를 분할하는 데이터 분할 정보를 생성하는 단계이다.
즉, 상기 데이터 분할단계(S23)는 빅데이터 시스템 클러스터를 구성하는 각 호스트의 GPU 메모리의 총량, 상기 질의 처리 대상 데이터의 총량에 근거하여 데이터가 분할되도록 구성된다.
이때, 상기 적재 정보에는 호스트(300) 별로 산출된 데이터 할당량이 포함되어 있고, 데이터적재관리부(200)는 각 호스트(300)에 적재될 데이터 량 및 호스트(300) 주소를 포함하는 데이터 분할 정보를 생성한다.
이때, 상기 데이터적재관리부(200)는 빅데이터 저장부(400)에서 확인한 질의에 대응하는 대상 데이터 정보에 근거하여, 처리 대상 데이터 량이 빅데이터 시스템 클러스터를 구성하는 호스트에서 사용 가능한 GPU 메모리의 총량 보다 상대적으로 큰 경우, 처리 대상 데이터를 사용 가능한 GPU 메모리의 총량 단위로 1차 분할하고, 분할된 데이터를 각 호스트의 GPU 메모리 크기에 따라 2차 분할하여 각 호스트(300)에 적재되도록 한다.
2-4. 데이터 적재요청 단계(S24)
데이터 적재요청 단계(S24)는 상기 데이터 분할단계(S23)에서 생성된 데이터 분할 정보에 근거하여 분할된 데이터가 GPU 메모리(330)에 적재되도록 호스트(300)에 요청하는 적재요청 정보를 생성하는 단계이다.
3. 데이터적재 단계(S30)
데이터적재 단계(S30)는 호스트(300)가 상기 적재요청 단계(S20)에서 생성된 적재요청 정보에 근거하여 빅데이터 저장부(400)로부터 분할된 데이터를 수신하고, 이를 GPU 메모리에 적재하는 단계이다.
즉, 데이터적재관리부(200)에서 생성된 적재요청 정보를 호스트(300)가 수신하고, 적재요청 정보를 수신한 상기 호스트(300)는 빅데이터 저장부(300)에서 적재 정보에 따라 데이터를 읽어 GPU 메모리(330)에 적재(저장)한다.
4. 데이터처리 단계(S40)
데이터처리 단계(S40)는 상기 호스트(300)가 상기 GPU 메모리(330)에 적재된 데이터를 분석하여 상기 질의 분산처리 단계에서 수신된 질의를 처리하여 결과 데이터를 생성하는 단계이다.
상기 호스트(300)는 질의 분산처리 단계(S10)에서 수신된 질의를 큐(queue)에 저장하고, 빅데이터 저장부(300)에서 분할된 데이터를 읽어와 GPU 메모리(330)에 적재(저장)되도록 한 후, 큐에 저장된 질의에 따라 GPU 메모리(330)에 저장된 데이터를 분석 처리하고, 결과 데이터를 생성한다.
상기 호스트(300)는 생성된 결과 데이터를 호스트(300)의 풀(result pool)에 저장하고, 분산처리관리부(100)로 질의의 결과 데이터가 저장되었다는 정보를 전송한다.
이에, 분산처리관리부(100)는 상기 호스트(300)로부터 결과 데이터가 저장되었다는 정보를 수신하면, 상기 호스트(300)에 결과 데이터의 송신요청을 하고, 송신요청에 의해 전송된 결과 데이터를 수신하여 저장한다.
여기서, 상기 데이터 분할단계(S23)에서 1차 분할된 데이터가 수개 존재하는 경우, 분할된 1차 데이터가 모두 GPU 메모리(330)에 적재되고 처리되기까지 상기 적재요청 단계(S20) 내지 데이터처리 단계(S40)가 반복 수행되게 된다.
5. 처리결과 제공 단계(S50)
처리결과 제공 단계(S50)는 분산처리관리부(100)가 상기 데이터처리 단계(S40)에서 각 호스트에서 처리된 질의 처리 결과 데이터를 취합하여 질의의 최종 결과 데이터를 제공하는 단계이다.
상기 처리결과 제공 단계(S50)에서 분산처리관리부(100)는 호스트(300)로부터 결과 데이터를 수신하고, 수신된 결과 데이터를 풀(result pool)에 저장한다.
이때, 상기 분산처리관리부(100)와 호스트(300) 사이의 요청 신호 및 응답 신호는 상태 큐(Result Status Queue)를 이용하여 질의, 결과 응답, 요청 등의 이벤트 신호를 송수신하도록 구성된다.
상기 분산처리관리부(100)는 질의 별로 결과 데이터를 저장 관리하고, 완료된 질의에 대하여 그 결과 데이터를 취합하여 사용자 단말기로 제공한다.
한편, 적재요청 단계(S20)에서 이루어지는 데이터 분할은 호스트와 각 호스트의 GPU 메모리 크기에 따라 분할되어야 하는 데, 하나의 빅데이터가 분할되는 경우 분할된 데이터는 빅데이터와 연관성이 있어야 한다.
즉, 빅데이터 저장부(400)에 저장된 처리대상 데이터를 각 호스트가 처리할수 있는 단위로 분할하는데 있어서, 분할된 각각의 데이터가 서로 연관성을 가지도록 분할되고, 분할된 데이터에 대한 정보는 데이터 적재 관리부(200)에서 관리한다.
본 발명에 의하면, 검색 질의에 대응하여 빅데이터가 GPU 호스트의 GPU 메모리의 크기에 대응하여 분할 처리됨으로써, 검색 질의를 병렬로 신속하게 처리하여 제공할 수 있고, 대용량의 빅데이터를 병렬 분산 처리함으로써 서버의 과부하를 방지하고, 질의에 대한 응답 지연 및 장애를 최소화할 수 있는 장점이 있다.
이상에서 본 발명의 바람직한 실시 예를 설명하였으나, 본 발명의 권리범위는 이에 한정되지 아니하며 본 발명의 실시 예와 실질적으로 균등한 범위에 있는 것까지 본 발명의 권리범위가 미치는 것으로 이해되어야 하며, 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능하다.
100: 분산처리관리부 110: GPU 노드 관리모듈
200: 데이터적재관리부
300: 호스트 310: GPU 에이전트
320: GPU 질의 엔진 330: GPU 메모리
340: GPU 코어 350: GPU 모니터 모듈
400: 빅데이터 저장부

Claims (6)

  1. 분산파일 시스템으로부터 빅데이터를 읽어와 질의에 대한 처리 결과를 제공하는 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법에 있어서,
    사용자가 요청한 질의를 분산처리관리부에서 GPU가 내장된 복수 개의 호스트로 구성된 빅데이터 시스템 클러스터에 전송하는 질의 분산처리 단계;
    데이터적재관리부가 상기 분산처리관리부로부터 처리할 데이터에 대한 정보를 수신하고, 적재요청 정보를 생성하여 상기 호스트로 요청하는 적재요청 단계;
    상기 호스트가 상기 적재요청 단계에서 생성된 적재 정보에 근거하여 빅데이터 저장부로부터 데이터를 수신하고 GPU 메모리에 데이터를 적재하는 데이터적재 단계;
    상기 호스트가 상기 GPU 메모리에 적재된 데이터를 분석하여 상기 질의 분산처리 단계에서 수신된 질의를 처리하여 결과 데이터를 생성하는 데이터처리 단계; 및
    상기 분산처리관리부가 상기 데이터처리 단계에서 각 호스트에서 처리된 질의 처리 결과 데이터를 취합하여 질의의 최종 결과 데이터를 제공하는 처리결과 제공 단계;
    를 포함하고,
    상기 데이터처리 단계는,
    상기 GPU 메모리에 적재된 데이터를 GPU 코어 개수에 따라 분할하고, 상기 GPU 코어에서 상기 GPU 메모리에 적재된 데이터를 병렬처리 분석하여 수신된 질의에 대한 결과 데이터를 생성하는 것을 특징으로 하는 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법.
  2. 청구항 1에 있어서,
    상기 적재요청 단계는,
    상기 분산처리관리부로부터 질의에 대한 대상 데이터 정보와 적재 정보를 수신하는 적재요청 수신 단계;
    상기 적재요청수신 단계에서 수신된 데이터 정보를 상기 빅데이터 저장부에서 확인하는 데이터 확인 단계;
    상기 데이터 확인 단계에서 확인된 데이터 정보에 대해 GPU가 내장된 호스트의 GPU 메모리 량에 근거하여 저장할 데이터를 분할하는 데이터 분할단계; 및
    상기 데이터 분할단계에서 생성된 데이터 분할 정보에 근거하여 분할된 데이터가 상기 GPU 메모리에 적재되도록 상기 호스트에 요청하는 적재요청 단계;
    를 포함하는 것을 특징으로 하는 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법.
  3. 청구항 2에 있어서,
    상기 데이터 분할단계는,
    질의 대상 데이터의 총량, 클러스터를 구성하는 GPU가 내장된 각 호스트의 이용 가능한 GPU 메모리 량에 근거하여 데이터가 분할되는 것을 특징으로 하는 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법.
  4. 청구항 3에 있어서,
    상기 데이터 분할단계는,
    상기 질의 대상 데이터 총량이 클러스터를 구성하는 각 호스트의 이용 가능한 GPU 메모리의 총량보다 상대적으로 큰 경우, 이용 가능한 GPU 메모리 총량 단위로 질의 대상 데이터를 1차 분할하고, 상기 1차 분할된 데이터가 순서대로 각 호스트별로 이용 가능한 GPU 메모리에 크기에 따라 분할 적재되는 것을 특징으로 하는 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법.
  5. 삭제
  6. 청구항 1에 있어서,
    상기 처리결과 제공 단계는,
    상기 분산처리관리부에서 상기 호스트로부터 결과 데이터를 수신하고, 수신된 결과 데이터를 풀(result pool)에 저장 관리하고, 완료된 질의에 대하여 그 결과 데이터를 취합하여 사용자 단말기로 제공하고,
    상기 분산처리관리부와 상기 호스트 사이의 요청 신호 및 응답 신호는 상태 큐(Result Status Queue)를 이용하여 질의, 결과 응답, 요청의 이벤트 신호를 송수신하도록 구성되는 것을 특징으로 하는 GPU기반의 빅데이터 검색 질의 병렬 분산처리 방법.
KR1020190012695A 2019-01-31 2019-01-31 Gpu기반의 빅데이터 검색 질의 병렬 분산처리 방법 KR101980320B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190012695A KR101980320B1 (ko) 2019-01-31 2019-01-31 Gpu기반의 빅데이터 검색 질의 병렬 분산처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190012695A KR101980320B1 (ko) 2019-01-31 2019-01-31 Gpu기반의 빅데이터 검색 질의 병렬 분산처리 방법

Publications (1)

Publication Number Publication Date
KR101980320B1 true KR101980320B1 (ko) 2019-05-20

Family

ID=66678585

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190012695A KR101980320B1 (ko) 2019-01-31 2019-01-31 Gpu기반의 빅데이터 검색 질의 병렬 분산처리 방법

Country Status (1)

Country Link
KR (1) KR101980320B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515972A (zh) * 2019-08-27 2019-11-29 陈东升 数据库快速查询系统及数据查询方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101245994B1 (ko) 2012-08-31 2013-03-20 케이씨씨시큐리티주식회사 대용량 데이터의 분산 병렬 처리 시스템 및 방법
KR20150079238A (ko) * 2013-12-31 2015-07-08 금오공과대학교 산학협력단 GPU를 활용한 R*-tree에서의 부분 노드 병렬 처리 방법
KR101851664B1 (ko) 2016-12-12 2018-04-25 한국건설기술연구원 빅데이터 분산처리를 위한 소형 플랫폼 서버 및 이의 동작 방법
KR101916799B1 (ko) 2018-06-18 2018-11-08 주식회사 에프아이티 빅데이터 서버 부하 분산 제어 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101245994B1 (ko) 2012-08-31 2013-03-20 케이씨씨시큐리티주식회사 대용량 데이터의 분산 병렬 처리 시스템 및 방법
KR20150079238A (ko) * 2013-12-31 2015-07-08 금오공과대학교 산학협력단 GPU를 활용한 R*-tree에서의 부분 노드 병렬 처리 방법
KR101851664B1 (ko) 2016-12-12 2018-04-25 한국건설기술연구원 빅데이터 분산처리를 위한 소형 플랫폼 서버 및 이의 동작 방법
KR101916799B1 (ko) 2018-06-18 2018-11-08 주식회사 에프아이티 빅데이터 서버 부하 분산 제어 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515972A (zh) * 2019-08-27 2019-11-29 陈东升 数据库快速查询系统及数据查询方法

Similar Documents

Publication Publication Date Title
JP5902716B2 (ja) 大規模記憶システム
CN108431796B (zh) 分布式资源管理系统和方法
US9542404B2 (en) Subpartitioning of a namespace region
US9378067B1 (en) Automated load balancing across the distributed system of hybrid storage and compute nodes
US9424274B2 (en) Management of intermediate data spills during the shuffle phase of a map-reduce job
US8176256B2 (en) Cache regions
US10394782B2 (en) Chord distributed hash table-based map-reduce system and method
KR20140119090A (ko) 확장 가능한 환경에서의 동적 로드 밸런싱 기법
KR20140122240A (ko) 확장 가능한 환경에서의 파티션 관리 기법
US11625192B2 (en) Peer storage compute sharing using memory buffer
Elghamrawy et al. A partitioning framework for Cassandra NoSQL database using Rendezvous hashing
KR20190061247A (ko) 빅데이터 처리 플랫폼의 실시간 자원 사용률 모니터링 시스템
KR101980320B1 (ko) Gpu기반의 빅데이터 검색 질의 병렬 분산처리 방법
Salehian et al. Comparison of spark resource managers and distributed file systems
US11561824B2 (en) Embedded persistent queue
US20180096010A1 (en) Flexible in-memory column store placement
CN113672665A (zh) 数据处理方法、数据采集系统、电子设备和存储介质
CN118018543A (zh) 一种文件下载方法、装置和计算设备
IL227415A (en) Large-scale storage system

Legal Events

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