KR20130059300A - 멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링 - Google Patents

멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링 Download PDF

Info

Publication number
KR20130059300A
KR20130059300A KR1020120135470A KR20120135470A KR20130059300A KR 20130059300 A KR20130059300 A KR 20130059300A KR 1020120135470 A KR1020120135470 A KR 1020120135470A KR 20120135470 A KR20120135470 A KR 20120135470A KR 20130059300 A KR20130059300 A KR 20130059300A
Authority
KR
South Korea
Prior art keywords
tasks
task
algorithm
load balancing
order
Prior art date
Application number
KR1020120135470A
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 삼성전자주식회사
Publication of KR20130059300A publication Critical patent/KR20130059300A/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
    • 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/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발 명의 첫 번째 실시예에서는, 태스크들의 집합을 수신하는 단계; 각 태스크의 활용값이 증가하지 않는 순서로 태스크들을 정렬하는 단계; 스케줄 가능성 중심의 알고리즘을 이용하여 정렬된 태스크들을 분할하는 단계; 각 태스크의 활용값이 감소하지 않는 순서로 분할된 정렬된 태스크들을 재정렬하고 부하 분산 중심의 알고리즘을 이용하여 재정렬된 분할된 태스크들을 재분할하는 단계; 및 재분할 결과에 기초하여 재분할된 태스크들을 하나 이상의 멀티코어 장치에 할당하는 단계;를 포함하는 멀티코어 장치에 태스크들을 할당하는 방법이 제공된다.

Description

멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링{SCHEDULING FOR REAL-TIME AND QUALITY OF SERVICE SUPPORT ON MULTICORE SYSTEMS}
실시간 컴퓨팅 시스템과 관련된다. 보다 구체적으로는 멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링과 관련된다.
실시간 컴퓨팅은 실시간 제약조건(예를 들어, 이벤트에서 시스템 응답까지의 동작 기한)이 적용되는 하드웨어 및 소프트웨어 시스템의 연구이다. 실시간 프로그램은 하드(hard) 또는 소프트(soft) 시간 제약조건 내에 응답을 보장하여야 한다. 실시간 응답 시간은 보통 대략 밀리 초(milliseconds), 때로는 마이크로 초(microseconds)로 인식된다. 반면, 비실시간 시스템은 빠른 응답이 일반적인 결과일지라도 어떤 상황에서 응답시간을 보장할 필요가 없는 시스템이다. 실시간 컴퓨터 시스템은 최근 예를 들어, 자동차 전자, 항공, 우주 시스템, 제어 센터, 통신 시스템, 영상회의, 의료 영상, 컴퓨터 전자 등을 포함하는 많은 다양한 분야에서 발견된다.
또한, 멀티코어 프로세서가 확장을 계속하면서, 보다 복잡하고 계산 집약적인 태스크(task)들을 실시간으로 수행할 수 있게 된 반면, 단일 프로세서 시스템은 이러한 태스크들을 지원하기 위해 상당한 성능 제한을 가진다. 멀티코어 프로세서를 완전히 이용하기 위해서 실시간 태스크들이 복수의 코어들을 동시에 활용할 수 있도록 어플리케이션들이 큰 병렬도(degree of parallelism)를 제공하여야 한다.
계산 집약적인 실시간 어플리케이션들에 있어 멀티코어 프로세서는 병렬성을 활용함으로써 싱글 코어 프로세서에 비해 상당한 실시간 성능 개선을 얻을 수 있다.
실시간 성능과 이용 가능한 자원 용량의 효율적인 활용을 보장하기 위해서는 정확한 스케줄 분석과 코어 사이의 부하 분산(load balancing)을 통합하는 새로운 스케줄링 전략을 요구한다. 태스크가 기한 제약조건을 만족하면서 실행되도록 스케줄될 수 있는 경우, 태스크가 스케줄 가능하다고 언급된다. 멀티 코어 시스템에서 부하 분산의 목적은 모든 코어가 (이상적으로는) 동일한 양의 작업(work)을 가지도록 고르게 계산 부하를 분배하는 것이다. 멀티코어 시스템에 대한 실시간 스케줄링에 관한 기존의 대부분의 연구는 스케줄 가능성(schedulability)에 집중되어있다. 그러나, 이러한 전통적인 실시간 스케줄링 방법들은 멀티코어 시스템에서 태스크를 할당하는 동안 병렬처리나 부하 분산(load balancing)을 고려하지 않으므로 자원 효율과 성능에 상당한 손실을 초래한다. 반면, 태스크를 할당하는 동안 부하 분산을 고려하는 선행 방법들은 보통 낮은 스케줄 가능성을 겪는다.
낭비 없는 자원 활용을 위해서는 가능한 많은 태스크들을 스케줄 가능하도록 할 뿐 아니라 매우 효율적인 실시간 스케줄링 방법이 요구된다. 뿐만 아니라, 처리량의 향상, 에너지 소비의 감소 및 신뢰성 향상을 위해서는 코어들 사이에 태스크 부하 균형을 유지하는 방법이 요구된다.
멀티코어 시스템에서 서비스 품질(QoS: Quality of Service) 요구뿐 아니라 실시간성을 지원하기 위해 디자인된 스케줄링 방법이 제공된다.
본 발명의 첫 번째 실시예에서, 태스크들의 집합을 수신하는 단계; 각 태스크의 활용값이 증가하지 않는 순서로 태스크들을 정렬하는 단계; 스케줄 가능성 중심의 알고리즘(schedulability centric algorithm)을 이용하여 정렬된 태스크들을 분할하는 단계; 각 태스크의 활용값이 감소하지 않는 순서로 분할된 정렬된 태스크들을 재정렬하고 부하 분산 중심의 알고리즘(load-balancing centric algorithm)을 이용하여 재정렬된 분할된 태스크들을 재분할하는 단계; 및 재분할 결과에 기초하여 재분할된 태스크들을 하나 이상의 멀티코어 장치에 할당하는 단계;를 포함하는 멀티코어 장치에 태스크들을 할당하는 방법이 제공된다.
본 발명의 두 번째 실시예에서, 2 이상의 프로세서들; 상기 2 이상의 프로세서들 각각에 대응하는 로컬 큐; 복수의 태스크들을 각 태스크의 활용값이 증가하지 않는 순서로 정렬하도록 구성되는 태스크 스케줄러; 및 스케줄 가능성 중심의 알고리즘을 이용하여 상기 정렬된 태스크들을 분할하도록 구성되는 분할 모듈; 및 상기 분할된 정렬된 태스크들을 각 태스크의 활용값이 감소하지 않는 순서로 재정렬하고 부하 분산 중심의 알고리즘을 이용하여 상기 재정렬된 분할된 태스크들을 분할하는 재분할 모듈;을 포함하는 분할 모듈을 포함하고, 상기 분할 모듈은 상기 재분할 결과에 따라 재분할된 태스크들을 상기 로컬 큐들로 할당하도록 구성되는 장치가 제공된다.
본 발명의 세 번째 실시예에서, 태스크들의 집합을 수신하기 위한 수단; 상기 태스크들을 각 태스크의 활용값이 증가하지 않는 순서로 정렬하기 위한 수단; 스케줄 가능성 중심의 알고리즘을 이용하여 상기 정렬된 태스크들을 분할하기 위한 수단; 상기 분할된 정렬된 태스크들을 각 태스크의 활용값이 감소하지 않는 순서로 재정렬하고, 부하 분산 중심의 알고리즘을 이용하여 상기 재정렬된 분할된 태스크들을 분할하기 위한 수단; 및 상기 재분할 결과에 기초하여 상기 재분할된 태스크들을 하나 이상의 멀티코어 장치에 할당하기 위한 수단;을 포함하는 멀티코어 장치에서 태스크들을 할당하기 위한 장치가 제공된다.
본 발명의 네 번째 실시예에서, 태스크들의 집합을 수신하는 단계; 상기 태스크들을 각 태스크의 활용값이 증가하지 않는 순서로 정렬하는 단계; 스케줄 가능성 중심의 알고리즘을 이용하여 상기 정렬된 태스크들을 분할하는 단계; 상기 분할된 정렬된 태스크들을 각 태스크의 활용값이 감소하지 않는 순서로 재정렬하고, 부하 분산 중심의 알고리즘을 이용하여 상기 재정렬된 분할된 태스크들을 재분할하는 단계; 재분할 결과에 기초하여 상기 재분할된 태스크들을 하나 이상의 멀티코어 장치에 할당하는 단계;를 포함하는 멀티코어 장치에서 태스크들을 할당하는 방법을 수행하기 위한 장치에 의해 실행 가능한 명령어들의 프로그램을 포함하는 기계에 의해 판독 가능한 비 일시적인 프로그램 저장 장치가 제공된다.
오버 프로비저닝(over-provisioning), 잠재력 낭비 및 코어 수의 증가 없이 자원들을 효율적으로 활용할 수 있도록 함으로써 양호한 스케줄 가능성(즉 높은 활용 범위에서 기한을 놓치지 않고 실행할 수 있는 태스크들)을 제공함과 동시에 효과적인 부하분산을 통해 향상된 활용 효율(use efficiency)을 제공한다.
또한, 성능향상 및 에너지가 절감되는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 방법을 설명하기 위한 도면,
도 2는 최초 적합 감소 활용(FFDU)과 최악 적합 감소 활용(WFDU) 알고리즘의 동작을 비교하는 도면,
도 3은 부하 분산 기반 태스크 분할(LBTP) 알고리즘의 동작을 설명하기 위한 도면,
도 4는 본 발명의 일 실시예에 따라, 부하 분산 기반 태스크 분할(LBTP) 알고리즘을 이용할 때 스케줄 가능성에서 보여지는 향상을 나타내는 그래프들을 포함하는 도면,
도 5는 본 발명의 일 실시예에 따라, 부하 분산 기반 태스크 분할(LBTP) 알고리즘을 이용할 때 부하 분산에서 보여지는 향상을 나타내는 그래프들을 포함하는 도면,
도 6은 본 발명의 일 실시예에 따라, 부하 분산 기반 태스크 분할(LBTP) 알고리즘을 이용할 때, 에너지 사용에 있어 보여지는 향상을 나타내는 그래프들을 포함하는 도면,
도 7은 본 발명의 일 실시예에 따라, 태스크들을 멀티코어 장치에 할당하기 위한 방법을 나타내는 순서도이다.
본 발명을 실시하기 위해서 발명자에 의해 고려된 최적의 방법을 포함한 본 발명의 구체적인 실시예들이 상세히 설명될 것이다. 이러한 구체적인 실시예들의 예시들은 첨부된 도면에 도시되어 있다. 본 발명이 이러한 구체적 실시예들과 함께 설명되어 있지만, 본 발명을 설명된 실시예들에 한정하고자 하는 것은 아니다. 반면, 첨부된 청구항에 의해 정의된 본 발명의 사상 및 범주 내에 포함될 수 있는 변형물, 대체물 및 균등물을 포함하기 위한 것이다. 후술 될 설명들에서, 구체적인 설명들은 본 발명의 완전한 이해를 제공하기 위해 제시된다. 본 발명은 이러한 구체적인 설명들의 일부 또는 전부를 제외하고 실시될 수 있다. 나아가, 본 발명을 불필요하게 흐리는 것을 피하기 위해 공지된 특징들은 상세히 설명되지 않을 수 있다.
본 발명에 따르면, 구성 요소들, 처리 절차들, 및/또는 데이터 구조들은 운영 체제, 프로그래밍 언어, 컴퓨팅 플랫폼, 컴퓨터 프로그램, 및/또는 범용 기계 등의 다양한 형태들을 이용하여 구현될 수 있다. 또한, 본 발명이 속한 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 독창적인 개념의 범위와 사상에서 벗어남이 없이 고정 배선 장치, FPGAs(Field Programmable Gate Arrays), ASICs(Application Specific Integrated Circuits) 또는 유사한 것들이 사용될 수 있음을 알 수 있을 것이다. 또한, 본 발명은 메모리 장치와 같은 컴퓨터로 읽을 수 있는 기록 가능한 매체에 저장된 컴퓨터 명령어들의 집합으로서 구현될 수 있다.
이 실시예의 기본적인 접근방식은 먼저 스케줄 가능성에 기반한 태스크 분할 메카니즘을 적용하고, 이러한 분할에 기초하여 스케줄 가능성을 방해하지 않는 부하 분산(load balancing)에 기반한 또 다른 태스크 분할 메카니즘을 다시 적용하는 것이다. 태스크 재분할 메카니즘은 태스크가 솔루션의 오버헤드를 감소시키는 부하 분산의 측면에서 전혀 또는 거의 개선을 할 수 없을 때 중단된다.
도 1은 본 발명의 일 실시예에 따른 방법을 설명하기 위한 도면이다. 태스크 집합(100)은 후술할 바와 같이 태스크 분할뿐 아니라 태스크 재분할을 수행하는 분할 모듈(102)에 전달된다. 이러한 분할 및 재분할 결과는 복수로 나누어진 태스크들의 집합들이다(104a 내지 104c). 이러한 태스크들의 집합들 각각은 대응하는 코어들(108a 내지 108c)을 위해 지정된 대응하는 로컬 큐(local que)(106a 내지 106c)에 전달된다. 또한, 각 코어는 대응되는 코어(108a 내지 108c)에 할당되는 태스크들을 스케줄하는 자체 단일 프로세서 스케줄링 방법(110a 내지 110c)을 가진다.
일반적으로, 개별 코어들이 런타임에 개별 스케줄러들을 적용하는 동안 분할/재분할은 시스템 런타임에 앞서 일어난다.
분할 모듈(102)은 실제로 (1) 태스크 정렬, (2) 태스크 분할 및 (3) 태스크 재분할 세 단계를 수행한다. 이러한 분할 모듈의 전체적인 절차는 부하 분산 기반 태스크 분할(LBTP: Load Balancing based Task Partitioning)이라고 불려질 수 있다.
태스크 정렬은 활용값이 증가하지 않는 순서에 의해 태스크들을 정렬하는 것을 포함한다. 기본적으로 활용값이 증가하지 않는 순서는 나중에 정렬된 태스크들이 정확히 동일한(즉, 증가하지 않거나 또는 감소하지 않는) 활용값을 가지는 것을 의미하는 유대관계들의 가능성을 이용한 내림 차순을 의미한다. 각 태스크의 활용값은 주기(period)로 나누어진 실행 시간으로 표현된다. 따라서, 태스크 t i 의 활용값 u i u i = c i /p i 로 정의된다. 이때, c i 는 태스크 t i 의 최악의 실행시간, p i 는 태스크 t i 의 주기이다. 주기는 반복되는 태스크 실행들 간의 시간을 나타낸다.
태스크 분할로 돌아와서, 태스크들의 정렬된(즉, 증가하지 않는 활용값들에 의해 정렬된) 순서로 각 태스크는 적합한 첫 번째 코어에 할당된다. 또한, 시스템은 태스크들이 스케줄될 수 있는지 여부를 체크할 수 있다. 최초 적합 감소 활용(FFDU: First Fit Decreasing Utilization) 알고리즘을 이용하는 것과 같이 일부 구현에 있어 태스크 분할은 태스크 정렬과 결합될 수 있다. 이러한 알고리즘들은 양호한 스케줄 가능성을 제공한다.
태스크 재분할은 (스케줄이 실현 가능한 한) 이전 태스크 분할의 증명들에 의해 생성된 스케줄을 기반으로 한다. 태스크들의 역으로 정렬된(즉, 감소하지 않는 활용값에 의해 정렬된) 순서에서 태스크가 코어에 적합할 때까지 각 태스크는 최소 활용값을 가진 코어에 할당된다. 이는 태스크 재분할에 의한 부하분산의 개선이 없거나 거의 없을 때까지 계속된다. 이러한 태스크 재분할 절차는 부하 분산 테스트(예를 들어, 코어들의 활용값에 대한 표준편차)를 포함한다. 재분할에 의해 생성된 새로운 솔루션이 원 분할과 다르더라도, 재분할 절차는 스케줄 가능성의 재검증(re-testing) 없이 실현 가능한 솔루션을 유지할 수 있다. 최악 적합 증가 활용(WFIU: Worst Fit Increasing Utilization) 알고리즘을 이용하는 것과 같이 일부 구현에 있어 태스크 재분할은 태스크 정렬과 결합될 수 있다. 이전에 사용된 순서로부터 역순이 사용될 수 있으므로 태스크 정렬 절차는 다시 수행될 필요가 없다.
도 2는 최초 적합 감소 활용(FFDU) 알고리즘과 최악 적합 감소 활용(WFDU) 알고리즘을 비교하는 도면이다.
200은 태스크들(202)에 대한 최초 적합 활용(FFDU)의 실행 후 태스크들의 구성을 나타낸다. 볼 수 있듯이 모든 태스크들이 하나의 코어(204)에 할당되었다. 반면, 206은 동일한 태스크들(208)에 대한 최악 적합 감소 활용(WFDU)의 실행 후 동일한 태스크들의 구성을 나타낸다. 여기서, 태스크들은 코어 201a와 코어 201b에 동등하게 분배되었다. 따라서, 부하분산 목적을 위해서는 최악 적합 감소 활용(WFDU)이 우수하다.
그러나, 상이한 태스크들의 집합을 이용하는 경우, 최악 적합 감소 활용(WFDU)의 결점들을 알 수 있다. 구체적으로, 212는 태스크들(214)에 대해 최초 적합 감소 활용(FFDU)을 수행한 후 태스크들의 구성을 나타낸다. 여기서, 여섯 개의 모든 태스크들이 코어들(216)에 할당되었다. 218은 여섯 개의 태스크들(220) 중 다섯 개가 코어들(222)에 할당된 결과를 나타내는 동일한 태스크들(220)에 대한 최악 적합 감소 활용(WFDU)의 이용을 나타낸다.
도 3은 이러한 선행 방법들 각각과 대비하기 위한 본 발명의 부하분산 기반 태스크 분할(LBTB) 알고리즘의 실행을 나타낸다. 여기서 태스크들은 우선 정렬된다(300). 이후, 최초 적합 감소 활용(FFDU) 또는 다른 스케줄 가능성 중심의 알고리즘을 이용하여 태스크 분할이 일어난다. 302에서 볼 수 있듯이, 모든 태스크들이 스케줄 되었으나 부하 분산은 일어나지 않았다. 304에서 태스크들은 종래 기술의 솔루션들과 같이 스케줄 가능성 또는 부하 분산을 무시하지 않고 스케줄 가능성 및 부하 분산 모두에 기초한 코어들(306) 사이에서 태스크들의 분배를 초래하는 최악 적합 증가 활용(WFIU) 또는 다른 부하 분산 중심의 알고리즘(load-balancing centric algorithm)을 이용하여 태스크들을 재분할할 수 있다.
본 발명을 발명하는 과정에서 부하 분산 기반 태스크 분할(LBTP) 알고리즘이 모든 선행 기술의 방법들에 비해 크게 향상된 장점들을 보았음이 예상치 않게 발견되었다. 도 4는 본 발명의 일 실시예에 따라, 부하 분산 기반 태스크 분할(LBTP) 알고리즘을 이용할 때 스케줄 가능성에서 보여지는 향상을 나타내는 그래프들을 포함한다. 여기서, 400은 다양한 활용 레벨들에서 최초 적합 감소 활용(FFDU), 최악 적합 감소 활용(WFDU) 및 부하 분산 기반 태스크 분할(LBTP)의 비교를 나타낸다. 이 비교는 스케줄 가능성을 위한 것이다. 볼 수 있듯이, 48 코어 실시예에서, 부하 분산 기반 태스크 분할(LBTP)은 최초 적합 감소 활용(FFDU)과 동일한 스케줄 가능성 성능을 가지고 모두 최악 적합 감소 활용(WFDU)에 비해 훨씬 우수하다. 유사한 프로필이 1000 코어 실시예(402)에서 보여진다. 따라서, 스케줄 가능성에 있어, 부하 분산 중심 태스크 분할(LBTP)은 최초 적합 감소 활용(FFDU) 만큼 좋고, 최악 적합 감소 활용(WFDU)보다 훨씬 우수하다.
도 5는 본 발명의 일 실시예에 따른 부하 분산 기반 태스크 분할(LBTP) 알고리즘을 이용할 때 부하 분산에서 보여지는 향상을 나타내는 그래프들을 포함한다. 여기서, 도 5는 다양한 활용 레벨들에 대한 최초 적합 감소 활용(FFDU), 최악 적합 감소 활용(WFDU), 및 부하 분산 기반 태스크 분할(LBTP) 알고리즘들의 부하 분산 성능 비교를 나타낸다. 도면의 좌측 상단의 그래프에서 나타나듯이, 48 코어의 경우, 최악 적합 활용(WFDU)이 부하 분산에 관해서는 최고의 성능을 나타내고 근접하게 부하 분산 기반 태스크 분할(LBTP)이 뒤따름을 볼 수 있다. 그러나, 최초 적합 감소 활용(FFDU)는 부하 분산 성능에 있어 최악 적합 감소 활용(WFDU) 및 부하 분산 기반 태스크 분할(LBTP)에 비해 훨씬 뒤쳐진다. 유사한 결과들을 1000 코어 경우에서 볼 수 있다(좌측 하단).
도면 우측의 그래프들은 최악 적합 감소 활용(WFDU) 알고리즘이 실제로 태스크를 스케줄할 수 없어, 최악 적합 활용(WFDU)의 부하 분산성능이 무관한 경우들을 나타낸다. 이와 같이 스케줄이 어려운 경우, 실제로 부하 분산 기반 태스크 분할(LBTP)이 48 코어와 100 코어 실시예들 모두에서 최초 적합 감소 활용(FFDU)을 능가한다.
도 6은 본 발명의 일 실시예에 따라, 부하 분산 기반 태스크 분할(LBTP) 알고리즘을 이용할 때, 에너지 사용량에 있어 보여지는 향상을 나타내는 그래프들을 포함한다. 그래프들은 도 5와 거의 동일한 실시예들을 나타낸다. 48 코어 형태의 경우(좌측 상단), 최악 적합 감소 활용(WFDU)는 부하 분산 기반 태스크 분할(LBTP)보다 약간 낮은 에너지 사용량을 가지나, 둘 다 최초 적합 감소 활용(FFDU)보다 상당히 낮다. 100 코어 형태의 경우에서 유사한 결과들이 보여진다. 또 다시 오른쪽은 최악 적합 감소 활용(WFDU)이 태스크들을 스케줄할 수 없어 에너지 사용량이 무관한 경우를 나타낸다. 이러한 스케줄이 어려운 경우들에서, 부하 분산 기반 태스크 분할(LBTP)는 실제로 에너지 사용량 감소에 관한 한 최초 적합 감소 활용(FFDU)를 능가한다.
실험 결과들에 기초하여 요약하면, 본 발명의 일 실시예(즉, 부하 분산 기반 태스크 분할(LBTP))는 태스크들의 기한을 놓침이 없이 총 활용이 98%까지인 실시간 태스크들을 실행할 수 있다. 다시 말하면, 본 발명은 스케줄 가능성 측면에서 최초 적합 감소 활용(FFDU) 동일한 성능을 제공하는데 반하여, 최악 적합 감소 촬용(WFDU)과 비교하여 9-12%까지 성능을 향상시킨다. 부하 분산의 측면에서, 본 발명의 성능은 양호한 스케줄 가능성을 제공하는 최초 적합 감소 활용(FFDU)의 성능보다 10배만큼 뛰어나다. 또한, 이러한 본 발명의 실시예는 잠재적으로 최초 적합 감소 활용(FFDU)보다 65%까지 에너지를 감소시키고, 에너지 최소화를 제공하는 최악 적합 감소 활용(WFDU)과 비슷한 에너지 성능을 제공한다.
다음은 본 발명의 일 실시예를 구현하기 위한 예시적인 의사코드(Pseudo-code)를 나타낸다. 다만, 이는 예시에 불과하며, 보호 범위를 한정하고자 하는 것이 아님을 명심하여야 한다. 태스크 정렬, 태스크 분할 및 태스크 재분할 방법들을 포함하는 부하 분산 기반 태스크 분할(LBTP)의 의사코드는 아래에 보여진다.
[ Pseudo code for LBTP ]
FUNCTION LBTP(T, P)
/* task ordering */
Sort tasks in a task list T by non-increasing order of utilization
values of tasks
/* task partitioning */
for each task, t i , i <- 1 to n, t i T do
for each processor, p j , p j P do
if task t i is schedulable on processor p j then
Assign the task t i to the processor p j
Next i
end if
end for
if the task t i is not assigned to any processor then
return partitioning _ failed
end if
end for
/* task repartitioning */
for each task, t i , i <- n to 1, t i T do
Find a processor p j (p j P) with the least utilization value
Perform a load balancing test
if task, t i , improves load balancing on processor p j then
Remove the task ti from its previously assigned processor
Re-assign the task t i to the processor p j
end if
end for
return task to processor assignment
end FUNCTION
도 7은 본 발명의 일 실시예에 따라 태스크들을 멀티코어 장치에 할당하기 위한 방법을 나타내는 순서도이다. 700 단계에서, 태스크들의 집합이 수신된다. 702 단계에서, 태스크들은 각 태스크의 활용 값이 증가하지 않는 순서로 정렬된다. 704 단계에서, 정렬된 태스크들은 스케줄 가능성 중심의 알고리즘을 이용하여 분할된다. 706 단계에서, 분할된 정렬된 태스크들은 부하 분산 중심의 알고리즘을 이용하여 각 태스크들의 활용값이 감소하지 않는 순서로 분할된 정렬된 태스크들을 재정렬하고 분할된 재정렬된 태스크들을 분할함으로써 재분할된다. 702 단계에서 이미 태스크들이 증가하지 않는 순서로 정렬되었고 이 단계에서는 앞선 정렬의 역순을 이용할 수 있으므로 여기서 설명된 "재정렬"은 어떠한 적극적인 절차들을 요구하지 않을 수 있다. 708 단계에서, 재분할 결과에 기초하여 재분할된 태스크들은 하나 이상의 멀티코어 장치로 할당된다.
전술한 예시적 구조들은 당업자들에 의해 프로세서에 의해 실행되는 프로그램 명령어들, 소프트웨어 모듈, 마이크로코드, 컴퓨터로 판독 가능한 매체의 컴퓨터 프로그램 제품, 논리 회로, ASIC(Application Specific Integrated Circuits), 펌웨어 및 소비자 전자 기기(consumer electronic device) 등과 같이 다양한 방법으로 구현될 수 있고, 무선 장치, 무선 송수신기 및 다른 무선 네트워크 장치들의 일부를 활용할 수 있음을 명심하여야 한다. 또한, 복수의 디스플레이 화면에 멀티미디어 컨텐츠를 표시하기 위해 개시된 방법과 시스템의 실시예는 하드웨어, 소프트웨어 또는 소프트웨어 및 하드웨어 요소들을 모두 포함하는 실시예의 형태를 취할 수 있다.
컴퓨터로 판독 가능한 매체는 일반적으로 메인 메모리, 보조 메모리, 이동식 스토리지, 하드 디스크, 플래시 메모리, 디스크 드라이브 메모리, CD-ROM 및 영구 메모리의 다른 형태를 포함한다. 본 발명의 다양한 방법을 수행하기 위한 실행가능한 컴퓨터 코드가 포함된 저장 장치를 설명하는데 사용될 수 있는 프로그램 저장 장치는 캐리어 웨이브나 신호와 같은 일시적인 주체를 커버하기 위한 것으로 해석될 수 없다는 것을 명심해야 한다. 프로그램 저장 장치와 컴퓨터로 판독 가능한 매체는 일반적으로 메인 메모리, 보조 메모리, 이동식 저장 디스크, 하드 디스크 드라이브 및 기타 유형의 저장 장치 또는 구성들을 나타내는데 사용되는 용어들이다.
본 발명의 몇몇 실시예가 상세히 설명되었지만, 본 발명은 본 발명의 사상 및 범위를 벗어나지 않는 많은 다른 형태들로 구현될 수 있다는 것을 이해해야 한다. 따라서, 실시예들은 한정적인 관점이 아닌 예시적인 관점에서 고려되어야 하며, 본 발명은 여기서 주어진 세부사항들에 한정되는 것이 아니라. 첨부된 청구항들의 범위 및 균등범위 내에서 변형될 수 있다.

