KR20160112830A - 최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치 - Google Patents

최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치 Download PDF

Info

Publication number
KR20160112830A
KR20160112830A KR1020150039185A KR20150039185A KR20160112830A KR 20160112830 A KR20160112830 A KR 20160112830A KR 1020150039185 A KR1020150039185 A KR 1020150039185A KR 20150039185 A KR20150039185 A KR 20150039185A KR 20160112830 A KR20160112830 A KR 20160112830A
Authority
KR
South Korea
Prior art keywords
operator
cost
service
dag
node
Prior art date
Application number
KR1020150039185A
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 KR1020150039185A priority Critical patent/KR20160112830A/ko
Publication of KR20160112830A publication Critical patent/KR20160112830A/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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치에 관한 것이다. 본 발명에 따른 최적화된 태스크 기반 데이터 처리 서비스 생성 방법은, 데이터 처리 서비스에 대한 물리 연산자 DAG(Directed Acyclic Graph)를 구성하는 각 연산자 노드의 처리 비용을 산출하는 단계; 상기 산출된 각 연산자 노드의 처리 비용 정보 및 통합 판단 기준에 따라 연산자들을 통합하여 최적화된 물리 연산자 DAG를 생성하는 단계; 및 상기 서비스가 수행될 목표 시스템의 인터페이스를 이용하여 태스크 기반 DAG 서비스 흐름을 생성하는 단계를 포함한다.

Description

