KR100834408B1 - 분산처리시스템에서의 태스크 할당방법 및 시스템 - Google Patents

분산처리시스템에서의 태스크 할당방법 및 시스템 Download PDF

Info

Publication number
KR100834408B1
KR100834408B1 KR1020060089099A KR20060089099A KR100834408B1 KR 100834408 B1 KR100834408 B1 KR 100834408B1 KR 1020060089099 A KR1020060089099 A KR 1020060089099A KR 20060089099 A KR20060089099 A KR 20060089099A KR 100834408 B1 KR100834408 B1 KR 100834408B1
Authority
KR
South Korea
Prior art keywords
task
occupancy
difference value
voltage
execution unit
Prior art date
Application number
KR1020060089099A
Other languages
English (en)
Other versions
KR20080024681A (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 KR1020060089099A priority Critical patent/KR100834408B1/ko
Priority to PCT/KR2007/003534 priority patent/WO2008032926A1/en
Priority to US12/438,084 priority patent/US8291420B2/en
Publication of KR20080024681A publication Critical patent/KR20080024681A/ko
Application granted granted Critical
Publication of KR100834408B1 publication Critical patent/KR100834408B1/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/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/505Allocation 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 the load
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5015Service provider selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 복수 개의 프로세서를 포함하는 분산처리 시스템에서의 태스크 할당방법에 관한 것으로, (a) 각각의 상기 프로세서에 포함된 실행 유닛들에서 처리할 다수 개의 태스크의 점유율을 계산하여 내림차순으로 정렬하는 단계; (b) 각각의 상기 프로세서에 포함된 실행 유닛들 간의 점유율 차이 값을 계산하여 최대 차이 값을 산출하는 단계; (c) 상기 처리할 다수 개의 태스크 중 실행 유닛이 지정되지 않은 어느 하나의 태스크의 점유율과 상기 최대 차이 값의 크기를 비교하는 단계; (d) 상기 비교 결과 상기 어느 하나의 태스크의 점유율이 상기 산출된 최대 차이 값보다 작거나 같은 경우 상기 최대 차이 값이 발생한 프로세서 내의 최저 점유율을 갖는 실행 유닛에 상기 어느 하나의 태스크가 할당되도록 지정하는 단계; (e) 상기 정렬된 순서에 따라 상기 (b) 단계 내지 (d) 단계를 반복하는 단계; 및 (f) 상기 (d) 단계를 통하여 지정된 실행 유닛에 대응하도록 각각의 상기 태스크를 할당하는 단계를 포함하는 것을 특징으로 한다.
분산처리, 태스크 할당, 점유율, 실행 유닛

Description

분산처리시스템에서의 태스크 할당방법 및 시스템{The system and the method of task assignment in the distributed processing system}
도 1은 본원 발명이 적용되는 복수 개의 프로세서를 포함하는 분산 처리 시스템을 도시한 도면,
도 2는 도 1의 프로세서의 내부 구성요소를 도시한 도면,
도 3은 본 발명에 따라 각 실행 유닛에 태스크를 할당하는 흐름을 나타낸 순서도,
도 4는 DMAX와 CMAX를 구하는 상세한 방법을 도시한 흐름도,
도 5는 WFD(Worst-Fit-Decreasing) 기법을 도시한 도면.
<도면의 주요부분에 대한 설명>
110, 120: 프로세서
111, 113, 121, 123: 실행 유닛
115, 125: 전압 조정기
본 발명은 분산 처리 시스템 및 분산처리 시스템에서의 태스크 할당방법에 관한 것으로, 구체적으로는 상호의존적인 전압조절 기능을 가진 복수 개의 프로세서를 포함하는 분산처리 시스템에서의 에너지 소비를 감소하기 위한 태스크 할당 방법에 관한 것이다.
최근 에너지 소비를 줄이기 위한 저전력 컴퓨팅에 관한 연구가 활발히 진행되고 있다. 한편, 컴퓨터 내의 데이터 흐름을 조작하고 제어하는 프로세서는 컴퓨터의 성능과 직결되는 중요한 부품으로서, 더욱 강력한 컴퓨팅 성능을 요구하는 소비자들의 수요에 맞춰 프로세서의 동작속도를 증가시키기 위한 연구들이 계속 진행중에 있다. 그러나, 프로세서의 속도 증가는 프로세서가 소비하는 전력을 증가시키는 요인이 되며, 이는 저전력 컴퓨팅을 요하는 추세에 반하는바, 프로세서의 성능을 높이면서도 에너지 소비를 최소화 시킬 필요성이 있는 것이다.
이와 관련하여, 국내에 특허출원된 선행기술(국내 특허출원 제2004-7010176호, "프로세서에 공급 전압들을 제공하는 방법 및 장치")을 살펴보면, 상기 발명은 프로세서, 전압 센서 및 전압 조정기 등을 구성요소로 하는 것으로 상기 프로세서는 전압 조정기로부터 공급 전압을 수신하기 위해 하나 이상의 공급 전압 입력 포트들에 연결된 전압 센서를 포함한다. 전압 조정기는 전압 센서로부터의 제어 신호에 기초하여 전압센서가 측정한 목표 값을 달성하기 위해 공급 전압을 높게 또는 낮게 조절할 수 있다. 즉, 전압센서의 측정값에 따라 전압 조정기를 통해 가변적인 전압을 공급함으로써 소비전력을 감소시킬 수 있다.
그러나, 상기와 같은 구성만으로는 에너지 소비를 최소화시키는 데 한계가 있으며, 상기 프로세서에 대하여 공급하는 전압을 조정하는 방법을 최적화시킬 필요가 있다.
상술한 문제점을 해결하기 위하여, 상호의존적인 전압조절 기능을 가진 프로세서를 여러 개 포함하는 분산처리 시스템에서 효율적인 태스크 할당을 통하여 기존의 태스크 할당 기법보다 적은 양의 에너지로 같은 성능을 내는 것을 목적으로 한다.
상술한 목적을 달성하기 위한 본원 발명의 태스크 할당 방법은 각각의 태스크의 실행 단위가 되는 복수 개의 실행 유닛, 상기 각 실행 유닛의 전압 값을 감지하는 전압 센서 및 상기 전압 센서로부터 전송받은 상기 각 실행 유닛의 전압 값을 기초로 상기 각 실행 유닛의 전압을 동일하게 유지하는 전압 조정기를 포함하는 복수 개의 프로세서에 있어서, (a) 각각의 상기 프로세서에 포함된 실행 유닛들 간의 점유율 차이 값을 계산하여 최대 차이 값을 산출하는 단계; (b) 처리할 다수 개의 태스크 중 실행 유닛이 지정되지 않은 어느 하나의 태스크의 점유율과 상기 최대 차이 값의 크기를 비교하는 단계; (c) 상기 비교 결과 상기 어느 하나의 태스크의 점유율이 상기 최대 차이 값보다 작거나 같은 경우 상기 최대 차이 값이 발생한 프로세서 내의 최저 점유율을 갖는 실행 유닛에 상기 어느 하나의 태스크가 할당되도록 지정하는 단계; (d) 상기 (a)단계 내지 (c)단계를 반복하는 단계; 및 (e) 상기 (c) 단계를 통하여 지정된 실행 유닛에 대응하도록 각각의 상기 태스크를 할당하는 단계를 포함한다.
또한, 본원 발명의 복수 개의 프로세서를 포함하는 분산처리 시스템에서의 태스크 할당방법은, (a) 각각의 상기 프로세서에 포함된 실행 유닛들에서 처리할 다수 개의 태스크의 점유율을 계산하여 내림차순으로 정렬하는 단계; (b) 각각의 상기 프로세서에 포함된 실행 유닛들 간의 점유율 차이 값을 계산하여 최대 차이 값을 산출하는 단계; (c) 상기 처리할 다수 개의 태스크 중 실행 유닛이 지정되지 않은 어느 하나의 태스크의 점유율과 상기 최대 차이 값의 크기를 비교하는 단계; (d) 상기 비교 결과 상기 어느 하나의 태스크의 점유율이 상기 산출된 최대 차이 값보다 작거나 같은 경우 상기 최대 차이 값이 발생한 프로세서 내의 최저 점유율을 갖는 실행 유닛에 상기 어느 하나의 태스크가 할당되도록 지정하는 단계; (e) 상기 정렬된 순서에 따라 상기 (b) 단계 내지 (d) 단계를 반복하는 단계; 및 (f) 상기 (d) 단계를 통하여 지정된 실행 유닛에 대응하도록 각각의 상기 태스크를 할당하는 단계를 포함한다.
또한, 본원 발명의 분산 처리 시스템은 각각의 태스크의 실행 단위가 되는 복수 개의 실행 유닛, 각각의 상기 실행 유닛의 전압 값을 감지하는 전압 센서 및 상기 전압 센서로부터 전송받은 각각의 상기 실행 유닛의 전압 값을 기초로 각각의 상기 실행 유닛의 전압을 동일하게 유지하는 전압 조정기를 포함하는 복수 개의 프로세서; 및 각각의 상기 프로세서에 포함된 실행 유닛들 간의 점유율 차이 값이 최대인 프로세서의 최소 점유율을 갖는 실행 유닛에 상기 태스크를 할당하는 운영 시스템 포함한다.
본 발명의 내용을 설명하기에 앞서 본 발명이 적용되는 상호의존적인 전압조 절 장치를 이용한 분산 처리 시스템에 대하여 살펴보기로 한다.
도 1은 본원 발명이 적용되는 복수 개의 프로세서를 포함하는 분산 처리 시스템을 도시한 도면이다.
도 1을 참조하면, 상기 분산 처리 시스템은 각 태스크의 실행단위가 되는 복수개의 실행유닛(111, 113, 121, 123, 131, 133)과, 상기 각 실행유닛의 전압값을 감지하는 전압센서(미도시됨)와, 상기 전압 센서로부터 전송받은 각 실행 유닛의 전압값을 기초로 각 실행 유닛의 전압을 동일하게 유지하는 전압조정기(115, 125, 135)와, 상기 복수개의 실행유닛, 전압센서 및 상기 전압조정기를 포함하는 복수개의 프로세서(110, 120, 130)를 포함하며, 각 프로세서들을 관리하는 운영시스템(150)을 포함한다.
상기 프로세서(110, 120, 130)들은 독립적으로 전압 조절이 가능한 객체들이다. 즉, 각각의 프로세서들은 서로 다른 전압의 인가가 가능하다. 각각의 프로세서들은 복수 개의 실행유닛(111, 113, 121, 123, 131, 133)을 포함하며, 각 실행유닛의 전압을 제어하는 전압 조정기(115, 125, 135)를 포함한다.
상기 실행유닛(111, 113, 121, 123, 131, 133)은 태스크(task)가 실행되는 단위로서 독립적으로 태스크 할당이 가능한 객체들이나, 같은 프로세서 내에 포함되어 있는 실행유닛은 하나의 전압 조정기에 의해 동일한 전압을 인가받게 된다. 상기 실행유닛의 성능을 측정하는 값으로 실행유닛의 용량을 정의하는바, 상기 실행유닛의 용량은 각 실행 유닛이 처리할 수 있는 명령어(instruction)의 단위시간당 개수를 의미하며, 만약 실행유닛이 1초에 100 만개의 명령어를 실행할 수 있다 면, 초당 만개의 명령어를 필요로 하는 실시간 태스크의 경우 100개 태스크를 동시에 실행할 수 있다.
상기 운영 시스템(150)은 각 프로세서들의 실행유닛에 어떤 태스크를 할당할 것인지를 결정한다. 본원 발명에서는 각 프로세서에 포함된 실행유닛들 간의 점유율 차이 값이 최대인 프로세서의 최소 점유율을 갖는 실행유닛에 상기 태스크를 할당하는 것을 특징으로 하는바, 이에 관한 상세한 내용은 추후에 설명하기로 한다.
한편, 상기 전압조정기(115, 125, 135)는 각 프로세서 내에 포함된 모든 실행유닛의 전압을 제어하는 역할을 한다. 하나의 프로세서 내에 포함된 실행유닛들은 하나의 전압조정기에 의해 전압이 제어되며, 다른 실행유닛의 전압에 종속적이게 되는바 이를 상호의존적인 전압조정이라고 한다. 바람직하게는, 상기 전압 조정기는 프로세서 내의 실행 유닛들 중 최대 전력을 소모하는 실행유닛의 전압 값을 기준으로 동일 프로세서 내의 다른 실행 유닛의 전압을 동일하게 유지하도록 한다. 상기 전압조정기의 역할에 대해 도면을 참조하여 살펴보기로 한다.
도 2는 도 1의 프로세서의 내부 구성요소를 도시한 도면이다.
도 2를 참조하면, 상기 프로세서(110) 내부에는 전압조정기(115), 실행유닛(111, 113) 및 전압센서(210)가 포함되어 있다.
상기 전압센서(210)는 각 실행유닛의 전압상태를 체크하여 전압조정기(115)로 전송하며, 상기 전압조정기(115)는 상기 전압 센서로부터 전송받은 전압상태를 기초로 각 실행유닛(111, 113)의 전압을 조정하게 된다.
이와 같은 구성에 의해 동일한 프로세서의 서로 다른 실행유닛의 전압상태가 서로 다르다면 최대 전력을 소모하고 있는 실행유닛에 의해 그보다 적은 전력을 소모하는 실행유닛도 동일한 전압제어를 받게 되는바, 이를 상호의존적인 전압조정이라 한다.
상기와 같은 구성에 있어서 발생 될 수 있는 문제점은 실행유닛 별로 소모하는 전력이 서로 다른 경우에도 일괄적으로 최대 전력을 소모하는 실행유닛의 전압에 맞춰져 전압이 공급된다는 점이다. 예를 들어 설명하면, 네 개의 서로 다른 실행 유닛 A, B, C, D 가 있으며, A와 B, C와 D는 각각 같은 프로세서에 포함된 실행 유닛이라고 가정하자. 각 태스크가 각 실행유닛에 할당되어 소모되는 전력을 A=1, B=0.3, C=0.7, D=0.1 이라고 할 때, 아무런 조치가 없다면 상호의존적인 전압조정에 의해 B에는 1만큼 , D에는 0.7만큼의 소모전력이 형성되는 전압을 인가하게 된다. 그러나, 태스크를 할당하는 방법을 바꿔서 B와 C에 할당되는 태스크를 서로 교환하게 되면 C와 D에는 0.3 만큼의 소모전력이 형성되는 전압만을 인가해도 되므로 전체적으로 볼 때 소모전력이 감소 되는 효과가 발생하는 것이다.
이와 같이 각 실행유닛에 각각의 태스크를 할당하는 방법이 본원 발명의 특징이라 할 수 있다. 이하, 첨부된 도면들을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명하기로 한다.
도 3은 본 발명에 따라 각 실행 유닛에 태스크를 할당하는 흐름을 나타낸 순 서도이다.
도 3을 참고하면, 먼저 태스크 집합에 관한 정보를 읽고 각각의 태스크에 대해 태스크의 점유율을 결정한다(단계 301).
실행유닛에서 처리해야 할 각각의 태스크를 τn 이라 하고, 상기 태스크 집합을 {τ1, τ2, ..., τn}으로 표시한다.
한편, 점유율은 실행 유닛의 용량에 비해 각 태스크가 실행 유닛을 사용하는 용량의 비율을 의미하며 수학식 1과 같이 표시된다.
Figure 112006066486943-pat00001
상기 실행유닛의 용량은 앞서 설명한 바와 같이 각 실행 유닛이 처리할 수 있는 명령어의 단위시간당 개수를 의미하며, 상기 태스크의 실행에 필요한 용량은 각 태스크의 실행시 처리해야할 명령어의 단위시간당 개수를 의미한다.
상기 점유율은 각각의 태스크를 실행하는데 처리해야할 명령어의 개수가 서로 다르며, 처리해야할 명령어의 개수가 많은 것이 소모전력이 높다는 전제하에, 어떤 태스크가 소모전력이 높은지를 나타내며 그 값은 0부터 1 사이의 실수 값이 된다.
상기와 같이 태스크별로 점유율을 계산한 후에 점유율 값을 기준으로 내림차순으로 정렬한다(단계 303). 즉, 상기 운영 시스템(150)은 점유율 값이 큰 순서대로 각 태스크를 각 실행유닛에 할당한다.
다음으로, 각 프로세서에 포함된 실행유닛들 간의 점유율 차이 값을 계산하여 최대 차이 값을 산출하고, 최대 차이 값이 산출된 프로세서 내에서 최저 점유율을 갖는 실행유닛을 식별한다(단계 305).
이때 실행유닛들의 점유율은 수학식 2와 같이 표시된다.
Figure 112008004294955-pat00010
상기 Cnm은 n 번째 프로세서의 m 번째 실행유닛을 의미한다.
한편, 상기 동일 프로세서 내의 실행유닛들 간의 점유율 차이를 계산하여 그 중 최대 차이 값을 DMAX 라 하고, 최대 차이 값을 갖는 해당 프로세서 내에서 최저 점유율을 갖는 실행유닛을 CMAX 라 한다. 상기 DMAX와 CMAX를 구하는 상세한 방법은 도 4를 참조하여 후술하기로 한다.
다음으로, 상기 결정된 DMAX 값과 각 태스크의 점유율 U(τn) 값을 비교한다(단계 307). 이때, 비교하는 순서는 앞 단계(303)에서 정렬된 내림차순 순서대로 비교하게 되며, 하나의 태스크를 비교하고 이후 설명할 단계들(309 내지 315)을 처리하고 나서, 다시 다음 태스크를 비교하게 된다.
상기 비교 결과 특정 태스크의 점유율 U(τn) 값이 DMAX 값보다 작거나 같은 경우에는 그 태스크를 해당 프로세서의 CMAX 실행 유닛에 할당하기 위해 CMAX 를 태스크를 할당할 타겟으로 결정한다(단계 309). 이는 같은 프로세서에 존재하는 실행유닛들에 할당되는 태스크들의 점유율 차이를 최소화시켜 태스크 할당을 통해 에너지 소모를 감소시키는 본원 발명의 목적에 따른 구성이다.
상기 비교 결과 특정 태스크의 점유율 U(τn) 값이 DMAX 값보다 큰 경우에는 도 5에서 설명할 WFD 기법을 이용하여 태스크를 할당할 타겟을 결정한다(단계 311).
상기 단계(309, 311)에서 결정된 타겟을 태스크를 할당할 실행유닛으로 지정한다(단계 313).
상기 단계를 거친 결과 아직 타겟이 지정되지 않은 태스크가 존재하면 상기 단계(305 내지 313)들을 반복하며, 그렇지 않으면 다음 단계(317)를 실행한다(단계 315).
상기 단계(315)에서 각 태스크의 타겟이 모두 지정되면, 타겟이 지정된 여러 개의 태스크 집합을 각 타겟에 해당하는 점유율의 합에 대한 내림차순으로 정렬한다.(단계 317).
상기 단계(317)를 거친 후 정렬된 태스크들을 차례대로 상기 지정된 타겟에 할당한다(단계 319).
이제, 상기 단계에서 구체적으로 설명하지 않은 단계(309, 311)들을 도 4, 5 를 참조하여 설명하기로 한다.
도 4는 상기 DMAX와 CMAX를 구하는 상세한 방법을 도시한 흐름도이다.
도 4를 참조하면, 먼저 DMAX의 초기값으로 0을 지정하고(단계 401), CMAX의 초기값으로 NULL을 지정하여 초기화한다(단계 403).
다음으로 각 프로세서별로 최대 점유율을 갖는 실행유닛을 선정하여 해당 프로세서의 최대점유율로 지정한다(단계 405).
상기 값은
Figure 112008004294955-pat00003
으로 표시한다. n개의 프로세서가 있다고 가정할 경우 각 프로세서별로 최대 점유율 값을 구한다.
다음으로 각 프로세서별로 상기 단계에서 지정된 최대점유율과 해당 프로세서 내의 다른 실행유닛이 갖는 점유율 값의 차이 값을 계산한다(단계 407).
각 프로세서별로 복수 개의 실행유닛이 있을 수 있으므로, m개의 실행유닛이 있다고 가정한다. 이때, 각 프로세서가 포함하는 실행유닛의 개수는 프로세서별로 모두 다를 수 있으며, 설명의 편의를 위해 각 프로세서의 실행유닛의 개수를 m으로 정한다. 상기 차이 값은 수학식 3으로 표시할 수 있다.
Figure 112006066486943-pat00004
이때 상기 Cnm은 n 번째 프로세서의 m 번째 실행유닛을 의미하며, 상기 차이값을 D(Cn)로 지정한다.
다음으로, 상기 차이 값 D(Cn) 중에서 최대인 값을 탐색하여 그 값을 최대 차이 값 DMAX로 지정하고, 상기 최대 차이 값을 갖는 프로세서의 최소 점유율을 갖는 실행유닛을 CMAX 로 지정한다(단계 409 ~ 411).
정리하면, 각 프로세서별로 최대 점유율을 갖는 실행유닛과 최소 점유율을 갖는 실행유닛을 탐색하여 그 차이 값을 계산하고, 그 차이 값 중에서 제일 큰 값을 DMAX로, 그 값을 갖는 실행유닛을 CMAX 로 정하는 것이다.
한편, 도 5는 상기 WFD(Worst-Fit-Decreasing) 기법을 도시한 도면이다. 상기 WFD 기법은 종래의 태스크 할당 기법에 해당하는 것으로, 상기 운영시스템은 상기 실행 유닛의 점유율과 상기 태스크의 점유율차이가 제일 큰 실행 유닛을 상기 태스크를 할당할 타겟으로 지정한다.
도 5를 참조하면, 먼저 실행유닛의 점유율 값과 태스크의 점유율 값의 최대 차이 값 AMAX 의 초기값으로 0을 지정하고(단계 501), 그 값을 갖는 실행유닛 CMAX의 초기값으로 NULL을 지정하여 초기화한다(단계 503).
다음으로, 각 태스크의 점유율과 각 실행유닛의 점유율 차이를 계산한다 (단계 505).
상기 차이 값은 어느 프로세서에 포함되어있는지 여부와 관계없이 전체 실행유닛을 대상으로 실시하며, 그 차이 값을 A(C)로 지정한다.
다음으로, 상기 A(C) 값 중에서 최대인 값을 탐색하여 그 값을 AMAX로, 그 값을 갖는 실행유닛을 CMAX 로 정한다(단계 507 ~ 511).
정리하면, 어느 프로세서에 속하였는지와 무관하게 최대 점유율을 갖는 실행유닛을 탐색하여 그 실행유닛을 태스크의 타겟으로 지정하는 것이다.
상기와 같은 구성을 쉽게 이해하기 위해 실제 사례를 살펴보기로 한다.
앞서 언급한 바와 같이 네 개의 서로 다른 실행 유닛 A, B, C, D가 있다고 가정하고, 각 실행 유닛의 점유율이 각각 다음과 같다고 가정한다.
A=1, B=0.3, C=0.7, D=0.1
이에 대하여 처리해야 할 태스크들의 점유율이 다음과 같다고 가정한다.
U(τ1)=0.3, U(τ2)=0.8, U(τ3)=0.6, U(τ4)=0.2
이제, 상기 각 태스크들을 각 실행 유닛에 할당하기에 앞서 점유율에 대하여 내림차순으로 정리한다(단계 303).
U(τ2)=0.8, U(τ3)=0.6, U(τ1)=0.3, U(τ4)=0.2
다음으로, DMAX와 CMAX를 결정한다(단계 305).
현재, 동일 프로세서에 포함되어 있는 A와 B의 점유율 차이는 0.7이고, C와 D의 점유율 차이는 0.6이므로, DMAX 값은 0.7이 되며, CMAX 는 해당 프로세서에서 제일 작은 점유율 0.3을 갖는 B가된다.
다음으로, 상기 태스크의 순서대로 DMAX와의 크기를 비교하여 그 결과에 따라 태스크의 타겟을 결정한다(단계 307).
예를 들어, 상기 U(τ2)=0.8의 경우 DMAX 값보다 크므로 상기 단계(311)를 통하여 태스크를 결정하는데, 실행 유닛의 점유율과 태스크의 점유율 차이가 제일 큰 실행 유닛은 D=0.1 이므로 D에 할당하도록 지정한다.
남아 있는 태스크가 있으면 상기 지정결과를 기초로 다시 상기 단계를 반복하여 수행한다.
상기 결과를 기초로 DMAX와 CMAX를 다시 결정하면, A와 B의 점유율 차이는 0.7이고, C와 D의 점유율 차이는 0.2(C=0.7, D=0.1+0.8(U(τ2))=0.9)이므로, DMAX 값은 0.7이 되며, CMAX는 0.3이 된다.
다음으로, 상기 U(τ3)=0.6의 경우 DMAX 값보다 작으므로 상기 단계(309)를 통하여 태스크를 결정하는데, CMAX 값을 갖는 실행유닛 B에 할당하도록 지정한다.
이와 같은 단계를 반복적으로 수행하여 타겟을 지정한다.
이상 설명한 것과 같이 본 발명에 따르면, 점유율이 높은 태스크들을 특정 프로세서 내의 실행유닛으로 모아서 실행하므로, 전체적인 시스템의 전압 수준을 낮춤으로서 전력 소비를 줄이는 효과가 있다.

Claims (12)

  1. 각각의 태스크의 실행 단위가 되는 복수 개의 실행 유닛, 상기 각 실행 유닛의 전압 값을 감지하는 전압 센서 및 상기 전압 센서로부터 전송받은 상기 각 실행 유닛의 전압 값을 기초로 상기 각 실행 유닛의 전압을 동일하게 유지하는 전압 조정기를 포함하는 복수 개의 프로세서에 있어서,
    (a) 각각의 상기 프로세서에 포함된 실행 유닛들 간의 점유율 차이 값을 계산하여 최대 차이 값을 산출하는 단계;
    (b) 처리할 다수 개의 태스크 중 실행 유닛이 지정되지 않은 어느 하나의 태스크의 점유율과 상기 최대 차이 값의 크기를 비교하는 단계;
    (c) 상기 비교 결과 상기 어느 하나의 태스크의 점유율이 상기 최대 차이 값보다 작거나 같은 경우 상기 최대 차이 값이 발생한 프로세서 내의 최저 점유율을 갖는 실행 유닛에 상기 어느 하나의 태스크가 할당되도록 지정하는 단계;
    (d) 상기 (a)단계 내지 (c)단계를 반복하는 단계; 및
    (e) 상기 (c) 단계를 통하여 지정된 실행 유닛에 대응하도록 각각의 상기 태스크를 할당하는 단계
    를 포함하는 태스크 할당 방법.
  2. 제 1항에 있어서,
    상기 비교 결과 상기 어느 하나의 태스크의 점유율이 상기 최대 차이 값보다 큰 경우 상기 어느 하나의 태스크와의 점유율 차이가 가장 큰 실행 유닛에 상기 어느 하나의 태스크가 할당되도록 지정하는 단계
    를 더 포함하는 태스크 할당 방법.
  3. 제 1항에 있어서, 상기 (a) 단계는,
    각각의 상기 프로세서 내의 실행 유닛의 점유율을 계산하는 단계;
    각각의 상기 프로세서별로 상기 계산된 점유율을 비교하여 점유율 차이 값을 산출하는 단계; 및
    상기 산출 결과 가장 큰 점유율 차이 값을 최대 차이 값으로 산출하는 단계
    를 포함하는 태스크 할당 방법.
  4. 복수 개의 프로세서를 포함하는 분산처리 시스템에서의 태스크 할당 방법에 있어서,
    (a) 각각의 상기 프로세서에 포함된 실행 유닛들에서 처리할 다수 개의 태스크의 점유율을 계산하여 내림차순으로 정렬하는 단계;
    (b) 각각의 상기 프로세서에 포함된 실행 유닛들 간의 점유율 차이 값을 계산하여 최대 차이 값을 산출하는 단계;
    (c) 상기 처리할 다수 개의 태스크 중 실행 유닛이 지정되지 않은 어느 하나의 태스크의 점유율과 상기 최대 차이 값의 크기를 비교하는 단계;
    (d) 상기 비교 결과 상기 어느 하나의 태스크의 점유율이 상기 산출된 최대 차이 값보다 작거나 같은 경우 상기 최대 차이 값이 발생한 프로세서 내의 최저 점유율을 갖는 실행 유닛에 상기 어느 하나의 태스크가 할당되도록 지정하는 단계;
    (e) 상기 정렬된 순서에 따라 상기 (b) 단계 내지 (d) 단계를 반복하는 단계; 및
    (f) 상기 (d) 단계를 통하여 지정된 실행 유닛에 대응하도록 각각의 상기 태스크를 할당하는 단계
    를 포함하는 태스크 할당 방법.
  5. 제 4항에 있어서,
    상기 프로세서는 복수 개의 실행 유닛, 상기 실행 유닛들의 전압 상태를 체크하는 전압 센서 및 상기 전압 센서로부터 전송받은 전압 상태를 기반으로 상기 실행 유닛들의 전압 값을 동일하게 유지하는 상호 의존적인 전압 조정기
    를 포함하는 태스크 할당 방법.
  6. 제 4항에 있어서,
    상기 비교 결과 상기 어느 하나의 태스크의 점유율이 상기 최대 차이 값보다 큰 경우 상기 어느 하나의 태스크와의 점유율 차이가 가장 큰 실행 유닛에 상기 어느 하나의 태스크가 할당되도록 지정하는 단계
    를 더 포함하는 태스크 할당 방법.
  7. 제 4항에 있어서, 상기 (b) 단계는,
    각각의 상기 프로세서 내의 실행 유닛의 점유율을 계산하는 단계;
    각각의 상기 프로세서별로 상기 계산된 점유율을 비교하여 점유율 차이 값을 산출하는 단계; 및
    상기 산출 결과 가장 큰 점유율 차이 값을 최대 차이 값으로 산출하는 단계
    를 포함하는 태스크 할당 방법.
  8. 각각의 태스크의 실행 단위가 되는 복수 개의 실행 유닛, 각각의 상기 실행 유닛의 전압 값을 감지하는 전압 센서 및 상기 전압 센서로부터 전송받은 각각의 상기 실행 유닛의 전압 값을 기초로 각각의 상기 실행 유닛의 전압을 동일하게 유지하는 전압 조정기를 포함하는 복수 개의 프로세서; 및
    각각의 상기 프로세서에 포함된 실행 유닛들 간의 점유율 차이 값이 최대인 프로세서의 최소 점유율을 갖는 실행 유닛에 상기 태스크를 할당하는 운영 시스템
    을 포함하는 분산 처리 시스템.
  9. 제 8항에 있어서,
    상기 전압 조정기는 각각의 상기 프로세서 내의 실행 유닛들 중 최대 전력을 소모하는 실행 유닛의 전압 값을 기준으로 동일 프로세서 내의 다른 실행 유닛의 전압을 동일하게 유지하는
    분산 처리 시스템.
  10. 제 8항에 있어서,
    상기 프로세서는 상기 운영 시스템에 의하여 할당된 태스크를 실행하는
    분산 처리 시스템.
  11. 제 8항에 있어서,
    상기 운영 시스템은 점유율 값이 큰 순서대로 각각의 상기 태스크를 할당하는
    분산 처리 시스템.
  12. 제 8항에 있어서,
    상기 운영 시스템은 상기 태스크와의 점유율 차이가 가장 큰 실행 유닛에 상기 태스크를 할당하는
    분산 처리 시스템.
KR1020060089099A 2006-09-14 2006-09-14 분산처리시스템에서의 태스크 할당방법 및 시스템 KR100834408B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020060089099A KR100834408B1 (ko) 2006-09-14 2006-09-14 분산처리시스템에서의 태스크 할당방법 및 시스템
PCT/KR2007/003534 WO2008032926A1 (en) 2006-09-14 2007-07-23 System and method of task assignment in distributed processing system
US12/438,084 US8291420B2 (en) 2006-09-14 2007-07-23 System and method of task assignment distributed processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060089099A KR100834408B1 (ko) 2006-09-14 2006-09-14 분산처리시스템에서의 태스크 할당방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20080024681A KR20080024681A (ko) 2008-03-19
KR100834408B1 true KR100834408B1 (ko) 2008-06-04

Family

ID=39183951

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060089099A KR100834408B1 (ko) 2006-09-14 2006-09-14 분산처리시스템에서의 태스크 할당방법 및 시스템

Country Status (3)

Country Link
US (1) US8291420B2 (ko)
KR (1) KR100834408B1 (ko)
WO (1) WO2008032926A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101086905B1 (ko) 2009-11-25 2011-11-24 한양대학교 산학협력단 파이프라인 멀티 코어 시스템 및 파이프라인 멀티 코어 시스템의 효과적인 태스크 할당 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101232561B1 (ko) * 2011-02-07 2013-02-12 고려대학교 산학협력단 임베디드 멀티 코어 프로세서의 태스크 스케쥴링 및 캐쉬 메모리 리사이징 장치 및 방법
US8688289B2 (en) * 2011-07-07 2014-04-01 Qualcomm Incorporated Method and system for preempting thermal load by proactive load steering
KR20130020420A (ko) 2011-08-19 2013-02-27 삼성전자주식회사 반도체 장치의 태스크 스케쥴링 방법
US8938739B2 (en) * 2012-06-02 2015-01-20 Texas Instruments Incorporated Resource sharing aware task partitioning for multiprocessors
US20140207504A1 (en) * 2013-01-21 2014-07-24 International Business Machines Corporation System and method of calculating task efforts and applying the results for resource planning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04302036A (ja) * 1991-03-29 1992-10-26 Toshiba Corp 負荷分散方式
US6223205B1 (en) 1997-10-20 2001-04-24 Mor Harchol-Balter Method and apparatus for assigning tasks in a distributed server system
US20050198634A1 (en) 2004-01-28 2005-09-08 Nielsen Robert D. Assigning tasks in a distributed system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5543667A (en) * 1992-12-29 1996-08-06 Honeywell Inc. Load control for partially increasing/decreasing power usage
US6948079B2 (en) 2001-12-26 2005-09-20 Intel Corporation Method and apparatus for providing supply voltages for a processor
US8032891B2 (en) * 2002-05-20 2011-10-04 Texas Instruments Incorporated Energy-aware scheduling of application execution
US7086058B2 (en) * 2002-06-06 2006-08-01 International Business Machines Corporation Method and apparatus to eliminate processor core hot spots
KR100989490B1 (ko) * 2003-06-20 2010-10-22 주식회사 케이티 각 서버간 부하 분산 시스템 및 그 방법
KR100478346B1 (ko) * 2003-10-21 2005-03-25 한국전자통신연구원 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템
US7308590B2 (en) * 2004-10-15 2007-12-11 Intel Corporation Automatic dynamic processor operating voltage control
JP4302036B2 (ja) 2004-10-20 2009-07-22 シャープ株式会社 太陽電池付照明装置とその製造方法
JP3914230B2 (ja) * 2004-11-04 2007-05-16 株式会社東芝 プロセッサシステム及びその制御方法
US7607028B2 (en) * 2006-05-30 2009-10-20 International Business Machines Corporation Mitigate power supply noise response by throttling execution units based upon voltage sensing
US7941805B2 (en) * 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
US8024596B2 (en) * 2008-04-29 2011-09-20 Bose Corporation Personal wireless network power-based task distribution
US8201000B2 (en) * 2009-02-24 2012-06-12 International Business Machines Corporation Computing load management method and system
US8566836B2 (en) * 2009-11-13 2013-10-22 Freescale Semiconductor, Inc. Multi-core system on chip

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04302036A (ja) * 1991-03-29 1992-10-26 Toshiba Corp 負荷分散方式
US6223205B1 (en) 1997-10-20 2001-04-24 Mor Harchol-Balter Method and apparatus for assigning tasks in a distributed server system
US20050198634A1 (en) 2004-01-28 2005-09-08 Nielsen Robert D. Assigning tasks in a distributed system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101086905B1 (ko) 2009-11-25 2011-11-24 한양대학교 산학협력단 파이프라인 멀티 코어 시스템 및 파이프라인 멀티 코어 시스템의 효과적인 태스크 할당 방법

Also Published As

Publication number Publication date
US8291420B2 (en) 2012-10-16
WO2008032926A1 (en) 2008-03-20
US20100242040A1 (en) 2010-09-23
KR20080024681A (ko) 2008-03-19

Similar Documents

Publication Publication Date Title
KR100834408B1 (ko) 분산처리시스템에서의 태스크 할당방법 및 시스템
Yang et al. A framework for partitioning and execution of data stream applications in mobile cloud computing
KR101286700B1 (ko) 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법
US8203562B1 (en) Apparatus, system, and method for distributing work to integrated heterogeneous processors
US7945913B2 (en) Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
US8397090B2 (en) Operating integrated circuit logic blocks at independent voltages with single voltage supply
WO2017101100A1 (en) Virtual machine batch live migration
US11354156B2 (en) Master device for managing distributed processing of task by using resource information
JP2008047126A (ja) 精密なcpu消費量データを用いてアフィニティをディスパッチする負荷バランサ
WO2013090788A1 (en) Allocating compute kernels to processors in a heterogeneous system
CN115904666A (zh) 面向gpu集群的深度学习训练任务调度系统
WO2022111453A1 (zh) 任务处理方法及装置、任务分配方法、电子设备、介质
US11200165B2 (en) Semiconductor device
US10963309B2 (en) Network interface controller-based scheduling of processing tasks in a distributed computing system
US20230145437A1 (en) Execution prediction for compute clusters with multiple cores
KR20200091789A (ko) Gpu 연산의 동시 실행을 위한 플랫폼
KR20210002646A (ko) Gpu를 위한 피드백 기반 분할 작업 그룹 디스패치
KR20100074920A (ko) 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
CN105242954A (zh) 一种虚拟cpu与物理cpu之间的映射方法及电子设备
JP6156379B2 (ja) スケジューリング装置、及び、スケジューリング方法
US10180712B2 (en) Apparatus and method for limiting power in symmetric multiprocessing system
US20140047454A1 (en) Load balancing in an sap system
WO2016195225A1 (ko) Gpgpu 어플리케이션을 위한 dvfs 기법이 적용된 모바일 디바이스
KR101952221B1 (ko) 캐시 부스팅과 경과시간 최소화를 통한 효율적인 멀티태스킹 그래픽처리장치
CN111898865A (zh) 一种智慧校园数据动态管理方法

Legal Events

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

Payment date: 20130424

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140526

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150527

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170529

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180528

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190527

Year of fee payment: 12