Claims (20)

  1. 태스크들의 집합을 수신하는 단계;
    상기 태스크들을 각 태스크의 활용값이 증가하지 않는 순서로 정렬하는 단계;
    스케줄 가능성 중심의 알고리즘을 이용하여 상기 정렬된 태스크들을 분할하는 단계;
    상기 분할된 정렬된 태스크들을 각 태스크의 활용값이 감소하지 않는 순서로 재정렬하고, 부하 분산 중심의 알고리즘을 이용하여 상기 재정렬된 분할된 태스크들을 재분할하는 단계;
    상기 재분할 결과에 기초하여 상기 재분할된 태스크들을 적어도 하나 이상의 멀티코어 장치에 할당하는 단계;를 포함하는 멀티코어 장치에서 태스크를 할당하는 방법.
  2. 제 1 항에 있어서,
    상기 태스크의 활용값은,
    태스크의 주기로 나누어진 태스크의 최악의 실행시간인 멀티코어 장치에서 태스크를 할당하는 방법.
  3. 제 1 항에 있어서,
    상기 스케줄 가능성 중심의 알고리즘은,
    최초 적합 알고리즘인 멀티코어 장치에서 태스크를 할당하는 방법.
  4. 제 1 항에 있어서,
    상기 부하 분산 중심의 알고리즘은,
    최악 적합 알고리즘인 멀티코어 장치에서 태스크를 할당하는 방법.
  5. 제 1 항에 있어서,
    상기 재분할된 태스크들의 상기 할당 이후, 재분할된 태스크를 할당받은 적어도 하나 이상의 코어 각각에서, 대응하는 코어에 할당된 태스크들에 대하여 단일 프로세서 스케줄링 알고리즘을 수행하는 단계;를 더 포함하는 멀티코어 장치에서 태스크를 할당하는 방법.
  6. 제 1 항에 있어서,
    상기 재정렬 하는 단계는,
    상기 정렬에 따른 정렬된 태스크들의 역순으로 수행되는 멀티코어 장치에서 태스크를 할당하는 방법.
  7. 2 이상의 프로세서들;
    상기 2 이상의 프로세서들 각각에 대응하는 로컬 큐; 및
    복수의 태스크들을 각 태스크의 활용값이 증가하지 않는 순서로 정렬하도록 구성되는 태스크 스케줄러; 스케줄 가능성 중심의 알고리즘을 이용하여 상기 정렬된 태스크들을 분할하도록 구성되는 분할 모듈; 및 상기 분할된 정렬된 태스크들을 각 태스크의 활용값이 감소하지 않는 순서로 재정렬하고 부하 분산 중심의 알고리즘을 이용하여 상기 재정렬된 분할된 태스크들을 분할하도록 구성되는 재분할 모듈;을 포함하는 분할 모듈;을 포함하고,
    상기 분할 모듈은 상기 재분할 결과에 따라 재분할된 태스크들을 상기 로컬 큐들로 할당하도록 구성되는 장치.
  8. 제 7 항에 있어서,
    2 이상의 프로세서 각각에 대응하는 단일 프로세서 스케줄링 모듈;을 더 포함하는 장치.
  9. 제 8 항에 있어서,
    상기 단일 프로세서 스케줄링 모듈은,
    대응하는 로컬 큐에 할당된 태스크들을 스케줄 하도록 구성되는 장치.
  10. 제 7 항에 있어서,
    상기 태스크들은,
    근 실시간으로 할당되어야 하는 태스크인 장치.
  11. 태스크들의 집합을 수신하기 위한 수단들;
    상기 태스크들을 각 태스크의 활용값이 증가하지 않는 순서로 정렬하기 위한 수단들;
    스케줄 가능성 중심의 알고리즘을 이용하여 상기 정렬된 태스크들을 분할하기 위한 수단들;
    상기 분할된 정렬된 태스크들을 각 태스크의 활용값이 감소하지 않는 순서로 재정렬하고, 부하 분산 중심의 알고리즘을 이용하여 상기 재정렬된 분할된 태스크들을 분할하기 위한 수단들;
    상기 재분할 결과에 기초하여 상기 재분할된 태스크들을 하나 이상의 멀티코어 장치에 할당하기 위한 수단들;을 포함하는 멀티코어 장치에서 태스크들을 할당하기 위한 장치.
  12. 제 11 항에 있어서,
    상기 태스크의 활용값은,
    태스크의 주기로 나누어진 태스크의 최악의 실행 시간인 멀티코어 장치에서 태스크들을 할당하기 위한 장치.
  13. 제 11 항에 있어서,
    상기 스케줄 가능성 중심의 알고리즘은,
    최초 적합 알고리즘인 멀티코어 장치에서 태스크들을 할당하기 위한 멀티코어 장치에서 태스크들을 할당하기 위한 장치.
  14. 제 11 항에 있어서,
    부하 분산 중심 알고리즘은,
    최악 적합 알고리즘인 멀티코어 장치에서 태스크들을 할당하기 위한 멀티코어 장치에서 태스크들을 할당하기 위한 장치.
  15. 제 11 항에 있어서,
    상기 재분할된 태스크들의 할당 이후, 재분할된 태스크를 할당받은 하나 이상의 코어 각각에서 대응하는 코어에 할당된 태스크들에 대하여 단일 프로세서 스케줄링 알고리즘을 수행하기 위한 수단들;을 더 포함하는 멀티코어 장치에서 태스크들을 할당하기 위한 장치.
  16. 제 11 항에 있어서,
    상기 재정렬을 위한 수단은,
    상기 정렬에 따른 정렬된 태스크들의 역순으로 수행되는 수단인 멀티코어 장치에서 태스크들을 할당하기 위한 장치.
  17. 태스크들의 집합을 수신받는 단계;
    상기 태스크들을 각 태스크의 활용값이 증가하지 않는 순서로 정렬하는 단계;
    스케줄 가능성 중심의 알고리즘을 이용하여 상기 정렬된 태스크들을 분할하는 단계;
    상기 분할된 정렬된 태스크들을 각 태스크의 활용값이 감소하지 않는 순서로 재정렬하고, 부하 분산 중심의 알고리즘을 이용하여 상기 재정렬된 분할된 태스크들을 재분할하는 단계;
    재분할 결과에 기초하여 상기 재분할된 태스크들을 하나 이상의 멀티코어 장치에 할당하는 단계;를 포함하는 멀티코어 장치에서 태스크들을 할당하는 방법을 수행하기 위한 장치에 의해 실행 가능한 명령어들의 프로그램을 포함하는 기계에 의해 판독 가능한 비 일시적인 프로그램 저장 장치.
  18. 제 17 항에 있어서,
    상기 스케줄 가능성 중심 알고리즘은,
    최초 적합 알고리즘인 비 일시적인 프로그램 저장 장치.
  19. 제 17 항에 있어서,
    상기 부하 분산 중심알고리즘은,
    최악 적합 알고리즘인 비 일시적인 프로그램 저장 장치.
  20. 제 17 항에 있어서,
    상기 재분할된 태스크들의 할당 이후, 재분할된 태스크를 할당받은 적어도 하나 이상의 코어 각각에서 대응하는 코어에 할당된 태스크들에 대하여 단일 프로세서 스케줄링 알고리즘을 수행하는 단계;를 더 포함하는 비 일시적인 프로그램 저장 장치.
