KR20090065133A - 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크분배 장치, 방법 및 처리 방법 - Google Patents

분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크분배 장치, 방법 및 처리 방법 Download PDF

Info

Publication number
KR20090065133A
KR20090065133A KR1020070132585A KR20070132585A KR20090065133A KR 20090065133 A KR20090065133 A KR 20090065133A KR 1020070132585 A KR1020070132585 A KR 1020070132585A KR 20070132585 A KR20070132585 A KR 20070132585A KR 20090065133 A KR20090065133 A KR 20090065133A
Authority
KR
South Korea
Prior art keywords
task
parallel processing
thread group
processing system
distributed parallel
Prior art date
Application number
KR1020070132585A
Other languages
English (en)
Other versions
KR101013073B1 (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 KR1020070132585A priority Critical patent/KR101013073B1/ko
Publication of KR20090065133A publication Critical patent/KR20090065133A/ko
Application granted granted Critical
Publication of KR101013073B1 publication Critical patent/KR101013073B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치, 방법 및 처리 방법에 대하여 개시한다. 본 발명은 사용자가 요청한 작업을 개별 노드 프로세서의 코어 단위 태스크로 분배하는 작업 관리기; 상기 태스크를 상기 코어의 스레드 단위로 병렬 처리한 다음 통합한 중간 결과 파일을 생성하는 Map 태스크 실행기를 포함하는 점에 그 특징이 있다.
본 발명은 사용자 요청 작업에 대한 태스크 분배에 있어 노드 및 멀티 코어 중앙처리장치의 병렬 처리 특징을 고려하여 태스크 스레드 그룹별로 Map 태스크를 할당하고, 개별 Map 태스크에 대한 중간 결과 파일을 공유함으로써, 한 노드에서 여러 개의 태스크를 병렬 분산 처리하여 시스템 부하가 적고, 시스템 속도가 향상된다.
분산 병렬 처리, 태스크, 멀티 코어, 중간 결과 파일, 스레드, MapReduce

Description

분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치, 방법 및 처리 방법{ Apparatus for Task Distribution Method and Method of Transaction at a Task Thread Group Unit On the Distributed Parallel processing System }
본 발명은 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치, 방법 및 처리 방법에 관한 것으로, 특히 사용자 요청 작업에 대한 태스크 분배에 있어 노드 및 멀티 코어 중앙처리장치의 병렬 처리 특징을 고려하여 태스크 스레드 그룹별로 Map 태스크를 할당하고, 개별 Map 태스크에 대한 중간 결과 파일을 공유함으로써, Reduce 태스크 전달 파일 수를 줄여 처리속도가 향상된 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치, 방법 및 처리 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호:2007-S-016-01, 과제명:저비용 대규모 글로벌 인터넷 서비스 솔루션 개발].
인터넷 발달에 따른 대용량 입력 데이터 처리량의 증가, 사용자의 증가에 따 른 고가용성 및 확장성을 보장하기 위하여 포털 사이트 업체는 클러스터링 프레임워크를 개발 및 구축하여 웹 검색 서비스, Google Earth 서비스, 및 iGoogle 서비스 등의 인터넷 서비스를 제공 중에 있다.
MapReduce 시스템은 이러한 클러스터링 프레임워크 내부에서 인터넷 서비스에서 주로 사용되는 대용량 데이터를 수집하여 사용자에게 다양한 부가 서비스를 제공하기 위한 데이터 가공 작업을 위한 분산 병렬 처리를 제공한다.
MapReduce 시스템에서는 Lisp의 Map/Reduce 함수로부터 변형된 Map/Reduce 프로그래밍 모델을 제공하여 사용자 작업(Job)을 정의하는데, Map 함수 및 Reduce 함수는 MapReduce 라이브러리로 제공되는 사용자 인터페이스를 이용하여 구현할 수 있다.
여기서, Map 함수는 입력 데이터를 읽어 들여서 처리하기 편한 형태의 키/값(Key/Value) 쌍으로 구성된 중간 결과를 생성하는 사용자 코드를 작성하며, Reduce 함수는 Map 함수가 생성한 중간 결과를 읽어들여 데이터 처리를 수행하여 최종 결과를 생성하는 사용자 코드를 작성한다.
사용자는 이와 같은 Map 함수, Reduce 함수를 이용하여 분산 프로그램, 데이터 분산, 스케줄링, 자동 오류 복구 등의 분산 병렬 처리에 대한 세부적인 내용을 고려하지 않고도 쉽게 작업을 정의 및 수행할 수 있다.
도 1은 종래기술에 따른 MapReduce 분산 병렬 처리 시스템의 분산 처리 과정을 도시한 블록도이다. 도 1에 도시된 바와 같이, 사용자(100)는 작업 A(110)를 수행하기 위한 Map 함수(111) 및 Reduce 함수(112)를 정의하여 MapReduce 프레임워 크(200)를 통해 작업 A(110)에 대한 수행을 요청하고(S110), MapReduce 시스템은 분할된 태스크들을(S120) 동일한 클러스터 영역에 존재하는 사용가능한 컴퓨팅 노드들(210)에 할당한다(S130).
이때, MapReduce 시스템은 마스터-워커(Master-Worker) 구조로 태스크의 분배, 할당 및 스케줄링을 수행한다.
마스터(220)는 유용한 개별 워커(230)(컴퓨팅 노드)에게 Map 태스크 및 Reduce 태스크를 분배 및 할당한다.
상세하게는, 마스터(220)는 Map 태스크 담당 워커(231)에게 Map 태스크 시작 메시지를 전송하여 태스크 시작을 지시하고, Map 태스크 수행이 종료되면, Reduce 태스크 담당 워커(232)에게 Reduce 태스크 시작 메시지를 전송하여 태스크 시작을 지시한다(S140). 또한, 모든 Reduce 태스크가 종료되면, 사용자에게 작업 완료를 통보하고 처리를 종료하고 이를 저장한다(S150).
도 2는 종래기술에 따른 세부적인 MapReduce 분산 처리 과정을 도시한 블록도이다. 도 2에 도시된 바와 같이, 세부적인 MapReduce 분산 처리 과정은 포크(Fork), Map/Reduce 할당(Assign Map/Reduce), 입력 데이터 불러오기(Read), 중간 결과 임시 저장(Local Write), 중간 결과 전달(Remote Read), 최종 출력 파일 생성(Write) 및 사용자 통보의 7단계에 걸쳐서 처리된다.
첫 번째로 포크 과정은 작업이 시작시 사용자 프로그램이 사용하는 MapReduce 라이브러리 내부에서 입력 데이터 파일들을 소정 크기의 M개의 영역으로 나누고, 입력 데이터의 분리 정보와 사용자 프로그램은 클러스터 내의 여러 노드에 복사하는 것이다.
여기서, 입력 데이터 파일들은 16MB ~ 64MB정도의 크기로 분할되는 것이 바람직하다.
두 번째로 Map/Reduce 할당 과정은 프로그램이 복사된 노드에 대해 마스터(220) 또는 워커(230)를 할당하고, 마스터(220)가 유용한 하나 이상의 워커(230)에게 Map 태스크 또는 Redcue 태스크를 할당하는 것이다.
세 번째로 입력 데이터 불러오기(Read) 과정은 Map 태스크 담당 워커(231)가 입력 데이터 영역의 내용을 읽어들여서 키/값 Map 데이터를 생성하여 사용자가 정의한 Map 함수로 전달하고, Map 함수의 처리 결과로 생성된 중간 결과를 메모리 버퍼에 저장하는 것이다.
네 번째로 중간 결과 임시 저장(Local Write) 과정은 Map 태스크 담당 워커(231)가 메모리 버퍼에 저장한 중간 결과를 주기적으로 지역 디스크에 파일로 저장하고, 파티셔닝 함수에 의해 R(Reduce 태스크 개수)개의 중간 결과 파일로 구분하는 것이다.
이때, 중간 결과 파일에 저장된 중간 결과는 키 값을 기준으로 정렬되며, Map 태스크 담당 워커(231)는 이러한 중간 결과 파일의 위치 정보를 마스터(220)에게 알리고, 마스터(220)는 이 정보가 Reduce 태스크 처리 시에 입력 데이터의 위치 정보로 사용할 수 있도록 Reduce 태스크 담당 워커(232)에게 전달한다.
다섯 번째로 중간 결과 전달(Remote Read) 과정은 마스터(220)가 Reduce 태스크 담당 워커(232)에게 중간 결과 파일의 위치 정보를 전달하면, Reduce 태스크 담당 워커(232)가 Map 태스크 담당 워커(231)의 RPC(Remote Procedure Call) 호출을 이용하여 관련된 모든 중간 결과를 수집한 다음, 키 값을 기준으로 정렬하여 동일한 키 값으로 그루핑(Grouping)하는 것이다.
이때, 키 값에 기준한 정렬 과정은 Map 태스크별로 생성한 중간 결과 파일은 "중간 결과 임시 저장 과정"을 통해서 이미 한번 정렬된 상태이므로 비교적 쉽게 수행될 수 있다.
여섯 번째로 최종 출력 파일 생성(Write) 과정은 Reduce 태스크 담당 워커(232)가 정렬된 중간 결과를 탐색하면서 유일한 중간 키와 관련된 값들을 한 쌍으로 사용자가 정의한 Reduce 함수로 넘기고, Reduce 태스크 담당 워커(232)가 Reduce 함수의 결과를 포함한 최종 출력 파일을 생성하는 것이다.
일곱 번째로 사용자 통보 과정은 모든 Map 태스크와 Reduce 태스크의 작업이 완료되면, 마스터(220)가 작업 수행을 요청한 사용자 프로그램의 MapReduce 함수에게 호출을 반환하는 것이다.
이때, 작업 수행 결과로 생성된 최종 결과 파일은 사용자가 설정한 파일 경로에 Reduce 태스크 수와 동일한 R개가 생성되면, 이렇게 생성된 최종 결과 파일은 서비스에 이용되거나 또 다른 작업의 입력 데이터로 사용될 수 있다.
도 3은 종래기술에 따른 분산 병렬 처리 시스템에서 Map 태스크를 수행하는 과정을 도시한 블록도이다. 도 3에 도시된 바와 같이, 종래기술에 따른 분산 병렬 처리 시스템에서는 노드 기반의 태스크 분배로 인하여 동일한 "작업 #1"에서 파생된 Map 태스크들이 동일한 "노드 #1"에서 수행되더라도 별도의 노드에서 수행되는 방법과 동일하게 태스크별로 태스크 프로세스 단위로 수행되고, 각 태스크 프로세스는 처리 결과를 파티셔닝 함수에 따라 해당되는 중간 파일에 결과를 키 기반으로 정렬하여 기록한다.
도 4는 종래기술에 따른 분산 병렬 처리 시스템에서 Reduce 태스크가 중간 결과 파일을 취합하는 과정을 도시한 블록도이다. 도 4에 도시된 바와 같이, 각 Map 태스크가 처리 결과를 메모리 버퍼를 사용하여 파티셔닝 및 정렬하여 저장하면(S410~S420), Reduce 태스크는 Map 태스크가 생성한 중간 결과 파일들(421, 422, 423, 424) 중 관련 분할(Partition)에 대한 파일을 원격지에서 수집하여 처리한다(S430).
때문에, Map 태스크의 수가 많은 환경에서는 Reduce 태스크가 수집해야할 중간 결과 파일의 수가 많아져서 전체 작업의 수행 시간에 부하를 초래한다.
이와 같은, 분산 병렬 처리 시스템 제공을 위한 하드웨어 환경에서 저가의 하드웨어로 고 사양화 컴퓨팅 환경을 지원하기 위해 대부분의 컴퓨터는 하나의 칩에 하나 이상의 코어 프로세서를 장착하는 멀티코어 CPU(MultiCore CPU)를 사용하고 있는 추세이다.
그런데, 종래의 분산 병렬 처리 시스템은 노드에 적용된 멀티코어 중앙처리장치의 병렬 처리 특성을 고려하지 않고, 단순히 노드 기반으로 태스크를 할당하고 있어 중앙처리장치의 기능을 효과적으로 사용하지 못하고 있는 실정이다.
본 발명은 사용자 요청 작업에 대한 태스크 분배에 있어 노드 및 멀티 코어 중앙처리장치의 병렬 처리 특징을 고려하여 태스크 스레드 그룹별로 Map 태스크를 할당하고, 개별 Map 태스크에 대한 중간 결과 파일을 공유함으로써, Reduce 태스크 전달 파일 수를 줄여 처리속도가 향상된 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치, 방법 및 처리 방법을 제공함에 그 목적이 있다.
전술한 목적을 달성하기 위해서 본 발명에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치는, 사용자가 요청한 작업을 개별 노드 프로세서의 코어 단위 태스크로 분배하는 작업 관리기; 상기 태스크를 상기 코어의 스레드 단위로 병렬 처리한 다음 통합한 중간 결과 파일을 생성하는 Map 태스크 실행기를 포함하는 점에 그 특징이 있다.
또한, 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치는 상기 사용자 작업을 Map 태스크 수행에 사용되는 Map 함수 또는 Reduce 태스크 수행에 사용되는 Reduce 함수가 정의된 병렬 처리 라이브러리; 사용자가 가시가능하며, 상기 사용자가 요청한 작업의 수행 상황 및 개별 노드의 상태 정보를 제공하는 관리 도구를 더 포함한다.
여기서, 상기 통합 중간 결과 파일은 Reduce 태스크를 수행하는 Reduce 태스크 실행기로 전달되어 스레드 단위로 처리된다.
본 발명의 다른 특징에 따른, 분산 병렬 처리 시스템에서 사용자 요청 작업을 태스크 스레드 그룹별 태스크 분배 방법에 있어서, (a) 사용자 요청 작업을 분할하여 분산되어 있는 하나 이상의 노드에 분배하는 단계; (b) 개별 노드의 멀티 코어 환경을 고려하여 태스크 스레드 그룹별로 태스크를 분배하는 단계를 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 방법이 제공된다.
여기서, 상기 (b)단계는 사용자의 수동 설정 또는 상기 분산 병렬 처리 시스템의 자동 설정을 통해 수행되는 것이 바람직하며, 상기 (b)단계 이후에 상기 태스크 스레드 그룹별로 Map 태스크가 수행되어 중간 파일이 생성되는 단계; 상기 생성된 중간 파일이 통합되어 하나의 파일로 저장되는 단계를 더 포함한다.
본 발명의 또 다른 특징에 따른, 분산 병렬 처리 시스템에서 사용자 요청 작업을 태스크 스레드 그룹별로 태스크를 처리하는 방법에 있어서, (d) 개별 노드에 사용자 및 상기 분산 병렬 처리 시스템에 의해 설정된 태스크 스레드 그룹당 태스크 스레드 개수를 고려하여 동시에 가용 가능한 태스크를 목록을 요청하는 단계; (e) 상기 개별 노드로부터 상기 요청에 대한 응답으로 가용 가능한 태스크 목록을 수신하는 단계; (f) 상기 수신한 태스크 목록을 참조하여 개별 태스크 스레드 그룹별 Map 태스크를 할당하는 단계; (g) 상기 개별 태스크 스레드 그룹이 상기 할당된 Map 태스크를 병렬 수행하고, 그 수행 결과에 파티션 함수를 적용하여 파티션별로 중간 결과 파일을 통합하여 저장하는 단계를 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 처리 방법이 제공된다.
여기서, 상기 (g)단계 이후에 상기 파티션별 통합된 중간 결과 파일을 Reduce 태스크에 전달하는 단계를 더 포함하며, 상기 (g)단계는 상기 통합된 중간 결과 파일의 저장을 완료한 상기 태스크 스레드 그룹의 개별 스레드를 반납하는 단계를 포함한다.
본 발명에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치, 방법 및 처리 방법은 사용자 요청 작업에 대한 태스크 분배에 있어 노드 및 멀티 코어 중앙처리장치의 병렬 처리 특징을 고려하여 태스크 스레드 그룹별로 Map 태스크를 할당하고, 개별 Map 태스크에 대한 중간 결과 파일을 공유함으로써, Reduce 태스크 전달 파일 수를 줄여 처리속도가 향상되는 효과가 있다.
본 발명은 한 노드에서 여러 개의 태스크를 병렬 분산 처리하여 시스템 부하가 적으며, 시스템 성능이 향상된다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이하의 실시예에서는 이 기술분야에서 통상적인 지식을 가진 자에게 본 발명이 충분히 이해되도록 제공되는 것으로서, 여러 가지 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 기술되는 실시예에 한정되는 것은 아니다.
도 5는 본 발명의 일실시예에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치를 도시한 블록도이다. 도 5에서 도시된 바와 같이, 분산 병렬 처리 시스템은 사용자 인터페이스(510), 마스터 노드(520) 및 하나 이상의 태스크 노드(530)로 구성된다.
사용자 인터페이스(510)는 응용 프로그램(511), 웹 브라우저(512) 등을 통한 사용자 입출력을 제공하며, 사용자는 응용 프로그램(511)을 통해 사용자 작업을 병렬 처리 라이브러리(512)에 존재하는 Map 태스크 수행에 사용되는 Map 함수 또는 Reduce 태스크 수행에 사용되는 Reduce 함수를 적용하여 원하는 작업을 요청한다.
마스터 노드(520)는 사용자가 요청한 작업을 개별 노드 프로세서의 코어 단위 태스크로 분배하는 작업 관리기(521)와 사용자가 가시가능하며, 상기 사용자가 요청한 작업의 수행 상황 및 개별 노드의 상태 정보를 제공하는 관리 도구(522)로 구성된다.
여기서, 본 발명에 따른 스레드 단위 태스크 분배 장치는 사용자가 요청한 작업을 개별 노드 프로세서의 코어 단위 태스크로 분배하는 작업 관리기(521); 상기 태스크를 상기 코어의 스레드 단위로 병렬 처리한 다음 통합한 중간 결과 파일을 생성하는 Map 태스크 실행기(531)를 포함한다.
작업 관리기(521)는 마스터 노드(520)에 존재하여 사용자가 요청한 작업을 개별 노드 프로세서의 코어 단위 즉, 스레드 그룹 단위의 태스크로 분배한다.
Map 태스크 실행기(531)는 개별 노드의 프로세서에 하나 이상 존재하여 Map 태스크 함수를 기반으로 Map 태스크를 수행하고, 입력 데이터를 읽어들여 처리하기 편한 형태의 키/값 쌍으로 구성된 중간 결과를 생성한다.
본 발명에서 Map 태스크 실행기(531)는 프로세서 코어의 작업 처리 단위인 태스크 스레드 그룹 단위로 병렬로 태스크를 수행하므로, 시스템의 부하가 적고 작 업 처리 속도가 빠르다.
한편, 분산 병렬 처리 시스템에서 스레드 단위 태스크 분배 장치가 출력한 상기 통합 중간 결과 파일은 Reduce 태스크를 수행하는 Reduce 태스크 실행기(미도시)로 전달되어 스레드 단위로 처리된다.
도 6은 본 발명의 일실시예에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 과정을 도시한 블록도이다. 도 6에 도시된 바와 같이, 사용자가 "작업 #1"을 요청하면 작업 관리기(610)는 "작업 #1"을 수행할 노드를 결정하고, "작업 #1"을 여러 개로 분할하여 결정된 노드("노드 1", 620)의 태스크 실행기들(621, 622, 623)에게 이를 전달한다.
이때, 도 6의 실시예에서 "작업 #1"의 분할 작업은 "노드 1"(620)에서만 수행된다고 가정한다.
"노드 1"의 태스크 실행기들(621, 622, 623)은 멀티 코어의 병렬 처리 특성을 고려하여 태스크 스레드 그룹단위로 여러 태스크를 병렬 처리한다.
여기서, 태스크 스레드 그룹은 노드에서 태스크 수행을 위해서 할당된 스레드들의 그룹이며, 그룹당 스레드 수는 사용자가 수동으로 설정하거나 시스템이 자원 및 부하를 고려하여 자동으로 설정할 수 있다.
멀티 코어 중앙처리장치는 하드웨어적으로 다수 개의 스레드를 병렬 처리할 수 있으므로, 본 발명과 같이 스레드 단위로 태스크를 분배하면, 여러 태스크를 병렬로 처리할 수 있어 태스크 당 하나의 프로세스를 생성하던 종래기술보다 부하가 적어 시스템 성능이 높다.
또한, 본 발명에 따른 스레드 단위 태스크 분배 방법을 적용하면 동일한 작업으로부터 파생된 Map 태스크들을 처리하는 태스크 스레드 그룹에 대한 Map 태스크 수행 결과로 생성되는 중간 결과를 저장할 때 동일한 파티션에 대해서 하나의 파일로 통합하여 저장하므로, Reduce 태스크가 수집할 중간 결과 수집시의 부하도 적다.
도 7은 본 발명의 일실시예에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 처리 후 중간 결과 파일의 결합 과정을 도시한 블록도이다. 이하, 도 7을 참조하여 설명한다.
본 발명에서는 스레드 간의 정보 공유 및 동시성 제어를 사용한 결합 과정을 통하여 버퍼에 각 Map 태스크들의 처리 결과를 하나의 파일로 저장할 수 있다(S710).
상세하게는, 본 발명에서는 종래 Map 태스크마다 생성되던 중간 결과 파일을 태스크 스레드 그룹별로 하나씩만 생성함으로써 Reduce 태스크가 중간 정보를 수집할 대상의 수(지정된 파티션의 수)가 줌으로써 전체 작업 수행에 대한 부하가 적어져 성능이 개선된다.
도 8은 본 발명의 일실시예에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치의 장점을 기술하기 위한 시험 데이터에 의해 도시된 그래프이다. 도 8의 그래프에서는 분산 병렬 처리 시스템에서 파일 용량 및 파일 개수를 달리하여 서로 다른 두 노드 간 동일한 양의 데이터를 전송하는데 소요되는 시간을 비교하였다.
본 그래프에서 x축은 Map 태스크 중간 결과 파일의 용량[Byte]×개수, y축은 시간[Second]을 나타내며, 그래프로 도시된 A는 초당 전송되는 파일의 용량인 단위전송시간[MB/s], B는 전체 중간 결과 파일을 전송하는데 소요되는 시간인 전체 전송 시간[Second]이다.
본 그래프에서 알수 있듯이 두 노드 간 파일을 전송할 때, 전송되는 파일의 개수가 많고, 파일의 크기가 작을수록 데이터 전송 성능이 저하되는 경향이 있음을 알 수 있다. 이는 파일의 개수가 많을수록 데이터 전송을 위한 연결 설정 과정, 전송 준비 과정 및 연결 종료 과정 등의 실제 데이터를 전송하는 과정 이외의 처리에 걸리는 부하가 증가하기 때문이다.
따라서, 본 발명에서 제시하는 바와 같이 한 노드에서 멀티 코어 중앙처리장치의 병렬 처리 특징을 활용하여 Map 태스크를 개별 노드 내에서 병렬로 처리함에 있어 태스크 스레드 그룹에 기반하여 중간 결과를 공유함으로써 파일의 개수를 줄이면, Reduce 태스크의 소요 시간 및 전체 작업 처리 시간을 줄일 수 있는 효과 있음을 유추할 수 있다.
도 9는 본 발명의 일실시예에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 방법을 도시한 흐름도이다. 이하, 도 9를 참조하여 설명한다.
먼저, 사용자 요청 작업을 분할하여 분산되어 있는 하나 이상의 노드에 분배한다(S910).
이어서, 개별 노드의 멀티 코어 환경을 고려하여 태스크 스레드 그룹별로 태 스크를 분배한다(S920).
여기서, 태스크 스레드 그룹에 할당되는 태스크 스레드 개수는 사용자의 수동 설정 또는 상기 분산 병렬 처리 시스템의 자동 설정을 통해 수행된다.
이때, (S920) 단계 이후 상기 태스크 스레드 그룹별로 Map 태스크가 수행되어 중간 파일이 생성되고, 생성된 중간 파일이 통합되어 하나의 파일로 저장되는 단계가 실행된다.
도 10은 본 발명의 일실시예에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 처리 방법을 도시한 흐름도이다. 이하, 도 10을 참조하여 설명한다.
사용자 입력을 통하여 작업이 요청되면(S1010), 작업 관리기는 개별 노드에 사용자 및 분산 병렬 처리 시스템에 의해 설정된 태스크 스레드 그룹당 태스크 스레드 개수를 고려하여 동시에 가용 가능한 태스크 목록을 요청한다(S1020).
이어서, 개별 노드가 상기 요청에 대한 응답으로 작업 관리기에 가용 가능한 태스크 목록을 전송하고, 작업 관리기가 이를 수신한다(S1030).
그리고, 작업 관리기는 수신한 태스크 목록을 참조하여 개별 태스크 스레드 그룹별 Map 태스크를 할당한다(S1040).
그 다음에는, 개별 태스크 스레드 그룹이 할당한 Map 태스크를 병렬 수행하고(S1050), 수행 결과에 파티션 함수를 적용하여 파티션별로 중간 결과 파일을 통합하여 저장한다(S1060).
이때, 통합된 중간 결과 파일의 저장을 완료한 태스크 스레드 그룹의 개별 스레드는 Map 태스크 수행을 위해 반납된다.
이후, Map 태스크 수행기는 파티션별로 통합된 중간 결과 파일을 Reduce 태스크에 전달한다.
이상, 바람직한 실시예 및 첨부 도면을 통해 본 발명의 구성에 대하여 설명하였다. 그러나, 이는 예시에 불과한 것으로서 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 본 기술 분야의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 본 발명의 진정한 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 종래기술에 따른 MapReduce 분산 병렬 처리 시스템의 분산 처리 과정을 도시한 블록도.
도 2는 종래기술에 따른 세부적인 MapReduce 분산 처리 과정을 도시한 블록도.
도 3은 종래기술에 따른 분산 병렬 처리 시스템에서 Map 태스크를 수행하는 과정을 도시한 블록도.
도 4는 종래기술에 따른 분산 병렬 처리 시스템에서 Reduce 태스크가 중간 결과 파일을 취합하는 과정을 도시한 블록도.
도 5는 본 발명에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치를 도시한 블록도.
도 6은 본 발명에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 과정을 도시한 블록도.
도 7은 본 발명에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 처리 후 중간 결과 파일의 결합 과정을 도시한 블록도.
도 8은 본 발명에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치의 장점을 기술하기 위한 시험 데이터에 의해 도시된 그래프.
도 9는 본 발명에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 방법을 도시한 흐름도.
도 10은 본 발명에 따른 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 처리 방법을 도시한 흐름도.
<도면의 주요부분에 대한 설명>
510: 사용자 인터페이스 520: 마스터 노드
530: 태스크 노드 511: 응용 프로그램
512: 병렬 처리 라이브러리 521: 작업 관리기
522: 관리 도구 531: Map 태스크 실행기