최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치{Method and Apparatus for Generating Optimal Task based Data Processing Service}
본 발명은 태스크 기반 데이터 처리 서비스 생성 방법 및 장치에 관한 것으로서, 구체적으로는 고급 데이터 처리 언어로 기술된 서비스로부터 생성된 연산자 흐름 서비스를 최적화된 태스크 기반 분산 데이터 처리 서비스로 변환하는 방법 및 장치에 관한 것이다.
빅데이터 플랫폼에는 다양한 대규모 데이터 처리 서비스 개발을 지원하기 위한 분산 데이터 처리 시스템이 있다. 분산 데이터 처리 시스템은 사용자가 프로그래밍 인터페이스를 이용하여 태스크 기반 서비스를 개발하여 실행하면 시스템이 자동으로 태스크 실행 환경(쓰레드, 프로세스 등), 태스크간 데이터 전달 환경(공유 메모리 이용, 네트워크 통신 등) 구성 및 태스크의 분산 배치 등 분산 병렬 처리 환경을 구성하여 수행하는 시스템이다. 대표적인 분산 데이터 처리 시스템으로 Map/Reduce 태스크로만 서비스를 구성할 수 있는 MapReduce 시스템, 데이터 처리 흐름대로 표현이 가능한 DAG(Directed Acyclic Graph) 형태의 태스크 기반 분산 데이터 처리 시스템인 Storm, Tez 등이 있다.
그러나, 이와 같은 태스크 기반 분산 데이터 처리 시스템은 API로 직접 태스크 로직 및 태스크 흐름을 구성하여야 하므로 개발 생산성이 떨어진다는 단점이 있다. 이를 보완하기 위해 고급 데이터 처리 언어를 제공하여 이를 기반으로 서비스를 구성할 수 있도록 지원하는 시스템이 개발 활용되고 있다. 대표적인 고급 데이터 처리 언어 제공 시스템으로 PigLatin 언어를 지원하는 Pig 시스템이 있다. Pig는 많은 응용에서 활용하는 주요 데이터 처리 기능을 연산자로 구성하고 연산자간의 처리 흐름을 고급 언어로 기술하여 사용할 수 있게 지원한다. Pig는 PigLatin으로 기술된 서비스를 해석하여 데이터 처리 연산자간의 흐름을 Map/Reduce 태스크 형태의 서비스로 변환하여 Hadoop의 MapReduce 시스템에 수행되게 해 주는 시스템이다. 최근에는 PigLatin 서비스를 DAG 형태의 태스크 서비스로 변환하여 DAG 태스크 기반 데이터 처리 시스템에서 수행해 주는 시스템도 개발되고 있다.
이와 같은 고급 언어 기반 데이터 처리 시스템에서 가장 큰 문제는 고급 언어를 해석하여 생성된 데이터 처리 연산자 흐름 서비스를 태스크 기반 데이터 처리 서비스로 변환시 태스크를 어떻게 구성하느냐에 따라 서비스 성능이 달라진다는 것이다. 태스크 수행의 동시성, 태스크 실행 환경 및 태스크간 데이터 전달 비용 등의 차이로 데이터 처리 서비스의 성능이 달라진다. 특히 지속적으로 발생하는 스트림 데이터를 처리하는 시스템에서는 서비스가 가동되고 나면 입력되는 스트림 데이터를 지속적으로 처리하기 위해 서비스를 구성하는 모든 태스크는 동시에 연속적으로 수행되므로 태스크 구성이 중요하다.
따라서, 본 발명은 전술한 사항을 고려하여 고급 언어로 기술된 데이터 처리 서비스를 분산 데이터 처리 시스템에서 실행시킬 때 처리 성능 및 자원 활용을 향상시키기 위해 고급 언어를 해석하여 생성된 연산자 흐름 서비스를 최적의 태스크 흐름으로 변환하는 방법 및 장치를 제공하고자 한다.
본 발명의 일 특징에 따른 최적화된 태스크 기반 데이터 처리 서비스 생성 방법은, 서비스에 대한 물리 연산자 DAG(Directed Acyclic Graph)를 구성하는 각 연산자 노드의 처리 비용을 산출하는 단계; 상기 산출된 각 연산자 노드의 처리 비용 정보 및 통합 판단 기준에 따라 연산자들을 통합하여 최적화된 물리 연산자 DAG를 생성하는 단계; 및 상기 서비스가 수행될 목표 시스템의 인터페이스를 이용하여 태스크 기반 DAG 서비스 흐름을 생성하는 단계를 포함한다.
상기 물리 연산자 DAG는 고급 데이터 처리 언어 기반 서비스의 구문 분석을 통해 생성된 것이다.
상기 방법은 고급 데이터 처리 언어 기반 서비스를 태스크 기반 분산 데이터 처리 시스템에서 실행되도록 태스크 기반 서비스로 변환하는 데이터 처리 시스템에서 수행될 수 있다.
본 발명의 다른 특징에 따른 최적화된 태스크 기반 데이터 처리 서비스 생성 장치는, 서비스에 대한 물리 연산자 DAG와 서비스에 할당될 컴퓨트 노드수를 입력 받는 입력 모듈; 상기 입력된 물리 연산자 DAG를 구성하는 각 연산자 노드의 처리 비용을 산출하는 연산자 노드 비용 산출 모듈; 및 상기 산출된 각 연산자 노드의 처리 비용 정보 및 선정된 통합 판단 기준에 따라 통합이 가능한 연산자들을 통합하여 최적화된 물리 연산자 DAG를 생성하는 연산자 노드 통합 모듈을 포함한다.
일 실시예에서, 상기 장치는 상기 서비스가 수행될 목표 시스템의 인터페이스를 이용하여 태스크 기반 DAG 서비스 흐름을 생성 및 출력하는 태스크 기반 DAG 서비스 흐름 생성 모듈을 더 포함할 수 있다.
본 발명의 실시예들에 따르면, 고급 데이터 처리 언어로 기술된 서비스를 DAG 태스크 형태의 데이터 처리 서비스로 변환함에 있어서 최적의 태스크 흐름을 구성함에 따라 다음과 같은 장점을 가진다.
첫째, 고급 데이터 처리 언어 기반 서비스를 DAG 기반 분산 데이터 처리 시스템에 최적화된 태스크 흐름 서비스로 변환할 수 있다.
둘째, 변환된 DAG 태스크 기반 데이터 처리 서비스 수행시 태스크 기반 데이터 처리 시스템의 태스크 배치 및 실행 방법에 따른 처리 성능 편차 감소 혹은 처리 성능이 향상된다.
셋째, 변환된 DAG 태스크 기반 데이터 처리 서비스 수행시 태스크 기반 데이터 처리 시스템의 태스크 배치 및 실행 방법에 따른 컴퓨팅 자원 활용 효율성 편차 감소 혹은 자원 활용 효율성이 향상된다.
도 1은 본 발명이 적용되는 고급 데이터 처리 언어 기반 서비스를 태스크 기반 데이터 서비스로 변환 및 실행하는 과정을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 최적화된 태스크 기반 서비스 생성 방법을 도시한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 물리 연산자 처리 비용 산출 과정을 도시한 흐름도이다.
도 4는 처리 연산자 노드의 기본 비용을 산출하는 일 예를 도시한다.
도 5는 처리 연산자 노드의 처리 비용 및 출력 레코드 정보를 산출하는 일 예를 도시한다.
도 6은 본 발명의 일 실시예에 따른 연산자 노드 통합 과정을 도시한 흐름도이다.
도 7는 본 발명의 일 실시예에 따른 최적화된 태스크 기반 서비스 생성 장치의 구성을 도시한 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
고급 데이터 처리 언어 기반 서비스를 태스크 기반 데이터 처리 서비스로 변환하는 방법은 크게 다음과 같이 3가지로 분류할 수 있다.
-서비스를 구성하는 모든 연산자를 통합하여 하나의 태스크로 변환(N-to-1)
-연산자별로 분할하여 별도의 태스크로 변환(N-to-N)
-최적화 방법에 따라 일부 연산자를 통합하여 태스크로 변환(N-to-M)
N-to-1 방식은 하나의 태스크로 동시 수행 가능한 모든 연산자를 통합하여 순차적으로 처리함으로써 자원을 제대로 활용하지 못하며 처리 시간 지연이 발생한다.
N-to-N 방식은 태스크별 자원 할당 및 태스크간 데이터 전달 오버헤드 등으로 인해 충분한 성능을 얻지 못할 가능성이 있다. 또한, 처리 부하가 큰 특정 태스크가 병목이 되어 전체 서비스 처리를 지연시키는 상황이 발생할 수 있다. 즉 연산자 종류에 따라 데이터 처리 태스크의 소요 자원량에 차이가 있는데 이를 고려하지 않고 모두 동일하게 별도의 태스크로 구성함에 따라 연산자별 자원 배분이 효율적으로 이루어지지 않아 전체 서비스 처리 속도를 지연시키는 상황이 발생할 수 있다.
그러므로, 고급 데이터 처리 언어 기반 서비스를 DAG 태스크 기반 데이터 처리 서비스로 변환시에는 적절한 태스크 구성이 중요하며 이와 같은 문제를 해결하기 위해 연산자들을 최적으로 통합하여 N-to-M 방식으로 변환하는 방식이 바람직하다.
이에 따라, 본 발명은 연산자의 처리 비용 정보를 사전 확보 및 통계적 방식으로 추정 가능한 환경에서 추정된 연산자의 처리 비용 정보를 이용하여 최적의 태스크 흐름을 생성하는 방법을 제안한다.
또한, 본 발명은 노드당 프로세서와 코어가 다수인 분산 컴퓨팅에서 태스크를 쓰레드로 실행 환경을 구성하는 분산 데이터 처리 시스템 환경을 고려하여 태스크간 데이터 전달 비용을 최소화하면서 동시 수행 쓰레드 수를 최대화하며 특정 태스크가 병목되지 않도록 부하를 균등하게 하는 최적의 태스크 흐름을 생성하는 방법을 제안한다.
구체적으로, 본 발명에서 최적의 태스크 흐름을 생성하는 방법은 다음과 같다.
- 각각의 연산자를 별도의 태스크로 구성시 실행 비용과 통합 태스크로 구성시 실행 비용과의 차이인 통합 이득을 고려하여 통합 대상을 선정한다. 즉, 태스크내에서 연산자간 데이터 전달 비용은 미비하므로 연산자 통합으로 연산자간 데이터 전달 비용 제거로 얻어지는 이득을 고려한다.
- 특정 태스크 수행이 병목되지 않도록 각 태스크 처리 비용을 분석하여 가능한 한 태스크 처리 비용을 평준화하는 방향으로 태스크를 구성한다.
- 서비스가 실행될 목표 시스템 노드의 컴퓨팅 능력을 고려하여 연산자들의 동시 수행을 가능한 한 유지하면서 태스크들을 통합한다. 일반적으로, 태스크 기반 분산 데이터 처리 시스템에서 태스크 쓰레드를 노드에 할당할 때 노드의 자원이 충분하다면 네트워크 기반 태스크간 데이터 전달 비용이 발생하지 않도록 같은 노드에 태스크 쓰레드를 먼저 할당하므로 이를 고려하여 태스크를 구성한다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.
도 1은 본 발명이 적용되는 고급 데이터 처리 언어 기반 서비스를 태스크 기반 스트림 서비스로 변환하여 실행하는 과정을 개략적으로 도시한 도면이다.
도시된 바와 같이, 고급 데이터 처리 언어를 물리적 연산자 DAG로 변환하는 과정(101 내지 104) 및 서비스 종료 요청(107)은 고급 데이터 처리 언어 지원 시스템(110)에서 수행되고, 태스크 서비스 실행(106) 및 서비스 종료(108)은 목표 시스템, 즉, 태스크 기반 데이터 처리 시스템(130)에서 수행되며, 본 발명에서 제안하는 최적화된 태스크 서비스 생성 과정(105)은 최적화된 태스크 서비스 생성 시스템(120)에서 수행될 수 있다. 도 1에는 고급 데이터 처리 언어 지원 시스템(110), 태스크 기반 데이터 처리 시스템(130) 및 최적화된 태스크 서비스 생성 시스템(120)이 각각 별개의 시스템으로 도시되어 있으나, 이는 설명의 편의상 이들 시스템을 논리적으로 구분하기 위한 것이지 물리적으로 구분하고자 함이 아닌 것을 본 기술분야의 당업자들은 충분히 이해할 것이다. 또한, 본 발명은 이들 각 시스템의 구체적인 하드웨어/소프트웨어 구성에 제한되지 않는다.
과정(101)은 고급 데이터 처리 언어 기반 서비스를 입력 받는 과정이다. 여기서, 고급 데이터 처리 언어라 함은 API(Application Programming Interface) 형태가 아닌 텍스트 기반의 기술 언어이다. 대표적으로, PigLatin 문법의 언어를 들 수 있다. PigLatin의 기본 문법은 [Alias] = [Operator] [Expression] 형태이다. 개발자는 이러한 형태로 된 일련의 PigLatin 구문을 이용하여 사용자 서비스의 입력, 처리 및 출력 과정을 기술할 수 있다. 다만, 스트림 데이터 처리인 경우에는 PigLatin의 Expression 부분에 윈도우 기술자가 추가된 것을 가정한다.
전술한 예는 PigLatin을 이용하여 사용자 서비스를 기술한 경우이나, 본 발명은 특정 유형의 고급 언어에 한정되는 것은 아니다. 예를 들어, SQL 형태로 표현된 서비스에도 적용 가능하다.
과정(102)은 입력된 고급 데이터 처리 언어 기반 서비스를 구문 분석하여 서비스의 논리적 흐름으로 표현하는 과정이다. 즉, 텍스트 기반의 서비스를 알리아스(Alias)와 Operator(연산자)로 분석하고 연산자에 해당되는 Expression(표현식)을 분석하여 구조화한다.
과정(103)은 논리 연산자로 변환된 서비스를 연산자간의 입출력 순서에 따라 DAG 형태로 구조화하는 과정이다. 즉, 입력 소스에서 시작하여 연산자들간에 순서를 정하고 마지막에 출력이 오도록 DAG 형태 논리 연산자 흐름 서비스로 표현한다.
과정(104)은 DAG 형태 논리 연산자 흐름 서비스를 연산자 의미 기반 최적화를 수행하여 DAG 형태 물리 연산자 흐름 서비스로 변환하는 과정이다. 연산자 의미 기반 최적화는 논리 연산자의 의미 및 물리 연산자의 기능 등을 고려하여 연산자 통합 혹은 타 연산자로 대체하여 DAG 형태 물리 연산자 흐름 서비스로 변환하는 것을 의미한다. 예를 들어, 데이터를 정렬하여 정렬 결과에 따라 앞에서부터 몇 개의 레코드만 결과를 출력하기 위해 Sort 연산자 다음에 Limit 연산자가 사용되는 경우에 이를 제한된 정렬 결과만 제공하는 하나의 Sort 물리 연산자로 대체할 수 있다.
과정(105)은 본 발명에서 제안하는 과정으로서, DAG 형태 물리 연산자 흐름 서비스에 대해 태스크 기반 최적화를 수행하여 최적화된 DAG 기반 태스크 흐름 서비스로 변환하는 과정이다. 목표 시스템(130)인 DAG 태스크 기반 데이터 처리 시스템의 인터페이스를 이용하여 태스크로 매핑함으로써 목표 시스템(130)에서 실행 가능한 DAG 형태 태스크 흐름 서비스로 변환한다.
과정(106)은 태스크 기반 처리 시스템(130)에서 실제 태스크 서비스를 실행하는 과정이다.
최종적으로, 고급 데이터 처리 언어 지원 시스템(110)에서 고급언어 서비스 종료가 요청되면(107), 태스크 기반 처리 시스템(130)에서의 태스크 기반 서비스는 종료된다(108).
이하에서는 본 발명에서 제안하는 과정(105)에 대해 좀더 구체적으로 설명한다.
도 2는 본 발명의 일 실시예에 따른 최적화된 태스크 기반 서비스 생성 방법을 도시한 흐름도이다.
단계(S210)에서, 서비스에 대한 물리 연산자 DAG와 서비스에 할당될 컴퓨트 노드수를 입력 받는다. 컴퓨트 노드수 미입력시에는 서비스에 할당될 컴퓨트 노드수 제한이 없는 것으로 간주한다.
단계(S220)에서, 상기 입력된 DAG를 구성하는 각 연산자 노드의 처리 비용을 산출한다. 일 실시예에서, 물리 연산자 노드 처리 비용은 물리 연산자 노드 로직 처리 비용과, 물리 연산자 노드로 데이터가 입력되는데 필요한 데이터 전달 비용을 합산한 값이다. 이 때, 데이터 전달 비용은 동일 프로세스내 쓰레드간 데이터 전달 비용과 상이한 프로세스간 데이터 전달 비용으로 별도로 산출될 수 있다. 물리 연산자 노드 처리 비용을 산출하는 구체적인 과정에 대해서는 도 3 내지 도 5를 참조하여 후술한다.
단계(S230)에서, 연산자 노드간 처리 비용 평준화를 위해 단계(S220)에서 산출된 물리 연산자 처리 비용 중 최대값 기반의 1차 처리 연산자 노드 통합을 수행한다.
단계(S240)에서, 1차 최적화된 DAG를 구성하는 연산자 노드 개수가 서비스에 할당된 컴퓨트 노드들에서 동시에 수행 가능한 쓰레드 수(즉, 컴퓨터 노드수 x 노드별 동시 수행 가능한 쓰레드 개수)를 초과하는지 검사한다.
연산자 노드 개수가 동시 수행 가능한 쓰레드 수를 초과할 경우에, 자원 확보 경쟁률을 줄이기 위해 태스크당 처리 비용 최대 값 기반의 2차 연산자 노드 통합을 추가적으로 수행할 수 있다(S250).
단계(S260)에서, 실제 서비스가 수행될 목표 시스템의 인터페이스를 이용하여 태스크 기반 DAG 서비스 흐름을 생성한다.
단계(S270)에서, 생성된 태스크 기반 DAG 서비스 흐름을 출력한다.
도 3은 본 발명의 일 실시예에 따른 물리 연산자 처리 비용 산출 과정을 도시한 흐름도이다.
단계(S310)에서, 물리 연산자 DAG를 입력 받는다.
DAG를 구성하는 모든 처리 연산자 노드들에 대한 기본 비용을 산출한다(S320, S330).
일 실시예에서, 처리 연산자 노드의 기본 비용은 처리 연산자 노드에 연결된 표현식 노드들의 기본 비용과 처리 연산자 자체에 소요되는 비용의 합이다.
도 4는 처리 연산자 노드의 기본 비용을 산출하는 일 예를 도시한다. 도시된 바와 같이, 처리 연산자 노드(410)의 기본 비용은 처리 연산자 자체에 소요되는 비용(Cop1)과 상기 연산자 노드에 연결된 표현식 노드들(411 내지 414)의 기본 비용의 합으로 산출된다. 이를 수식으로 표현하면 다음과 같다.
[수학식 1]
CNBop1 = Cop1 + CNBex1 + CNBex2
= Cop1 +(Cex1+C NBex3+C NBex4)+ C NBex2
= Cop1 +C ex1+C ex3+C ex4+C ex2
이와 같이, 연산자 노드의 기본 비용은 연산자 노드에 연결된 가장 끝단의 표현식 비용들과 연산자 자체 비용을 합산함으로써 산출될 수 있다. 표현식 비용 및 연산자 자체 비용은 사전에 정의된 비용으로 인스트럭션 수 계산 등에 의해 산출 가능하다.
기본 비용 산출이 완료되면, 입력 연산자 노드에 연결된 모든 sub-DAG에 대한 처리 비용 산출이 완료될 때까지(S340), 입력 연산자 노드의 출력 레코드 정보(예, 레코드 수 및 크기)를 산출하고(S350), sub-DAG를 구성하는 모든 처리 연산자에 대한 노드 처리 비용 및 출력 레코드 정보 산출이 완료될 때까지(S360), 노드의 처리 비용 및 출력 레코드 정보를 산출한다(S370, S380).
단계(S370)에서의 처리 연산자 노드에 대한 처리 비용은 연산자 노드의 처리 비용 및 선행 연산자 출력 레코드 정보를 활용하여 산출된다. 선행 연산자의 출력 레코드 정보가 준비되지 않았으면, 선행 연산자의 처리 비용을 먼저 산출하여 활용하여야 한다.
단계(S380)에서의 연산자 노드의 출력 레코드 정보 산출은 선행 연산자 출력 레코드 정보와 연산자 노드의 특성을 고려하여 산출된다.
모든 입력 연산자에 연결된 sub-DAG에 대한 처리가 끝나면 비용 정보가 추가된 물리 연산자 DAG를 출력한다(S390).
연산자 노드 처리 비용 (CNop ) 및 출력 레코드 정보 산출 세부 방법은 다음과 같다.
- 연산자 노드 처리 비용 (CNop )은 연산자 로직 처리 비용(Ccompu)과 데이터 전달 비용(Ccomm )을 합산함으로써 산출된다.
■ CNop = Ccompu + Ccomm
- 연산자 로직 처리 비용(Ccompu)은 연산자 노드 기본 처리 비용(CNBjoin, CNBsort 등)과 입력 레코드 수에 의해 결정된다.
■ Ccompu = 입력 레코드 수 * 연산자 노드 기본 처리 비용
■ 연산자 노드 기본 처리 비용은 단계(S330)에서 미리 구한 값으로서 연산자를 구성하는 표현식 기본 처리 비용들과 연산자 자체 비용을 합산한 값이다. 연산자 자체 비용과 표현식 자체 비용은 Cjoin, Csort, Cpredicate 등과 같이 사전에 결정될 수 있다.
- 데이터 전달 비용은 전달할 레코드 크기와 데이터 전달 방법별 비용(Cthead, Cprocess )에 의해 결정된다.
■ Ccomm = 입력 레코드 크기 * 데이터 전달 방법별 비용
■ 입력 레코드 크기 = 입력 레코드 수 * 평균 레코드 크기
- 데이터 전달 방법별 비용은 쓰레드간 전달 비용( Cthead )과 프로세스간 전달 비용( Cprocess )과 같이 사전에 결정되는 비용이다.
- 연산자에 윈도우가 직접 정의되지 않은 경우에, 연산자의 입력 레코드 크기는 선행 연산자의 출력 레코드 크기를 이용하여 결정된다.
- DAG의 시작점인 입력 연산자의 출력 레코드 수가 입력 연산자에 연결된 후행 연산자의 입력 레코드 수가 되며, 이를 기반으로 순차적으로 후행 연산자의 종류에 의해 출력 레코드 수를 산출할 수 있다.
- 윈도우가 정의된 입력 연산자의 출력 레코드 수는 레코드 기반 윈도우라면 정의된 레코드 수를 이용하고, 시간 기반 윈도우라면 사용자로부터 데이터 소스로부터 입력되는 레코드 수 평균 값을 입력 받을 수 있다. 윈도우가 미정의된 입력 연산자의 경우에는 운영 환경에 따라 출력 레코드를 1 혹은 데이터 소스로부터 입력되는 전체 레코드 수를 활용할 수 있다.
- 입력 연산자의 레코드 평균 크기는 사용자로부터 입력 받을 수 있으며, 처리 연산자의 출력 레코드 평균 크기는 선행 연산자로부터 계승받아 연산자 성격에 맞게 산출한다.
- 연산자의 출력 레코드 수는 연산자 입력 레코드 수와 연산자 특성에 의해 결정한다. 즉, 조인(join) 연산자는 2 개의 선행 연산자 출력 레코드 수의 곱으로 산출하고 필터 연산자는 조건으로 사용된 표현식의 필터링율에 의해 결정한다.
도 5는 처리 연산자 노드의 처리 비용 및 출력 레코드 정보를 산출하는 일 예를 도시한다. 도 5의 예는 물리 연산자 DAG에서 입력 연산자별 sub-graph에 대해 너비 우선(Breath first) 방식으로 처리 연산자 노드의 처리 비용 및 출력 레코드 정보를 산출한 예이다..
도시된 바와 같이, 입력 연산자 노드(510, 520)별로 연결된 후행 연산자 노드들(511 내지 513, 521 내지 523) 에 대한 처리 비용과 출력 레코드 정보를 선행 연산자의 출력 레코드 정보 및 연산자 성격에 따라 산출한다.
입력 연산자 노드(510, 520)에 대해서는 윈도우에 정의된 레코드 정보를 이용하여 출력 레코드 정보를 산출한다. 예를 들어, 노드(510)의 경우에 레코드 수는 10개, 레코드 평균 크기는 100 바이트이며, 노드(520)의 경우에 레코드 수는 20개, 레코드 평균 크기는 50 바이트로 윈도우에 정의되어 있다.
한편, 처리 연산자 노드들(511 내지 513, 521 내지 523)에 대해서는 입력 레코드 정보 및 연산자 특성에 기반한 연산자 노드 처리 비용 및 출력 레코드 정보를 산출한다. 예를 들어, 노드(511)의 경우에, 선행 노드(510)의 출력 레코드 정보에 따라 입력 레코드 정보가 10/100(레코드수/레코드 평균 크기)이고, 노드 처리 비용(CNsort)은 CNsort = CNBsort*10 + Cthread*10*100 (CNBsort: 연산자 기본 비용, Cthread: 쓰레드 태스크간 데이터 전달 기본 비용)에 따라 산출될 수 있으며, 출력 레코드 정보는 10/100(레코드수/레코드 평균 크기)로 산출될 수 있다.
한편, 선행 연산자 노드에 대한 출력 레코드 정보가 산출되어 있지 않으면, 필요시 다른 입력 연산자로부터 구성되는 DAG 의 연산자 노드들에 대해 처리 비용과 출력 레코드 정보를 먼저 산출하여 활용할 수 있다.
도 6은 본 발명의 일 실시예에 따른 연산자 노드 통합 과정을 도시한 흐름도이다. 도 6은 도 2의 1차 연산자 노드 통합 단계(S230) 및 2차 연산자 노드 통합 단계(S250)를 좀더 상세하게 도식화한 것으로서, 각 연산자 노드의 처리 비용 정보가 추가된 물리 연산자 DAG와 통합 판단 기준 정보를 입력 받아, 입력된 통합 기준에 따라 통합이 가능한 연산자들을 통합하여 최적화된 물리 연산자 DAG를 출력하는 단계이다.
도 2의 1차 연산자 노드 통합 단계(S230)는 특정 연산자 노드 처리가 병목이 되지 않도록 연산자 노드 처리 비용 평준화를 위해 연산자 중 최대 처리 비용을 입력으로 이를 기준으로 연산자 노드를 통합하는 단계이다. 한편, 도 2의 2차 연산자 통합(S250)은 태스크간 자원 확보 경쟁률을 줄이기 위해 태스크 허용 최대 처리 비용을 입력 받아 이를 기준으로 연산자 노드 통합을 수행하는 단계이다.
구체적으로, 단계(S610)에서 각 연산자 노드의 처리 비용 정보 즉, 각 연산자 노드 처리 비용(CNop), 연산자 노드 로직 처리 비용(Ccompu), 데이터 전달 비용(Ccomm) 등)이 추가된 물리 연산자 DAG와, 통합 판단 기준 정보(즉, 연산자 중 최대 처리 비용 또는 태스크 허용 최대 처리 비용 등)를 입력 받는다.
단계(S620)에서, 상기 입력된 물리 연산자 DAG에 대해 통합 판단 기준에 따라 통합 대상 후보 연산자 노드들을 선정한다.
여기서, 통합 대상 후보 연산자는 연산자 노드 로직 처리 비용이 연산자 노드 처리 비용에서 차지하는 비율(Ccompu/CNop)이 시스템 정의 기준보다 적은 연산자 노드이면서 후행 연산자와 통합시 통합 연산자 노드의 비용이 통합 판단 기준보다 적은 처리 비용을 갖는 연산자 노드들로 선정될 수 있다. 즉, 데이터 전달 비용이 상대적으로 큰 연산자 노드를 통합 대상 후보로 선정할 수 있다는 의미이다. 연산자 노드 처리 비용은 통합 판단 기준에 따라 산출 방식이 달라질 수 있다. 통합 판단 기준이 연산자 중 최대 처리 비용인 경우, 연산자 노드 처리 비용은 쓰레드간 데이터 전달 비용 정보에 기반하여 산출된 값으로 한다. 한편, 태스크 허용 최대 처리 비용이 통합 판단 기준인 경우에 연산자 노드 처리 비용은 네트워크 통신을 고려한 프로세스간 데이터 전달 비용 정보에 기반하여 산출된 값으로 한다.
또한, 연산자 노드 로직 처리 비용이 차지하는 비율에 대한 시스템 정의 기준 역시 연산자 노드 처리 비용 산출시에 쓰레드간 데이터 전달 비용을 기준으로 산출한 경우와 네트워크 통신을 고려한 프로세스간 데이터 전달 비용을 기준으로 산출한 경우에 대해 달리 적용될 수 있다.
단계(S630)에서, 통합 대상 후보 연산자들의 통합시 얻어지는 이득을 계산한다. 예를 들면, 통합으로 인해 데이터 전달 비용이 없어질 수 있다.
단계(S640)에서, 통합 이득이 가장 큰 후보 연산자를 통합한다.
통합 대상 후보 연산자가 더 이상 없을 때까지 반복 수행하며 최종적으로 최적으로 통합된 물리 연산자 DAG를 출력한다(S650).
도 7는 본 발명의 일 실시예에 따른 최적화된 태스크 기반 서비스 생성 장치의 구성을 도시한 블록도이다. 도시된 바와 같이, 최적화된 태스크 기반 서비스 생성 장치(700)는, 연산자 DAG 서비스 입력 모듈(710), 연산자 노드 처리 비용 산출 모듈(720), 연산자 노드 통합 모듈(730) 및 태스크 기반 DAG 서비스 흐름 생성 모듈(740)을 포함한다.
연산자 DAG 서비스 입력 모듈(710)은 서비스에 대한 물리 연산자 DAG와 서비스에 할당될 컴퓨트 노드수를 입력 받는 모듈이다.
연산자 노드 비용 산출 모듈(720)은 입력된 물리 연산자 DAG를 구성하는 각 연산자 노드의 처리 비용을 산출한다. 일 실시예에서, 연산자 노드 비용 산출 모듈(720)은 물리 연산자 노드 로직 처리 비용과 물리 연산자 노드로 데이터가 입력되는데 필요한 데이터 전달 비용을 합산함으로써 물리 연산자 노드 처리 비용을 산출할 수 있다. 이 때, 데이터 전달 비용은 동일 프로세스내 쓰레드간 데이터 전달 비용과 상이한 프로세스간 데이터 전달 비용으로 별도로 산출될 수 있다. 물리 연산자 노드 처리 비용을 산출하는 구체적인 방식은 도 3 내지 도 5를 참조하여 전술한 바와 같다.
연산자 노드 통합 모듈(730)은 각 연산자 노드의 처리 비용 정보 및 선정된 통합 판단 기준에 따라 통합이 가능한 연산자들을 통합하여 최적화된 물리 연산자 DAG를 생성한다.
일 실시예에서, 연산자 노드 통합 모듈(730)은 연산자 노드간 처리 비용 평준화를 위해 물리 연산자 처리 비용 중 최대값 기반의 1차 통합을 수행한다. 다음, 1차 통합된 DAG를 구성하는 연산자 노드 개수가 서비스에 할당된 컴퓨트 노드들에서 동시에 수행 가능한 쓰레드 수(즉, 컴퓨터 노드수 x 노드별 동시 수행 가능한 쓰레드 개수)를 초과하는 경우에, 연산자 노드 통합 모듈(730)은 자원 확보 경쟁률을 줄이기 위해 태스크당 처리 비용 최대 값 기반의 2차 통합을 추가적으로 수행할 수 있다. 구체적인 연산자 노드 통합 과정은 도 6을 참조하여 전술한 바와 같다.
태스크 기반 DAG 서비스 흐름 생성 모듈(740)은 실제 서비스가 수행될 목표 시스템의 인터페이스를 이용하여 태스크 기반 DAG 서비스 흐름을 생성 및 출력한다.
본 발명의 전술한 실시예에 따른 방법 및 장치는 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (19)

  1. 데이터 처리 서비스에 대한 물리 연산자 DAG(Directed Acyclic Graph)를 구성하는 각 연산자 노드의 처리 비용을 산출하는 단계;
    상기 산출된 각 연산자 노드의 처리 비용 정보 및 통합 판단 기준에 따라 연산자들을 통합하여 최적화된 물리 연산자 DAG를 생성하는 단계; 및
    상기 데이터 처리 서비스가 수행될 목표 시스템의 인터페이스를 이용하여 태스크 기반 DAG 서비스 흐름을 생성하는 단계
    를 포함하는 최적화된 태스크 기반 데이터 처리 서비스 생성 방법.
  2. 제1항에 있어서, 상기 물리 연산자 DAG는 고급 데이터 처리 언어 기반 서비스 해석을 통해 생성된 것인 최적화된 태스크 기반 데이터 처리 서비스 생성 방법.
  3. 제1항에 있어서, 상기 방법은 고급 데이터 처리 언어 기반 서비스를 태스크 기반 분산 데이터 처리 시스템에서 실행되도록 태스크 기반 서비스로 변환하는 데이터 처리 시스템에서 수행되는 최적화된 태스크 기반 데이터 처리 서비스 생성 방법.
  4. 제1항에 있어서, 상기 연산자 노드의 처리 비용은 상기 연산자 노드 로직 처리 비용 및 상기 연산자 노드로의 데이터 전달 비용을 합산하여 산출되는 최적화된 태스크 기반 데이터 처리 서비스 생성 방법.
  5. 제4항에 있어서, 상기 연산자 노드 로직 처리 비용은 상기 연산자 노드의 기본 비용 및 입력 레코드 정보에 의해 결정되는 최적화된 태스크 기반 데이터 처리 서비스 생성 방법.
  6. 제5항에 있어서, 상기 연산자 노드의 기본 비용은 상기 연산자를 구성하는 표현식 기본 처리 비용과 연산자 자체 비용을 합산한 값으로 산출되는 최적화된 태스크 기반 데이터 처리 서비스 생성 방법.
  7. 제5항에 있어서, 상기 연산자 노드의 입력 레코드 정보는 선행 연산자 노드의 출력 레코드 정보 및 상기 연산자 노드의 특성에 기반하여 정해지는 최적화된 태스크 기반 데이터 처리 서비스 생성 방법.
  8. 제4항에 있어서, 상기 데이터 전달 비용은 전달할 레코드 량과 데이터 전달 방법별 비용에 의해 결정되는 최적화된 태스크 기반 데이터 처리 서비스 생성 방법.
  9. 제8항에 있어서, 상기 데이터 전달 방법별 비용은 쓰레드간 전달 비용 또는 네트워크 통신을 고려한 프로세스간 전달 비용인 최적화된 태스크 기반 데이터 처리 서비스 생성 방법.
  10. 제1항에 있어서, 상기 최적화된 물리 연산자 DAG를 생성하는 단계는 상기 통합 판단 기준으로서 상기 연산자 노드 처리 비용 중 최대값을 상기 통합 판단 기준으로 이용하여 연산자 노드 통합을 수행함으로써 1차 최적화된 DAG를 생성하는 단계를 포함하는 최적화된 태스크 기반 데이터 처리 서비스 생성 방법.
  11. 제10항에 있어서, 상기 최적화된 물리 연산자 DAG를 생성하는 단계는,
    상기 1차 최적화된 DAG를 구성하는 연산자 노드 개수가 상기 서비스가 할당되는 컴퓨트 노드에서 동시에 수행 가능한 쓰레드 수를 초과하는지 검사하는 단계; 및
    상기 연산자 노드 개수가 상기 동시 수행 가능한 쓰레드 수를 초과할 경우에 상기 태스크당 처리 비용 최대값을 상기 통합 판단 기준으로 이용하여 연산자 노드 통합을 수행함으로써 2차 통합된 DAG를 생성하는 단계
    를 더 포함하는 최적화된 태스크 기반 데이터 처리 서비스 생성 방법.
  12. 데이터 처리 서비스에 대한 물리 연산자 DAG와 서비스에 할당될 컴퓨트 노드수를 입력 받는 입력 모듈;
    상기 입력된 물리 연산자 DAG를 구성하는 각 연산자 노드의 처리 비용을 산출하는 연산자 노드 비용 산출 모듈; 및
    상기 산출된 각 연산자 노드의 처리 비용 정보 및 선정된 통합 판단 기준에 따라 통합이 가능한 연산자들을 통합하여 최적화된 물리 연산자 DAG를 생성하는 연산자 노드 통합 모듈
    을 포함하는 최적화된 태스크 기반 데이터 처리 서비스 생성 장치.
  13. 제12항에 있어서, 상기 서비스가 수행될 목표 시스템의 인터페이스를 이용하여 태스크 기반 DAG 서비스 흐름을 생성 및 출력하는 태스크 기반 DAG 서비스 흐름 생성 모듈을 더 포함하는 최적화된 태스크 기반 데이터 처리 서비스 생성 장치.
  14. 제11항에 있어서, 상기 물리 연산자 DAG는 고급 데이터 처리 언어 기반 서비스 해석을 통해 생성된 것인 최적화된 태스크 기반 데이터 처리 서비스 생성 장치.
  15. 제12항에 있어서, 상기 노드 비용 산출 모듈은 상기 연산자 노드 로직 처리 비용 및 상기 연산자 노드로의 데이터 전달 비용을 합산하여 상기 연산자 노드의 처리 비용을 산출하는 최적화된 태스크 기반 데이터 처리 서비스 생성 장치.
  16. 제15항에 있어서, 상기 연산자 노드 로직 처리 비용은 상기 연산자 노드의 기본 비용 및 입력 레코드 정보에 의해 결정되는 최적화된 태스크 기반 데이터 처리 서비스 생성 장치.
  17. 제16항에 있어서, 상기 연산자 노드 기본 비용은 상기 연산자를 구성하는 표현식 기본 처리 비용과 연산자 자체 비용을 합산하여 상기 연산자 노드의 기본 비용을 산출하는 최적화된 태스크 기반 데이터 처리 서비스 생성 장치.
  18. 제12항에 있어서, 상기 연산자 노드 통합 모듈은 연산자 노드간 처리 비용 평준화를 위해 물리 연산자 처리 비용 중 최대값을 통합 판단 기준으로 이용하여 1차 통합을 수행하는 최적화된 태스크 기반 데이터 처리 서비스 생성 장치.
  19. 제18항에 있어서, 상기 연산자 노드 통합 모듈은 상기 1차 통합된 DAG를 구성하는 연산자 노드 개수가 상기 서비스에 할당된 컴퓨트 노드들에서 동시에 수행 가능한 쓰레드 수를 초과하는 경우에 태스크당 처리 비용 최대 값을 통합 판단 기준으로 이용하여 2차 통합을 추가적으로 수행하는 최적화된 태스크 기반 데이터 처리 서비스 생성 장치.