KR1020120135470A 2011-11-28 2012-11-27 멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링 KR20130059300A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161564073P 2011-11-28 2011-11-28
US61/564,073 2011-11-28
US13/410,219 2012-03-01
US13/410,219 US20130139176A1 (en) 2011-11-28 2012-03-01 Scheduling for real-time and quality of service support on multicore systems

Publications (1)

Publication Number Publication Date
KR20130059300A true KR20130059300A (ko) 2013-06-05

Family

ID=48468030

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120135470A KR20130059300A (ko) 2011-11-28 2012-11-27 멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링

Country Status (2)

Country Link
US (1) US20130139176A1 (ko)
KR (1) KR20130059300A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150043066A (ko) * 2013-10-14 2015-04-22 한국전자통신연구원 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938739B2 (en) * 2012-06-02 2015-01-20 Texas Instruments Incorporated Resource sharing aware task partitioning for multiprocessors
US9047129B2 (en) * 2012-07-23 2015-06-02 Adobe Systems Incorporated Systems and methods for load balancing of time-based tasks in a distributed computing system
US20150294251A1 (en) * 2014-04-11 2015-10-15 Nec Europe Ltd. Distributed task scheduling using multiple agent paradigms
CN104462987A (zh) * 2014-11-29 2015-03-25 中国航空工业集团公司第六三一研究所 一种大型飞机综合处理平台中的任务安全共享方法
WO2018104799A1 (en) * 2016-12-07 2018-06-14 Tata Consultancy Services Limited Systems and methods for scheduling tasks and managing computing resource allocation for closed loop control systems

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060037017A1 (en) * 2004-08-12 2006-02-16 International Business Machines Corporation System, apparatus and method of reducing adverse performance impact due to migration of processes from one CPU to another
US20060168254A1 (en) * 2004-11-01 2006-07-27 Norton Scott J Automatic policy selection
US7664936B2 (en) * 2005-02-04 2010-02-16 Mips Technologies, Inc. Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages
US20080134187A1 (en) * 2006-11-29 2008-06-05 Nec Laboratories America Hardware scheduled smp architectures
US8458720B2 (en) * 2007-08-17 2013-06-04 International Business Machines Corporation Methods and systems for assigning non-continual jobs to candidate processing nodes in a stream-oriented computer system
JP4795378B2 (ja) * 2008-04-01 2011-10-19 レノボ・シンガポール・プライベート・リミテッド コンピュータおよびブート方法
US8554918B1 (en) * 2011-06-08 2013-10-08 Emc Corporation Data migration with load balancing and optimization
US8988444B2 (en) * 2011-12-16 2015-03-24 Institute For Information Industry System and method for configuring graphics register data and recording medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150043066A (ko) * 2013-10-14 2015-04-22 한국전자통신연구원 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법
US9256471B2 (en) 2013-10-14 2016-02-09 Electronics And Telecommunications Research Institute Task scheduling method for priority-based real-time operating system in multicore environment