Claims (10)

  1. 사용자가 요청한 작업을 개별 노드 프로세서의 코어 단위 태스크로 분배하는 작업 관리기;
    상기 태스크를 상기 코어의 스레드 단위로 병렬 처리한 다음 통합한 중간 결과 파일을 생성하는 Map 태스크 실행기
    를 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치.
  2. 제1항에 있어서, 상기 통합 중간 결과 파일은,
    Reduce 태스크를 수행하는 Reduce 태스크 실행기로 전달되어 스레드 단위로 처리되는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치.
  3. 제1항에 있어서,
    상기 사용자 작업을 Map 태스크 수행에 사용되는 Map 함수 또는 Reduce 태스크 수행에 사용되는 Reduce 함수가 정의된 병렬 처리 라이브러리;
    를 더 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치.
  4. 제1항에 있어서,
    사용자가 가시가능하며, 상기 사용자가 요청한 작업의 수행 상황 및 개별 노드의 상태 정보를 제공하는 관리 도구;
    를 더 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 장치.
  5. 분산 병렬 처리 시스템에서 사용자 요청 작업을 태스크 스레드 그룹별 태스크 분배 방법에 있어서,
    (a) 사용자 요청 작업을 분할하여 분산되어 있는 하나 이상의 노드에 분배하는 단계;
    (b) 개별 노드의 멀티 코어 환경을 고려하여 태스크 스레드 그룹별로 태스크를 분배하는 단계;
    를 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 방법.
  6. 제5항에 있어서, 상기 (b)단계는,
    사용자의 수동 설정 또는 상기 분산 병렬 처리 시스템의 자동 설정을 통해 수행되는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 방법.
  7. 제5항에 있어서, 상기 (b)단계 이후에,
    상기 태스크 스레드 그룹별로 Map 태스크가 수행되어 중간 파일이 생성되는 단계;
    상기 생성된 중간 파일이 통합되어 하나의 파일로 저장되는 단계;
    를 더 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 분배 방법.
  8. 분산 병렬 처리 시스템에서 사용자 요청 작업을 태스크 스레드 그룹별로 태스크를 처리하는 방법에 있어서,
    (d) 개별 노드에 사용자 및 상기 분산 병렬 처리 시스템에 의해 설정된 태스크 스레드 그룹당 태스크 스레드 개수를 고려하여 동시에 가용 가능한 태스크를 목록을 요청하는 단계;
    (e) 상기 개별 노드로부터 상기 요청에 대한 응답으로 가용 가능한 태스크 목록을 수신하는 단계;
    (f) 상기 수신한 태스크 목록을 참조하여 개별 태스크 스레드 그룹별 Map 태스크를 할당하는 단계;
    (g) 상기 개별 태스크 스레드 그룹이 상기 할당된 Map 태스크를 병렬 수행하고, 그 수행 결과에 파티션 함수를 적용하여 파티션별로 중간 결과 파일을 통합하여 저장하는 단계;
    를 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 처리 방법.
  9. 제8항에 있어서, 상기 (g)단계 이후에,
    상기 파티션별 통합된 중간 결과 파일을 Reduce 태스크에 전달하는 단계;
    를 더 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 처리 방법.
  10. 제8항에 있어서, 상기 (g)단계는,
    상기 통합된 중간 결과 파일의 저장을 완료한 상기 태스크 스레드 그룹의 개별 스레드를 반납하는 단계;
    를 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크 처리 방법.
