KR20140113310A - 멀티코어 시스템에서의 우선순위 관계에 의한 태스크 스케쥴링 - Google Patents
멀티코어 시스템에서의 우선순위 관계에 의한 태스크 스케쥴링 Download PDFInfo
- Publication number
- KR20140113310A KR20140113310A KR20130166949A KR20130166949A KR20140113310A KR 20140113310 A KR20140113310 A KR 20140113310A KR 20130166949 A KR20130166949 A KR 20130166949A KR 20130166949 A KR20130166949 A KR 20130166949A KR 20140113310 A KR20140113310 A KR 20140113310A
- Authority
- KR
- South Korea
- Prior art keywords
- tasks
- task
- execution
- deadline
- scheduling
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000000638 solvent extraction Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 17
- 230000001174 ascending effect Effects 0.000 claims description 14
- 238000007617 processor scheduling algorithm Methods 0.000 claims 2
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000001419 dependent effect Effects 0.000 description 23
- 238000004590 computer program Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- NIXOWILDQLNWCW-UHFFFAOYSA-N acrylic acid group Chemical group C(C=C)(=O)O NIXOWILDQLNWCW-UHFFFAOYSA-N 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
태스크들을 할당하는 방법 및 장치가 개시된다. 태스크들을 할당하는 방법은 태스크들의 집합을 수신하는 단계, 태스크들의 실행 순서 관계에 기반하여 각 태스크에 대한 데드라인을 수정하는 단계, 태스크들에 대한 수정된 데드라인들에 기반하여 오름차순으로 상기 태스크들의 순서를 정하는 단계, 멀티코어 프로세싱 환경의 타입에 기반하여 비-선점 스케쥴링 및 선점 스케쥴링 중 적어도 하나를 사용하여 순서가 정해진 태스크들을 분할하는 단계 및 분할된 태스크들을 분할의 결과들에 기반하여 멀티코어 전자 디바이스의 하나 이상의 코어에 할당하는 단계를 포함한다.
Description
하나 이상의 실시예들은 일반적으로는 멀티코어 시스템에서의 태스크 스케쥴링에 관련되고, 특히, 우선순위 관계를 사용한 멀티코어 시스템에서의 태스크 스케쥴링에 관련된다.
멀티코어 프로세서들을 사용한 실시간(real-time) 시스템은 자동차 전자공학, 항공전자공학, 우주 시스템, 제어 센터, 의료 영상 및 가전 제품을 포함한 많은 다양한 응용 분야들에서 사용된다. 멀티코어 프로세서들의 규모가 계속해서 확장됨에 따라, 더 복잡하고 계산-집약적인 태스크들의 실시간 수행이 가능해졌다. 멀티코어 프로세서들을 충분히 활용하기 위해 병렬화가능한(parallelizable) 실시간 태스크들이 동시에 복수의 코어들을 활용할 수 있도록 어플리케이션들이 넓은 규모의 병렬화를 제공할 것이 기대된다.
실시예에서, 태스크들을 할당하는 방법이 제공된다.
실시 예는 태스크들의 집합을 수신하는 단계를 포함하는 방법을 포함할 수 있다.
실시예에서, 각 태스크에 대한 데드라인은 상기 태스크들의 실행 순서 관계에 기반하여 수정될 수 있다.
실시예에서, 상기 태스크들은 상기 태스크들에 대한 상기 수정된 데드라인들에 기반하여 오름차순으로 순서가 정해질 수 있다.
실시예에서, 상기 순서가 정해진 태스크들은 멀티코어 프로세싱 환경의 타입에 기반하여 비-선점 스케쥴링 및 선점 스케쥴링 중 적어도 하나를 사용하여 분할될 수 있다.
실시예에서, 상기 분할된 태스크들은 상기 분할의 결과들에 기반하여 멀티코어 전자 디바이스의 하나 이상의 코어들에 할당될 수 있다.
다른 실시예는 장치를 제공할 수 있다.
실시예에서, 상기 장치는 2개 이상의 프로세서들, 상기 2개 이상의 프로세서들에 각각 대응하는 지역 큐 및 분할 모듈을 포함할 수 있다.
실시예에서, 상기 분할 모듈은 태스크들의 집합의 각 태스크에 대한 데드라인을 상기 태스크들의 실행 순서 관계에 기반하여 수정할 수 있고, 상기 태스크들의 순서를 상기 태스크들에 대한 상기 수정된 데드라인들에 기반하여 오름차순으로 순서를 정할 수 있으며, 상기 순서가 정해진 태스크들을 프로세싱 환경의 타입에 기반하여 비-선점 스케쥴링 및 선점 스케쥴링 중 적어도 하나를 사용하여 분할할 수 있다.
실시 예에서, 스케쥴링 모듈은 상기 분할된 태스크들을 상기 분할의 결과들에 기반하여 상기 지역 큐들에 할당할 수 있다.
또 다른 실시예는, 컴퓨터에서 실행될 때, 태스크들의 집합을 수신하는 단계를 수행하는 명령어들을 수록한 컴퓨터-판독가능한 매체를 제공할 수 있다.
실시예에서, 각 태스크에 대한 데드라인은 상기 태스크들의 실행 순서 관계에 기반하여 수정될 수 있다.
실시예에서, 상기 태스크들은 상기 태스크들에 대한 상기 수정된 데드라인들에 기반하여 오름차순으로 순서가 정해질 수 있다.
실시 예에서, 상기 순서가 정해진 태스크들은 멀티코어 프로세싱 환경의 타입에 기반하여 비-선점 스케쥴링 및 선점 스케쥴링 중 하나를 사용하여 분할될 수 있다.
실시예에서, 상기 분할된 태스크들은 상기 분할의 결과들에 기반하여 멀티코어 전자 디바이스의 하나 이상의 코어들에 할당될 수 있다.
실시예들의 이러한 측면들, 다른 측면들 및 이점들은 하기의 상세한 설명으로부터 명백해질 것이다. 하기의 상세한 설명은 하기의 도면들과 결합하여 예시하는 방식으로 실시예들의 원리들을 보일 것이다.
상기의 실시예들의 본질 및 이점들에 대한 더 완전한 이해를 위하여, 또한 용법(use)의 선호되는 모드를 위하여, 하기의 상세한 설명에 대한 참조는 하기에 첨부된 도면들과의 결합에 의하여 이루어질 수 있다.
도 1은 실시예에 따른, 멀티코어 시스템에서의 우선순위 관계를 사용하는 태스크 스케쥴링에 대한 구성의 구조도를 도시한다.
도 2는 방향 비사이클 그래프(directed acrylic graph; DAG)의 일 예 및 예시적인 태스크들에 대한 정보를 도시한다.
도 3은 실시예에 따른 데드라인들과 결합된 첫 번째의 적합 방법에 대한 태스크의 순서화 및 우선순위 관계를 사용한 태스크 스케쥴링을 비교한 예를 도시한다.
도 4는 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지(edge)들에 대한 방법들의 성능에 대한 의존적인 태스크 분할(Dependent Task Partitioning; DTP) 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴가능도(schedulability) 그래프를 도시한다.
도 5는 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴가능도 그래프를 도시한다.
도 6은 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 시간 성능 그래프를 도시한다.
도 7은 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 시간 성능 그래프를 도시한다.
도 8은 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 에너지 성능 그래프를 도시한다.
도 9는 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 에너지 성능 그래프를 도시한다.
도 10은 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴링 런타임 그래프를 도시한다.
도 11은 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴링 런타임 그래프를 도시한다.
도 12는 실시예에 따른 다수의 엣지들/다수의 태스크들에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴가능도 성능 그래프를 도시한다.
도 13은 실시예에 따른 멀티코어 시스템에서의 우선순위 관계를 사용하는 태스크 스케쥴링에 대한 DTP 프로세스를 도시한다.
도 2는 방향 비사이클 그래프(directed acrylic graph; DAG)의 일 예 및 예시적인 태스크들에 대한 정보를 도시한다.
도 3은 실시예에 따른 데드라인들과 결합된 첫 번째의 적합 방법에 대한 태스크의 순서화 및 우선순위 관계를 사용한 태스크 스케쥴링을 비교한 예를 도시한다.
도 4는 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지(edge)들에 대한 방법들의 성능에 대한 의존적인 태스크 분할(Dependent Task Partitioning; DTP) 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴가능도(schedulability) 그래프를 도시한다.
도 5는 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴가능도 그래프를 도시한다.
도 6은 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 시간 성능 그래프를 도시한다.
도 7은 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 시간 성능 그래프를 도시한다.
도 8은 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 에너지 성능 그래프를 도시한다.
도 9는 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 에너지 성능 그래프를 도시한다.
도 10은 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴링 런타임 그래프를 도시한다.
도 11은 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴링 런타임 그래프를 도시한다.
도 12는 실시예에 따른 다수의 엣지들/다수의 태스크들에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴가능도 성능 그래프를 도시한다.
도 13은 실시예에 따른 멀티코어 시스템에서의 우선순위 관계를 사용하는 태스크 스케쥴링에 대한 DTP 프로세스를 도시한다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
하기의 설명은 실시예들의 일반적인 원리들을 분명하게 하기 위한 목적으로 만들어졌고, 청구되는 하기의 독창적인 개념들을 제한하는 것을 의미하지 않는다. 나아가, 서술된 특별한 특징들은 서술된 다른 특징들과의 결합에 의해 다양한 가능한 결합들 및 조합들로 사용될 수 있다. 달리 특별히 정의되지 않았다면, 모든 용어들은 하기의 실시예로부터 내포된 의미들뿐만 아니라 해당 기술분야에서 통상의 기술자들이 이해하는 의미들, 사전들 및/또는 논문들 등에서 정의된 의미들을 포함하여 가능한 가장 넓게 해석될 수 있다.
하나 이상의 실시예들을 따라서, 하기의 구성들, 처리 단계들 및/또는 데이터 구조들은 다양한 타입들의 운영 체제, 프로그래밍 언어들, 컴퓨팅 플랫폼들, 컴퓨터 프로그램들 및/또는 범용 기계들을 사용함으로써 구현될 수 있다. 덧붙여, 해당 기술분야의 통상의 기술자들은 하드웨어에 내장된 디바이스들, 필드 프로그래머블 게이트 어레이(Field Programmable Gate Arrays; FPGAs), 주문형 반도체(Application specific integrated circuits; ASICs) 또는 그 밖에 유사한 디바이스들과 같은 범용성이 적은 디바이스들 또한 실시예들에서 개시된 독창적인 개념들의 범위 및 특질로부터 벗어남이 없이 사용될 수 있다는 것을 인식할 것이다.
일 실시예에서, 스케쥴링은 다수/멀티코어 시스템들 상에서의 우선순위(precedence) 관계를 가진 태스크들(즉, 의존적인 태스크들)에 대한 실시간 및 큐오에스(Quality-of-Service; QoS) 요구사항들을 지원하도록 설계될 수 있다. 멀티코어 실시간 스케쥴링의 최첨단 솔루션들의 대부분은 스케쥴가능도에 중점을 둔다. 그러나, 코어의 개수가 증가함에 따라 부하 균형(load balancing)(즉, 병렬화를 활용하기 위한 실시간 태스크들의 코어들로의 효과적인 분배)이 과도한 공급 및 잠재적 낭비 없이 효과적으로 자원들을 사용할 수 있는 스케쥴링 솔루션의 필수적인 구성요소가 되어가고 있다. 더욱이, 종래의 방법들은 독립적인 태스크들(즉, 우선순위 제약들 없이 병렬적으로 실행될 수 있는 태스크들)을 위하여 설계되었다. 독립적인 태스크들을 스케쥴하는 것에 사용된 기술들은 의존적인 태스크들에 대하여는 효율적이지 않을 수 있다. 실시예는 좋은 스케쥴가능도(즉, 태스크들은 데드라인들을 어기지 않고 실행될 수 있다.)를 제공하고, 동시에, 효과적인 태스크 분할을 통한 성능 향상(즉, 시간 최소화)을 제공할 수 있다. 시간 최소화는 일반적으로 더 많은 슬랙(slack)의 할당을 유도할 수 있고, 최종적으로 동적인 전압 스케일링(Dynamic Voltage Scalintg; DVS)을 사용함으로써 에너지 요구량을 감소시킬 수 있기 때문에 일 실시예에서의 이차적인 효과는 에너지 감소를 포함할 수 있다. 일 실시예에서, 태스크들의 타이밍 제약들(timing constraints)을 태스크들의 우선순위 관계에 기반하여 방향 비사이클 그래프들(Directed Acyclic Graphs; DAGs)로 변형하고, 태스크들 간의 우선순위 제약들을 충족시키면서 좋은 스케쥴가능도 및 부하 균형을 이끄는 분할 메커니즘이 적용될 수 있다.
실시예에서, 방법은 멀티코어 전자 디바이스에서 태스크들을 할당할 수 있다. 실시예는 태스크들의 집합을 수신하는 단계를 포함할 수 있다. 실시예에서, 각 태스크에 대한 데드라인은 상기의 태스크들의 실행 순서 관계에 기반하여 수정될 수 있다. 실시예에서, 상기의 태스크들은 상기 태스크들에 대한 상기 수정된 데드라인들에 기반하여 오름차순으로 순서가 정해질 수 있다. 실시예에서, 상기의 순서가 정해진 태스크들은 멀티코어 프로세싱 환경의 타입에 기반하여 비-선점 스케쥴링 및 선점 스케쥴링 중 적어도 하나를 사용하여 분할될 수 있다. 실시예에서, 상기 분할된 태스크들은 상기 분할하는 단계의 결과들에 기반하여 상기 멀티코어 전자 디바이스의 하나 이상의 코어들에 할당될 수 있다.
하나 이상의 실시예들은 복잡한 실시간 어플리케이션들(예를 들어, 부분 순서화 및 데이터 흐름과 같은 태스크-간(inter-task) 관계들을 보여주는 어플리케이션들)을 지원할 수 있고, 병렬 프로그래밍 언어들을 위한 솔루션들(예를 들어, OpenMP®, Cilk™, X10)을 제공할 수 있다. 실시예는 멀티코어 시스템에서 좋은 스케쥴가능도 뿐만 아니라 효과적인 부하 균형을 달성할 수 있다. 실시예에서, 예시적인 결과들에 기반하면, 상기의 실시예들은 태스크 데드라인들을 어기지 않으며 활용도(utilization)가 약 92%에 이르는 실시간 어플리케이션들을 실행할 수 있고, 종래의 접근법(즉, 데드라인 오름차순에 결합된 첫 번째의 적합(First Fit combined with Increasing Deadline; FFID)에 기반한 태스크 순서화)에 비하여 태스크들의 실행을 위하여 필요한 에너지와 시간을 각각 약 74% 및 약 97%까지 더 감소시킬 수 있다. 실시예에서, 성능은 적정한 스케쥴링 런타임 오버헤드(최적화된 방법은 수용되지 못할 수도 있는 긴 런타임을 요구할 수 있음.)를 가지면서 스케쥴가능도, 에너지 및 시간 요구조건들 면에서 최적화된 솔루션에 비견될 수 있다. 덧붙여, 실시예는 코어-당 런 큐들을 사용하는 현존하는 운영체제들(OS)의 스케쥴러들(예를 들어, Linux® 2.6, Windows Server® 2003, Solaris™ 10 및 FreeBSD® 5.2)과 매끄럽게 통합될 수 있다. 실시예에서, DTP가 분산 시스템들 내에 효율적으로 적용되어 태스크들을 데드라인들 내에서 실행하면서, 태스크들이 분산 시스템들에 걸쳐 병렬화될 수 있다.
도 1은 실시예에 따른, 멀티코어 시스템에서 우선순위 관계들을 사용하는 태스크 스케쥴링에 대한 구성을 도시하는 다이어그램이다.
실시예에서, 태스크 집합(100)은 분할 모듈(102)로 보내질 수 있다. 실시예에서, 이러한 분할의 결과는 태스크들의 복수의 부분들로 나뉘어진 집합들(multiple portioned sets)(104a 내지 104c)이 될 수 있다. 실시예에서, 태스크들의 이러한 집합들(104a 내지 104c)의 각각은 대응하는 지역 큐(106a 내지 106c)로 보내질 수 있고, 지역 큐(106a 내지 106c)는 대응하는 코어들(108a 내지 108c)에 지정될 수 있다. 실시예에서, 각 코어(108a 내지 108c)는 상기의 대응하는 코어(108a 내지 108c)에 할당된 태스크들을 스케쥴하는, 코어 자신의 단일프로세서 스케쥴링 모듈(110a 내지 110c)을 가질 수 있다.
일반적으로, 분할은 시스템 런타임에 앞서 발생할 수 있고, 런타임에 개별적인 코어들은 자신의 개별적인 스케쥴러들을 적용할 수 있다.
실시예에서, 분할 모듈(102)은 태스크 시간 제약 변형, 태스크 순서화 및 태스크 분할을 수행할 수 있다. 이러한 분할 모듈(102)에 대한 전반적인 절차는 "의존적인 태스크 분할"(DTP)로 명명될 수 있다. 실시예들은 전자 디바이스에 채용될 수 있고, 전자 디바이스는 휴대전화, 오디오 및/또는 비디오 기능들을 가진 개인용 이메일 또는 메세징 디바이스, 포켓 크기의 개인용 컴퓨터들, 피디에이(Personal Digital Assistants; PDA)들, 데스크톱 컴퓨터들, 랩톱 컴퓨터들, 태블릿 컴퓨터들, 패드-타입 컴퓨팅 디바이스들, 미디어 플레이어 및 다른 적합한 디바이스를 포함할 수 있다.
실시예에서, 태스크 시간 제약 변형은 태스크들의 우선순위 관계들(즉, 실행 순서 관계들을 갖는 태스크들)에 기반하여 태스크들의 시간 제약들(즉, 태스크들의 데드라인들)을 변형할 수 있다. 실시예에서, 태스크들의 데드라인들은 우선순위 제약들에 기반하여 수정될 수 있다. 수정된 데드라인은 데드라인 제약들을 만족하기 위해서는 최소한 수정된 데드라인까지 태스크가 실행을 종료해야 한다는 것을 의미할 수 있다. 각 태스크의 데드라인은 DAG를 출구(즉, 후속자가 없는 태스크)로부터 순회함으로써 계산될 수 있다. 실시예에서, 태스크 t i 의 데드라인은 하기의 수학식 1과 같이 정의될 수 있다.
d i *는 태스크 t i 에 대하여 우선순위 제약들을 고려하여 수정된 데드라인일 수 있다. d i 는 태스크 t i 의 초기 데드라인일 수 있다. e k 는 태스크 t i 의 실행 시간일 수 있다. succ i 는 태스크 t i 의 직속의 후속자들의 집합일 수 있다. 여기서, 만약 태스크의 초기 데드라인이 명시되지 않았다면, 초기 데드라인은 태스크를 포함하는 어플리케이션의 명시된 데드라인과 동일하다고 가정될 수 있다.
도2는 실시예의 이점을 이용할 수 있는 예시적인 태스크들에 대한 DAG의 일례(210) 및 정보(220)를 도시한다.
본 예에 대하여, DAG는, 도2에서 도시된 것과 같이, 6개의 태스크들(즉, t1, t2, t3, t4, t5, t6, t7)로 구성되고, 태스크들은 2개의 코어들(즉, 도 3의 프로세서 1(P1) 및 프로세서 2(P2)) 상에서 실행될 수 있는 것으로 가정된다. 이 예에서, 각 태스크의 실행 시간은 각각 1, 1, 2, 2, 1, 2, 및 2일 수 있고, DAG의 데드라인은 6일 수 있다. 단순화를 위해, 이 예에서는 통신 시간은 없는 것으로 가정될 수 있다.
도 3은 FFID에 의한 태스크 순서화(310) 및 DTP(350)를 사용한 태스크 스케쥴링(350)의 예 사이의 예시적인 비교를 도시할 수 있다.
일 예에서, 도 3은 FFID(310)을 위하여 P1(315a) 및 P2(315b)에 할당된 태스크들(314)및 DTP(350)를 위하여 P1(365a) 및 P2(365b)에 할당된 태스크들(360)을 도시한다. 도시된 것과 같이, 태스크 t7은 FFID(310)에서 데드라인을 충족시키도록 스케쥴될 수 없을 것이다. 그러나, DTP를 사용함으로써, 태스크들 t1, t3, t5, 및 t7은 P1(365a)에 할당될 수 있고, 태스크들 t2, t4, 및 t6은 P2(365b)에 할당될 수 있다. DTP를 사용함으로써, 모든 태스크들(360)은 태스크들(360)의 데드라인 내에서 실행될 수 있다. 일 예에서, 태스크들 사이의 우선순위 제약들에 기반하여 DTP를 사용함으로써 각 태스크의 데드라인은 t1 , t2 , t3 , t4 , t5 , t6 및 t7에 대하여 각각 2, 2, 4, 4, 4, 6 및 6으로 수정될 수 있다.
실시예에서, 태스크 순서화에 대하여, 도 1의 분할 모듈(102)은 태스크들의 데드라인들의 오름차순으로 태스크들을 정렬할 수 있다. 실시예에서, 만약 태스크들이 동일한 데드라인을 갖는다면, 이러한 태스크들은 치명적인(critical) 태스크를 먼저 고려하여 실행 시간들의 내림차순으로 정렬될 수 있다. 실시예에서, 일단 태스크들이 태스크들의 수정된 데드라인들에 의하여 정렬되면, 태스크들은 우선순위 제약들을 만족할 수 있다. 이러한 태스크 순서화 목록은 주어진 DAG들의 태스크들 사이의 우선순위 제약들을 보존할 수 있다. 도2 및 도3의 예에 대하여, 태스크들(360)은 하기와 같이 정렬될 수 있다.
t1
→
t2
→
t3
→
t4
→
t5
→
t6
→
t7
여기서 t i → t j 는 할당에 있어서 t i 가 t j 보다 높은 우선순위를 가진다는 것을 의미할 수 있다.
실시예에서, 분할 모듈은 태스크 분할 프로세스를 수행할 수 있고, 태스크 분할 프로세스는 스케쥴링이 선점 또는 비-선점을 요구하는 지의 여부에 따라 상이하게 적용될 수 있다. 실시예에서, 선점이 허용되지 않거나 요구되지 않는 환경에 대하여, 각 태스크는 데드라인 제약들을 충족시키면서 태스크가 실행을 시작할 수 있는 가장 조기의(earliest) 코어/프로세서에 할당될 수 있다. 실시예에서, 태스크들의 정렬된 순서(즉, 데드라인의 오름차순으로의 순서화)에서, 각 태스크는 데드라인 제약들을 충족시키면서 실행을 시작할 수 있는(즉, 가장 조기의 시작 시각을 우선으로) 가장 조기의 코어에 할당될 수 있다. 실시예에서, 프로세서 상의 태스크의 가장 조기의 시작 시각은, 할당 동안의 부분적 스케쥴이 주어졌을 때 유휴 슬롯(들) 및 우선순위 제약(들)을 고려함으로써 계산될 수 있다. 실시예에서, 코어/프로세서 상의 태스크의 준비 시각(ready time)은 상기의 태스크에 의해 필요시되는 모든 데이터가 프로세서에 도착하였고(즉, 상기 태스크의 모든 선행자들이 실행을 마치고, 상기의 선행자들로부터의 모든 데이터들이 상기의 프로세서에 도착한 시각), 상기 태스크가 릴리즈(release)된 시각일 수 있다. 실시예에서, 프로세서 p j 상의 태스크 t i 의 준비 시각 rt(t i ,p j )는 하기의 수학식 2와 같이 정의될 수 있다.
r i 는 태스크 t i 에 대한 릴리즈 시각(즉, 시작 가능 시각)일 수 있다. pred i 는 태스크 t i 의 직속의 선행자들의 집합일 수 있다. f k 는 태스크 t i 의 종료 시각일 수 있다. comm ki 는 태스크 t k 및 t i 간의 통신 시간일 수 있다. 단순화를 위해, 2개의 태스크들이 동일한 프로세서에 할당된 때에는 통신 시간이 존재하지 않을 수 있다.
실시예에서, 태스크들을 코어들/프로세서들에 할당할 때, 유휴 시간 슬롯들(즉, 동일한 프로세서에 연속하여 스케쥴된 2개의 태스크들의 시작 시각 및 종료 시각 사이의 시간 슬롯들)이 고려될 수 있다. 일 실시예에서, 프로세서 태스크의 가장 조기의 시작 시각은 상기의 태스크의 준비 시각을 충족시키면서 상기의 태스크가 실행될 수 있는 가장 조기의 유휴 시간 슬롯일 수 있다. 실시예에서, 적합한 시간 슬롯의 검색은 태스크의 준비 시각에 시작될 수 있고, 태스크의 계산 비용을 수용할 수 있는 첫 번째 유휴 시간 슬롯을 찾을 때까지 계속될 수 있다. 코어들/프로세서들 상의 태스크에 대한 가장 조기의 시작 시각에 기반하여, 태스크는 가장 낮은 조기의 시작 시간 값을 갖는 코어에 할당될 수 있다. 이러한 분할 프로세스 동안에, 분할 모듈(102)은 모든 데드라인 제약들을 충족되는지를 체크하기 위하여 적용될 수 있는 스케쥴가능도 테스트를 수행할 수 있다.
실시예에서, 태스크들의 정렬된 순서(즉, 데드라인의 오름차순으로의 순서화)에서 선점이 허용되거나 요구되는 환경에 대하여, 각 태스크는 분할 모듈(102)에 의해 데드라인 제약들을 충족시키면서 실행을 종료할 수 있는 가장 조기의 코어에 할당될 수 있다(즉, 가장 조기의 종료 시간 우선). 일 실시예에서, 선점이 허용될 때, 태스크는 상기의 태스크의 계산 비용을 수용하는 유휴 시간의 필요 없이 상기의 태스크의 준비 시각 이후의 유휴 시간에 시작할 수 있기 때문에 가장 조기의 시작 및 종료 시각은 상이하게 계산될 수 있다. 따라서, 프로세서 상의 태스크의 가장 조기의 시작 시각은 상기의 태스크의 상기 준비 시각을 충족시키면서 상기의 태스크가 실행될 수 있는 가장 조기의 유휴 시간일 수 있다. 실시예에서, 가장 조기의 종료 시간은 가장 조기의 시작 시간으로부터 태스크가 실행을 종료할 때까지의 유휴 시간 슬롯들에 기반하여 계산될 수 있다.
실시예에서, 하기의 코드는 DTP에 대한 의사 코드를 나타낼 수 있다.
FUNCTION DTP(T, P)
/* 태스크 시간 제약 변형 */
태스크들의 데드라인들을 출구 태스크에서부터 그래프를 순회하여 수정함.
/* 태스크 순서화 */
태스크 목록 T의 태스크들을 태스크들의 수정된 데드라인들의 오름차순으로 정렬함.
브레이크 규칙(Break rule): 태스크들을 태스크들의 실행 시간들의 내림차순으로 정렬함.
/* 태스크 분할 */
for 각 태스크, t i , i ← 1 to n, t i ∈T do
if 선점이 허용됨 then
태스크 t i 에 대하여 가장 조기의 시작 시간을 갖는 프로세서 p j (p j ∈P )를 찾는다
else
태스크 t i 에 대하여 가장 조기의 종료 시간을 갖는 프로세서 p j (p j ∈P )를 찾는다
end
if
if 상기 태스크 t i 가 프로세서 p j 에 스케쥴가능함 then
태스크 t i 를 프로세서 p j 에 할당한다
else
return
partitioning
_
failed
end
if
end
for
return task to processor assignment
end
FUNCTION
도4 내지 9에서 도시된 예시적인 그래프들에서, 병렬화도는 태스크들의 데드라인들의 설정을 위한 요소일 수 있다. 예를 들면, "1 ≤ 병렬화도 ≤ 코어들의 개수"일 때, "데드라인 = 태스크들의 실행 시간의 합 / 병렬화도"일 수 있다. 병렬화도가 1일 때에는, 태스크들은 오직 하나의 코어에서 순차적으로 실행될 수 있지만, 병렬화도가 증가할수록 더 병렬화된 실행이 요구될 수 있다.
도4는 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지(edge)들에 대한 방법들의 성능에 대한 의존적인 태스크 분할(Dependent Task Partitioning; DTP) 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴가능도(schedulability) 그래프(400)를 도시한다.
일 예에서, 실시예에 따라, DTP는 스케쥴가능도 면에서 FFID와 비교될 수 있다. 그래프(400)는 48개의 코어들 상의 3000개의 엣지들에 의한 1000개의 태스크들에 대한 결과들을 병렬화도(parallelism)의 면(degree)에서 보여줄 수 있다.
도5는 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴가능도 그래프(500)를 도시한다.
그래프(500)는 48개의 코어들 상의 7000개의 엣지들에 의한 1000개의 태스크들에 대한 결과들을 병렬화도의 면에서 보여줄 수 있다. 도4 및 5에 도시된 것과 같이 예시적인 실험적 결과들에 기반하여, DTP를 사용한 실시예는 스케쥴가능도를 FFID와 비교하여 약 22내지 63%까지 향상시킬 수 있다.
도 6은 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 시간 성능 그래프(600)를 도시한다.
예에서, 실시예에 따라, DTP는 종료 시각의 면에서 FFID와 비교될 수 있다. 그래프(600)는 48개의 코어들 상의 3000개의 엣지들에 의한 1000개의 태스크들에 대한 결과들을 병렬화도의 면에서 도시할 수 있다.
도 7은 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 시간 성능 그래프(700)를 도시한다.
도 6 및 7에서 도시된 것과 같이 예시적인 실험적 결과들에 기반하여, DTP를 사용한 실시예는 종료 시각을 FFID에 비하여 약 97%까지 향상시킬 수 있다.
도 8은 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 에너지 성능 그래프(800)를 도시한다.
예에서, 실시예에 따라, DTP는 종료 시각의 면에서 FFID와 비교될 수 있다. 그래프(800)는 48개의 코어들 상의 3000개의 엣지들에 의한 1000개의 태스크들에 대한 결과들을 병렬화도의 면에서 도시할 수 있다.
도 9는 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 에너지 성능 그래프(900)를 도시한다.
그래프(900)는 48개의 코어들 상의 7000개의 엣지들에 의한 1000개의 태스크들에 대한 결과들을 병렬화도의 면에서 보여줄 수 있다. 도8 및 9에 나타난 바와 같이 예로 든 실험적 결과들에 기반하여, DTP를 사용한 실시예는 FFID에 비하여 에너지 성능을 약 74%까지 향상시킬 수 있다.
도 10은 실시예에 따른 1000 개의 태스크들 및 3000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴링 런타임 그래프(1000)를 도시한다.
예에서, 실시예에 따라서, DTP는 종료 시각의 면에서 FFID와 비교될 수 있다. 그래프(1000)는 48개의 코어들 상의 3000개의 엣지들에 의한 1000개의 태스크들에 대한 결과들을 병렬화도의 면에서 도시할 수 있다.
도 11은 실시예에 따른 1000 개의 태스크들 및 7000 개의 엣지들에 대한 방법들의 성능에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴링 런타임 그래프(1100)를 도시한다.
그래프(1100)는 48개의 코어들 상의 7000개의 엣지들에 의한 1000개의 태스크들에 대한 결과들을 병렬화도의 면에서 보여줄 수 있다. 도10 및 11에서 도시된 것과 같이 예시적인 실험적 결과들에 기반하여, DTP를 사용한 실시예는 FFID에 비하여 스케쥴링 런타임 성능을 향상시킬 수 있다.
도 12는 실시예에 따른 다수의 엣지들/다수의 태스크들에 대한 의존적인 태스크 분할 프로세서를 사용하는 향상들을 나타내는 예시적인 스케쥴가능도 성능 그래프(1200)를 도시한다.
실시예에서, 그래프(1200)는 스케쥴가능도 성능을 엣지들의 개수 및 태스크들의 개수의 비율의(태스크들의 병렬화도를 나타냄 - 더 큰 비율은 태스크들 사이의 더 높은 우선순위 제약들을 표시함.) 측면에서 도시할 수 있다. 실시예에 따른 DTP의 사용은 일정한 스케쥴가능도 성능을 제공할 수 있다. 반면, FFID의 스케쥴가능도 성능은 비율이 더 증가할수록 더 감소할 수 있다.
도 13은 실시예에 따른 멀티코어 시스템에서의 우선순위 관계를 사용하는 태스크 스케쥴링에 대한 DTP 프로세스(1300)를 도시한다.
일 실시예에서, 프로세스(1300)는 (예를 들어, 어플리케이션 및 쓰레드(thread) 등으로부터) 태스크들의 집합이 수신되는 블록(1310)부터 시작할 수 있다. 일 실시예에서, 블록(1320) 내에서 각 태스크에 대한 데드라인은 (예를 들어, 분할 모듈(102)에 의해) 태스크들의 실행 순서 관계에 기반하여 수정될 수 있다. 일 실시예에서, 블록(1330) 내에서 태스크들은 상기의 태스크들에 대한 수정된 데드라인들에 기반하여 오름차순으로 순서가 정해질 수 있다(예를 들어, 정렬될 수 있다). 일 실시예에서, 블록(1340) 내에서 순서가 정해진 태스크들은 멀티코어 프로세싱 환경의 타입(예를 들어, 선점 스케쥴링이 허용되거나 요구되는 환경 타입 또는 선점 스케쥴링이 허용되지 않거나 요구되지 않는 환경 타입)에 따라 비-선점 스케쥴링 또는 선점 스케쥴링을 사용하여 분할될 수 있다. 일 실시예에서, 블록(1350)내 에서 분할된 태스크들은 분할의 결과들에 기반하여 멀티코어 전자 디바이스의 하나 이상의 코어들에 할당될 수 있다.
일 실시예는 태스크들을 (예를 들면, 태스크 DAG에 의해 정의된대로의) 우선순위 관계들을 가진 채 지원할 수 있고, 예를 들어 세이프티/미션-크리티컬과 같은 경성(hardware) 실시간 어플리케이션들뿐만 아니라 멀티미디어 스트림 프로세싱과 같은 연성(software) 실시간, QoS-인식(QoS-aware) 어플리케이션들에도 유용할 수 있다. 일 실시예는 멀티-코어/다수의-코어 시스템에서 좋은 스케쥴가능도 및 좋은 부하 균형을 지원할 수 있고 자원 비효율성을 감소시킬 수 있으며, 멀티코어 시스템에서의 처리량(throughput)을 향상시킬 수 있다. 일 실시예는 타이트한 데드라인 제약들 하에서도 많은 실시간 어플리케이션들을 스케쥴할 수 있고, 더 나은 에너지 최소화를 이끌어낼 수 있다. 하나 이상의 실시예들은 스케쥴링 환경에 따라 선점 및 비-선점 스케쥴링을 지원할 수 있다.
해당 기술분야의 통상의 기술자들에게 알려진 것과 같이, 상술된 예시적인 아키텍처(architecture)들은, 상기의 아키텍처들에 따라, 프로세서에 의한 실행을 위한 프로그램 명령어들, 소프트웨어 모듈들, 마이크로코드, 컴퓨터 판독가능한 미디어 상의 컴퓨터 프로그램, 아날로그/논리 회로들 제품, 주문형 반도체들, 펌웨어, 소비자 가전 디바이스들, AV 디바이스들, 무선/유선 송신기들, 무선/유선 수신기들, 네트웍스 및 멀티-미디어 디바이스들 등과 같은 많은 방식으로 구현될 수 있다. 나아가, 상기의 아키텍처의 실시예들은 전적으로 하드웨어인 실시예, 전적으로 소프트웨어인 실시예 또는 하드웨어 및 소프트웨어 요소를 모두 포함한 실시예의 형태를 취할 수 있다.
하나 이상의 실시예들에 따라 방법들, 장치(시스템들) 및 컴퓨터 프로그램 제품들의 흐름도 도면들 및/또는 블록 다이어그램들에 대한 참조와 함께 실시예들이 설명되었다. 도면들/다이어그램들의 각 블록, 또는 조합들은 컴퓨터 프로그램 명령어들로 구현될 수 있다. 컴퓨터 프로그램 명령어들은, 프로세서에 제공되었을 때 기계(machine)를 생성하고, 상기의 명령어들은, 프로세서에 의해 실행되어, 흐름도 및/또는 블록 다이어그램 내에서 명세된 기능들/연산들의 구현을 위한 수단들을 생성할 수 있다. 흐름도 및/또는 블록 다이어그램들에서 각 블록은 (상기의 실시예들의) 실시예들을 구현하는 하드웨어 및/또는 소프트웨어 모듈 또는 로직을 나타낼 수 있다. 대안적인 구현들에서, 상기의 블록들에서 언급된 기능들은 도면들에서 언급된 순서에서 벗어나서(예를 들면, 동시 등) 일어날 수 있다.
"컴퓨터 프로그램 기록매체", "컴퓨터 사용가능한 기록매체", "컴퓨터 판독가능한 기록매체", 및 "컴퓨터 프로그램 제품"의 용어들은 일반적으로 주 메모리, 부 메모리, 제거가능한 저장 드라이브 및 하드 디스크 드라이브에 설치된 하드 디스크 등의 기록매체를 가리키는데 사용될 수 있다. 이러한 컴퓨터 프로그램 제품들은 소프트웨어를 컴퓨터 시스템에 제공하기 위한 수단들일 수 있다. 컴퓨터 판독가능한 기록매체는 컴퓨터 시스템이 데이터, 명령어들, 메시지들(또는, 메시지 패킷들) 및 다른 컴퓨터 판독가능한 정보를 상기 컴퓨터 판독가능한 기록매체로부터 독출하는 것을 가능하게 할 수 있다. 컴퓨터 판독가능한 기록매체는, 예를 들면, 플로피 디스크, 롬, 플래시 메모리, 디스크 드라이브 메모리, CD-ROM, 그리고 다른 영구적인 저장소와 같은 비-휘발성 메모리를 포함할 수 있다. 그것은, 예를 들면, 데이터 및 컴퓨터 명령어들과 같은 컴퓨터 시스템들 간의 정보의 운송에 유용할 수 있다. 컴퓨터 프로그램 명령어들은 컴퓨터 판독가능한 기록매체에 저장될 수 있고, 컴퓨터, 다른 프로그램 가능한 데이터 프로세싱 장치 또는 다른 디바이스들이 특정한 방식으로 기능하도록 지시할 수 있다. 컴퓨터 판독가능한 기록매체에 저장된 명령어들은 흐름도 및/또는 블록 다이어그램 블록(또는, 블록들)에서 명시된 기능/행동을 구현하는 명령어들을 포함한 대량제조된 물품을 생산할 수 있다.
블록 다이어그램 및/또는 흐름도들을 나타내는 컴퓨터 프로그램 명령어들은 컴퓨터, 프로그램 가능한 데이터 프로세싱 장치 또는 프로세싱 디바이스들 상에 로드되어 일련의 연산들이 수행되도록 할 수 있고, 컴퓨터에서 구현된 프로세스를 생산할 수 있다. 컴퓨터 프로그램들(즉, 컴퓨터 컨트롤 로직)은 주 메모리 및/또는 부 메모리에 저장될 수 있다. 또한, 컴퓨터 프로그램들은 통신 인터페이스를 통해 수신될 수 있다. 그러한 컴퓨터 프로그램들은 실행되었을 때 컴퓨터 시스템이 실시예들의 특징들을 여기에서 논의된 것과 같이 수행 가능하게 할 수 있다. 특히, 상기 컴퓨터 프로그램들은, 실행되었을 때, 상기 프로세서 및/또는 멀티코어 프로세서가 상기 컴퓨터 시스템의 상기 특징들을 수행하게 할 수 있다. 그러한 컴퓨터 프로그램들은 컴퓨터 시스템의 컨트롤러들을 나타낼 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하고 컴퓨터 시스템의 실행을 위한 명령어들을 저장하고, 하나 이상의 실시예들의 방법을 수행하기 위한 유형의 저장 매체를 포함할 수 있다.
상기 실시예들은 특정한 버전들에 대한 참조와 함께 서술되었다; 그러나, 다른 버전들도 가능하다. 따라서, 하기에 첨부된 청구항들의 특질 및 범위는 여기에 기재된 선호되는 버전들에 대한 설명에 의해 제한되어서는 안 된다.
Claims (26)
- 태스크들을 할당하는 방법에 있어서,
태스크들의 집합을 수신하는 단계;
상기 태스크들의 실행 순서 관계에 기반하여 각 태스크에 대한 데드라인을 수정하는 단계;
상기 태스크들에 대한 상기 수정된 데드라인들에 기반하여 오름차순으로 상기 태스크들의 순서를 정하는 단계;
멀티코어 프로세싱 환경의 타입에 기반하여 비-선점 스케쥴링 및 선점 스케쥴링 중 적어도 하나를 사용하여 상기 순서가 정해진 태스크들을 분할하는 단계; 및
상기 분할의 결과에 기반하여 상기 분할된 태스크들을 멀티코어 전자 디바이스의 하나 이상의 코어들에 할당하는 단계
를 포함하는 태스크들을 할당하는 방법. - 제1항에 있어서,
상기 태스크들에 대한 상기 수정된 데드라인들에 기반하여 오름차순으로 상기 태스크들의 순서를 정하는 단계는
동일한 데드라인을 갖는 2 개 이상의 태스크들의 순서를 실행 시간의 내림차순으로 결정하는 단계
를 더 포함하는 태스크들을 할당하는 방법. - 제1항에 있어서,
상기 멀티코어 프로세싱 환경의 타입은
선점을 허용하거나 요구하는 멀티코어 환경 및 선점이 요구되지 않거나 허용되지 않는 멀티코어 환경 중 적어도 하나를 포함하는 태스크들을 할당하는 방법. - 제3항에 있어서,
상기 비-선점 스케쥴링은 태스크에 대해 가용한 가장 조기의 시작 시각을 가진 코어에 각 태스크를 할당하는 것을 포함하고,
태스크는 데드라인 제약을 충족시키면서 실행을 시작하는, 태스크들을 할당하는 방법. - 제4항에 있어서,
코어 상의 태스크에 대한 상기 가장 조기의 시작 시각은 할당 동안의 부분적 스케쥴이 주어졌을 때 유휴 슬롯 및 실행 순서 관계 제약을 고려하여 계산되는
태스크들을 할당하는 방법. - 제3항에 있어서,
상기 선점 스케쥴링은 태스크에 대해 가용한 가장 조기의 시작 시각을 가진 코어에 각 태스크를 할당하는 것을 포함하고,
태스크는 데드라인 제약을 충족시키면서 실행을 종료하는 태스크들을 할당하는 방법. - 제6항에 있어서,
코어 상의 태스크에 대한 상기 가장 조기의 시작 시각은
할당 동안의 부분적 스케쥴이 주어졌을 때 유휴 슬롯 및 실행 순서 관계 제약을 고려하여 계산되는
태스크들을 할당하는 방법. - 제1항에 있어서,
상기 분할된 태스크들의 상기 할당 후에 분할된 태스크가 할당된 상기 하나 이상의 코어들의 각 코어에서 상기 각 코어에 할당된 태스크들 상에서 단일프로세서 스케쥴링 알고리즘을 수행하는 단계
를 더 포함하는 태스크들을 할당하는 방법. - 2 개 이상의 프로세서들;
상기 2 개 이상의 프로세서들의 각각에 대응하는 지역 큐;
태스크들의 실행 시간 순서 관계에 기반하여 상기 태스크들의 집합의 각 태스크에 대한 데드라인을 수정하고, 상기 태스크들에 대한 상기 수정된 데드라인들에 기반하여 오름차순으로 상기 태스크들의 순서를 정하고, 프로세싱 환경의 타입에 기반하여 비-선점 스케쥴링 및 선점 스케쥴링 중 적어도 하나를 사용하여 상기 순서가 정해진 태스크들을 분할하는 분할 모듈; 및
상기 분할의 결과들에 기반하여 상기 분할된 태스크들을 상기 지역 큐에 할당하는 스케쥴링 모듈
을 포함하는 장치. - 제9항에 있어서,
상기 2개 이상의 프로세서들의 각각에 대응하는 단일프로세서 스케쥴링 모듈
을 더 포함하는 장치. - 제10항에 있어서,
상기 단일프로세서 스케쥴링 모듈은 대응하는 지역 큐에 할당된 태스크들을 스케쥴하는 장치. - 제11항에 있어서,
상기 태스크들은 근 실시간 내의 할당을 요구하는 장치. - 제9항에 있어서,
상기 분할 모듈은 상기 수정된 데드라인들에 기반하여 오름차순으로 상기 태스크들의 순서를 정하는 경우에 있어서 동일한 데드라인을 갖는 2개 이상의 태스크들의 순서를 실행 시간의 내림차순으로 결정하는 장치. - 제13항에 있어서,
상기 프로세싱 환경의 타입은 선점을 허용하거나 요구하는 프로세싱 환경 및 선점이 요구되지 않거나 허용되지 않는 프로세싱 환경 중 적어도 하나를 포함하는 장치. - 제14항에 있어서,
상기 비-선점 스케쥴링은 상기 분할 모듈이 태스크에 대해 가용한 가장 조기의 시작 시각을 가진 코어에 각 태스크를 할당하는 것을 포함하고,
태스크는 데드라인 제약을 충족시키면서 실행을 시작하는 장치 - 제15항에 있어서,
프로세서 상의 태스크에 대한 상기 가장 조기의 시작 시각은 할당 동안의 부분적 스케쥴이 주어졌을 때 유휴 슬롯 및 실행 순서 관계 제약을 고려하여 계산되는 장치. - 제14항에 있어서,
상기 선점 스케쥴링은 분할 모듈이 태스크에 대해 가용한 가장 조기의 시작 시각을 가진 코어에 각 태스크를 할당하는 것을 포함하고,
태스크는 데드라인 제약을 충족시키면서 실행을 종료하는 장치. - 제17항에 있어서,
프로세서 상의 태스크에 대한 상기 가장 조기의 시작 시각은 할당 동안의 부분적 스케쥴이 주어졌을 때 유휴 슬롯 및 실행 순서 관계 제약을 고려하여 계산되는 장치. - 컴퓨터에서 실행될 때,
태스크들의 집합을 수신하는 단계;
상기 태스크들의 실행 순서 관계에 기반하여 각 태스크에 대한 데드라인을 수정하는 단계;
상기 태스크들에 대한 수정된 데드라인에 기반하여 오름차순으로 상기 태스크들의 순서를 정하는 단계;
멀티코어 프로세싱 환경의 타입에 기반하여 비-선점 스케쥴링 및 선점 스케쥴링 중 적어도 하나를 사용하여 상기 순서가 정해진 태스크들을 분할하는 단계; 및
상기 분할의 결과에 기반하여 멀티코어 전자 디바이스의 하나 이상의 코어들에 상기 분할된 태스크들을 할당하는 단계
를 수행하는 명령어들을 수록한 컴퓨터-판독가능한 매체. - 제19항에 있어서,
각 태스크에 대한 상기 수정된 데드라인에 기반하여 오름차순으로 상기 태스크들의 순서를 정하는 단계는
동일한 데드라인을 갖는 두 개 이상의 태스크들의 순서를 실행 시간의 내림차순으로 결정하는 단계
를 더 포함하는 컴퓨터-판독가능한 매체. - 제20항에 있어서,
멀티코어 환경의 상기 타입은
선점을 허용하거나 요구하는 멀티코어 환경 및 선점이 요구되지 않거나 허용되지 않는 멀티코어 환경 중 적어도 하나를 포함하는 컴퓨터-판독가능한 매체. - 제21항에 있어서,
상기 비-선점 스케쥴링은 태스크에 대해 가용한 가장 조기의 시작 시각을 가진 코어에 각 태스크를 할당하는 것을 포함하고,
상기 태스크는 데드라인 제약을 충족시키면서 실행을 시작하는 컴퓨터-판독가능한 매체. - 제22항에 있어서,
코어 상의 태스크에 대한 상기 가장 조기의 시작 시각은
할당 동안의 부분적 스케쥴이 주어졌을 때 유휴 슬롯 및 실행 순서 관계 제약을 고려하여 계산되는 컴퓨터-판독가능한 매체. - 제21항에 있어서,
상기 선점 스케쥴링은 태스크에 대해 가용한 가장 조기의 시작 시각을 가진 코어에 각 태스크를 할당하는 것을 포함하고,
태스크는 데드라인 제약을 충족시키면서 실행을 종료하는 컴퓨터-판독가능한 매체. - 제24항에 있어서,
코어 상의 태스크에 대한 상기 가장 조기의 시작 시각은
할당 동안의 부분적 스케쥴이 주어졌을 때 유휴 슬롯 및 실행 순서 관계 제약을 고려하여 계산되는 컴퓨터-판독가능한 매체. - 제19항에 있어서,
상기 분할된 태스크들의 상기 할당 후에 분할된 태스크가 할당된 상기 하나 이상의 코어들의 각 코어에서 상기 각 코어에 할당된 태스크들 상에서 단일프로세서 스케쥴링 알고리즘을 수행하는 단계
를 더 포함하는 컴퓨터-판독가능한 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/830,576 | 2013-03-14 | ||
US13/830,576 US20140282572A1 (en) | 2013-03-14 | 2013-03-14 | Task scheduling with precedence relationships in multicore systems |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140113310A true KR20140113310A (ko) | 2014-09-24 |
Family
ID=51534767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20130166949A KR20140113310A (ko) | 2013-03-14 | 2013-12-30 | 멀티코어 시스템에서의 우선순위 관계에 의한 태스크 스케쥴링 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140282572A1 (ko) |
KR (1) | KR20140113310A (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101639947B1 (ko) * | 2015-04-14 | 2016-07-15 | 성균관대학교산학협력단 | 하둡 선점 데드라인 제약 스케줄링 방법 및 그 방법을 수행하는 컴퓨터프로그램과, 그 프로그램이 기록된 매체 |
KR20210022426A (ko) * | 2019-08-20 | 2021-03-03 | 성균관대학교산학협력단 | 태스크의 러너블 그룹 단위 분할을 통한 선점 최소화 방법 및 이를 위한 장치 |
KR20210106005A (ko) * | 2019-02-26 | 2021-08-27 | 미쓰비시덴키 가부시키가이샤 | 정보 처리 장치, 정보 처리 방법 및 기록 매체에 저장된 정보 처리 프로그램 |
US11822967B2 (en) | 2019-08-20 | 2023-11-21 | Research & Business Foundation Sungkyunkwan University | Task distribution method for minimizing preemption between tasks and apparatus for performing the same |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9335981B2 (en) * | 2013-10-18 | 2016-05-10 | Nec Corporation | Source-to-source transformations for graph processing on many-core platforms |
US9576072B2 (en) * | 2014-02-13 | 2017-02-21 | Sap Se | Database calculation using parallel-computation in a directed acyclic graph |
CN105260237B (zh) * | 2015-09-29 | 2018-08-31 | 中南大学 | 异构多核平台的任务调度***及其调度方法 |
GB2545435B (en) * | 2015-12-15 | 2019-10-30 | Advanced Risc Mach Ltd | Data processing systems |
CA3009817A1 (en) * | 2015-12-29 | 2017-07-06 | Tao Tao | Systems and methods for caching task execution |
US10706065B2 (en) * | 2016-04-05 | 2020-07-07 | Sap Se | Optimizing transformation of data |
US10289448B2 (en) * | 2016-09-06 | 2019-05-14 | At&T Intellectual Property I, L.P. | Background traffic management |
US10152349B1 (en) * | 2016-09-27 | 2018-12-11 | Juniper Networks, Inc. | Kernel scheduling based on precedence constraints and/or artificial intelligence techniques |
US10685295B1 (en) * | 2016-12-29 | 2020-06-16 | X Development Llc | Allocating resources for a machine learning model |
US11200279B2 (en) | 2017-04-17 | 2021-12-14 | Datumtron Corp. | Datumtronic knowledge server |
US10447588B1 (en) * | 2017-06-28 | 2019-10-15 | Rockwell Collins, Inc. | Decentralized integrated modular avionics (IMA) processing |
CN109522101B (zh) * | 2017-09-20 | 2023-11-14 | 三星电子株式会社 | 用于调度多个操作***任务的方法、***和/或装置 |
JP7074777B2 (ja) * | 2017-11-20 | 2022-05-24 | シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド | タスク並列処理方法、装置、システム、記憶媒体およびコンピュータ機器 |
RU2718215C2 (ru) | 2018-09-14 | 2020-03-31 | Общество С Ограниченной Ответственностью "Яндекс" | Система обработки данных и способ обнаружения затора в системе обработки данных |
RU2731321C2 (ru) | 2018-09-14 | 2020-09-01 | Общество С Ограниченной Ответственностью "Яндекс" | Способ определения потенциальной неисправности запоминающего устройства |
RU2721235C2 (ru) | 2018-10-09 | 2020-05-18 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для маршрутизации и выполнения транзакций |
RU2714602C1 (ru) | 2018-10-09 | 2020-02-18 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для обработки данных |
RU2711348C1 (ru) | 2018-10-15 | 2020-01-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для обработки запросов в распределенной базе данных |
RU2714373C1 (ru) * | 2018-12-13 | 2020-02-14 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования выполнения операций ввода/вывода |
RU2749649C2 (ru) | 2018-12-21 | 2021-06-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования обработки операций ввода/вывода |
RU2720951C1 (ru) | 2018-12-29 | 2020-05-15 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и распределенная компьютерная система для обработки данных |
RU2746042C1 (ru) | 2019-02-06 | 2021-04-06 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для передачи сообщения |
CN111240829B (zh) * | 2019-12-31 | 2023-12-15 | 潍柴动力股份有限公司 | 一种基于时间片的多核任务调度方法、装置、存储介质及电子设备 |
US11966776B2 (en) * | 2021-07-14 | 2024-04-23 | International Business Machines Corporation | Learning agent based application scheduling |
WO2023034221A1 (en) * | 2021-09-03 | 2023-03-09 | Groq, Inc. | Scale computing in deterministic cloud environments |
DE102022200160A1 (de) * | 2022-01-10 | 2023-07-13 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Optimieren eines Prozesses |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7586892B2 (en) * | 2004-04-26 | 2009-09-08 | Hewlett-Packard Development Company, L.P. | Computer method and apparatus for periodic scheduling with jitter-approximation tradeoff |
US20090158293A1 (en) * | 2005-09-05 | 2009-06-18 | Nec Corporation | Information processing apparatus |
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 |
EP2583437B1 (en) * | 2010-06-17 | 2015-07-29 | Saab AB | Distributed avionics system and method |
US9262216B2 (en) * | 2012-02-14 | 2016-02-16 | Microsoft Technologies Licensing, LLC | Computing cluster with latency control |
US9141430B2 (en) * | 2012-04-30 | 2015-09-22 | Hewlett-Packard Development Company, L.P. | Scheduling mapreduce job sets |
US9286119B2 (en) * | 2013-02-13 | 2016-03-15 | Nvidia Corporation | System, method, and computer program product for management of dependency between tasks |
-
2013
- 2013-03-14 US US13/830,576 patent/US20140282572A1/en not_active Abandoned
- 2013-12-30 KR KR20130166949A patent/KR20140113310A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101639947B1 (ko) * | 2015-04-14 | 2016-07-15 | 성균관대학교산학협력단 | 하둡 선점 데드라인 제약 스케줄링 방법 및 그 방법을 수행하는 컴퓨터프로그램과, 그 프로그램이 기록된 매체 |
KR20210106005A (ko) * | 2019-02-26 | 2021-08-27 | 미쓰비시덴키 가부시키가이샤 | 정보 처리 장치, 정보 처리 방법 및 기록 매체에 저장된 정보 처리 프로그램 |
KR20210022426A (ko) * | 2019-08-20 | 2021-03-03 | 성균관대학교산학협력단 | 태스크의 러너블 그룹 단위 분할을 통한 선점 최소화 방법 및 이를 위한 장치 |
US11822967B2 (en) | 2019-08-20 | 2023-11-21 | Research & Business Foundation Sungkyunkwan University | Task distribution method for minimizing preemption between tasks and apparatus for performing the same |
Also Published As
Publication number | Publication date |
---|---|
US20140282572A1 (en) | 2014-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20140113310A (ko) | 멀티코어 시스템에서의 우선순위 관계에 의한 태스크 스케쥴링 | |
Saifullah et al. | Multi-core real-time scheduling for generalized parallel task models | |
Lakshmanan et al. | Scheduling parallel real-time tasks on multi-core processors | |
US8595743B2 (en) | Network aware process scheduling | |
Nelissen et al. | U-EDF: An unfair but optimal multiprocessor scheduling algorithm for sporadic tasks | |
US8607240B2 (en) | Integration of dissimilar job types into an earliest deadline first (EDF) schedule | |
US9207977B2 (en) | Systems and methods for task grouping on multi-processors | |
Kang et al. | Lalarand: Flexible layer-by-layer cpu/gpu scheduling for real-time dnn tasks | |
Chen et al. | Fixed-relative-deadline scheduling of hard real-time tasks with self-suspensions | |
TW201411488A (zh) | 在作業系統中藉由多個程序對現場可程式設計閘陣列的使用的管理 | |
Tamaş-Selicean et al. | Optimization of time-partitions for mixed-criticality real-time distributed embedded systems | |
Gujarati et al. | Outstanding paper award: Schedulability analysis of the linux push and pull scheduler with arbitrary processor affinities | |
Thekkilakattil et al. | The global limited preemptive earliest deadline first feasibility of sporadic real-time tasks | |
George et al. | Job vs. portioned partitioning for the earliest deadline first semi-partitioned scheduling | |
Dong et al. | Optimal dataflow scheduling on a heterogeneous multiprocessor with reduced response time bounds | |
Pathan | Unifying fixed-and dynamic-priority scheduling based on priority promotion and an improved ready queue management technique | |
Saha | Spatio-temporal GPU management for real-time cyber-physical systems | |
Digalwar et al. | Design and development of a real time scheduling algorithm for mixed task set on multi-core processors | |
Capota et al. | P_FENP: a multiprocessor real-time scheduling algorithm | |
Qureshi et al. | Maintaining the feasibility of hard real-time systems with a reduced number of priority levels | |
Schmid et al. | Response time analysis of parallel real-time dag tasks scheduled by thread pools | |
Abeni et al. | Multicore CPU reclaiming: parallel or sequential? | |
Han et al. | A temporal dependency aware approach for scheduling real-time tasks on multi-core platforms | |
Wu et al. | Weakly hard real-time scheduling algorithm for multimedia embedded system on multiprocessor platform | |
Kumar et al. | Global analysis of resource arbitration for MPSoC |
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 |