KR1020150039185A 2015-03-20 2015-03-20 최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치 KR20160112830A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150039185A KR20160112830A (ko) 2015-03-20 2015-03-20 최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150039185A KR20160112830A (ko) 2015-03-20 2015-03-20 최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20160112830A true KR20160112830A (ko) 2016-09-28

Family

ID=57102056

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150039185A KR20160112830A (ko) 2015-03-20 2015-03-20 최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20160112830A (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648859A (zh) * 2016-12-01 2017-05-10 北京奇虎科技有限公司 一种任务调度方法和装置
CN107273193A (zh) * 2017-04-28 2017-10-20 中国科学院信息工程研究所 一种基于dag的面向多计算框架的数据处理方法及系统
CN110888720A (zh) * 2019-10-08 2020-03-17 北京百度网讯科技有限公司 任务处理方法、装置、计算机设备及存储介质
CN111158800A (zh) * 2019-12-31 2020-05-15 北京明略软件系统有限公司 基于映射关系构建任务dag的方法及装置
CN111324345A (zh) * 2020-03-19 2020-06-23 北京奇艺世纪科技有限公司 数据处理方式生成方法、数据处理方法、装置及电子设备
KR102130016B1 (ko) * 2019-09-03 2020-07-03 성균관대학교산학협력단 자동 캐싱을 위한 컴파일링 방법 및 장치, 이를 위한 기록매체
KR20210023130A (ko) * 2019-08-22 2021-03-04 성균관대학교산학협력단 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체
WO2024067303A1 (zh) * 2022-09-30 2024-04-04 深圳市中兴微电子技术有限公司 仿真方法、电子设备、计算机可读介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648859A (zh) * 2016-12-01 2017-05-10 北京奇虎科技有限公司 一种任务调度方法和装置
CN107273193A (zh) * 2017-04-28 2017-10-20 中国科学院信息工程研究所 一种基于dag的面向多计算框架的数据处理方法及系统
KR20210023130A (ko) * 2019-08-22 2021-03-04 성균관대학교산학협력단 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체
KR102130016B1 (ko) * 2019-09-03 2020-07-03 성균관대학교산학협력단 자동 캐싱을 위한 컴파일링 방법 및 장치, 이를 위한 기록매체
CN110888720A (zh) * 2019-10-08 2020-03-17 北京百度网讯科技有限公司 任务处理方法、装置、计算机设备及存储介质
CN111158800A (zh) * 2019-12-31 2020-05-15 北京明略软件系统有限公司 基于映射关系构建任务dag的方法及装置
CN111158800B (zh) * 2019-12-31 2024-02-23 北京明略软件系统有限公司 基于映射关系构建任务dag的方法及装置
CN111324345A (zh) * 2020-03-19 2020-06-23 北京奇艺世纪科技有限公司 数据处理方式生成方法、数据处理方法、装置及电子设备
WO2024067303A1 (zh) * 2022-09-30 2024-04-04 深圳市中兴微电子技术有限公司 仿真方法、电子设备、计算机可读介质

Similar Documents

Publication Publication Date Title
KR20160112830A (ko) 최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치
US10942716B1 (en) Dynamic computational acceleration using a heterogeneous hardware infrastructure
US11036547B2 (en) File operation task optimization
US9898266B2 (en) Loop vectorization methods and apparatus
US9645849B2 (en) Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment
US20200272338A1 (en) Optimizing serverless computing using a distributed computing framework
US20130218299A1 (en) MCP Scheduling For Parallelization Of LAD/FBD Control Program In Multi-Core PLC
CN106547520B (zh) 一种代码路径分析方法及装置
US8732717B2 (en) Resource allocation
US20170017475A1 (en) Information processing apparatus and compile method
US20150277876A1 (en) Compiling device, compiling method, and storage medium storing compiler program
WO2017045400A1 (zh) 一种流应用优化的方法及装置
WO2015176689A1 (zh) 一种数据处理的方法及装置
CN111309751A (zh) 大数据处理方法及装置
KR101603752B1 (ko) 멀티 모드 지원 프로세서 및 그 프로세서에서 멀티 모드를 지원하는 방법
CN110457065B (zh) 用于获得可兼容多版本系统的应用的方法及装置
US20180143813A1 (en) Computer system and method for multi-processor communication
US9753769B2 (en) Apparatus and method for sharing function logic between functional units, and reconfigurable processor thereof
US12001960B2 (en) NGraph-based GPU backend distributed training method and system
CN111221888A (zh) 大数据分析系统及方法
CN111435352A (zh) 一种分布式实时计算方法、装置、系统及其存储介质
US10269355B2 (en) Data processing device, data processing method, and computer program product
JP2023086661A (ja) テキスト処理方法、装置、システム、デバイス、記憶媒体、及びプログラム
CN114281339A (zh) 程序编译方法、编译器、设备及存储介质
CN116710891A (zh) 子图的编译、执行方法及相关设备