KR1020070132585A 2007-12-17 2007-12-17 태스크 분배 및 병렬 처리 시스템과 그 방법 KR101013073B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070132585A KR101013073B1 (ko) 2007-12-17 2007-12-17 태스크 분배 및 병렬 처리 시스템과 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070132585A KR101013073B1 (ko) 2007-12-17 2007-12-17 태스크 분배 및 병렬 처리 시스템과 그 방법

Publications (2)

Publication Number Publication Date
KR20090065133A true KR20090065133A (ko) 2009-06-22
KR101013073B1 KR101013073B1 (ko) 2011-02-14

Family

ID=40993570

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070132585A KR101013073B1 (ko) 2007-12-17 2007-12-17 태스크 분배 및 병렬 처리 시스템과 그 방법

Country Status (1)

Country Link
KR (1) KR101013073B1 (ko)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012011644A1 (ko) * 2010-07-22 2012-01-26 연세대학교 산학협력단 중앙 처리 장치, 그것의 gpu 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템
WO2012111905A2 (ko) * 2011-02-14 2012-08-23 (주)케이티 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
KR101218087B1 (ko) * 2011-01-19 2013-01-09 충남대학교산학협력단 하둡 맵리듀스에서 바이너리 형태의 데이터 분석을 위한 입력포맷 추출방법 및 이를 이용한 바이너리 데이터의 분석방법
KR20130097973A (ko) * 2012-02-27 2013-09-04 삼성전자주식회사 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법
WO2014181924A1 (ko) * 2013-05-06 2014-11-13 (주)넥셀 프로세싱 장치 및 방법
KR101640231B1 (ko) * 2015-02-12 2016-07-18 소프트온넷(주) 자동 분산병렬 처리 하둡 시스템의 지원을 위한 클라우드 구동 방법
CN110209549A (zh) * 2018-05-22 2019-09-06 腾讯科技(深圳)有限公司 数据处理方法、相关装置、相关设备和系统
KR20190119487A (ko) * 2018-04-12 2019-10-22 숭실대학교산학협력단 스몰 데이터 기계 학습을 위한 노드 관리 시스템
KR20200052135A (ko) * 2018-11-06 2020-05-14 삼성전자주식회사 작업 의존성에 기초하여 컴퓨팅 작업을 서버에 스케줄링하는 방법 및 장치
WO2020222407A1 (ko) * 2019-05-02 2020-11-05 숭실대학교산학협력단 머신 러닝 플랫폼 관리 시스템 및 방법
KR102623397B1 (ko) * 2023-04-07 2024-01-10 메티스엑스 주식회사 매니코어 시스템

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130097972A (ko) 2012-02-27 2013-09-04 삼성전자주식회사 하드웨어 가속화를 통한 대규모 데이터의 분산 처리 장치 및 방법
KR101245994B1 (ko) 2012-08-31 2013-03-20 케이씨씨시큐리티주식회사 대용량 데이터의 분산 병렬 처리 시스템 및 방법
KR102195886B1 (ko) * 2018-11-28 2020-12-29 서울대학교산학협력단 분산 처리 시스템 및 이의 동작 방법
KR102448789B1 (ko) * 2018-12-05 2022-09-30 한국전자통신연구원 클라우드 컴퓨팅 시스템의 워커 스케줄링 방법 및 이를 위한 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012011644A1 (ko) * 2010-07-22 2012-01-26 연세대학교 산학협력단 중앙 처리 장치, 그것의 gpu 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템
US9378533B2 (en) 2010-07-22 2016-06-28 Industry-Academic Cooperation Foundation, Yonsei University Central processing unit, GPU simulation method thereof, and computing system including the same
KR101218087B1 (ko) * 2011-01-19 2013-01-09 충남대학교산학협력단 하둡 맵리듀스에서 바이너리 형태의 데이터 분석을 위한 입력포맷 추출방법 및 이를 이용한 바이너리 데이터의 분석방법
US8984085B2 (en) 2011-02-14 2015-03-17 Kt Corporation Apparatus and method for controlling distributed memory cluster
WO2012111905A2 (ko) * 2011-02-14 2012-08-23 (주)케이티 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
WO2012111905A3 (ko) * 2011-02-14 2012-10-11 (주)케이티 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
KR101502896B1 (ko) * 2011-02-14 2015-03-24 주식회사 케이티 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
KR20130097973A (ko) * 2012-02-27 2013-09-04 삼성전자주식회사 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법
KR101476789B1 (ko) * 2013-05-06 2014-12-26 (주)넥셀 프로세싱 장치 및 방법
WO2014181924A1 (ko) * 2013-05-06 2014-11-13 (주)넥셀 프로세싱 장치 및 방법
KR101640231B1 (ko) * 2015-02-12 2016-07-18 소프트온넷(주) 자동 분산병렬 처리 하둡 시스템의 지원을 위한 클라우드 구동 방법
KR20190119487A (ko) * 2018-04-12 2019-10-22 숭실대학교산학협력단 스몰 데이터 기계 학습을 위한 노드 관리 시스템
CN110209549A (zh) * 2018-05-22 2019-09-06 腾讯科技(深圳)有限公司 数据处理方法、相关装置、相关设备和系统
CN110209549B (zh) * 2018-05-22 2022-02-22 腾讯科技(深圳)有限公司 数据处理方法、相关装置、相关设备和系统
KR20200052135A (ko) * 2018-11-06 2020-05-14 삼성전자주식회사 작업 의존성에 기초하여 컴퓨팅 작업을 서버에 스케줄링하는 방법 및 장치
US12008400B2 (en) 2018-11-06 2024-06-11 Samsung Electronics Co., Ltd. Method and device for arranging schedule for computing task to server on basis of task dependency
WO2020222407A1 (ko) * 2019-05-02 2020-11-05 숭실대학교산학협력단 머신 러닝 플랫폼 관리 시스템 및 방법
KR102623397B1 (ko) * 2023-04-07 2024-01-10 메티스엑스 주식회사 매니코어 시스템

Also Published As

Publication number Publication date
KR101013073B1 (ko) 2011-02-14

Similar Documents

Publication Publication Date Title
KR101013073B1 (ko) 태스크 분배 및 병렬 처리 시스템과 그 방법
WO2021208546A1 (zh) Kubernetes集群架构系统下多维资源调度方法
US11366797B2 (en) System and method for large-scale data processing using an application-independent framework
JP6254949B2 (ja) 仮想マシンプールにおけるリソースの価格設定
US7689996B2 (en) Method to distribute programs using remote Java objects
KR101994506B1 (ko) Paas 자원들, 작업들 및 스케줄링의 분리 기법
JP5088234B2 (ja) メッセージ紐付け処理装置、方法及びプログラム
EP2802998B1 (en) Assignment of resources in virtual machine pools
US20030154112A1 (en) System and method for allocating computing resources
US10691502B2 (en) Task queuing and dispatching mechanisms in a computational device
US11175948B2 (en) Grouping of tasks for distribution among processing entities
KR20140109940A (ko) Paas 계층적 스케일링 및 자동 스케일링 기법
KR20140122240A (ko) 확장 가능한 환경에서의 파티션 관리 기법
US10733025B2 (en) Balancing categorized task queues in a plurality of processing entities of a computational device
Amalarethinam et al. An Overview of the scheduling policies and algorithms in Grid Computing
US20230342191A1 (en) Task Scheduling Method and System
KR102247249B1 (ko) 데이터베이스 관리 시스템에서 비동기적 데이터 처리를 위한 컴퓨터 프로그램
KR101640231B1 (ko) 자동 분산병렬 처리 하둡 시스템의 지원을 위한 클라우드 구동 방법
CN109716280A (zh) 灵活的内存列存储布置
KR100983479B1 (ko) 분산 스페이스를 이용하여 분산 프로그래밍 환경을 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
Khalil et al. Survey of Apache Spark optimized job scheduling in Big Data
Zacheilas et al. A Pareto-based scheduler for exploring cost-performance trade-offs for MapReduce workloads
Que et al. Hierarchical merge for scalable mapreduce
Mathiason et al. Virtual full replication by adaptive segmentation
Nimbalkar et al. Survey on scheduling algorithm in mapreduce framework

Legal Events

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

Payment date: 20130730

Year of fee payment: 17