KR101678480B1 - R 언어 기반 빅데이터 처리용 fpga 시스템 및 방법 - Google Patents

R 언어 기반 빅데이터 처리용 fpga 시스템 및 방법 Download PDF

Info

Publication number
KR101678480B1
KR101678480B1 KR1020150097280A KR20150097280A KR101678480B1 KR 101678480 B1 KR101678480 B1 KR 101678480B1 KR 1020150097280 A KR1020150097280 A KR 1020150097280A KR 20150097280 A KR20150097280 A KR 20150097280A KR 101678480 B1 KR101678480 B1 KR 101678480B1
Authority
KR
South Korea
Prior art keywords
fpga
data
processing
unit
language
Prior art date
Application number
KR1020150097280A
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 KR1020150097280A priority Critical patent/KR101678480B1/ko
Priority to PCT/KR2016/007407 priority patent/WO2017007270A1/ko
Application granted granted Critical
Publication of KR101678480B1 publication Critical patent/KR101678480B1/ko

Links

Images

Classifications

    • G06F17/30318
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Operations Research (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Complex Calculations (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)

Abstract

R 언어 기반 빅데이터 처리용 FPGA 시스템 및 방법이 개시된다. 빅 데이터(big data)를 처리하기 위한 R 언어 처리 장치로부터 R 언어 기반 코드(code) 및 데이터를 입력받고, FPGA(field programmable gate array) 연산에 의한 FPGA 처리 데이터를 상기 R 언어 처리 장치로 전달하는 R 언어 인터페이스부와, 상기 R 언어 인터페이스부로부터 입력받은 R 언어 기반 코드를 분석하여 상기 입력받은 데이터 중에서 하드웨어 연산이 수행될 FPGA 분류 데이터를 분류하고, 상기 분류된 FPGA 분류 데이터의 FPGA 연산값에 해당되는 상기 FPGA 처리 데이터를 전달받고 전달받은 FPGA 처리 데이터를 상기 R 언어 인터페이스부로 전달하는 코드분석/데이터분류부와, 상기 코드분석/데이터분류부에서 분류된 FPGA 분류 데이터를 전달하고, 상기 FPGA 분류 데이터의 FPGA 연산값에 해당되는 FPGA 처리 데이터를 전달받아 상기 코드분석/데이터분류부로 전달하는 FPGA 인터페이스부를 포함하는 R언어/FPGA 전용 인터페이스 모듈; 상기 FPGA 인터페이스부로부터 전달받은 FPGA 분류 데이터에 대해 FPGA 연산을 수행하여 상기 FPGA 처리 데이터를 산출하고 산출된 FPGA 처리 데이터를 상기 FPGA 인터페이스부로 전달하는 FPGA 처리 모듈을 구성한다.

Description

R 언어 기반 빅데이터 처리용 FPGA 시스템 및 방법{FIELD PROGRAMMABLE GATE ARRAY SYSTEM AND METHOD FOR PROCESSING BIG DATA BASED ON R LANGUAGE}
본 발명은 빅 데이터 처리용 시스템 및 방법에 관한 것으로서, 구체적으로는 빅 데이터 처리용 FPGA(field programmable gate array) 시스템 및 방법에 관한 것이며, 좀 더 구체적으로는 R 언어(R language) 기반 빅데이터 처리용 FPGA 시스템 및 방법에 관한 것이다.
최근에는 빅 데이터(big data)를 이용하여 새로운 유용한 데이터를 찾아내고 분석해 내는 분석 기법이 다양한 분야에 확산되고 있는 추세이다. 빅 데이터 분석 기법은 수많은 데이터를 검색하여 수집하고 분류하며 이를 이용하여 분석을 하는 프로세스(process)가 반복되도록 구성되어 있다. 검색 수집할 데이터의 양이 많을 뿐만 아니라 통계, 정렬 등의 작업이 수없이 반복되기 때문에 엄청난 양의 데이터 처리양을 요하게 된다.
그러므로, 빅 데이터 분석에는 프로세스 처리를 보다 빠르게 수행하고 데이터를 효율적으로 처리하는 것이 관건이 되고 있다.
종래 통계를 위한 프로그래밍 언어(programming language)로는 SAS 툴(tool)이 있으며 그 성능이 매우 우수하다. 그러나, 상당한 고가의 비용이 소요되는 점이 단점이 있으며, 빅 데이터 처리시에는 그 처리 속도가 저하되는 단점이 있다. SPSS의 경우에는 사용하기가 간단하기는 하지만 빅 데이터를 처리하기에는 그 성능 자체가 부족하다. HADOOP의 경우 네트워크를 통한 분산 처리 언어로서 연결된 컴퓨터의 수에 따라 성능도 증가하지만, 사용하기가 어렵고 대규모의 투자 비용을 감수해야 한다는 문제점이 있다.
이에, 대규모의 투자 여력이나 비용을 감당할 수 없는 경우에는 빅 데이터 프로세스 사업에 접근하기가 용이하지 않다는 문제점이 있다.
한편, 기존의 빅 데이터 처리 방식은 주로 앞서 설명한 소프트웨어 툴에 의존하고 있는 실정이다. 빅 데이터 처리를 위해 로직 회로(logic circuit)를 이용하고 있지는 않다. 그러나, 일반적으로 동일한 프로세스를 수행할 때 계산 속도는 소프트웨어 구현 방식보다 하드웨어 구현 방식이 훨씬 빠르고 효율적이라는 것은 잘 알려져 있다.
그러나, 빅 데이터 프로세스는 사용자가 요구하는 빅 데이터에 따라 그 프로세스가 다변화되기 때문에 특정한 하드웨어 로직 회로로 구현하기에는 무리한 점이 있다. 이에, 빅 데이터 처리의 계산량이 많고 계산 속도가 느리더라도 고가의 통계 소프트웨어에 의존하고만 있는 실정이다.
공개특허공보 10-2015-0033453이나 공개특허공보 10-2014-0125312는 빅 데이터 처리를 위한 다양한 처리 속도 개선 방식을 개시하고 있다. 그러나, 이러한 문헌 이외의 다른 문헌들도 계산량과 계산 속도의 개선을 위해 빅 데이터 프로세스 자체에 대하여 하드웨어 모듈을 병용하거나 이용하는 예는 없다. 또한, 하드웨어와 소프트웨어를 병용할 때 어떠한 방식으로 혼용하여 효율을 높일지에 대해서도 전혀 개시된 바 없다.
10-2015-0033453 10-2014-0125312
본 발명의 목적은 R 언어 기반 빅데이터 처리용 FPGA 시스템을 제공하는 데 있다.
본 발명의 다른 목적은 R 언어 기반 빅데이터 처리용 FPGA 방법을 제공하는 데 있다.
상술한 본 발명의 목적에 따른 R 언어 기반 빅데이터 처리용 FPGA 시스템은, 빅 데이터(big data)를 처리하기 위한 R 언어 처리 장치로부터 R 언어 기반 코드(code) 및 데이터를 입력받고, FPGA(field programmable gate array) 연산에 의한 FPGA 처리 데이터를 상기 R 언어 처리 장치로 전달하는 R 언어 인터페이스부; 상기 R 언어 인터페이스부로부터 입력받은 R 언어 기반 코드를 분석하여 상기 입력받은 데이터 중에서 하드웨어 연산이 수행될 FPGA 분류 데이터를 분류하고, 상기 분류된 FPGA 분류 데이터의 FPGA 연산값에 해당되는 상기 FPGA 처리 데이터를 전달받고 전달받은 FPGA 처리 데이터를 상기 R 언어 인터페이스부로 전달하는 코드분석/데이터분류부; 상기 코드분석/데이터분류부에서 분류된 FPGA 분류 데이터를 전달하고, 상기 FPGA 분류 데이터의 FPGA 연산값에 해당되는 FPGA 처리 데이터를 전달받아 상기 코드분석/데이터분류부로 전달하는 FPGA 인터페이스부를 포함하는 R언어/FPGA 전용 인터페이스 모듈과, 상기 FPGA 인터페이스부로부터 전달받은 FPGA 분류 데이터에 대해 FPGA 연산을 수행하여 상기 FPGA 처리 데이터를 산출하고 산출된 FPGA 처리 데이터를 상기 FPGA 인터페이스부로 전달하는 FPGA 처리 모듈을 포함하도록 구성될 수 있다.
여기서, 상기 FPGA 처리 모듈은, 상기 FPGA 분류 데이터 중에서 통계 처리를 요하는 통계 데이터에 대하여 평균을 계산하는 평균 계산부와, 상기 통계 데이터와 상기 평균 계산부에서 계산된 평균과 관측값의 편차를 계산하는 편차 계산부와, 상기 계산된 평균과 상기 계산된 편차를 이용하여 분산을 계산하는 분산 계산부와, 상기 계산된 평균과 상기 계산된 편차를 이용하여 회귀 분석을 수행하여 설명력 값을 계산하는 설명력 계산부와, 상기 통계 데이터에 대해 회귀 분석을 수행하여 정렬 후 각각 백분위 25%, 50%, 75%, 100%에 해당하는 4분위수 값을 계산하는 4분위수 계산부와, 상기 통계 데이터와 상기 계산된 4분위수 값의 4분위 범위(IQR)을 이용하여 이상치(outlier)에 해당되는 FPGA 처리 데이터를 계산하여 출력하는 이상치 계산부를 포함하는 통계 처리용 FPGA를 포함하도록 구성될 수 있다.
그리고 상기 FPGA 처리 모듈은, 상기 FPGA 분류 데이터 중에서 검색 처리를 요하는 검색 데이터를 분산하여 수행시키는 검색 분산 처리부와 상기 검색 분산 처리부에서 분산하여 수행시키는 검색 데이터를 검색하여 상기 FPGA 처리 데이터를 출력하는 제1 검색부 내지 제n 검색부를 포함하는 검색 처리용 FPGA를 포함하도록 구성될 수 있다.
그리고 상기 FPGA 처리 모듈은, 상기 FPGA 분류 데이터 중에서 정렬 처리를 요하는 정렬 데이터에 대하여 정렬 처리를 병렬 수행하는 제1 정렬부 내지 제n 정렬부와, 상기 제1 정렬부 내지 제n 정렬부에서 정렬 처리가 병렬 수행된 데이터를 취합하여 최종 정렬 처리를 수행하여 상기 FPGA 처리 데이터를 출력하는 최종 정렬부를 포함하도록 구성될 수 있다.
상술한 본 발명의 다른 목적에 따른 R 언어 기반 빅데이터 처리용 FPGA 방법은, R언어/FPGA 전용 인터페이스 모듈의 R 언어 인터페이스부가 빅 데이터(big data)를 처리하기 위한 R 언어 처리 장치로부터 R 언어 기반 코드(code) 및 데이터를 입력받고 입력받은 R 언어 기반 코드 및 데이터를 상기 R 언어/FPGA 전용 인터페이스 모듈의 코드분석/데이터분류부로 전달하는 단계; 상기 R언어/FPGA 전용 인터페이스 모듈의 코드분석/데이터분류부가 상기 R 언어 인터페이스부로부터 입력받은 R 언어 기반 코드를 분석하여 상기 입력받은 데이터 중에서 하드웨어 연산이 수행될 FPGA 분류 데이터를 분류하는 단계; 상기 R언어/FPGA 전용 인터페이스 모듈의 FPGA 인터페이스부가 상기 분류된 FPGA 분류 데이터를 FPGA 처리 모듈로 전달하는 단계; 상기 FPGA 처리 모듈이 상기 FPGA 인터페이스부로부터 전달받은 FPGA 분류 데이터에 대해 FPGA 연산을 수행하여 FPGA 처리 데이터를 산출하고 산출된 FPGA 처리 데이터를 상기 FPGA 인터페이스부로 전달하는 단계; 상기 FPGA 인터페이스부가 상기 FPGA 처리 데이터를 전달받아 상기 코드분석/데이터분류부로 전달하는 단계; 상기 코드분석/데이터분류부가 상기 FPGA 처리 데이터를 전달받고 전달받은 FPGA 처리 데이터를 상기 R 언어 인터페이스부로 전달하는 단계; 상기 R 언어 인터페이스부가 상기 FPGA 처리 데이터를 전달받아 상기 R 언어 처리 장치로 출력하는 단계를 포함하도록 구성될 수 있다.
이때, 상기 FPGA 처리 모듈이 상기 FPGA 인터페이스부로부터 전달받은 FPGA 분류 데이터에 대해 FPGA 연산을 수행하여 FPGA 처리 데이터를 산출하고 산출된 FPGA 처리 데이터를 상기 FPGA 인터페이스부로 전달하는 단계는, 통계 처리용 FPGA의 평균 계산부가 상기 FPGA 분류 데이터 중에서 통계 처리를 요하는 통계 데이터에 대하여 평균을 계산하고, 상기 통계 처리용 FPGA의 편차 계산부가 상기 통계 데이터와 상기 평균 계산부에서 계산된 평균과 관측값의 편차를 계산하고, 상기 통계 처리용 FPGA의 분산 계산부가 상기 계산된 평균과 상기 계산된 편차를 이용하여 분산을 계산하고, 상기 통계 처리용 FPGA의 설명력 계산부가 상기 계산된 평균과 상기 계산된 편차를 이용하여 회귀 분석을 수행하여 설명력 값을 계산하고, 상기 통계 처리용 FPGA의 4분위수 계산부가 상기 통계 데이터에 대해 회귀 분석을 수행하여 정렬 후 각각 백분위 25%, 50%, 75%, 100%에 해당하는 4분위수 값을 계산하고, 상기 상기 통계 처리용 FPGA의 이상치 계산부가 4분위수 값의 4분위 범위(IQR)을 이용하여 이상치(outlier)에 해당되는 FPGA 처리 데이터를 계산하여 상기 FPGA 처리 데이터를 출력하도록 구성될 수 있다.
그리고 상기 FPGA 처리 모듈이 상기 FPGA 인터페이스부로부터 전달받은 FPGA 분류 데이터에 대해 FPGA 연산을 수행하여 FPGA 처리 데이터를 산출하고 산출된 FPGA 처리 데이터를 상기 FPGA 인터페이스부로 전달하는 단계는, 검색 처리용 FPGA의 검색 분산 처리부가 상기 FPGA 분류 데이터 중에서 검색 처리를 요하는 검색 데이터를 분산하여 수행시키고, 상기 검색 처리용 FPGA의 제1 검색부 내지 제n 검색부가 상기 검색 분산 처리부에서 분산하여 수행시키는 검색 데이터를 검색하여 상기 FPGA 처리 데이터를 출력하도록 구성될 수 있다.
그리고 상기 FPGA 처리 모듈이 상기 FPGA 인터페이스부로부터 전달받은 FPGA 분류 데이터에 대해 FPGA 연산을 수행하여 FPGA 처리 데이터를 산출하고 산출된 FPGA 처리 데이터를 상기 FPGA 인터페이스부로 전달하는 단계는, 정렬 처리용 FPGA의 제1 정렬부 내지 제n 정렬부가 상기 FPGA 분류 데이터 중에서 정렬 처리를 요하는 정렬 데이터에 대하여 정렬 처리를 병렬 수행하고, 상기 정렬 처리용 FPGA의 최종 정렬부가 상기 제1 정렬부 내지 제n 정렬부에서 정렬 처리가 병렬 수행된 데이터를 취합하여 최종 정렬 처리를 수행하여 상기 FPGA 처리 데이터를 출력하도록 구성될 수 있다.
상술한 R 언어 기반 빅데이터 처리용 FPGA 시스템 및 방법에 의하면, R 언어에 기반하여 빅 데이터를 처리하되 통계, 검색, 정렬과 같이 수없이 반복되는 계산에 대해서는 FPGA를 이용하여 빠르게 처리하도록 구성됨으로써, 빅 데이터 프로세스의 계산 속도를 높이고 처리 부담을 확연히 줄이는 효과가 있다.
또한, 소프트웨어는 무료인 R 언어 툴을 이용하고, 하드웨어는 FPGA를 이용함으로써, 그 소요 비용을 줄일 수 있기 때문에 누구든지 쉽게 빅데이터 사업에 진출할 수 있도록 그 진입 장벽을 낮춰줄 수 있는 효과도 있다.
특히, FPGA를 이용하여 필요에 따라 그 계산 논리를 변경하면서 필요한 논리 계산을 확장하거나 축소할 수 있기 때문에 알고리즘 변경이 많은 빅 데이터 프로세스에 매우 유연하게 대처할 수 있다는 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 R 언어 기반 빅데이터 처리용 FPGA 시스템의 블록 구성도이다.
도 2a는 본 발명의 일 실시예에 따른 통계 처리용 FPGA의 블록 구성도이다.
도 2b는 본 발명의 일 실시예에 따른 4분위수 계산부를 설명하기 위한 도면이다.
도 2c는 본 발명의 일 실시예에 따른 검색 처리용 FPGA의 블록 구성도이다.
도 2d는 본 발명의 일 실시예에 따른 정렬 처리용 FPGA의 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 R 언어 기반 빅데이터 처리용 FPGA 방법의 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 발명을 실시하기 위한 구체적인 내용에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 R 언어 기반 빅데이터 처리용 FPGA 시스템의 블록 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 R 언어 기반 빅데이터 처리용 FPGA 시스템(이하, '빅데이터 처리용 FPGA 시스템'이라 함)(100)은 R언어/FPGA 전용 인터페이스 모듈(110) 및 FPGA 처리 모듈(120)을 포함하도록 구성될 수 있다.
빅데이터 처리용 FPGA 시스템(100)은 소프트웨어로 구성되는 R언어/FPGA 전용 인터페이스 모듈(110)이 하드웨어로 구성되는 FPGA 처리 모듈(120)을 포함하며, R언어/FPGA 전용 인터페이스 모듈(110)이 R 언어 처리 장치(200)와 FPGA 처리 모듈(120)간의 인터페이싱을 수행하도록 구성된다.
여기서, R 언어 처리 장치(200)는 R 언어에 기반하여 빅 데이터를 처리하는 소프트웨어로 구성된다.
R언어/FPGA 전용 인터페이스 모듈(110)은 이러한 R 언어 처리 장치(200)와 FPGA 처리 모듈(120)간에서 데이터 처리나 코드 수행을 R언어/FPGA 전용 인터페이스 모듈(110)에서 수행할지 또는 R 언어 처리 장치(200)에서 수행할지를 결정하도록 구성될 수 있다.
빅데이터 처리용 FPGA 시스템(100)은 기존과 달리 하드웨어와 소프트웨어를 병용하여 빅 데이터의 처리 속도를 개선하고 효율을 높이도록 구성된다. 검색, 통계, 정렬과 같이 변수를 자주 참조하고 동일한 반복적인 계산을 자주하는 프로세스에 대해서는 처리 속도가 높은 하드웨어로 구성되는 FPGA 처리 모듈(120)에서 반복 처리하도록 구성된다. 그리고 R언어/FPGA 전용 인터페이스 모듈(110)은 FPGA 처리 모듈(120)에서 처리된 결과와 해당 코드를 R 언어 처리 장치(200)로 리턴(return)하도록 구성될 수 있다. 이에, R 언어 처리 장치(200)는 반복 수행되는 검색, 정렬 등의 프로세스에 대해 FPGA 처리 모듈(120)에서 처리를 수행하기 때문에 보다 쉽게 나머지 연산과 프로세스를 수행할 수 있게 된다.
즉, 빅 데이터 분석의 특성상 간단하고 반복적인 계산이 많은데, 이러한 계산 프로세스는 하드웨어에서 따로 처리하여 리턴(retrun)하도록 하는 데 특징이 있다. 그리고 알고리즘 변경이 잦은 빅 데이터 분석 알고리즘의 특성을 고려하여 변경성과 확장성이 우수한 FPGA 알고리즘을 쉽고 빠르게 변경하여 적용할 수 있다.
이하, 세부적인 구성에 대하여 설명한다.
R언어/FPGA 전용 인터페이스 모듈(110)은 R 언어 인터페이스부(111), 코드분석/데이터분류부(112) 및 FPGA 인터페이스부(113)를 포함하도록 구성될 수 있다.
R언어/FPGA 전용 인터페이스 모듈(110)는 소프트웨어로 구성되는 R 언어 처리 장치(200)로부터 코드와 데이터를 수신하여 하드웨어로 구성되는 FPGA 처리 모듈(120)에서 처리할 코드와 데이터를 분류하고 이를 FPGA 처리 모듈(120)로 전달한다. 그리고 FPGA 처리 모듈(120)에서 처리한 데이터와 해당 코드를 R 언어 처리 장치(200)로 리턴(return)하도록 구성된다.
R 언어 인터페이스부(111)는 빅 데이터(big data)를 처리하기 위한 R 언어 처리 장치(200)로부터 R 언어 기반 코드(code) 및 데이터를 입력받도록 구성될 수 있다.
여기서, R 언어 처리 장치(200)는 C 언어 등의 컴퓨터 랭귀지로 코딩(coding)될 수 있으며, 이를 R 언어로 변환하여 수행하도록 구성될 수 있다. 기본적으로는 R 언어 처리 장치(200) 자체적으로 빅 데이터의 처리와 연산이 모두 수행될 수 있도록 구성된다.
R 언어 인터페이스부(111)는 R 언어 처리 장치(200)로부터 수신한 코드와 데이터를 코드분석/데이터분류부(112)로 전달하도록 구성될 수 있다.
코드분석/데이터분류부(112)는 R 언어 인터페이스부(111)로부터 입력받은 R 언어 기반 코드를 분석하여 그 입력받은 데이터 중에서 하드웨어 연산이 수행될 FPGA 분류 데이터를 분류해내도록 구성될 수 있다.
여기서, FPGA 분류 데이터는 주로 정렬, 통계, 검색과 같이 빅 데이터 연산과 처리에서 수없이 반복 수행되는 반복적인 연산 데이터가 될 수 있다. 빅 데이터 분석 알고리즘에서는 수없이 단순 반복되어 로드(load)가 걸리는 통계, 검색, 정렬과 같은 처리 연산이 많다. 이러한 코드의 연산을 소프트웨어인 R 언어 처리 장치(200)를 이용하지 않고 하드웨어인 FPGA 처리 모듈(120)을 이용하여 신속하게 처리하여 그 결과를 받아보고 이용할 수 있도록 구성된다.
R 언어는 주로 통계 계산과 그래픽을 위한 소프트웨어 환경을 제공하며 무료 제공이므로 누구든지 쉽게 접근할 수 있다는 장점이 있다. 또한, 그 성능이 SAS에 근접하므로 매우 유용하다. 다만 빅 데이터 처리에 있어서는 성능 저하가 조금 우려될 수 있으나, 본 발명에선 FPGA 하드웨어 구성을 채택하여 이러한 단점을 극복한다.
코드분석/데이터분류부(112)는 FPGA 분류 데이터를 FPGA 인터페이스부(113)로 전달하고, FPGA 인터페이스부(113)는 이 FPGA 분류 데이터를 FPGA 처리 모듈(120)로 출력하도록 구성될 수 있다.
FPGA 처리 모듈(120)은 FPGA 인터페이스부(113)에서 출력된 FPGA 분류 데이터를 입력받아 FPGA 연산을 수행하여 FPGA 처리 데이터를 산출하도록 구성될 수 있다.
FPGA 처리 모듈(120)은 FPGA 처리 데이터를 FPGA 인터페이스부(113)로 출력하도록 구성될 수 있다. FPGA 인터페이스부(113)는 FPGA 처리 데이터를 입력받아 코드분석/데이터분류부(112)로 전달하도록 구성될 수 있다.
코드분석/데이터분류부(112)는 FPGA 분류 데이터의 FPGA 연산값에 해당되는 FPGA 처리 데이터를 전달받고 전달받은 FPGA 처리 데이터를 R 언어 인터페이스부(111)로 전달하도록 구성될 수 있다.
R 언어 인터페이스부(111)는 FPGA 처리 데이터를 R 언어 처리 장치(200)로 리턴하며, R 언어 처리 장치(200)는 이미 처리된 FPGA 처리 데이터를 이용하여 보다 빠르고 편리하게 나머지 빅 데이터 연산을 수행할 수 있다.
도 2a는 본 발명의 일 실시예에 따른 통계 처리용 FPGA의 블록 구성도이다.
도 2a를 참조하면, 본 발명의 일 실시예에 따른 통계 처리용 FPGA(121)는 평균 계산부(121a), 편차 계산부(121b), 분산 계산부(121c), 설명력 계산부(121d), 4분위수 계산부(121e) 및 이상치 계산부(121f)를 포함하도록 구성될 수 있다.
이하, 세부적인 구성에 대하여 설명한다.
평균 계산부(121a)는 제2 분류 데이터 중에서 통계 처리를 요하는 통계 데이터에 대하여 평균을 계산하도록 구성될 수 있다. 통계 데이터가 X1, X2, ... , Xn인 경우 평균 Xa는 다음 수학식 1과 같이 계산된다.
Figure 112015066258355-pat00001
편차 계산부(121b)는 통계 데이터와 평균 계산부(121a)에서 계산된 평균과 관측값의 차이를 계산하도록 구성될 수 있다. 편차는 다음 수학식 2와 같이 계산될 수 있다.
Figure 112015066258355-pat00002
분산 계산부(121c)는 평균 계산부(121a)의 평균과 편차 계산부(121b)의 편차를 이용하여 분산을 계산하도록 구성될 수 있다. 분산은 다음 수학식 3과 같이 계산될 수 있다.
Figure 112015066258355-pat00003
설명력 계산부(121d)는 분산을 이용하여 회귀 분석을 수행하여 설명력 값을 계산하도록 구성될 수 있다.
변수의 분산정도를 살펴보는 것은 중요한 것이지만 많은 사회과학자는 분산을 계산하여 변수의 분산정도를 조사하는 것이 아니라, 어떤 변수 y의 분산을 다른 변수에 의해 설명하는데 흥미를 가지고 있다. 선형회귀분석에 있어서는 종속변수의 분산이 어느 정도 독립변수에 의해 설명되었는가가 결정계수 R2에 의해 표현된다. 구체적인 수식은 다음과 같이 된다.
Figure 112015066258355-pat00004
여기에서 는 회귀 분석에서의 예측값과 실제의 관측값에서의 오차를 나타내고 있다. 주의해야 할 것은 변수의 분산은 변수의 측정 방법이나 지역적인 요인, 시대에 의한 요인에 좌우되기 때문에 결정 계수는 표본간의 비교에는 무의미하다는 것이다. 즉, 선형 회귀 분석에 있어서 결정계수의 크기는 동일한 표본에 기초한 복수 모델의 우열을 판단할 때에만 논의의 단서를 제공하게 된다.
이 값을 R2으로 나타내고 결정계수라 이름하여 회귀식의 적합도를 재는 척도로 하고 있다. 결정계수는 그 값이 1에 가까울수록 회귀식의 적합도는 높아진다. 여기서, R2은 0≤R2≤1이다.
4분위수 계산부(121e)는 통계 데이터에 대해 회귀 분석을 수행하여 정렬 후 각각 백분위 25%, 50%, 75%, 100%에 해당하는 4분위수 값을 계산하도록 구성될 수 있다.
도 2b는 본 발명의 일 실시예에 따른 4분위수 계산부를 설명하기 위한 도면이다.
도 2b에서 보듯이, 4분위수는 자료를 크기 순으로 배열하고, 누적 백분율을 4분한 각 점에 해당하는 값을 말한다. 제1 사분위수는 누적 백분율이 25%에 해당하는 점수이고, 제2 사분위수는 누적 백분율이 50%, 제 3사분위수는 75%, 제 4사분위수는 100%에 해당하는 점수이다. 특히, 제2 사분위수는 누적 백분율이 50%이므로 개념적으로 중앙값과 동일하다.
여기서, 중앙값(median)은 말그대로 중앙값 50%의 위치이다.
중앙값은 짝수일 경우 2개가 될 수도 있고, 그것의 평균이 중앙값이 될 수도 있다. 홀수일 경우 중앙값은 1개가 된다.
그리고 박스(Box)는 25%(Q1) ~75%(Q3)까지 값들을 박스로 둘러 쌓는다.
그리고 수염(whiskers)은 박스의 각 모서리 (Q1, Q3)로부터 IQR(inter quartile range)의 1.5배 내에 있는 가장 멀리 떨어진 데이터 점까지 이어져 있는 것을 의미한다. IQR은 Q3 - Q1의 값이다.
그리고 이상치(outlier)는 수염(whiskers)보다 바깥쪽에 데이터가 존재할 때 이상치로 분류된다.
이상치를 구하기 위해서는 결국 수염을 이용하게 되는데, 이때 보통 1.5를 IQR에 곱한것으로 구한 수염을 이용한다.
다시 도 2a를 참조한다. 이상치 계산부(121f)는 통계 데이터와 4분위수 값의 4분위 범위(IQR)을 이용하여 이상치(outlier)에 해당되는 FPGA 처리 데이터를 계산하도록 구성될 수 있다.
이상치(Outlier)라고 하면 특정 데이터 변수의 분포에서 비정상적으로 벗어난 값을 뜻한다.
관측된 데이터의 범위에서 많이 벗어난 아주 작은 값이나 아주 큰 값을 말한다. 어떤 의사 결정을 하는데 필요한 데이터를 분석할 경우 이렇게 이상한 값들에 의해서 의사 결정에 영향이 미칠 수 있으므로 이를 제거하는 것이 좋다.
도 2c는 본 발명의 일 실시예에 따른 검색 처리용 FPGA의 블록 구성도이다.
도 2c를 참조하면, 본 발명의 일 실시예에 따른 검색 처리용 FPGA(122)는 검색 분산 처리부(122a) 및 제1 검색부 내지 제n 검색부(122b)를 포함하도록 구성될 수 있다.
이하, 세부적인 구성에 대하여 설명한다.
검색 분산 처리부(122a)는 제2 분류 데이터 중에서 검색 처리를 요하는 검색 데이터를 분산하여 수행시키도록 구성될 수 있다. 검색 분산 처리부(122a)는 검색어를 제1 검색부 내지 제n 검색부(122b)에 각각 분산하여 나누어 줄 수 있다.
검색 분산 처리부(122a)는 서로 다른 검색어를 동일 검색부에서 검색하거나 동일 검색어를 서로 다른 검색부에서 검색할 수 있도록 분산하는 것으로 구성될 수 있다.
제1 검색부 내지 제n 검색부(122b)는 검색 분산 처리부(122a)에서 분산하여 수행시키는 검색 데이터를 검색하여 FPGA 처리 데이터를 출력하도록 구성될 수 있다.
도 2d는 본 발명의 일 실시예에 따른 정렬 처리용 FPGA의 블록 구성도이다.
도 2d를 참조하면, 본 발명의 일 실시예에 따른 정렬 처리용 FPGA(123)는 제1 정렬부 내지 제n 정렬부(123a)및 최종 정렬부(123b)를 포함하도록 구성될 수 있다.
이하, 세부적인 구성에 대하여 설명한다.
제1 정렬부 내지 제n 정렬부(123a)는 제2 분류 데이터 중에서 정렬 처리를 요하는 정렬 데이터에 대하여 주어진 정렬 요소에 따라 정렬 처리를 병렬 수행하도록 구성될 수 있다.
최종 정렬부(123b)는 제1 정렬부 내지 제n 정렬부(123a)에서 정렬 처리가 병렬 수행된 데이터를 취합하여 최종 정렬 처리를 수행하고 FPGA 처리 데이터를 출력하도록 구성될 수 있다. 이때, 데이터가 많을수록 그 단계가 늘어날 수 있다.
도 3은 본 발명의 일 실시예에 따른 R 언어 기반 빅데이터 처리용 FPGA 방법의 흐름도이다.
도 3을 참조하면, 먼저 R언어/FPGA 전용 인터페이스 모듈(110)의 R 언어 인터페이스부(111)가 빅 데이터(big data)를 처리하기 위한 R 언어 처리 장치(200)로부터 R 언어 기반 코드(code) 및 데이터를 입력받고 입력받은 R 언어 기반 코드 및 데이터를 R 언어/FPGA 전용 인터페이스 모듈(110)의 코드분석/데이터분류부(112)로 전달한다(S101).
다음으로, R언어/FPGA 전용 인터페이스 모듈(110)의 코드분석/데이터분류부(112)가 R 언어 인터페이스부(111)로부터 입력받은 R 언어 기반 코드를 분석하여 입력받은 데이터 중에서 하드웨어 연산이 수행될 FPGA 분류 데이터를 분류한다(S102).
다음으로, R언어/FPGA 전용 인터페이스 모듈(110)의 FPGA 인터페이스부(113)가 분류된 FPGA 분류 데이터를 FPGA 처리 모듈(120)로 전달한다(S103).
다음으로, FPGA 처리 모듈(120)이 FPGA 인터페이스부(113)로부터 전달받은 FPGA 분류 데이터에 대해 FPGA 연산을 수행하여 FPGA 처리 데이터를 산출하고 산출된 FPGA 처리 데이터를 FPGA 인터페이스부(113)로 전달한다(S104).
여기서, 통계 처리용 FPGA(121)의 평균 계산부 (121a)가 FPGA 분류 데이터 중에서 통계 처리를 요하는 통계 데이터에 대하여 평균을 계산하고, 통계 처리용 FPGA(121)의 편차 계산부(121b)가 통계 데이터와 평균 계산부(121a)에서 계산된 평균과 관측값의 편차를 계산하고, 통계 처리용 FPGA(121)의 분산 계산부(121c)가 계산된 평균과 계산된 편차를 이용하여 분산을 계산하고, 통계 처리용 FPGA(121)의 설명력 계산부(121d)가 계산된 평균과 계산된 편차를 이용하여 회귀 분석을 수행하여 설명력 값을 계산하고, 통계 처리용 FPGA(121)의 4분위수 계산부(121e)가 통계 데이터에 대해 회귀 분석을 수행하여 정렬 후 각각 백분위 25%, 50%, 75%, 100%에 해당하는 4분위수 값을 계산하고, 통계 처리용 FPGA(121)의 이상치 계산부(121f)가 통계 데이터와 4분위수 값의 4분위 범위(IQR)을 이용하여 이상치(outlier)에 해당되는 FPGA 처리 데이터를 계산하도록 구성될 수 있다.
그리고 검색 처리용 FPGA(122)의 검색 분산 처리부(122a)가 제2 분류 데이터 중에서 검색 처리를 요하는 검색 데이터를 분산하여 수행시키고, 검색 처리용 FPGA(122)의 제1 검색부 내지 제n 검색부(122b)가 검색 분산 처리부(122a)에서 분산하여 수행시키는 검색 데이터를 검색하여 FPGA 처리 데이터를 출력하도록 구성될 수 있다.
그리고 정렬 처리용 FPGA(123)의 제1 정렬부 내지 제n 정렬부(123a)가 제2 분류 데이터 중에서 정렬 처리를 요하는 정렬 데이터에 대하여 정렬 처리를 병렬 수행하고, 정렬 처리용 FPGA(123)의 최종 정렬부(123b)가 1 정렬부 내지 제n 정렬부(123a)에서 정렬 처리가 병렬 수행된 데이터를 취합하여 최종 정렬 처리를 수행하여 FPGA 처리 데이터를 출력하도록 구성될 수 있다.
다음으로, FPGA 인터페이스부(113)가 FPGA 처리 데이터를 전달받아 코드분석/데이터분류부(112)로 전달한다(S105).
다음으로, 코드분석/데이터분류부(112)가 FPGA 처리 데이터를 전달받고 전달받은 FPGA 처리 데이터를 R 언어 인터페이스부(111)로 전달한다(S106).
다음으로, R 언어 인터페이스부(111)가 FPGA 처리 데이터를 전달받아 R 언어 처리 장치(200)로 출력한다(S107).
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
110: R언어/FPGA 전용 인터페이스 모듈
111: R 언어 인터페이스부
112: 코드분석/데이터분류부
113: FPGA 인터페이스부
120: FPGA 처리 모듈
121: 통계 처리용 FPGA
121a: 평균 계산부
121b: 편차 계산부
121c: 분산 계산부
121d: 설명력 계산부
121e: 4분위수 계산부
121f: 이상치 계산부
122: 검색 처리용 FPGA
122a: 검색 분산 처리부
122b: 제1 검색부 내지 제n 검색부
123: 정렬 처리용 FPGA
123a: 제1 정렬부 내지 제n 정렬부
123b: 최종 정렬부

Claims (4)

  1. 빅 데이터(big data)를 처리하기 위한 R 언어 처리 장치(200)로부터 R 언어 기반 코드(code) 및 데이터를 입력받고, FPGA(field programmable gate array) 연산에 의한 FPGA 처리 데이터를 상기 R 언어 처리 장치로 전달하는 R 언어 인터페이스부(111)와, 상기 R 언어 인터페이스부(111)로부터 입력받은 R 언어 기반 코드를 분석하여 상기 입력받은 데이터 중에서 하드웨어 연산이 수행될 FPGA 분류 데이터를 분류하고, 상기 분류된 FPGA 분류 데이터의 FPGA 연산값에 해당되는 상기 FPGA 처리 데이터를 전달받고 전달받은 FPGA 처리 데이터를 상기 R 언어 인터페이스부(111)로 전달하는 코드분석/데이터분류부(112)와, 상기 코드분석/데이터분류부(112)에서 분류된 FPGA 분류 데이터를 전달하고, 상기 FPGA 분류 데이터의 FPGA 연산값에 해당되는 FPGA 처리 데이터를 전달받아 상기 코드분석/데이터분류부(112)로 전달하는 FPGA 인터페이스부(113)를 포함하는 R언어/FPGA 전용 인터페이스 모듈(110);
    상기 FPGA 인터페이스부(113)로부터 전달받은 FPGA 분류 데이터에 대해 FPGA 연산을 수행하여 상기 FPGA 처리 데이터를 산출하고 산출된 FPGA 처리 데이터를 상기 FPGA 인터페이스부(113)로 전달하는 FPGA 처리 모듈(120)을 포함하고,
    상기 FPGA 처리 모듈(120)은,
    상기 FPGA 분류 데이터 중에서 통계 처리를 요하는 통계 데이터에 대하여 평균을 계산하는 평균 계산부(121a)와, 상기 통계 데이터와 상기 평균 계산부(121a)에서 계산된 평균과 관측값의 편차를 계산하는 편차 계산부(121b)와, 상기 계산된 평균과 상기 계산된 편차를 이용하여 분산을 계산하는 분산 계산부(121c)와, 상기 계산된 평균과 상기 계산된 편차를 이용하여 회귀 분석을 수행하여 설명력 값을 계산하는 설명력 계산부(121d)와, 상기 통계 데이터에 대해 회귀 분석을 수행하여 정렬 후 각각 백분위 25%, 50%, 75%, 100%에 해당하는 4분위수 값을 계산하는 4분위수 계산부(121e)와, 상기 통계 데이터와 상기 계산된 4분위수 값의 4분위 범위(IQR)을 이용하여 이상치(outlier)에 해당되는 FPGA 처리 데이터를 계산하여 출력하는 이상치 계산부(121f)를 포함하는 통계 처리용 FPGA(121);
    상기 FPGA 분류 데이터 중에서 검색 처리를 요하는 검색 데이터를 분산하여 수행시키는 검색 분산 처리부(122a)와 상기 검색 분산 처리부(122a)에서 분산하여 수행시키는 검색 데이터를 검색하여 상기 FPGA 처리 데이터를 출력하는 제1 검색부 내지 제n 검색부(122b)를 포함하는 검색 처리용 FPGA(122);
    상기 FPGA 분류 데이터 중에서 정렬 처리를 요하는 정렬 데이터에 대하여 정렬 처리를 병렬 수행하는 제1 정렬부 내지 제n 정렬부(123a)와, 상기 제1 정렬부 내지 제n 정렬부(123a)에서 정렬 처리가 병렬 수행된 데이터를 취합하여 최종 정렬 처리를 수행하여 상기 FPGA 처리 데이터를 출력하는 최종 정렬부(123b)를 포함하는 정렬 처리용 FPGA(123)를 포함하도록 구성되는 것을 특징으로 하는 R 언어 기반 빅데이터 처리용 FPGA 시스템.
  2. 삭제
  3. R언어/FPGA 전용 인터페이스 모듈(110)의 R 언어 인터페이스부(111)가 빅 데이터(big data)를 처리하기 위한 R 언어 처리 장치(200)로부터 R 언어 기반 코드(code) 및 데이터를 입력받고 입력받은 R 언어 기반 코드 및 데이터를 상기 R 언어/FPGA 전용 인터페이스 모듈(110)의 코드분석/데이터분류부(112)로 전달하는 단계;
    상기 R언어/FPGA 전용 인터페이스 모듈(110)의 코드분석/데이터분류부(112)가 상기 R 언어 인터페이스부(111)로부터 입력받은 R 언어 기반 코드를 분석하여 상기 입력받은 데이터 중에서 하드웨어 연산이 수행될 FPGA 분류 데이터를 분류하는 단계;
    상기 R언어/FPGA 전용 인터페이스 모듈(110)의 FPGA 인터페이스부(113)가 상기 분류된 FPGA 분류 데이터를 FPGA 처리 모듈(120)로 전달하는 단계;
    상기 FPGA 처리 모듈(120)이 상기 FPGA 인터페이스부(113)로부터 전달받은 FPGA 분류 데이터에 대해 FPGA 연산을 수행하여 FPGA 처리 데이터를 산출하고 산출된 FPGA 처리 데이터를 상기 FPGA 인터페이스부(113)로 전달하는 단계;
    상기 FPGA 인터페이스부(113)가 상기 FPGA 처리 데이터를 전달받아 상기 코드분석/데이터분류부(112)로 전달하는 단계;
    상기 코드분석/데이터분류부(112)가 상기 FPGA 처리 데이터를 전달받고 전달받은 FPGA 처리 데이터를 상기 R 언어 인터페이스부(111)로 전달하는 단계;
    상기 R 언어 인터페이스부(111)가 상기 FPGA 처리 데이터를 전달받아 상기 R 언어 처리 장치(200)로 출력하는 단계를 포함하고,
    상기 FPGA 처리 모듈(120)이 상기 FPGA 인터페이스부(113)로부터 전달받은 FPGA 분류 데이터에 대해 FPGA 연산을 수행하여 FPGA 처리 데이터를 산출하고 산출된 FPGA 처리 데이터를 상기 FPGA 인터페이스부(113)로 전달하는 단계는,
    통계 처리용 FPGA(121)의 평균 계산부(121a)가 상기 FPGA 분류 데이터 중에서 통계 처리를 요하는 통계 데이터에 대하여 평균을 계산하고, 상기 통계 처리용 FPGA의 편차 계산부(121b)가 상기 통계 데이터와 상기 평균 계산부(121a)에서 계산된 평균과 관측값의 편차를 계산하고, 상기 통계 처리용 FPGA(121)의 분산 계산부(121c)가 상기 계산된 평균과 상기 계산된 편차를 이용하여 분산을 계산하고, 상기 통계 처리용 FPGA(121)의 설명력 계산부(121d)가 상기 계산된 평균과 상기 계산된 편차를 이용하여 회귀 분석을 수행하여 설명력 값을 계산하고, 상기 통계 처리용 FPGA(121)의 4분위수 계산부(121e)가 상기 통계 데이터에 대해 회귀 분석을 수행하여 정렬 후 각각 백분위 25%, 50%, 75%, 100%에 해당하는 4분위수 값을 계산하고, 상기 통계 처리용 FPGA(121)의 이상치 계산부(121f)가 상기 통계 데이터와 상기 계산된 4분위수 값을 이용하여 특이값을 계산하여 상기 FPGA 처리 데이터를 출력하도록 구성되고,
    검색 처리용 FPGA(122)의 검색 분산 처리부(122a)가 상기 FPGA 분류 데이터 중에서 검색 처리를 요하는 검색 데이터를 분산하여 수행시키고, 상기 검색 처리용 FPGA(122)의 제1 검색부 내지 제n 검색부(122b)가 상기 검색 분산 처리부(122a)에서 분산하여 수행시키는 검색 데이터를 검색하여 상기 FPGA 처리 데이터를 출력하도록 구성되고,
    정렬 처리용 FPGA(123)의 제1 정렬부 내지 제n 정렬부(123a)가 상기 FPGA 분류 데이터 중에서 정렬 처리를 요하는 정렬 데이터에 대하여 정렬 처리를 병렬 수행하고, 상기 정렬 처리용 FPGA(123)의 최종 정렬부(123b)가 상기 제1 정렬부 내지 제n 정렬부(123a)에서 정렬 처리가 병렬 수행된 데이터를 취합하여 최종 정렬 처리를 수행하여 상기 FPGA 처리 데이터를 출력하도록 구성되는 R 언어 기반 빅데이터 처리용 FPGA 방법.
  4. 삭제
KR1020150097280A 2015-07-08 2015-07-08 R 언어 기반 빅데이터 처리용 fpga 시스템 및 방법 KR101678480B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150097280A KR101678480B1 (ko) 2015-07-08 2015-07-08 R 언어 기반 빅데이터 처리용 fpga 시스템 및 방법
PCT/KR2016/007407 WO2017007270A1 (ko) 2015-07-08 2016-07-08 R 언어 기반 빅 데이터 처리용 fpga 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150097280A KR101678480B1 (ko) 2015-07-08 2015-07-08 R 언어 기반 빅데이터 처리용 fpga 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101678480B1 true KR101678480B1 (ko) 2016-11-22

Family

ID=57540348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150097280A KR101678480B1 (ko) 2015-07-08 2015-07-08 R 언어 기반 빅데이터 처리용 fpga 시스템 및 방법

Country Status (2)

Country Link
KR (1) KR101678480B1 (ko)
WO (1) WO2017007270A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115148370B (zh) * 2022-07-01 2023-12-05 山东康网网络科技有限公司 一种生成dip病种目录的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020069631A (ko) * 2001-02-27 2002-09-05 (주)다이나릿시스템 고수준 프로그래밍 언어를 이용한 회로내 에뮬레이션을위한 장치 및 방법
KR20140125312A (ko) 2013-04-17 2014-10-28 주식회사 엔피코어 데이터 중심의 컴퓨팅 환경을 구축하기 위한 빅데이터 처리 방법 및 이를 수행하는 장치
KR20150033453A (ko) 2013-09-24 2015-04-01 주식회사 엘지씨엔에스 빅데이터 처리 방법, 이를 수행하는 빅데이터 처리 장치 및 이를 저장하는 기록매체

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100857903B1 (ko) * 2005-12-10 2008-09-10 한국전자통신연구원 상위 프로그래밍 언어를 이용한 디지털 시스템 설계 방법
US8336036B2 (en) * 2008-11-21 2012-12-18 Korea University Industrial & Academic Collaboration Foundation System and method for translating high programming level languages code into hardware description language code
KR100965856B1 (ko) * 2009-12-04 2010-06-24 주식회사 모뎀게이트 순차 실행 고급 프로그래밍 언어를 이용한 디지털 집적 회로 설계, 시뮬레이션 및 검증 방법 및 시스템
JP6009830B2 (ja) * 2012-06-15 2016-10-19 株式会社東芝 全閉形電動機

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020069631A (ko) * 2001-02-27 2002-09-05 (주)다이나릿시스템 고수준 프로그래밍 언어를 이용한 회로내 에뮬레이션을위한 장치 및 방법
KR20140125312A (ko) 2013-04-17 2014-10-28 주식회사 엔피코어 데이터 중심의 컴퓨팅 환경을 구축하기 위한 빅데이터 처리 방법 및 이를 수행하는 장치
KR20150033453A (ko) 2013-09-24 2015-04-01 주식회사 엘지씨엔에스 빅데이터 처리 방법, 이를 수행하는 빅데이터 처리 장치 및 이를 저장하는 기록매체

Also Published As

Publication number Publication date
WO2017007270A1 (ko) 2017-01-12

Similar Documents

Publication Publication Date Title
Guédon et al. Community detection in sparse networks via Grothendieck’s inequality
CN111435463A (zh) 数据处理方法及相关设备、系统
CN114329201A (zh) 深度学习模型的训练方法、内容推荐方法和装置
JP2018037009A (ja) クラスタ分析システム、クラスタ分析装置、クラスタ分析方法
US11645540B2 (en) Deep graph de-noise by differentiable ranking
CN111582488A (zh) 一种事件推演方法及装置
Goslee Correlation analysis of dissimilarity matrices
Tavakoli et al. Event tracking for real-time unaware sensitivity analysis (EventTracker)
CN112541635A (zh) 业务数据统计预测方法、装置、计算机设备及存储介质
CN112487146A (zh) 一种法律案件争议焦点获取方法、装置以及计算机设备
Bi et al. Hybrid task prediction based on wavelet decomposition and ARIMA model in cloud data center
JP6658507B2 (ja) 負荷推定システム、情報処理装置、負荷推定方法、及び、コンピュータ・プログラム
CN112949914A (zh) 一种产业集群的识别方法、装置、存储介质及电子设备
KR101678480B1 (ko) R 언어 기반 빅데이터 처리용 fpga 시스템 및 방법
Xu et al. Efficient structured pruning based on deep feature stabilization
CN111190967A (zh) 用户多维度数据处理方法、装置及电子设备
Avrachenkov et al. Metastability in stochastic replicator dynamics
Lasserre et al. The empirical christoffel function in statistics and machine learning
Gupta et al. Complete analysis of a discrete-time batch service queue with batch-size-dependent service time under correlated arrival process: D-MAP/Gn (a, b)/1
Senoglu et al. Goodness-of-fit tests based on Kullback-Leibler information
CN114358024A (zh) 日志分析方法、装置、设备、介质和程序产品
Ryabov et al. Computational mechanics of molecular systems: Quantifying high-dimensional dynamics by distribution of Poincaré recurrence times
Sebaa et al. Multiobjective Optimization Using Cross‐Entropy Approach
JP4175001B2 (ja) 文書データ検索装置
Kaur et al. Blog response volume prediction using adaptive neuro fuzzy inference system

Legal Events

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

Payment date: 20191008

Year of fee payment: 4