Also Published As

Publication number Publication date
US20130139176A1 (en) 2013-05-30

Similar Documents

Publication Publication Date Title
US9916183B2 (en) Scheduling mapreduce jobs in a cluster of dynamically available servers
US20140282572A1 (en) Task scheduling with precedence relationships in multicore systems
US8739171B2 (en) High-throughput-computing in a hybrid computing environment
Bastoni et al. Is semi-partitioned scheduling practical?
KR20130059300A (ko) 멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링
Boutaba et al. On cloud computational models and the heterogeneity challenge
KR101626378B1 (ko) 병렬도를 고려한 병렬 처리 장치 및 방법
KR101350755B1 (ko) 클라우드 컴퓨팅에서 다중 워크플로우를 위한 비용기반 스케줄링 방법 및 그 시스템
Fan et al. Harmonic semi-partitioned scheduling for fixed-priority real-time tasks on multi-core platform
US8875146B2 (en) Systems and methods for bounding processing times on multiple processing units
Huang et al. A workflow for runtime adaptive task allocation on heterogeneous MPSoCs
Tamaş-Selicean et al. Optimization of time-partitions for mixed-criticality real-time distributed embedded systems
Soner et al. Integer programming based heterogeneous cpu–gpu cluster schedulers for slurm resource manager
US9612867B2 (en) Apparatus and method for data partition and allocation in heterogeneous multi-processor environment
JP2006244479A (ja) 実行可能プログラムをスケジューリングするためのシステム及び方法
Liu et al. Supporting soft real-time parallel applications on multicore processors
Liu et al. Dynamically negotiating capacity between on-demand and batch clusters
Yu et al. Smguard: A flexible and fine-grained resource management framework for gpus
US8090903B2 (en) Fair and dynamic disk input/output bandwidth distribution
Im et al. Scheduling jobs with non-uniform demands on multiple servers without interruption
Wang et al. A smart semipartitioned real-time scheduling strategy for mixed-criticality systems in 6G-based edge computing
Gomony et al. A real-time multichannel memory controller and optimal mapping of memory clients to memory channels
Pujiyanta et al. Resource allocation model for grid computing environment
Kandhalu et al. pCOMPATS: period-compatible task allocation and splitting on multi-core processors
Doan et al. A novel task-to-processor assignment approach for optimal multiprocessor real-time scheduling

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid