KR101893982B1 - 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치 - Google Patents

분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치 Download PDF

Info

Publication number
KR101893982B1
KR101893982B1 KR1020120036921A KR20120036921A KR101893982B1 KR 101893982 B1 KR101893982 B1 KR 101893982B1 KR 1020120036921 A KR1020120036921 A KR 1020120036921A KR 20120036921 A KR20120036921 A KR 20120036921A KR 101893982 B1 KR101893982 B1 KR 101893982B1
Authority
KR
South Korea
Prior art keywords
task
node
reconfigurable processor
cost
gain
Prior art date
Application number
KR1020120036921A
Other languages
English (en)
Other versions
KR20130114497A (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 KR1020120036921A priority Critical patent/KR101893982B1/ko
Priority to US13/858,334 priority patent/US9965322B2/en
Priority to CN201310120824.8A priority patent/CN103365714B/zh
Priority to JP2013080972A priority patent/JP6266221B2/ja
Priority to EP13162963.6A priority patent/EP2650786A3/en
Publication of KR20130114497A publication Critical patent/KR20130114497A/ko
Application granted granted Critical
Publication of KR101893982B1 publication Critical patent/KR101893982B1/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities

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)
  • Stored Programmes (AREA)
  • Logic Circuits (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Microcomputers (AREA)

Abstract

일 양상에 따른 분산 처리 시스템은, 재구성가능 프로세서(Reconfigurable Processor) 및 비-재구성가능 프로세서(Non-Reconfigurable Processor) 중 적어도 어느 하나에 기초하여 태스크를 처리하는 다수의 태스크 노드, 및 다수의 태스크 노드 중에서, 태스크를 처리할 태스크 노드를 결정하는 스케줄러 노드를 포함할 수 있다.

Description

분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치{Distributed processing system, scheduler node and scheduling method of distributed processing system, and apparatus for generating program thereof}
컴퓨팅 환경에서 작업을 분배하기 위한 기술과 관련된다.
인터넷상의 서버를 통하여 데이터 저장, 네트워크, 콘텐츠 사용 등 IT 관련 서비스를 한번에 사용할 수 있는 클라우드 컴퓨팅 및 서로 다른 물리적인 위치에 존재하는 컴퓨터들의 리소스를 가상화하는 기술에 대한 연구가 진행 중이다. 데이터의 생산과 수집이 늘어남에 따라 데이터 분석 어플리케이션은 클라우드 컴퓨팅 환경에서 동작하는 주요 어플리케이션이 되어가고 있다.
재구성가능 프로세서와 클라우드 컴퓨팅 환경이 결합된 분산 처리 시스템에서 작업을 분배하기 위한 장치 및 방법, 및 이러한 분산 처리 시스템에서 효율적으로 동작할 수 있는 프로그램 구성 방법이 제공된다.
일 양상에 따른 분산 처리 시스템은, 재구성가능 프로세서(Reconfigurable Processor) 및 비-재구성가능 프로세서(Non-Reconfigurable Processor) 중 적어도 어느 하나에 기초하여 태스크를 처리하는 다수의 태스크 노드; 및 다수의 태스크 노드 중에서, 태스크를 처리할 태스크 노드를 결정하는 스케줄러 노드를 포함할 수 있다.
다른 양상에 따른 분산 처리 시스템은, 재구성 가능 프로세서 및 비-재구성 가능 프로세서를 포함하는 적어도 하나의 태스크 노드; 및 태스크에 기초하여 재구성 가능 프로세서를 재구성하는 재구성 로직을 생성하고 적어도 하나의 태스크 노드로 전달하는 스케줄러 노드를 포함할 수 있다.
또 다른 양상에 따른 분산 처리 시스템은, 재구성 가능 프로세서 및 비-재구성 가능 프로세서를 포함하는 적어도 하나의 태스크 노드; 및 태스크에 기초하여 재구성 가능 프로세서 및 비-재구성 가능 프로세서 중 태스크의 적어도 일부를 처리할 하나의 프로세서를 결정하는 스케줄러 노드를 포함할 수 있다.
또한 일 양상에 따른 태스크 노드는, 태스크 및 태스크 처리 방식을 수신하는 태스크 정보 수신부; 수신된 태스크 처리 방식에 대응한 프로세서를 구동시키는 제어부; 및 재구성가능 프로세서(Reconfigurable Processor) 및 비-재구성가능 프로세서(Non-Reconfigurable Processor)중 적어도 하나 이상을 포함하는 프로세서 유닛을 포함하되, 태스크 처리 방식은 RP 로직 및 non-RP 로직 중 어느 하나이고, 제어부는 수신된 태스크 처리방식이 RP 로직인 경우에는 재구성가능 프로세서를 구동시키고, non-RP 로직인 경우에는 비-재구성가능 프로세서를 구동시키는 것이 가능하다.
또한 일 양상에 따른 스케줄러 노드는, 재구성가능 프로세서(Reconfigurable Processor) 및 비-재구성가능 프로세서(Non-Reconfigurable Processor) 중 적어도 어느 하나에 기초하여 태스크를 처리하는 다수의 태스크 노드 중에서 태스크를 처리할 태스크 노드를 결정하는 스케줄러를 포함할 수 있다.
한편, 일 양상에 따른 분산 처리 시스템의 스케줄 방법은, 재구성가능 프로세서(Reconfigurable Processor) 및 비-재구성가능 프로세서(Non-Reconfigurable Processor) 중 적어도 어느 하나에 기초하여 태스크를 처리하는 각각의 태스크 노드 별로, RP 코스트(RP cost) 및 non-RP 코스트(non-RP cost)를 비교하여 소정의 RP 이득(RP gain)을 계산하는 단계; 및 계산된 RP 이득에 따라 태스크 노드 및 그 태스크 노드에서 상기 태스크가 처리될 방식을 결정하는 단계를 포함할 수 있다.
또한 일 양상에 따른 태스크 노드 활용 방법은, 태스크를 입력 받는 단계; 태스크에 기초하여 재구성 가능 프로세서를 재구성하는 재구성 로직을 생성하는 단계; 및 재구성 로직을 상기 태스크 노드로 전달하는 단계를 포함할 수 있다.
또한 다른 양상에 따른 태스크 노드 활용 방법은, 태스크를 입력 받는 단계; 태스크에 기초하여, 재구성 가능 프로세서 및 비-재구성 가능 프로세서 중 태스크의 적어도 일부를 처리할 하나의 프로세서를 결정하는 단계; 및 결정된 프로세서를 사용하여 태스크의 적어도 일부의 처리를 요청하는 단계를 포함할 수 있다.
일 양상에 따른 프로그램 생성 장치는, 재구성가능 프로세서(Reconfigurable Processor) 및 비-재구성가능 프로세서(Non-Reconfigurable Processor) 중 적어도 어느 하나에 기초하여 태스크를 처리하는 다수의 태스크 노드 및 다수의 태스크 노드 중에서 태스크를 처리할 태스크 노드를 결정하는 스케줄러 노드를 포함하는 분산 처리 시스템의 프로그램을 생성하며, 비-재구성가능 프로세서를 위한 non-RP 로직에 대응되고 재구성가능 프로세서를 위한 RP 로직을 포함하는 코드를 생성하는 것이 가능하다.
기존 시스템 대비, 컴퓨팅 작업의 특성에 따른 동적인 하드웨어 시스템의 유연한 구성이 가능해진다. 특정 하드웨어 구성을 가진 시스템을 미리 구성하거나, 계획을 세우고 진행할 필요 없이, 프로그램의 구성 만으로 시스템의 판단 하에 최적화된 실행이 가능해진다.
분산 시스템 전체의 활용도을 높일 수 있다. 재구성 로직을 사용자 및 작업의 요구에 따라 바로 변경하여 사용할 수 있으므로, 재구성가능 장치에 대한 활용성이 높아진다. 재구성된 로직의 하드웨어 가속 기술로 인한 시스템 전체적인 Throughput, 실행 속도가 증가하면서, 재구성가능 장치가 없는 노드들을 다른 일반적인 용도로 활용할 수 있으므로, 분산 시스템 전체의 활용도를 높이는 효과를 가져온다.
사용자 입장에서는, 재구성가능 장치를 통한 실행 속도의 증가는 클라우드 환경에서 작업의 수행 시간을 낮출 수 있는 효과를 가져다 준다.
도 1은 일 실시예에 따른 분산 처리 시스템의 구성을 도시한다.
도 2는 일 실시예에 따른 스케줄러 노드의 구성을 도시한다.
도 3은 일 실시예에 따른 태스크 처리 노드 및 태스크 처리 방식을 결정하는 방법을 도시한다.
도 4는 일 실시예에 따른 스케줄러의 구성을 도시한다.
도 5는 일 실시예에 따른 프로그램 패키지의 구성을 도시한다.
도 6A는 일 실시예에 따른 태스크 노드의 구성을 도시한다.
도 6B는 다른 실시예에 따른 태스크 노드의 구성을 도시한다.
도 7은 일 실시예에 따른 프로그램 생성 장치를 도시한다.
도 8은 일 실시예에 따른 분산 처리 시스템의 스케줄 방법을 도시한다.
이하, 첨부된 도면을 참조하여 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 일 실시예에 따른 분산 처리 시스템의 구성을 도시한다.
도 1에서 설명하는 분산 처리 시스템은 여러 용도로 사용 가능하다. 예를 들어, 금융, 의료 분야 등의 대용량 데이터를 처리하거나, 암호화, 영상 처리 등의 특수한 데이터를 처리하는 서비스를 제공하는 컴퓨팅 시스템에 적용될 수 있다. 또한 분산처리 시스템은 클라우드 컴퓨팅을 포함하는 여러 네트워크 환경에 적용될 수 있다.
분산 처리 시스템(100)은 네트워크(101), 및 네트워크(101)에 연결된 다수의 노드(102a~102c, 104a~104d, 106)를 포함한다. 네트워크(101)는 유선 또는 무선 네트워크가 될 수 있다. 각각의 노드(102a~102c, 104a~104d, 106)는 데이터를 분석 및 처리하는 컴퓨팅 장치가 될 수 있다. 각각의 노드(102a~102c, 104a~104d, 106)는 다수의 클라이언트 노드(102a, 102b, 102c), 다수의 태스크 노드(104a, 104b, 104c, 104d), 및 적어도 하나의 스케줄러 노드(106)로 구분될 수 있다.
각각의 클라이언트 노드(102a, 102b, 102c)는 스케줄러 노드(106)에게 작업(job)의 처리를 요청한다. 선택적으로, 각각의 클라이언트 노드(102a, 102b, 102c)는 스케줄러 노드(106)에게 태스크(task)의 처리를 요청할 수 있다. 작업은 다수의 태스크로 이루어지는 것이 일반적이지만, 본 설명에서 작업과 태스크라는 용어는 서로 혼용되어 사용될 수 있다.
각각의 태스크 노드(104a, 104b, 104c, 104d)는 스케줄러 노드(106)로부터 태스크를 전달 받아 이를 처리한 후, 그 처리 결과를 스케줄러 노드(106)로 반환한다. 스케줄러 노드(106)는 반환된 처리 결과를 정리하여 작업 처리 요청을 한 클라이언트 노드로 전송한다.
각각의 태스크 노드(104a, 104b, 104c, 104d)는 재구성가능 프로세서(Reconfigurable Processor)(이하, @@@RP core@@@라 함)(120) 및 비-재구성가능 프로세서(Non-Reconfigurable Processor)(이하, @@@non-RP core@@@라 함)(140) 중 적어도 어느 하나에 기초하여 태스크를 처리한다. 예컨대, 각각의 태스크 노드(104a, 104b, 104c, 104d)는 스케줄러 노드(106)의 명령에 따라 RP core(120) 및 non-RP core(140) 중 어느 하나를 활성화시키면, 활성화된 RP core(120) 또는 non-RP core(140)가 태스크를 실행하는 것이 가능하다.
RP core(120)로는 FPGA(field-programmable gate array) 또는 CGA(coarse-grained array) 아키텍처가 이용될 수 있고, non-RP core(140)로는 범용 CPU(Central Processing Unit), GPU(Graphics Processing Unit) 또는 VLIW(very long instruction word) 머신 등이 이용될 수 있으나 여기에 한정되는 것은 아니다.
선택적으로, 각각의 태스크 노드(104a, 104b, 104c, 104d)는 RP core(120)와 non-RP core(140) 중 적어도 하나를 포함할 수 있다. 예컨대, TN#0(104a) 및 TN#1(104b)과 같이 RP core(120)와 non-RP core(140)가 모두 구비될 수도 있고, TN#2(104c)와 같이 RP core(120)만 구비되거나, TN#n(104d)과 같이 non-RP core(140)만 구비되는 것도 가능하다. 물론 모든 태스트 노드들 각각이 RP core와 non-RP core를 구비하는 것도 가능하다. 태스크 노드에 구비된 RP core나 non-RP core들은 서로 동일할 수도 있으며 필요에 따라 서로 다를 수도 있다.
각각의 태스크 노드(104a, 104b, 104c, 104d)는 자신의 상황 정보를 주기적으로 업데이트하여 스케줄러 노드(106)로 보고할 수 있다. 상황 정보는 RP core(120)의 점유 여부 및 점유 예상 시간, RP core(120)에 관한 재구성 정보, RP core(120)의 작업 진행 정보 등이 될 수 있다.
스케줄러 노드(106)는 다수의 태스크 노드(104a, 104b, 104c, 104d) 중에서 태스크를 실행할 태스크 처리 노드를 결정한다. 태스크는 클라이언트 노드(102a, 102b, 102c)로부터 수신된 태스크, 또는 클라이언트 노드(102a, 102b, 102c)로부터 수신된 작업을 분할하여 생성된 태스크가 될 수 있다.
스케줄러 노드(106)는 태스크 처리 노드와 그 태스크 처리 노드에서 태스크가 처리될 방식을 결정할 수 있다. 태스크 처리 방식은 RP core(120)에 기초하여 태스크가 처리되는 방식인 RP 방식과 non-RP core(140)에 기초하여 태스크가 처리되는 방식인 non-RP 방식을 포함할 수 있다.
스케줄러 노드(106)는 각각의 태스크 노드(104a, 104b, 104c, 104d) 별로 RP 코스트와 non-RP 코스트를 계산할 수 있다. RP 코스트는 RP core(120)를 이용하여 태스크를 처리하는 데에 소요되는 시간 또는 전력 등이 될 수 있고, non-RP 코스트는 non-RP core(140)를 이용하여 태스크를 처리하는 데에 소요되는 시간 또는 전력 등이 될 수 있다. 다시 말해, RP 코스트는 RP core(120)에서 태스크가 처리될 때의 비용일 수 있고, non-RP 코스트는 non-RP core(140)에서 태스크가 처리될 때의 비용일 수 있다. RP 코스트는 RP core(120)의 태스크 처리 시간, 태스크 처리 대기 시간, 재구성 시간, 재구성 대기 시간, 및 태스크 처리 전력 중 적어도 하나를 토대로 계산될 수 있다. non-RP 코스트는 non-RP core(140)의 태스크 처리 시간, 태스크 처리 대기 시간 및 태스크 처리 전력 중 적어도 하나를 토대로 계산될 수 있다.
스케줄러 노드(106)는 각각의 태스크 노드(104a, 104b, 104c, 104d) 별로 RP 이득을 계산할 수 있다. RP 이득은 RP core를 통해 태스크를 처리했을 때 좋은 정도를 의미할 수 있다. 예컨대, 스케줄러 노드(106)는 non-RP 코스트에서 RP 코스트를 뺀 값을 RP 이득으로 설정할 수 있다.
스케줄러 노드(106)는 각각의 태스크 노드(104a, 104b, 104c, 104d) 별로 계산된 RP 이득을 이용하여 태스크를 실행할 태스크 노드를 결정할 수 있다. 예컨대, 스케줄러 노드(106)는 RP 이득의 크기 정보에 기초하여 태스크 노드를 결정할 수 있다. RP 이득의 크기 정보는 RP 이득에 대한 절대값을 의미할 수 있다. 일 예로서, 스케줄러 노드(106)는 가장 큰 절대값의 RP 이득을 갖는 하나의 태스크 노드를 선택할 수도 있고, 필요에 따라 RP 이득의 절대값이 큰 복수의 태스크 노드를 선택할 수도 있다.
태스크를 실행할 태스크 노드를 결정하는 것에 추가하여, 스케줄러 노드(106)는 계산된 RP 이득을 이용하여 태스크를 실행할 태스크 노드의 태스크 처리 방식을 결정할 수 있다. 예컨대, 스케줄러 노드(106)는 RP 이득의 방향 정보에 기초하여 태스크 처리 방식을 결정할 수 있다. RP 이득의 방향 정보는 RP 이득값의 부호(sign)가 될 수 있다. 일 예로서, 스케줄러 노드(106)는 선택된 태스크 노드의 RP 이득값이 양수이면 RP 방식을 선택하고 음수이면 non-RP 방식을 선택할 수 있다.
추가적 양상에 따라, 스케줄러 노드(106)는 RP 코스트에서 non-RP 코스트를 뺀 값에 기초하여 non-RP 이득을 계산하고, non-RP 이득을 이용하여 스케줄 노드 및 태스크 처리 방식을 결정할 수도 있다.
일 양상에 따라, 스케줄러 노드(106)가 CN#0(102a)으로부터 태스크 처리 요청을 수신하였다고 가정하자. 스케줄러 노드(106)는 태스크를 처리할 태스크 노드를 결정하기 위하여, 각 태스크 노드(104a, 104b, 104c, 104d)의 RP 이득을 계산한다. RP 이득은 각 태스크 노드(104a, 104b, 104c, 104d)의 RP 코스트와 non-RP 코스트를 통해 계산될 수 있다. 만약, 계산된 각 태스크 노드(104a, 104b, 104c, 104d)의 RP 이득이 @@@+100@@@, @@@+50@@@, @@@+30@@@, 및 @@@-10@@@이라면, 스케줄러 노드(106)는 절대값이 가장 큰 TN#0(104a)을 태스크를 실행할 태스크 노드로 선택할 수 있다. 또한 스케줄러 노드(106)는 TN#0(104a)의 RP 이득이 양의 값을 가지므로 태스크 처리 방식으로 RP 방식을 선택할 수 있다. 스케줄러 노드(106)에 의해 스케줄된 TN#0(104a)는 CN#0(102a)의 태스크를 RP core(120)를 통해 실행하고 그 결과를 스케줄러 노드(106)로 반환할 수 있다.
또한, 최대 절대값을 가지는 TN#0(104a)를 선택하는 대신, 절대값이 큰 두 노드 TN#0(104a) 및 TN#1(104b)를 선택하는 것도 가능하다. 이 경우 RP 이득은 양의 값을 가지므로 태스크 처리방식은 RP 방식을 선택할 수 있으며, 처리할 태스크는 분할되어 TN#0(104a) 및 TN#1(104b)에서 실행될 수 있다.
도 2는 일 실시예에 따른 스케줄러 노드의 구성을 도시한다.
도 2를 참조하면, 스케줄러 노드(200)는 스케줄러(204)를 포함한다. 선택적으로, 스케줄러 노드(200)는 작업 분할부(202), 판단 정보 DB(206), 및 실행 요청부(208)를 더 포함할 수도 있다.
스케줄러(204)는 태스크 처리 요청을 수신하고, 수신된 태스크 처리 요청에 따라 태스크를 처리할 태스크 노드와 그 태스크 노드의 태스크 처리 방식을 런타임 환경에서 동적으로 결정할 수 있다. 수신된 태스크 처리 요청에 따라 스케줄러(204)는 판단 정보 DB(206)를 참조하여 각 태스크 노드의 RP 이득을 계산할 수 있다. 판단 정보 DB(206)에는 각 태스크 노드에 관한 스케줄링 정책, 과거 작업에 대한 기록, 하드웨어 상태 정보, 작업 설정 정보, 프로그램 구성 정보, 데이터 입출력 시간, 소비전력 등이 저장되어 있다.
일 양상에 따라, RP 이득은 다음과 같이 계산될 수 있다.
Figure 112012028316344-pat00001
수학식 1에서, Cost_nonRP는 non-RP core를 이용하여 태스크를 처리할 때에 소요되는 시간 또는 전력 등을 나타내는 non-RP 코스트가 될 수 있고, Cost_RP는 RP core를 이용하여 태스크를 처리할 때에 소요되는 시간 또는 전력 등을 나타내는 RP 코스트가 될 수 있다.
이해를 돕기 위해, non-RP 코스트와 RP 코스트를 시간 측면에서만 살펴보면 다음과 같이 나타낼 수 있다.
Figure 112012028316344-pat00002
수학식 2에서, Time_WaitForExecutionWithoutRP는 non-RP core의 태스크 실행 대기 시간이, Time_ExecutionWithoutRP는 non-RP core의 태스크 처리 시간이 될 수 있다.
Figure 112012028316344-pat00003
수학식 3에서, Time_WaitForRP는 RP core의 재구성 대기 시간을, Time_ToRP는 RP core의 재구성 수행 시간을, Time_WaitForExecutionWithRP은 RP core의 태스크 실행 대기 시간을, Time_ExecutionWithRP는 RP core의 태스크 처리 시간이 될 수 있다.
수학식 2 및 3에서는 코스트로서 시간을 예시하였으나, 그 밖에도 소비 전력량을 추가적으로 고려할 수도 있고, 응용목적에 따라 일부 항목에 가중치를 부여할 수도 있다. 또한 수학식 2 및 3은 이해를 돕기 위한 일 예로서 대기 시간이 처리 시간과 다른 개별 항목으로 계산되었으나 처리 시간에 포함되어 계산되는 방식도 물론 가능하다.
스케줄러(204)는 수학식 1 내지 3과 같이 계산된 각 태스크 노드의 RP 이득을 이용하여 태스크를 처리할 태스크 노드와 태스크 처리 방식을 결정할 수 있다. 도 3을 참조하여 구체적으로 살펴보겠다.
도 3은 일 실시예에 따른 태스크 처리 노드 및 태스크 처리 방식을 결정하는 방법을 도시한다.
도 3의 Case I에서, Node#0의 RP 이득은 @@@100@@@으로 표시되어 있다. 이것은 non-RP 코스트와 RP 코스트의 차(difference)가 100이라는 것을 의미할 수 있다. 예를 들어, Node#0의 non-RP core를 이용하여 태스크를 처리하면 150초가 소요되고, Node#0의 RP core를 이용하여 태스크를 처리하면 50초가 소요된다면, Node#0의 RP 이득은 100(=150-50)으로 계산될 수 있는 것이다. 다시 말해, 이것은 Node#0에서 태스크가 처리될 때, RP 방식으로 처리된다면 non-RP 방식에 비해 100의 이익이 있다는 것을 의미한다. 마찬가지로, Case II의 Node#2의 경우, @@@-100@@@의 RP 이득은 태스크가 처리될 때 RP 방식으로 처리된다면 non-RP 방식에 비해 100의 손해가 있음을 의미할 수 있다. 거꾸로 말하면, Case II의 Node#2의 경우에는 non-RP 방식에 의한 태스크 처리가 RP 방식에 비해 100의 이익이 있다는 것을 의미할 수 있다.
도 2 및 도 3에서, Case I과 같이, 각 태스크 노드의 RP 이득이 100, 70, 및 50이라고 가정하자. Case I에서, 스케줄러(204)는 RP이득의 절대값이 가장 큰 태스크 노드인 Node#0을 태스크 처리 노드로 선택할 수 있다. 또한 선택된 Node#0의 RP 이득이 양의 값을 가지므로, 태스크 처리 방식을 RP 방식으로 결정할 수 있다.
다른 양상에 따라, Case II와 같이, 각 태스크 노드의 RP 이득이 -50, -70, 및 -100이라고 가정하자. Case II에서, 스케줄러(204)는 RP이득의 절대값이 가장 큰 태스크 노드인 Node#2를 태스크 처리 노드로 선택할 수 있다. 또한 선택된 Node#2의 RP 이득이 음의 값을 가지므로, 태스크 처리 방식을 non-RP 방식으로 결정할 수 있다. 즉 Case II는 RP 방식으로 처리했을 때 이익이 되는 태스크 노드가 하나도 없으므로, non-RP 방식으로 처리하되, non-RP 이득이 가장 큰(즉, RP 이득이 가장 작은) Node#2를 선택한 것이다.
마찬가지로, Case III에서는 Node#0가 태스크 처리 노드로 결정되고, RP 방식이 태스크 처리 방식으로 결정될 수 있고, Case IV에서는 Node#2가 태스크 처리 노드로 결정되고, RP 방식이 태스크 처리 방식으로 결정될 수 있다.
다만 도 3은 이해를 돕기 위하여 최대한 단순한 예를 나타낸 것에 불과하다. 따라서 그 밖에 다양한 방법으로 태스크 처리 노드 및 태스크 처리 방식이 결정될 수도 있다. 예를 들어, RP 이득에 따라 소정의 우선 순위를 부여하여 태스크를 처리할 태스크 노드를 여러 개 선택하는 것도 가능하다. 또한 단순히 RP 이득의 부호(즉, 음수/양수)에 의존하지 않고 설정된 임계값과의 비교 결과에 따라 태스크 처리 방식을 결정할 수도 있다. 나아가 RP core 및 non-RP core 중 어느 하나만 구비하고 있는 태스크 노드에 대해서는 미리 정해진 RP 코스트 및 non-RP 코스트를 부여하는 것이 가능하며, 이러한 RP 코스트 및 non-RP 코스트, 코스트 및 이득의 계산 방법, 태스크 처리 노드 및 태스크 처리 방식의 결정 정책 등은 판단 정보 DB(206)에 저장될 수 있다.
다시 도 2에서, 스케줄러(204)는 정해진 태스크 처리 노드의 식별 정보 및 태스크 처리 방식에 대한 정보를 포함하는 스케줄 정보를 실행 요청부(208)로 전달할 수 있다. 실행 요청부(208)는 스케줄 정보에 따라 결정된 태스크 노드로 태스크의 처리를 요청한다. 일 양상에 따라, 태스크 처리 방식으로 RP 방식이 결정되었는데, 결정된 태스크 노드의 RP core의 실행 준비가 완료되지 아니한 경우, 실행 요청부(208)는 태스크 처리를 요청하기 전에 RP core의 재구성을 요청할 수 있다.
스케줄러(204)로 입력 또는 수신되는 태스크는 전처리 과정을 거칠 수도 있다. 예를 들어, 클라이언트 노드가 작업 요청을 전송한 경우, 작업 분할부(202)는 작업을 다수의 태스크로 분할하고, 각 태스크를 리스트 형식으로 스케줄러(204)로 전송할 수 있다. 스케줄러(204)는 각 태스크에 대한 태스크 처리 노드와 태스크 처리 방식을 결정하고, 리스트 형식으로 스케줄 정보를 실행 요청부(208)로 제공할 수 있다.
도 4는 일 실시예에 따른 스케줄러의 구성을 도시한다.
도 4를 참조하면, 스케줄러(400)는 비용계산부(401), 이득계산부(402), 노드결정부(403), 및 방식결정부(404)를 포함할 수 있다. 도 4에서 설명하는 스케줄러(400)는 도 2의 스케줄러(204)의 일 예일 수 있다.
비용계산부(401)는 각 태스크 노드 별로 RP 코스트와 non-RP 코스트를 계산할 수 있다. RP 코스트는 태스크 노드가 RP core를 이용하여 태스크를 처리할 때 소요되는 비용이 될 수 있고, non-RP 코스트는 태스크 노드가 non-RP core를 이용하여 태스크를 처리할 때 소요되는 비용이 될 수 있다. 만약 어떤 태스크 노드에 RP core 및 non-RP core 중 어느 하나만 존재하는 경우, 존재하지 않는 core의 코스트는 적절한 값으로 미리 주어질 수 있다. 예를 들어, 존재하지 않는 core의 코스트는 스케줄러가 처리 가능한 최대값으로 설정할 수 있다. RP core가 존재하지 않는 경우, RP 코스트가 최대값으로 설정되면, RP core가 선택될 가능성을 배제할 수 있다. 마찬가지로 non-RP core가 존재하지 않는 경우 non-RP 코스트가 최대값으로 설정되면 non-RP core가 선택될 가능성을 배제할 수 있다.
이득계산부(402)는 RP 코스트와 non-RP 코스트를 비교하여 소정의 이득을 계산한다. 일 예로서, 이득계산부(402)는 non-RP 코스트에서 RP 코스트를 뺀 값을 RP 이득으로 설정할 수 있다. 다른 예로서, 이득계산부(402)는 RP 코스트에서 non-RP 코스트를 뺀 값을 non-RP 이득으로 설정할 수 있다.
노드결정부(403)는 계산된 이득을 이용하여 태스크를 처리할 태스크 처리 노드를 결정한다. 예컨대, 노드결정부(403)는 RP 이득의 크기 정보를 이용하여 태스크 처리 노드를 선택할 수 있다.
방식결정부(404)는 계산된 이득을 이용하여 태스크 처리 노드의 태스크 처리 방식을 결정한다. 예컨대, 방식결정부(404)는 RP 이득의 방향 정보를 이용하여 태스크 처리 방식을 선택할 수 있다.
스케줄 정보 제공부(405)는 결정된 태스크 처리 노드 및 태스크 처리 방식을 포함하는 스케줄 정보를 생성한다. 생성된 스케줄 정보는 실행 요청부(예컨대, 도 2의 208) 또는 결정된 태스크 처리 노드로 제공될 수 있다.
도 5는 일 실시예에 따른 프로그램 패키지의 구성을 도시한다.
도 5를 참조하면, 프로그램 패키지(500)는 각 태스크 노드에서 실행될 태스크에 대응되며, non-RP 로직(510) 및 RP 로직(520)을 포함할 수 있다. 전술하였듯이, 태스크는 스케줄러 노드의 요청에 따라 태스크 노드에서 non-RP 방식 또는 RP 방식으로 처리된다. non-RP 로직(510)은 non-RP 방식이 선택되었을 경우에 non-RP core가 실행하는 부분이 될 수 있다. 일 예로, non-RP 로직(510)은 범용 CPU를 위한 태스크의 실행 코드가 될 수 있다. RP 로직(520)은 RP 방식이 선택되었을 경우에 RP core가 실행하는 부분이 될 수 있다. 일 예로, RP 로직(520)은 재구성가능 프로세서를 위한 태스크의 실행 코드가 될 수 있다.
RP 로직(520)은 RP core와의 인터페이스를 위한 로직, RP core의 재구성을 위한 로직을 포함할 수 있다. RP core의 재구성을 위한 로직은 RP core의 구성 정보와 관련되며, 바이너리 데이터(예컨대, 비트스트림), 구성 정보를 기술하는 메타 정보 또는 논리 언어 형태로 구성될 수 있다.
일 양상에 따라, non-RP 로직(510)과 RP 로직(520)은 1:1로 매핑될 수 있다. RP 로직(520)은 소정의 프로그램 생성 장치에 의해 자동으로 생성될 수도 있다. 동적으로 활용하는 경우, 소정의 프로그램은 태스크에 기초하여 RP core의 재구성을 위한 로직 및 RP core와의 인터페이스를 위한 로직을 생성할 수 있다. 생성된 RP core의 재구성을 위한 로직은 태스크 노드로 전달되어 태스크 수행 이전에 RP core를 재구성하는데 사용된다.
추가적 양상에 따라, 프로그램 패키지(500)는 공통 로직(530)을 더 포함할 수도 있다. 공통 로직(530)은 non-RP 방식이나 RP 방식에 관계없이, 공통적으로 실행되는 부분을 말한다. 도 5에서는 분리된 개별 로직으로 표현되어 있으나 공통 로직(530)은 non-RP 로직(570) 또는 RP 로직(520)의 일부분일 수도 있다. 또한 non-RP core와 RP core에서 공통적으로 실행되는 대신 공통 로직(530)은 non-RP core(예를들어, 범용 CPU)에서 실행된다고 볼 수도 있다.
도 6A는 일 실시예에 따른 태스크 노드의 구성을 도시한다.
도 6A를 참조하면, 태스크 노드(600)는 non-RP core(602), RP core(604), 및 제어부(606)를 포함할 수 있다. non-RP core(602)는 예를 들어 범용 CPU가 될 수 있고, RP core(604)는 소정의 구성 정보에 따라 그 하드웨어적 구성이 변경되는 예를 들어 FPGA 또는 CGA가 될 수 있다.
제어부(606)는 스케줄러 노드(예컨대, 도 1의 106)의 스케줄 결과에 따라 non-RP core(602) 및 RP core(604) 중 어느 하나를 이용하여 태스크가 처리되도록 각 코어(602, 604)의 동작을 제어한다. 예컨대, 스케줄러 노드(106)로부터 RP core(604)에 의한 태스크 처리 요청이 오면, 제어부(606)가 RP 방식에 따라 비트스트림을 바로 RP core(604)로 로딩하거나, 저장된 재구성 로직 라이브러리로부터 로딩할 비트스트림을 가져와서 로딩하거나, 혹은 사용자의 로직을 컴파일하여 비트스트림을 생성한 후, 이를 로딩할 수 있다.
제어부(606)는 non-RP core(602) 및/또는 RP core(604)의 인터페이스 역할을 담당할 수 있다. 또한 RP core(604)에서 수행 중인 태스크가 있거나 앞선 태스크에 관한 재구성 수행 혹은 수행 예정 중이기에 재구성이 어려운 경우, 태스크는 소정의 큐(queue)에 대기하고, 제어부(606)가 RP core(604)에 대한 잠금(lock)을 획득하여 대기 중인 태스크를 관리하는 것도 가능하다.
도 6B는 다른 실시예에 따른 태스크 노드의 구성을 도시한다.
도 6B에 나타난 태스크 노드(610)는 태스크 정보 수신부(620), 제어부(630), 및 프로세서 유닛(640)을 포함할 수 있다.
프로세서 유닛(640)은 재구성가능 프로세서(641) 및 비-재구성가능 프로세서(642) 중 적어도 하나를 포함할 수 있다. 도 6B에서는 이해를 돕기 위해 재구성가능 프로세서(641)와 비-재구성가능 프로세서(642)가 모두 프로세서 유닛(640)에 포함되는 것으로 설명하였으나 둘 중 어느 하나만 구비될 수도 있다.
태스크 정보 수신부(620)는 스케줄러 노드(예컨대, 도 1의 106)로부터 태스크 및 태스크 처리 방식을 수신할 수 있다. 태스크 처리 방식은 RP 로직 및 non-RP 로직 중 어느 하나가 될 수 있다. 태스크 처리 방식은 스케줄러 노드(106)에 의해 결정될 수 있다.
제어부(630)는 수신된 태스크 처리 방식에 대응한 프로세서(641, 642)를 구동시킬 수 있다. 예컨대, 제어부(630)는 수신된 태스크 처리 방식이 RP 로직인 경우에는 재구성가능 프로세서(641)를 구동시키고, non-RP 로직인 경우에는 비-재구성가능 프로세서(642)를 구동시킬 수 있다.
도 7은 일 실시예에 따른 프로그램 생성 장치를 도시한다.
도 7을 참조하면, 사용자는 범용 CPU용의 non-RP 로직(701)을 작성할 수 있다. 작성된 non-RP 로직(701)은 프로그램 생성 장치(700)로 입력될 수 있다. non-RP 로직(701)을 수신한 프로그램 생성 장치(700)는 non-RP 로직(701)과 동일한 기능을 수행하며 RP core를 위한 RP 로직(702)을 생성하고, non-RP 로직(701)과 RP 로직(702)을 매핑하여 프로그램 패키지(703)를 만들 수 있다. 프로그램 패키지(703)는 태스크 노드(예컨대, 도 1의 104a)로 제공되며, 태스크 노드(104a)는 스케줄러 노드(예컨대, 도 1의 106)의 제어에 따라 non-RP 로직(701) 또는 RP 로직(702)을 선택적으로 실행할 수 있다.
프로그램 생성 장치(700)는 스케줄러 노드(106)에 구비될 수 있다. 예컨대, 클라이언트 노드(예컨대, 도 1의 102a)로부터 작업 요청을 수신하면, 작업을 다수의 태스크로 분할하고, 분할된 각 태스크에 대응되는 RP 로직(702)을 생성하는 것이 가능하다. 그 밖에도, 프로그램 생성 장치(700)가 클라이언트 노드(102a, 102b, 102c)에 구비되어 스케줄러 노드(106)로 작업을 요청할 때 RP 로직(702)을 함께 제공하는 것도 가능하다. 또한, 프로그램 생성 장치(700)가 태스크 노드에 구비되어, 분할된 태스크에 대한 RP 로직(702)를 생성하는 것도 가능하다.
도 7에서는 프로그램 생성 장치(700)의 입력으로 non-RP 로직(701)이 사용되는 것을 예시하였으나, 또 다른 추가적 양상에 따라 non-RP 로직(701)과 RP 로직(702) 모두가 프로그램 생성 장치(700)의 입력으로 사용될 수 있다. 다시 말해, 사용자는 non-RP 로직(701)과 RP 로직(702)을 작성할 수 있다. non-RP 로직(701)과 RP 로직(702)이 함께 프로그램 생성 장치(700)로 입력되면, 프로그램 생성 장치(700)는 non-RP 로직(701)과 RP 로직(702)을 매핑하여 프로그램 패키지(703)를 만들 수 있다.
도 8은 일 실시예에 따른 분산 처리 시스템의 스케줄 방법을 도시한다.
도 1 및 도 8을 참조하면, 작업 또는 태스크 요청에 따라 태스크 노드 별 RP 이득이 계산된다(801). 예컨대, 도 3과 같이, 스케줄러 노드(106)가 각 태스크 노드의 RP 코스트 및 non-RP 코스트를 고려해서 RP 이득을 계산하는 것이 가능하다.
그리고 RP 이득에 따라 태스크 처리 노드와 태스크 처리 방식이 결정된다(802). 예컨대, 도 3과 같이, 스케줄러 노드(106)가 RP 이득의 크기와 방향을 고려해서 태스크 처리 노드와 태스크 처리 방식을 선택할 수 있다.
만약 non-RP 방식이 선택되면, 선택된 태스크 처리 노드로 태스크 처리를 요청한다(805). 이에 따라 선택된 태스크 처리 노드는 non-RP core를 이용하여 태스트를 처리한다.
만약 RP 방식이 선택되면, 선택된 태스크 처리 노드에 필요한 구성이 존재하는지 여부를 판단한다(803). 예컨대, 스케줄러 노드(106)가 선택된 태스크 처리 노드로부터 상태 정보를 수신하여 이를 판단할 수 있다. 필요한 구성이 존재하지 않는 경우, 스케줄러 노드(106)는 재구성을 요청하고(804), 실행 준비가 완료되면 태스크 처리를 요청한다(805). 이미 필요한 구성이 존재하여 실행 준비가 완료된 상태라면 바로 태스크 처리를 요청할 수 있다(805).
이상에서 살펴본 것과 같이, 개시된 실시예에 의하면, 범용 프로세서와 재구성가능 프로세서가 혼합된 분산 처리 시스템을 이용하여 작업(또는 태스크)이 처리되고, 또한 스케줄러 노드가 런타임 상황에서 실시간으로 최적의 태스크 처리 노드와 태스크 처리 방식을 판단하여 작업을 분배하기 때문에 그 작업에 최적화된 프로세서를 이용하여 작업을 처리할 수가 있고, 보다 효율적으로 자원을 활용할 수가 있다.
한편, 앞서 설명된 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 설명된 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 해당 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 예시적인 설명을 위한 것으로 권리범위가 특정 실시 예에 한정되지 아니할 것이다.
100: 분산 처리 시스템
101: 네트워크
102: 클라이언트 노드
104: 태스크 노드
106: 스케줄러 노드

Claims (47)

  1. 재구성가능 프로세서(Reconfigurable Processor) 및 비-재구성가능 프로세서(Non-Reconfigurable Processor) 중 적어도 어느 하나에 기초하여 태스크를 처리하는 다수의 태스크 노드; 및
    RP 코스트(RP Cost) 및 non-RP 코스트(non-RP Cost)를 이용하여 소정의 RP 이득(RP Gain)을 계산하고, 상기 계산된 RP 이득에 따라, 상기 다수의 태스크 노드 중에서, 상기 태스크를 처리할 태스크 노드를 결정하는 스케줄러 노드; 를 포함하는 분산 처리 시스템.
  2. 제 1 항에 있어서, 상기 스케줄러 노드는
    상기 태스크를 처리할 태스크 노드를 결정하고,
    상기 태스크 노드에서 상기 태스크가 처리될 방식을 결정하는 분산 처리 시스템.
  3. 제 1 항에 있어서, 상기 스케줄러 노드는
    상기 계산된 RP 이득에 따라, 상기 태스크 노드에서 상기 태스크가 처리될 방식을 결정하는 분산 처리 시스템.
  4. 제 3 항에 있어서, 상기 스케줄러 노드는
    상기 RP 이득의 크기 정보에 기초하여 상기 태스크 노드를 결정하고,
    상기 RP 이득의 방향 정보에 기초하여 상기 태스크가 처리될 방식을 결정하는 분산 처리 시스템.
  5. 제 3 항에 있어서, 상기 스케줄러 노드는
    상기 비-재구성가능 프로세서의 태스크 처리 시간 및 태스크 처리 전력 중 적어도 하나를 이용하여 상기 non-RP 코스트를 계산하는 분산 처리 시스템.
  6. 제 3 항에 있어서, 상기 스케줄러 노드는
    상기 재구성가능 프로세서의 태스크 처리 시간, 태스크 처리 대기 시간, 재구성 시간, 재구성 대기 시간, 및 태스크 처리 전력 중 적어도 하나를 이용하여 상기 RP 코스트를 계산하는 분산 처리 시스템.
  7. 제 1 항에 있어서, 상기 태스크는
    상기 비-재구성가능 프로세서를 위한 non-RP 로직, 및 상기 non-RP 로직에 대응되고 상기 재구성가능 프로세서를 위한 RP 로직을 포함하는 분산 처리 시스템.
  8. 제 7 항에 있어서, 상기 태스크 노드는
    상기 스케줄러 노드의 요청에 따라, 상기 non-RP 로직 및 상기 RP 로직 중에서 어느 하나를 선택적으로 실행하는 분산 처리 시스템.
  9. 재구성 가능 프로세서 및 비-재구성 가능 프로세서를 포함하는 적어도 하나의 태스크 노드; 및
    태스크에 기초하여 상기 재구성 가능 프로세서를 재구성하는 재구성 로직을 생성하고 상기 적어도 하나의 태스크 노드로 전달하는 스케줄러 노드;를 포함하고,
    상기 스케줄러 노드는,
    RP 코스트(RP Cost) 및 non-RP 코스트(non-RP Cost)를 이용하여 소정의 RP 이득(RP Gain)을 계산하고, 상기 계산된 RP 이득에 따라, 상기 태스크를 처리할 태스크 노드를 결정하는 분산처리 시스템.
  10. 제 9 항에 있어서, 각각 재구성 가능 프로세서 및 비-재구성 가능 프로세서를 포함하는 다수의 태스크 노드들을 포함하는 분산처리 시스템.
  11. 삭제
  12. 제 9 항에 있어서, 상기 스케줄러 노드는
    상기 RP 이득의 크기 정보에 기초하여 상기 태스크 노드를 결정하는 분산 처리 시스템.
  13. 제 9 항에 있어서, 상기 스케줄러 노드는
    상기 비-재구성가능 프로세서의 태스크 처리 시간 및 태스크 처리 전력 중 적어도 하나를 이용하여 상기 non-RP 코스트를 계산하는 분산 처리 시스템.
  14. 제 9 항에 있어서, 상기 스케줄러 노드는
    상기 재구성가능 프로세서의 태스크 처리 시간, 태스크 처리 대기 시간, 재구성 시간, 재구성 대기 시간, 및 태스크 처리 전력 중 적어도 하나를 이용하여 상기 RP 코스트를 계산하는 분산 처리 시스템.
  15. 제 9 항에 있어서, 상기 태스크는
    상기 비-재구성가능 프로세서를 위한 non-RP 로직, 및 상기 non-RP 로직에 대응되고 상기 재구성가능 프로세서를 위한 RP 로직을 포함하는 분산 처리 시스템.
  16. 재구성 가능 프로세서 및 비-재구성 가능 프로세서를 포함하는 적어도 하나의 태스크 노드; 및
    태스크에 기초하여 상기 재구성 가능 프로세서 및 상기 비-재구성 가능 프로세서 중 상기 태스크의 적어도 일부를 처리할 하나의 프로세서를 결정하는 스케줄러 노드;를 포함하고,
    상기 스케줄러 노드는
    RP 코스트(RP Cost) 및 non-RP 코스트(non-RP Cost)를 이용하여 소정의 RP 이득(RP Gain)을 계산하고, 상기 계산된 RP 이득에 따라, 상기 태스크를 처리할 태스크 노드를 결정하는 분산처리 시스템.
  17. 제 16 항에 있어서, 상기 스케줄러 노드는
    상기 태스크를 처리할 태스크 노드를 결정하고,
    상기 태스크 노드에서 상기 태스크가 처리될 방식을 결정하는 분산 처리 시스템.
  18. 제 16 항에 있어서, 상기 스케줄러 노드는
    상기 계산된 RP 이득에 따라, 상기 태스크 노드에서 상기 태스크가 처리될 방식을 결정하는 분산 처리 시스템.
  19. 제 18 항에 있어서, 상기 스케줄러 노드는
    상기 RP 이득의 크기 정보에 기초하여 상기 태스크 노드를 결정하고,
    상기 RP 이득의 방향 정보에 기초하여 상기 태스크가 처리될 방식을 결정하는 분산 처리 시스템.
  20. 제 18 항에 있어서, 상기 스케줄러 노드는
    상기 비-재구성가능 프로세서의 태스크 처리 시간 및 태스크 처리 전력 중 적어도 하나를 이용하여 상기 non-RP 코스트를 계산하는 분산 처리 시스템.
  21. 제 18 항에 있어서, 상기 스케줄러 노드는
    상기 재구성가능 프로세서의 태스크 처리 시간, 태스크 처리 대기 시간, 재구성 시간, 재구성 대기 시간, 및 태스크 처리 전력 중 적어도 하나를 이용하여 상기 RP 코스트를 계산하는 분산 처리 시스템.
  22. 제 16 항에 있어서, 상기 태스크는
    상기 비-재구성가능 프로세서를 위한 non-RP 로직, 및 상기 non-RP 로직에 대응되고 상기 재구성가능 프로세서를 위한 RP 로직을 포함하는 분산 처리 시스템.
  23. 제 22 항에 있어서, 상기 태스크 노드는
    상기 스케줄러 노드의 요청에 따라, 상기 non-RP 로직 및 상기 RP 로직 중에서 어느 하나를 선택적으로 실행하는 분산 처리 시스템.
  24. 삭제
  25. RP 코스트(RP Cost) 및 non-RP 코스트(non-RP Cost)를 이용하여 소정의 RP 이득(RP Gain)을 계산하고, 상기 계산된 RP 이득에 따라, 재구성가능 프로세서(Reconfigurable Processor) 및 비-재구성가능 프로세서(Non-Reconfigurable Processor) 중 적어도 어느 하나에 기초하여 태스크를 처리하는 다수의 태스크 노드 중에서 태스크를 처리할 태스크 노드를 결정하는 스케줄러; 를 포함하는 분산 처리 시스템의 스케줄러 노드.
  26. 제 25 항에 있어서, 상기 스케줄러는
    상기 태스크를 처리할 태스크 노드를 결정하고,
    상기 태스크 노드에서 상기 태스크가 처리될 방식을 결정하는 분산 처리 시스템의 스케줄러 노드.
  27. 제 25 항에 있어서, 상기 스케줄러는
    상기 계산된 RP 이득에 따라, 상기 태스크 노드에서 상기 태스크가 처리될 방식을 결정하는 분산 처리 시스템의 스케줄러 노드.
  28. 제 27 항에 있어서, 상기 스케줄러는
    상기 RP 이득의 크기 정보에 기초하여 상기 태스크 노드를 결정하고,
    상기 RP 이득의 방향 정보에 기초하여 상기 태스크가 처리될 방식을 결정하는 분산 처리 시스템의 스케줄러 노드.
  29. 제 27 항에 있어서, 상기 스케줄러는
    상기 비-재구성가능 프로세서의 태스크 처리 시간 및 태스크 처리 전력 중 적어도 하나를 이용하여 상기 non-RP 코스트를 계산하는 분산 처리 시스템의 스케줄러 노드.
  30. 제 27 항에 있어서, 상기 스케줄러는
    상기 재구성가능 프로세서의 태스크 처리 시간, 태스크 처리 대기 시간, 재구성 시간, 재구성 대기 시간, 및 태스크 처리 전력 중 적어도 하나를 이용하여 상기 RP 코스트를 계산하는 처리 시스템의 스케줄러 노드.
  31. 제 25 항에 있어서,
    클라이언트 노드로부터 작업 처리 요청을 수신하고, 상기 작업 처리 요청에 대응되는 작업을 다수의 태스크로 분할하는 작업 분할부; 를 더 포함하는 분산 처리 시스템의 스케줄러 노드.
  32. 제 25 항에 있어서,
    상기 스케줄러의 스케줄 정보에 따라, 결정된 태스크 노드로 태스크 실행 요청을 전송하는 실행 요청부; 를 더 포함하는 분산 처리 시스템의 스케줄러 노드.
  33. 제 32 항에 있어서, 상기 스케줄 정보는
    결정된 태스크 노드의 식별을 위한 정보 및 그 태스크 노드에서 상기 태스크가 실행될 방식을 지정하기 위한 정보를 포함하는 분산 처리 시스템의 스케줄러 노드.
  34. 재구성가능 프로세서(Reconfigurable Processor) 및 비-재구성가능 프로세서(Non-Reconfigurable Processor) 중 적어도 어느 하나에 기초하여 태스크를 처리하는 각각의 태스크 노드 별로, RP 코스트(RP cost) 및 non-RP 코스트(non-RP cost)를 비교하여 소정의 RP 이득(RP gain)을 계산하는 단계; 및
    계산된 상기 RP 이득에 따라 상기 태스크 노드 및 그 태스크 노드에서 상기 태스크가 처리될 방식을 결정하는 단계; 를 포함하는 분산 처리 시스템의 스케줄 방법.
  35. 스케줄러 노드가 재구성 가능 프로세서를 포함하는 태스크 노드를 활용하는 방법에 있어서,
    태스크를 입력 받는 단계;
    RP 코스트(RP Cost) 및 non-RP 코스트(non-RP Cost)를 이용하여 소정의 RP 이득(RP Gain)을 계산하고, 상기 계산된 RP 이득에 따라, 상기 태스크를 처리할 태스크 노드를 결정하는 단계;
    상기 태스크에 기초하여 상기 재구성 가능 프로세서를 재구성하는 재구성 로직을 생성하는 단계; 및
    상기 재구성 로직을 상기 태스크 노드로 전달하는 단계;를 포함하는 태스크 노드 활용 방법.
  36. 제 35 항에 있어서, 상기 재구성 로직을 적용하여 상기 재구성 가능 프로세서를 재구성하고 상기 태스크의 적어도 일부를 처리하는 단계를 더 포함하는 태스크 노드 활용 방법.
  37. 삭제
  38. 삭제
  39. 제 35 항에 있어서, 상기 non-RP 코스트는
    비-재구성가능 프로세서의 태스크 처리 시간 및 태스크 처리 전력 중 적어도 하나를 이용하여 계산되는 태스크 노드 활용 방법.
  40. 제 35 항에 있어서, 상기 RP 코스트는
    상기 재구성가능 프로세서의 태스크 처리 시간, 태스크 처리 대기 시간, 재구성 시간, 재구성 대기 시간, 및 태스크 처리 전력 중 적어도 하나를 이용하여 계산되는 태스크 노드 활용 방법.
  41. 제 35 항에 있어서, 상기 태스크는
    비-재구성가능 프로세서를 위한 non-RP 로직, 및 상기 non-RP 로직에 대응되고 상기 재구성가능 프로세서를 위한 RP 로직을 포함하는 태스크 노드 활용 방법.
  42. 스케줄러 노드가 재구성 가능 프로세서 및 비-재구성 가능 프로세서를 포함하는 태스크 노드를 활용하는 방법에 있어서,
    태스크를 입력 받는 단계;
    RP 코스트(RP Cost) 및 non-RP 코스트(non-RP Cost)를 이용하여 소정의 RP 이득(RP Gain)을 계산하고, 상기 계산된 RP 이득에 따라, 상기 태스크를 처리할 태스크 노드를 결정하는 단계;
    상기 계산된 RP 이득에 따라, 상기 재구성 가능 프로세서 및 상기 비-재구성 가능 프로세서 중 상기 태스크의 적어도 일부를 처리할 하나의 프로세서를 결정하는 단계; 및
    상기 결정된 프로세서를 사용하여 상기 태스크의 적어도 일부의 처리를 요청하는 단계;를 포함하는 태스크 노드 활용 방법.
  43. 삭제
  44. 제 42 항에 있어서, 상기 non-RP 코스트는
    상기 비-재구성가능 프로세서의 태스크 처리 시간 및 태스크 처리 전력 중 적어도 하나를 이용하여 계산되는 태스크 노드 활용 방법.
  45. 제 42 항에 있어서, 상기 RP 코스트는
    상기 재구성가능 프로세서의 태스크 처리 시간, 태스크 처리 대기 시간, 재구성 시간, 재구성 대기 시간, 및 태스크 처리 전력 중 적어도 하나를 이용하여 계산되는 태스크 노드 활용 방법.
  46. 제 42 항에 있어서, 상기 태스크는
    상기 비-재구성가능 프로세서를 위한 non-RP 로직, 및 상기 non-RP 로직에 대응되고 상기 재구성가능 프로세서를 위한 RP 로직을 포함하는 태스크 노드 활용 방법.
  47. 재구성가능 프로세서(Reconfigurable Processor) 및 비-재구성가능 프로세서(Non-Reconfigurable Processor) 중 적어도 어느 하나에 기초하여 태스크를 처리하는 다수의 태스크 노드, 및 RP 코스트(RP Cost) 및 non-RP 코스트(non-RP Cost)를 이용하여 소정의 RP 이득(RP Gain)을 계산하고, 상기 계산된 RP 이득에 따라, 상기 다수의 태스크 노드 중에서 상기 태스크를 처리할 태스크 노드를 결정하는 스케줄러 노드를 포함하는 분산 처리 시스템의 프로그램 생성 장치로서,
    상기 비-재구성가능 프로세서를 위한 non-RP 로직에 대응되고 상기 재구성가능 프로세서를 위한 RP 로직을 포함하는 코드를 생성하는 프로그램 생성 장치.
KR1020120036921A 2012-04-09 2012-04-09 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치 KR101893982B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020120036921A KR101893982B1 (ko) 2012-04-09 2012-04-09 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치
US13/858,334 US9965322B2 (en) 2012-04-09 2013-04-08 Scheduling tasks in a distributed processing system with both reconfigurable and configurable processors
CN201310120824.8A CN103365714B (zh) 2012-04-09 2013-04-09 分布式处理***、调度器节点、调度方法及程序产生设备
JP2013080972A JP6266221B2 (ja) 2012-04-09 2013-04-09 分散処理システム、分散処理システムのスケジューラノード及びスケジュール方法、及びそのためのプログラム生成装置
EP13162963.6A EP2650786A3 (en) 2012-04-09 2013-04-09 Distributed processing system, scheduler node and scheduling method of distributed processing system, and program generation apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120036921A KR101893982B1 (ko) 2012-04-09 2012-04-09 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치

Publications (2)

Publication Number Publication Date
KR20130114497A KR20130114497A (ko) 2013-10-18
KR101893982B1 true KR101893982B1 (ko) 2018-10-05

Family

ID=48095619

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120036921A KR101893982B1 (ko) 2012-04-09 2012-04-09 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치

Country Status (5)

Country Link
US (1) US9965322B2 (ko)
EP (1) EP2650786A3 (ko)
JP (1) JP6266221B2 (ko)
KR (1) KR101893982B1 (ko)
CN (1) CN103365714B (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
CN104253850A (zh) * 2014-01-07 2014-12-31 深圳市华傲数据技术有限公司 一种任务分布式调度方法和***
WO2015194133A1 (ja) * 2014-06-19 2015-12-23 日本電気株式会社 演算装置、演算装置の制御方法、及び、演算装置の制御プログラムが記録された記憶媒体
CN104320433B (zh) * 2014-09-28 2018-11-23 北京京东尚科信息技术有限公司 数据处理方法和分布式数据处理***
CN105700956A (zh) * 2014-11-28 2016-06-22 国际商业机器公司 用于处理分布式作业的方法和***
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US10027543B2 (en) * 2015-04-17 2018-07-17 Microsoft Technology Licensing, Llc Reconfiguring an acceleration component among interconnected acceleration components
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
JP6669961B2 (ja) * 2015-12-24 2020-03-18 富士通株式会社 プロセッサ、再構成可能回路の制御方法及びプログラム
CN105975334A (zh) * 2016-04-25 2016-09-28 深圳市永兴元科技有限公司 任务分布式调度方法及***
US10223172B2 (en) 2016-05-10 2019-03-05 International Business Machines Corporation Object storage workflow optimization leveraging storage area network value adds
US10225343B2 (en) 2016-05-10 2019-03-05 International Business Machines Corporation Object storage workflow optimization leveraging underlying hardware, operating system, and virtualization value adds
JP6743568B2 (ja) * 2016-08-09 2020-08-19 富士通株式会社 制御装置、情報処理システム、プログラム及び情報処理方法
CN106815070B (zh) * 2016-12-30 2020-06-19 北京哲源科技有限责任公司 一种用于图像分析的高性能计算框架方法及***
US10459817B2 (en) * 2017-01-18 2019-10-29 International Business Machines Corporation Evaluating performance improvement of executing instructions in a first processor over execution on a second processor
CN106874047B (zh) * 2017-01-25 2020-08-04 广东神马搜索科技有限公司 分布式***调度方法、装置及分布式***
CN108363615B (zh) * 2017-09-18 2019-05-14 清华大学 用于可重构处理***的任务分配方法和***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006190167A (ja) * 2005-01-07 2006-07-20 Renesas Technology Corp データ処理装置
JP2007328415A (ja) 2006-06-06 2007-12-20 Univ Waseda ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
US20100325394A1 (en) 2009-06-23 2010-12-23 Golla Robert T System and Method for Balancing Instruction Loads Between Multiple Execution Units Using Assignment History
US20110093852A1 (en) 2009-10-21 2011-04-21 Sap Ag Calibration of resource allocation during parallel processing

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002062013A2 (en) * 2001-01-30 2002-08-08 Nomadix, Inc. Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
US7065764B1 (en) * 2001-07-20 2006-06-20 Netrendered, Inc. Dynamically allocated cluster system
CA2410118C (en) 2001-10-26 2007-12-18 Research In Motion Limited System and method for controlling configuration settings for mobile communication devices and services
US7908313B2 (en) 2004-07-21 2011-03-15 The Mathworks, Inc. Instrument-based distributed computing systems
JP4082706B2 (ja) 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
US20070033592A1 (en) 2005-08-04 2007-02-08 International Business Machines Corporation Method, apparatus, and computer program product for adaptive process dispatch in a computer system having a plurality of processors
KR100893527B1 (ko) * 2007-02-02 2009-04-17 삼성전자주식회사 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
JP5137434B2 (ja) 2007-03-28 2013-02-06 株式会社ソニー・コンピュータエンタテインメント データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム
US8205208B2 (en) * 2007-07-24 2012-06-19 Internaitonal Business Machines Corporation Scheduling grid jobs using dynamic grid scheduling policy
KR100956636B1 (ko) 2007-12-07 2010-05-11 한국전자통신연구원 가상 서버 환경에서의 서비스 수준 관리 시스템 및 그 방법
US9052958B2 (en) 2008-11-21 2015-06-09 Samsung Electronics Co., Ltd. Extending the capability of computing devices by using dynamically scalable external resources
US8239538B2 (en) 2008-11-21 2012-08-07 Samsung Electronics Co., Ltd. Execution allocation cost assessment for computing systems and environments including elastic computing systems and environments
US8924987B2 (en) 2008-11-21 2014-12-30 Samsung Electronics Co., Ltd. Flat or extended architecture using an integrated application and operating system component for computing systems and environments
US8560465B2 (en) 2009-07-02 2013-10-15 Samsung Electronics Co., Ltd Execution allocation cost assessment for computing systems and environments including elastic computing systems and environments
US8601534B2 (en) 2009-07-02 2013-12-03 Samsung Electronics Co., Ltd. Securely using service providers in elastic computing systems and environments
KR20110002509A (ko) 2009-07-02 2011-01-10 이정우 사람의 이동 수단 기기(장치)
US8707314B2 (en) * 2011-12-16 2014-04-22 Advanced Micro Devices, Inc. Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006190167A (ja) * 2005-01-07 2006-07-20 Renesas Technology Corp データ処理装置
JP2007328415A (ja) 2006-06-06 2007-12-20 Univ Waseda ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
US20100325394A1 (en) 2009-06-23 2010-12-23 Golla Robert T System and Method for Balancing Instruction Loads Between Multiple Execution Units Using Assignment History
US20110093852A1 (en) 2009-10-21 2011-04-21 Sap Ag Calibration of resource allocation during parallel processing

Also Published As

Publication number Publication date
EP2650786A2 (en) 2013-10-16
US20130268937A1 (en) 2013-10-10
CN103365714B (zh) 2018-10-02
KR20130114497A (ko) 2013-10-18
JP6266221B2 (ja) 2018-01-24
CN103365714A (zh) 2013-10-23
EP2650786A3 (en) 2016-08-24
US9965322B2 (en) 2018-05-08
JP2013218700A (ja) 2013-10-24

Similar Documents

Publication Publication Date Title
KR101893982B1 (ko) 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치
Lavanya et al. Multi objective task scheduling algorithm based on SLA and processing time suitable for cloud environment
US7647590B2 (en) Parallel computing system using coordinator and master nodes for load balancing and distributing work
US9471390B2 (en) Scheduling mapreduce jobs in a cluster of dynamically available servers
US9262220B2 (en) Scheduling workloads and making provision decisions of computer resources in a computing environment
US9367359B2 (en) Optimized resource management for map/reduce computing
KR102052964B1 (ko) 컴퓨팅 스케줄링 방법 및 시스템
Liang et al. Data centers job scheduling with deep reinforcement learning
US20130219395A1 (en) Batch scheduler management of tasks
Nozal et al. Exploiting co-execution with oneAPI: heterogeneity from a modern perspective
KR101697647B1 (ko) 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법
KR20210021263A (ko) 작업부하의 정적 매핑의 비순차적 파이프라이닝된 실행을 가능하게 하기 위한 방법들 및 장치
US20170371713A1 (en) Intelligent resource management system
KR20130080663A (ko) 멀티-쓰레딩을 사용하는 그래픽 처리를 위한 방법 및 장치
Tchernykh et al. Mitigating uncertainty in developing and applying scientific applications in an integrated computing environment
Silva et al. Task scheduling in sucuri dataflow library
Schuchart et al. Global task data-dependencies in pgas applications
Marozzo et al. Enabling cloud interoperability with compss
KR102045997B1 (ko) 분산 파일 시스템을 기반으로 하는 빅데이터 처리 플랫폼의 태스크 스케줄링 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체
Strumberger et al. Hybrid elephant herding optimization approach for cloud computing load scheduling
Tao et al. A new replication scheduling strategy for grid workflow applications
Plauth et al. CloudCL: single-paradigm distributed heterogeneous computing for cloud infrastructures
Fiaidhi et al. Empowering extreme automation via zero-touch operations and GPU parallelization
Sethi et al. Delay scheduling with reduced workload on jobtracker in hadoop
Ramesh et al. Reinforcement learning-based spatial sorting based dynamic task allocation on networked multicore GPU processors

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
GRNT Written decision to grant