KR101653204B1 - 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법 - Google Patents
멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법 Download PDFInfo
- Publication number
- KR101653204B1 KR101653204B1 KR1020100023194A KR20100023194A KR101653204B1 KR 101653204 B1 KR101653204 B1 KR 101653204B1 KR 1020100023194 A KR1020100023194 A KR 1020100023194A KR 20100023194 A KR20100023194 A KR 20100023194A KR 101653204 B1 KR101653204 B1 KR 101653204B1
- Authority
- KR
- South Korea
- Prior art keywords
- task
- dynamic
- management
- core
- load
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 230000004044 response Effects 0.000 claims abstract description 25
- 230000006378 damage Effects 0.000 claims abstract description 7
- 238000007726 management method Methods 0.000 claims description 166
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008033 biological extinction Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000007958 sleep Effects 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
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)
- Microcomputers (AREA)
- Multi Processors (AREA)
Abstract
멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법에 관한 것으로서, 병렬 처리하려는 태스크에 대한 등록 신호를 생성하고, 상기 생성된 등록 신호에 응답하여, 적어도 하나 이상의 태스크를 동적 관리하는 동적 관리 신호를 생성하며, 상기 생성된 동적 관리 신호에 응답하여 적어도 하나 이상의 코어에 상기 적어도 하나 이상의 태스크를 생성/소멸하도록 제어하는 기술적 사상을 개시한다.
Description
본 발명의 실시예들은 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법에 관한 것으로서, 가용한 코어를 최대한 활용하기 위해 동적으로 병렬 태스크들을 관리함으로써, 안정된 서비스 품질을 유지하면서 처리 시간을 단축시킬 수 있다.
한 개의 프로세서를 사용하는 기존 싱글 코어 시스템은 클럭 향상의 한계 및 전력 문제 때문에, 여러 개의 프로세서를 사용하는 멀티 코어 시스템으로 변화하고 있다.
기존 싱글 코어 시스템의 하드웨어 한계로 인한 변화는 필연적으로 소프트웨어도 변화를 야기했다. 기존 소프트웨어는 싱글 코어 기반으로만 고려했기 때문에, 멀티 코어에서 동작할 때 얻을 수 있는 성능 향상 등의 이점을 기대할 수 없었다. 이는 싱글 코어와 멀티 코어의 구조가 완전히 다르기 때문이다.
따라서, 멀티 코어 시스템에서 중요한 과정의 하나는 멀티 코어 시스템이 제공하는 성능과 유연성을 활용함과 동시에 멀티 코어 프로세서 프로그램의 복잡성을 관리할 수 있는 명확한 소프트웨어를 개발하는 것이다.
근래에는 멀티 코어 시스템의 성능을 충분히 발휘하기 위해, 멀티 코어용 운영체제, 병렬 처리를 가능하게 해주는 병렬 프로그래밍 모델, 동적 실행 환경 등, 멀티 코어 시스템을 위한 소프트웨어에 대한 연구가 활발히 진행되고 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템은 병렬 처리하려는 태스크에 대한 등록 신호를 생성하는 병렬 처리부, 상기 생성된 등록 신호에 응답하여, 적어도 하나 이상의 태스크를 동적 관리하는 동적 관리 신호를 생성하는 부하 관리부, 및 상기 생성된 동적 관리 신호에 응답하여 적어도 하나 이상의 코어에 상기 적어도 하나 이상의 태스크를 생성/소멸하도록 제어하는 운영 시스템 제어부를 포함할 수 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 병렬 처리하려는 태스크에 대한 등록 신호를 생성하는 단계, 상기 생성된 등록 신호에 응답하여, 적어도 하나 이상의 태스크를 동적 관리하는 동적 관리 신호를 생성하는 단계, 및 상기 생성된 동적 관리 신호에 응답하여 적어도 하나 이상의 코어에 상기 적어도 하나 이상의 태스크를 생성/소멸하도록 제어하는 단계를 포함할 수 있다.
본 발명의 실시예들에 따르면, 가용한 코어를 최대한 활용하기 위해 동적으로 병렬 태스크들을 관리함으로써, 안정된 서비스 품질을 유지하면서 처리 시간을 단축시킬 수 있다.
본 발명의 실시예들에 따르면, 가용한 코어의 활용률을 높여 일 수 있다.
본 발명의 실시예들에 따르면, 각 코어에 하나의 병렬 태스크가 존재하게 함으로 불필요한 태스크 생성을 미연에 방지할 수 있고, 코어의 개수만큼 태스크 메모리를 사용함으로써, 시스템 자원의 낭비를 예방할 수 있다.
본 발명의 실시예들에 따르면, 각 코어에 불필요한 태스크의 수를 줄임으로써, 컨텍스트 스위칭에 따른 오버헤드를 감소시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 동적 태스크 관리 시스템을 설명하는 도면이다.
도 2는 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 동적 시간에 가용한 코어가 발생하는 경우의 동작을 설명하는 도면이다.
도 3은 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 한 코어에 여러 병렬 태스크가 존재할 경우의 동작을 설명하는 도면이다.
도 4는 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 가용해진 코어에서 새로운 병렬 태스크를 생성하는 것을 설명하는 도면이다.
도 5는 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 각 블록간 할당되는 코어 수를 조절하여 관리하는 것을 설명하는 도면이다.
도 6은 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 태스크를 소멸하는 것을 설명하는 도면이다.
도 7은 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 태스크를 생성하는 것을 설명하는 도면이다.
도 8은 본 발명의 일실시예에 따른 동적 태스크 관리 방법을 설명하는 흐름도이다.
도 9는 본 발명의 일실시예에 따른 태스크를 소멸하는 단계를 설명하는 흐름도이다.
도 10은 본 발명의 일실시예에 따른 태스크를 생성하는 단계를 설명하는 흐름도이다.
도 2는 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 동적 시간에 가용한 코어가 발생하는 경우의 동작을 설명하는 도면이다.
도 3은 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 한 코어에 여러 병렬 태스크가 존재할 경우의 동작을 설명하는 도면이다.
도 4는 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 가용해진 코어에서 새로운 병렬 태스크를 생성하는 것을 설명하는 도면이다.
도 5는 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 각 블록간 할당되는 코어 수를 조절하여 관리하는 것을 설명하는 도면이다.
도 6은 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 태스크를 소멸하는 것을 설명하는 도면이다.
도 7은 본 발명의 일실시예에 따른 동적 태스크 관리 시스템이 태스크를 생성하는 것을 설명하는 도면이다.
도 8은 본 발명의 일실시예에 따른 동적 태스크 관리 방법을 설명하는 흐름도이다.
도 9는 본 발명의 일실시예에 따른 태스크를 소멸하는 단계를 설명하는 흐름도이다.
도 10은 본 발명의 일실시예에 따른 태스크를 생성하는 단계를 설명하는 흐름도이다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)을 설명하는 도면이다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 병렬 처리부(110), 부하 관리부(120), 및 운영 시스템 제어부(130)를 포함할 수 있다.
병렬 처리부(110)는 병렬 처리하려는 태스크에 대한 등록 신호를 생성할 수 있다.
부하 관리부(120)는 상기 생성된 등록 신호에 응답하여, 적어도 하나 이상의 태스크를 동적 관리하는 동적 관리 신호를 생성할 수 있다.
운영 시스템 제어부(130)는 상기 생성된 동적 관리 신호에 응답하여 적어도 하나 이상의 코어에 상기 적어도 하나 이상의 태스크를 생성/소멸하도록 제어할 수 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 동적 실행 환경에서 병렬 처리를 위한 태스크를 효율적으로 관리할 수 있다. 예를 들어, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 한 코어에 여러 태스크가 경쟁적으로 일을 하고, 다른 한 코어는 태스크가 없어서 idle 상태일 때, 여러 태스크 중 일부를 소멸시키고, idle 상태의 코어에 소멸된 태스크만큼을 생성할 수 있다.
즉, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 병렬 처리를 하는 태스크들의 수를 동적으로 조정함으로써, 병렬 처리의 성능을 높이거나, 메모리 활용성을 높일 수 있다.
동적 실행 환경에서 병렬 처리를 위한 태스크를 효율적으로 관리하기 위해서, 병렬 처리부(110)는 유저에게 제공되는 API로써, 데이터 병렬 처리를 지원한다.
부하 관리부(120)는 시스템의 부하를 측정하고 관리하고, 운영 시스템 제어부(130)는 기존의 운영체제 역할을 하면서, 부하 관리부(120)와 병렬 처리부(110)에 필요한 기능을 지원할 수 있다.
병렬 처리부(110)에서는 부하 관리부(120)에게 데이터 병렬 처리가 있음을 알린다. 이를 '등록한다'라고 표현하며, 등록된 내용은 따로 관리된다. 부하 관리부(120)는 등록된 데이터 병렬 처리들의 정보를 바탕으로 동적으로 데이터 병렬 처리하여 적어도 하나 이상의 태스크를 관리한다.
이 때, 시스템의 부하를 측정하거나, 태스크를 동적으로 관리하기 위해 운영 시스템 제어부(130)와 통신을 한다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 실제적으로 부하 관리부(120)가 명령을 내려 다른 모듈과 함께 수행할 수 있다.
결국, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 병렬 처리의 성능 향상을 위한 작업들을 수행할 수 있고, 결국 시스템의 부하를 측정하고 분배하여 시스템 성능을 향상시킬 수 있다.
도 2는 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)이 동적 시간에 가용한 코어가 발생하는 경우의 동작을 설명하는 도면이다.
도 2를 참고하면, 동적 시간 동안에 가용한 코어(201)가 발생한 경우, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 현재 처리 중인 태스크를 복사하여 가용한 코어(201)에 생성할 수 있다.
구체적으로, 본 발명의 일실시예에 따른 병렬 처리부(110)가 태스크에 대한 등록 신호를 생성하면, 부하 관리부(120)는 가용한 코어(201)에서 상기 태스크에 대한 생성을 요청하는 동적 관리 신호를 생성할 수 있다.
이에, 운영 시스템 제어부(130)는 상기 생성된 동적 관리 신호에 응답하여, 상기 가용한 코어(201)에 태스크(202)를 생성할 수 있다. 이때, 생성되는 태스크(202)인 'DTask2'와 'DTask3'은 현재 처리중인 태스크인 'DTask0'/'DTask1' 중에서 'DTask1'를 복사하여 생성될 수 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)이 생성 또는 소멸하는 데이터 병렬 처리 태스크들은 한 공유 데이터에 대해, 태스크별로 그 데이터의 일부를 담당하여 처리할 수 있다. 따라서, 태스크들이 수행하는 함수는 모두 동일할 수 있다. 본 발명의 일실시예에 따르면, SIMD(single instruction and multiple data) 연산과 비슷하게, 하나의 함수를 이용하여 여러 개의 데이터를 처리할 수 있다.
도 3은 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)이 한 코어에 여러 병렬 태스크가 존재할 경우의 동작을 설명하는 도면이다.
도 3을 참고하면, 한 코어에 여러 병렬 태스크가 존재할 경우 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 현재 처리 중인 태스크의 일부를 취소하고, 새로운 태스크를 생성하여 취소된 태스크에 할당되었던 코어를 통해서 병렬 처리를 수행할 수 있다.
예를 들어, 로딩 타임에서 제1 태스크 세트가 코어에 할당되고, 러닝 타임에서 제2 태스크 세트를 처리해야 하는 경우, 상기 제1 태스크 세트에 할당된 코어의 일부를 상기 제2 태스크 세트의 처리가 가능하도록 할당할 수 있다.
도 4는 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)이 가용해진 코어에서 새로운 병렬 태스크를 생성하는 것을 설명하는 도면이다.
도면부호 401을 참조하면, 코어 0~4에서 제1 태스크 세트가 병렬 처리되고 있을 때, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)는 도면부호 402와 같이 제2 태스크 세트를 코어 2 및 코어 3에 새로이 생성하여 처리할 수 있다. [이때, 코어 2 및 코어 3에서 수행 중인 제1 테스크 세트의 일부는 소멸되고, 코어 0 및 코어 1은 소멸된 태스크만큼을 생성하여 제2 테스크 세트를 생성할 수 있다].
도면부호 402를 참고하면, x축 t1 시간 이후에는 core2, 3에 있는 제1 태스크 세트의 일부가 소멸되고, 남은 데이터들이 core 0, 1의 제2 태스크 세트를 통해 처리될 수 있다.
이로써, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 병렬 태스크의 처리를 위해서, 코어 2 및 코어 3에서 기존 병렬 태스크의 수를 줄이고, 새로운 병렬 태스크를 가용해진 코어에서 동작시킬 수 있다.
이러한 경우, 전체 성능 면에서는 메모리 사용량 및 문맥 교환에 따른 오버헤드의 감소효과를 기대할 수 있다.
즉, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 동적 시간에 가용한 코어가 발생하면, 병렬 처리 태스크의 수를 늘려서, 코어의 활용도를 높일 수 있다. 다시 말해, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 CPU-intensive한 병렬 처리 태스크들의 특징을 이용함으로써, 불필요하게 많은 태스크들을 생성하는 것이 아니라, 코어를 나누어 사용함으로써 메모리 사용 최적화 및 시스템의 오버에드를 감소시킬 수 있다.
도 5는 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)이 각 블록간 할당되는 코어 수를 조절하여 관리하는 것을 설명하는 도면이다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 병렬 블록(Parallel block)에 대해서 할당되는 코어의 수를 차등 조절하여 효율적으로 관리할 수 있다. 본 명세서에서 사용되는 상기 병렬 블록(Parallel block)은 태스크 세트와 동일한 개념으로 해석될 수 있다.
도 5에서 보는 바와 같이, 각의 병렬 블록은 적어도 하나 이상의 태스크들을 포함한다. 이때, 각의 병렬 블록은 포함되는 태스크들 개수의 최소값과 최대값이 지정될 수 있다.
도 5를 살펴보면, 하나의 데이터 병렬처리 구간을 병렬 구간 또는 병렬 블록(parallel block)이라고 부르고, 각 병렬 구간을 이루는 태스크들의 정보를 갖고 있다. 그리고 각 병렬 구간은 태스크들 수의 최소값 및 최대값을 유지할 수 있다.
이는 병렬처리의 QoS(Quality of Service)를 보장하기 위한 것으로서, 병렬 구간의 성능을 위해 최소 어느 정도의 태스크는 필요하나, 최대 얼마 이상은 필요 없다는 의미를 갖는다. 이러한 최대값/최소값 정보는 병렬 구간 및 병렬 태스크 들의 특성을 반영하기 때문에, 그 것을 가장 잘 아는 유저가 병렬처리를 요청할 때 같이 제공될 수 있다.
이를 위해서, 본 발명의 일실시예에 따른 부하 관리부(110)는 상기 적어도 하나 이상의 코어에 생성/소멸되는 태스크 개수의 최소값과 최대값을 저장하고, 유지할 수 있다.
본 발명의 일실시예에 따른 운영 시스템 제어부(130)는 상기 저장된 최소값과 최대값을 고려하여 상기 적어도 하나 이상의 태스크를 생성/소멸하도록 제어할 수 있다.
다시 말해, 본 발명의 일실시예에 따른 부하 관리부(110)는 상기 최소값과 상기 최대값을 통해서, 각의 코어에 생성/소멸되는 태스크 개수의 범위를 설정할 수 있다.
상기 최소값은 각 코어의 최소 성능을 보장할 수 있고, 상기 최대값은 각 코어 성능의 saturation 지점을 확보할 수가 있다.
도 5를 참조하면, 병렬 블록0의 최소값과 최대값은 (2,4)로 설정되고, 병렬 블록1의 최소값과 최대값은 (1,3)로 설정되고, 병렬 블록2의 최소값과 최대값은 (1,4)로 설정될 수 있다.
다시 말해, 병렬 블록0에서는 최소 2개의 태스크가 처리되어야 하며, 최대 4개까지 태스크가 처리될 수 있다. 마찬가지로, 병렬 블록1에서는 최소 1개의 태스크, 최대 3개의 태스크가 처리될 수 있고, 병렬 블록2에서는 최소 1개의 태스크, 최대 4개의 태스크가 처리될 수 있다.
본 발명의 일실시예에 따른 각 코어의 최소값 및 최대값은 코어의 데이터 병렬처리 구간에 대한 우선순위에 기초하여 설정될 수 있다.
또한, 본 발명의 일실시예에 따른 부하 관리부(120)는 상기 적어도 하나 이상의 코어의 데이터 병렬처리 구간에 대한 우선순위를 결정할 수 있다. 이때, 상기 생성된 태스크는 상기 우선순위에 기초하여 병렬 처리될 수 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 여러 개의 병렬 구간을 관리하기 위해서, 병렬 구간의 우선순위를 고려할 수도 있고, 최소값과 최대값을 사용할 수도 있다. 우선순위가 높은 병렬 구간은 그 중요성이 높아, 더 빠른 처리를 요하는 것으로 볼 수 있다. 그리고 최소값과 최대값의 범위가 넓은 병렬 구간은 그만큼 유동적이라고 볼 수 있고, 최소값이 높은 병렬 구간은 되도록 빠른 처리를 요하는 것이라고 볼 수 있다. 이러한 특징들을 통해 여러 병렬 구간에 대한 정책을 세울 수 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 병렬 태스크 동적 관리의 범위를 병렬 태스크에만 한정할 수도 있고, 전체 태스크를 고려할 수 있다. 병렬 태스크들은 CPU intensive한 태스크들이기 때문에, 실제적으로 하나의 코어를 전부 다 사용할 가능성이 높다. 이러한 이유에서 병렬 태스크들만을 고려해도 시스템 성능은 현저하게 향상될 수 있다.
그러나 동기화나 DMA연산 등으로 인한 대기시간이 발생할 수 있기 때문에 병렬 태스크들이 CPU를 100% 사용하지 않는 순간이 있을 수 있다.
따라서, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 전체 태스크 및 시스템의 부하를 고려하여 보다 세밀하게 동적으로 태스크를 관리할 수 있다. 이를 위해서, 부하 관리부(110)는 상기 적어도 하나 이상의 코어에 대한 부하를 확인하고, 상기 확인된 부하가 기준치 이상인 경우에 상기 동적 관리 신호를 생성할 수 있다.
도 6은 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)이 태스크를 소멸하는 것을 설명하는 도면이다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 병렬 블록에서 수행 중인 태스크들(DTask2, DTask3)을 종료하여 소멸시킬 수 있다. 예를 들어, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 태스크들(DTask2, DTask3)을 cancellation point에서 안정하게 종료시킬 수 있다. 종료 시 병렬 블록에서의 최소값인 2를 고려하여 수행되는 태스크의 개수가 최소 2개가 존재하는 범위에서 태스크들을 소멸시킬 수 있다.
하나의 병렬 구간이 종료요청을 받게 되면, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 태스크들의 정보를 확인할 수 있다. 종료요청에 따라서, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 실행 중인 태스크들 중에서 적어도 하나 이상의 태스크를 선택하여 종료 명령을 실행하여 해당 태스크들을 소멸시킬 수 있다.
구체적으로, 부하 관리부(110)는 상기 적어도 하나 이상의 코어의 데이터 병렬처리 구간에 대한 적어도 하나 이상의 태스크를 확인하고, 상기 확인된 적어도 하나 이상의 태스크에 대해 소멸을 요청하는 동적 관리 신호를 생성할 수 있다. 이에 운영 시스템 제어부(130)는 상기 생성된 동적 관리 신호에 응답하여 상기 확인된 적어도 하나 이상의 태스크(DTask2, DTask3)를 소멸할 수 있다.
본 발명의 일실시예에 따른 부하 관리부(110)는 적어도 하나 이상의 코어에 소멸되는 태스크 개수의 최소값을 저장할 수 있다.
이에, 본 발명의 일실시예에 따른 운영 시스템 제어부(130)는 상기 적어도 하나 이상의 코어에서 남은 태스크의 개수가 상기 최소값 이상인지 여부를 확인할 수 있다.
만약, 상기 최소값 이상인 경우에 본 발명의 일실시예에 따른 운영 시스템 제어부(130)는 상기 확인된 적어도 하나 이상의 태스크를 소멸할 수 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 특정 태스크의 소멸을 위해서, 다양한 정책을 적용할 수 있다.
예를 들어, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 소멸을 위해서 단순하게 맨 마지막 태스크를 선택할 수 있다.
다른 예로, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 하나의 코어에 여러 개의 태스크가 있는 존재하는 경우, 여러 개의 태스크 중에서 일부 태스크들을 선택할 수도 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 해당 태스크를 즉시 종료하거나, 종료요청 후 특정 지점까지 태스크의 동작을 진행하고, 상기 특정 지점에서 해당 태스크를 종료할 수 있다.
도 7은 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)이 태스크를 생성하는 것을 설명하는 도면이다.
하나의 병렬 구간이 생성요청을 받게 되면, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 태스크들의 정보를 확인할 수 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 태스크들의 정보를 확인한 후, 적어도 하나 이상의 태스크들을 선택하여 생성을 위한 동적 관리 신호를 생성할 수 있다. 이때, 본 발명의 일실시예에 따른 동적 태스크 관리 시스템(100)은 가장 마지막에 위치하는 태스크를 복사하여 새로운 태스크를 생성할 수 있다. 병렬 구간의 모든 태스크들은 동일한 작업을 처리하기 때문에 이러한 복사/생성의 방법이 적용될 수 있다.
구체적으로, 본 발명의 일실시예에 따른 부하 관리부(110)는 상기 적어도 하나 이상의 코어의 데이터 병렬처리 구간을 확인할 수 있다.
본 발명의 일실시예에 따른 부하 관리부(110)는 확인된 데이터 병렬처리 구간에서 새로운 적어도 하나 이상의 태스크를 생성하는 동적 관리 신호를 생성할 수 있다.
이에 운영 시스템 제어부(130)는 상기 생성된 동적 관리 신호에 응답하여 상기 확인된 적어도 하나 이상의 태스크를 생성할 수 있다.
본 발명의 일실시예에 따른 부하 관리부(110)는 태스크의 동적 관리시 태스크의 개수가 해당 병렬 블록의 최소값 및 최대값의 범위에 포함되는지를 확인해야만 한다.
즉, 본 발명의 일실시예에 따른 부하 관리부(110)는 병렬 블록의 태스크 수가 최소값과 같은 경우에 종료 요청을 무시할 수 있다. 마찬가지로, 본 발명의 일실시예에 따른 부하 관리부(110)는 태스크 수가 최대값과 같은 경우에 생성 요청을 무시할 수 있다.
본 발명의 일실시예에 따른 부하 관리부(110)는 종료와 생성에 있어서, 태스크들의 실제적인 종료와 생성을 수행할 수도 있고, 태스크들의 동작을 멈추거나 다시 시작하게 할 수도 있다.
예를 들어, 해당 태스크가 sleep을 하거나 wakeup하는 동작을 소멸/생성에 이용할 수 있다.
이 경우에는 생성 및 소멸에 필요한 비용 절감이 가능하다.
다른 예로, 태스크들의 pool을 이용하여 태스크의 소멸/생성에 이용할 수도 있다.
결국, 본 발명의 실시예들에 따르면, 가용한 코어를 최대한 활용하기 위해 동적으로 병렬 태스크들을 관리함으로써, 안정된 서비스 품질을 유지하면서 처리 시간을 단축시킬 수 있다.
뿐만 아니라, 본 발명의 실시예들에 따르면, 가용한 코어의 활용률을 높여 일 수 있으며, 각 코어에 하나의 병렬 태스크가 존재하게 함으로 불필요한 태스크 생성을 미연에 방지할 수 있다.
본 발명의 실시예들에 따르면, 코어의 개수만큼 태스크 메모리를 사용함으로써, 시스템 자원의 낭비를 예방할 수 있고, 각 코어에 불필요한 태스크의 수를 줄임으로써, 컨텍스트 스위칭에 따른 오버헤드를 감소시킬 수 있다.
도 8은 본 발명의 일실시예에 따른 동적 태스크 관리 방법을 설명하는 흐름도이다.
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 병렬 처리하려는 태스크에 대한 등록 신호를 생성할 수 있다(단계 801).
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 상기 생성된 등록 신호에 응답하여, 적어도 하나 이상의 태스크를 동적 관리하는 동적 관리 신호를 생성할 수 있다(단계 802).
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 상기 생성된 동적 관리 신호에 응답하여 적어도 하나 이상의 코어에 상기 적어도 하나 이상의 태스크를 생성/소멸하도록 제어할 수 있다(단계 802).
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 가용한 코어가 발생하면, 병렬 처리 태스크의 수를 늘려 코어의 활용도를 높일 수 있다.
예를 들면, 필요한 순간에 태스크를 생성하여 메모리 활용도 증가시킬 수 있다. 다른 예로, 한 코어, 한 병렬 태스크를 처리하기 위해, 기존 병렬 태스크의 수를 줄이고, 새로운 병렬 태스크를 가용해진 코어에서 동작시켜 시스템 자원을 효율적으로 이용할 수 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 상기 적어도 하나 이상의 코어에 대한 부하를 확인하고, 상기 확인된 부하가 기준치 이상인 경우에 상기 동적 관리 신호를 생성할 수 있다. 따라서, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 시스템에 발생하는 부하를 기준으로 동적 관리를 결정할 수 있다.
도 9는 본 발명의 일실시예에 따른 태스크를 소멸하는 단계를 설명하는 흐름도이다.
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 태스크의 소멸을 위해서, 적어도 하나 이상의 코어의 데이터 병렬처리 구간에 대한 적어도 하나 이상의 태스크를 확인할 수 있다.
만약, 확인된 태스크가 소멸이 필요하다면 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 상기 확인된 적어도 하나 이상의 태스크에 대해 소멸을 요청하는 동적 관리 신호를 생성할 수 있다.
이에, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 상기 생성된 동적 관리 신호에 응답하여 상기 확인된 적어도 하나 이상의 태스크를 소멸할 수 있다.
구체적으로 설명하면, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 종료하고자 하는 태스크의 수(req)가 'o'이상인지 여부를 확인하여 종료하고자 하는 태스크가 존재하는지를 판단한다(단계 901).
즉, req는 종료하고자 하는 태스크의 수이고, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 종료하고자 하는 태스크의 수가 0보다 크면 victim 병렬 구간을 선택할 수 있다.
다음으로, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 victim 병렬 구간을 'pb'로 설정(단계 902)하고, 설정된 pb 값이 null인지 여부를 판단할 수 있다(단계 903).
만약, pb 값이 null인 경우라면 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 병렬 블록이 없다고 판단하여 태스크 소멸 동작을 종료한다.
pb 값이 null이 아닌 경우라면 본 발명의 일실시예에 따른 동적 태스크 관리 방법은, pb가 사용하는 태스크의 수인 pb.use와 pb의 최소값인 pb.min과 비교할 수 있다(단계 904). 단계 904는 해당 병렬 블록으로 인한 전체 QoS를 보장할 수 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 pb.use가 pb.min보다 크면, pb에서 특정 태스크를 종료시킬 수 있다(단계 905).
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 데이터의 재분배가 필요한지 여부를 판단하고, 재분배가 필요한 경우에 데이터의 재분배를 수행할 수 있다.
이후, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 req의 값을 하나 감소시킨 후, 단계 901로 분기할 수 있다(단계 906).
본 발명의 일실시예에 따르면, victim 병렬 구간은 선정된 우선순위에 의해서 결정되거나, 해당 병렬 구간의 부하를 고려하여 결정될 수 있다.
그리고 req의 수만큼의 태스크를 종료시키는 것은 한 병렬 구간에서 하나의 태스크씩 종료시킬 수 있지만, 한 병렬 구간에서 종료시킬 수 있는 모든 태스크를 종료시키는 방법도 가능하다. 또한, 데이터 재분배는 태스크를 종료시킬 때마다 수행하거나, 모든 req의 태스크가 종료된 후, 나중에 한 번에 수행될 수도 있다.
종료하고자 하는 태스크의 수는 다른 병렬 구간에서 사용되기 위해 필요한 태스크의 수와 같다. 즉, 새로운 병렬 구간을 위해 기존 병렬 구간의 자원을 이용하는 것이다.
도 10은 본 발명의 일실시예에 따른 태스크를 생성하는 단계를 설명하는 흐름도이다.
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 태스크의 생성을 위해서, 적어도 하나 이상의 코어의 데이터 병렬처리 구간을 확인할 수 있다.
만약, 확인된 데이터 병렬처리 구간에서 태스크의 생성이 필요하다면 상기 확인된 데이터 병렬처리 구간에서 새로운 적어도 하나 이상의 태스크를 생성하는 동적 관리 신호를 생성할 수 있다.
이에, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 상기 생성된 동적 관리 신호에 응답하여 상기 확인된 적어도 하나 이상의 태스크를 생성할 수 있다.
구체적으로 설명하면, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 생성할 수 있는 태스크의 수(avail)가 'o'이상인지 여부를 확인하여 생성하고자 하는 태스크가 존재하는지를 판단한다(단계 1001).
즉, avail은 생성하려는 태스크의 수이고, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 생성하려는 태스크의 수가 0보다 크면 victim 병렬 구간을 선택할 수 있다.
다음으로, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 victim 병렬 구간을 'pb'로 설정(단계 1002)하고, 설정된 pb 값이 null인지 여부를 판단할 수 있다(단계 1003).
만약, pb 값이 null인 경우라면 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 생성하려는 병렬 블록이 없다고 판단하여 태스크 생성 동작을 종료한다.
pb 값이 null이 아닌 경우라면 본 발명의 일실시예에 따른 동적 태스크 관리 방법은, pb가 사용하는 태스크의 수인 pb.use와 pb의 최대값인 pb.max와 비교할 수 있다(단계 1004). 단계 1004는 불필요한 태스크 생성으로 인한 자원의 낭비를 예방할 수 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 pb.use가 pb.max보다 작으면, pb에서 특정 태스크를 생성할 수 있다(단계 1005).
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 데이터의 재분배가 필요한지 여부를 판단하고, 재분배가 필요한 경우에 데이터의 재분배를 수행할 수 있다.
이후, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 avail의 값을 하나 감소시킨 후, 단계 1001로 분기할 수 있다(단계 1006).
태스크 종료와 마찬가지로 본 발명의 일실시예에 따르면, victim 병렬 구간은 선정된 우선순위에 의해서 결정되거나, 해당 병렬 구간의 부하를 고려하여 결정될 수 있다.
그리고 avail의 수만큼의 태스크를 생성하는 것은 한 병렬 구간에서 하나의 태스크씩 생성할 수 있지만, 한 병렬 구간에서 생성할 수 있는 모든 태스크를 생성하는 방법도 가능하다. 또한, 데이터 재분배는 태스크를 생성할 때마다 수행하거나, 모든 avail의 태스크가 종료된 후, 나중에 한 번에 수행될 수도 있다.
결국, 본 발명의 일실시예에 따른 동적 태스크 관리 방법은 최소값을 통해, 최소한의 성능을 보장하고, 최대값을 통해, 한계점을 미리 알고 불필요한 자원 할당을 방지함으로써, 병렬 처리 구간의 QoS를 보장할 수 있다.
본 발명의 일실시예에 따른 동적 태스크 관리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 동적 태스크 관리 시스템
110: 부하 관리부
120: 병렬 처리부
130: 운영 시스템 제어부
110: 부하 관리부
120: 병렬 처리부
130: 운영 시스템 제어부
Claims (12)
- 병렬 처리하려는 태스크에 대한 등록 신호를 생성하는 병렬 처리부;
상기 생성된 등록 신호에 응답하여, 적어도 하나 이상의 태스크를 동적 관리하는 동적 관리 신호를 생성하는 부하 관리부 - ,
상기 부하 관리부는 상기 적어도 하나 이상의 코어의 데이터 병렬처리 구간에 대한 적어도 하나 이상의 태스크를 확인하고, 상기 확인된 적어도 하나 이상의 태스크에 대해 소멸을 요청하는 동적 관리 신호를 생성함 -; 및
상기 생성된 동적 관리 신호에 응답하여 상기 확인된 적어도 하나 이상의 코어에 상기 적어도 하나 이상의 태스크를 소멸하도록 제어하는 운영 시스템 제어부를 포함하는
동적 태스크 관리 시스템.
- 제1항에 있어서,
상기 부하 관리부는 상기 적어도 하나 이상의 코어에 소멸되는 태스크 개수의 최소값을 저장하고,
상기 운영 시스템 제어부는 상기 적어도 하나 이상의 코어에서 남은 태스크의 개수가 상기 최소값 이상인지 여부를 확인하고, 상기 최소값 이상인 경우에 상기 확인된 적어도 하나 이상의 태스크를 소멸하는
동적 태스크 관리 시스템.
- 병렬 처리하려는 태스크에 대한 등록 신호를 생성하는 병렬 처리부;
상기 생성된 등록 신호에 응답하여, 적어도 하나 이상의 태스크를 동적 관리하는 동적 관리 신호를 생성하는 부하 관리부;
상기 부하 관리부는 상기 적어도 하나 이상의 코어의 데이터 병렬처리 구간을 확인하고, 상기 확인된 데이터 병렬처리 구간에서 새로운 적어도 하나 이상의 태스크를 생성하는 동적 관리 신호를 생성함; 및
상기 생성된 동적 관리 신호에 응답하여 적어도 하나 이상의 코어에 상기 확인된 적어도 하나 이상의 태스크를 생성하도록 제어하는 운영 시스템 제어부를 포함하는
동적 태스크 관리 시스템.
- 제3항에 있어서,
상기 부하 관리부는 상기 적어도 하나 이상의 코어에 생성되는 태스크 개수의 최대값을 저장하고,
상기 운영 시스템 제어부는 상기 적어도 하나 이상의 코어의 태스크의 개수가 상기 최대값 이하인지 여부를 확인하고, 상기 최대값 이하인 경우에 상기 확인된 적어도 하나 이상의 태스크를 생성하는
동적 태스크 관리 시스템.
- 제1항 또는 제3항에 있어서,
상기 부하 관리부는 상기 적어도 하나 이상의 코어의 데이터 병렬처리 구간에 대한 우선순위를 결정하고,
상기 생성된 태스크는 상기 우선순위에 기초하여 병렬 처리되는
동적 태스크 관리 시스템.
- 제1항 또는 제3항에 있어서,
상기 부하 관리부는 상기 적어도 하나 이상의 코어에 생성/소멸되는 태스크 개수의 최소값과 최대값을 저장하고,
상기 운영 시스템 제어부는 상기 저장된 최소값과 최대값을 고려하여 상기 적어도 하나 이상의 태스크를 생성/소멸하도록 제어하는
동적 태스크 관리 시스템.
- 제1항 또는 제3항에 있어서,
상기 부하 관리부는 상기 적어도 하나 이상의 코어에 대한 부하를 확인하고,
상기 확인된 부하가 기준치 이상인 경우에 상기 동적 관리 신호를 생성하는 것을 특징으로 하는
동적 태스크 관리 시스템.
- 삭제
- 병렬처리부, 부하관리부 및 운영 시스템 제어부를 포함하는 동적 태스크 관리 시스템에 의한 동적 태스크 관리 방법에 있어서,
상기 병렬 처리부가, 병렬 처리하려는 태스크에 대한 등록 신호를 생성하는 단계;
상기 부하 관리부가, 상기 생성된 등록 신호에 응답하여, 적어도 하나 이상의 태스크를 동적 관리하는 동적 관리 신호를 생성하는 단계;
상기 부하 관리부가, 상기 생성된 동적 관리 신호에 응답하여 상기 적어도 하나 이상의 코어의 데이터 병렬처리 구간에 대한 상기 적어도 하나 이상의 태스크를 확인하는 단계;
상기 부하 관리부가, 상기 확인된 적어도 하나 이상의 태스크에 대한 소멸을 요청하는 동적 관리 신호를 생성하는 단계; 및
상기 운영 시스템 제어부가, 상기 생성된 동적 관리 신호에 응답하여 상기 확인된 적어도 하나 이상의 태스크를 소멸하는 단계
를 포함하는
동적 태스크 관리 방법.
- 병렬처리부, 부하관리부 및 운영 시스템 제어부를 포함하는 동적 태스크 관리 시스템에 의한 동적 태스크 관리 방법에 있어서,
상기 병렬 처리부가, 병렬 처리하려는 태스크에 대한 등록 신호를 생성하는 단계;
상기 부하 관리부가, 상기 생성된 등록 신호에 응답하여, 적어도 하나 이상의 태스크를 동적 관리하는 동적 관리 신호를 생성하는 단계;
상기 부하 관리부가, 상기 생성된 동적 관리 신호에 응답하여 상기 적어도 하나 이상의 코어의 데이터 병렬처리 구간을 확인하는 단계;
상기 부하 관리부가, 상기 확인된 데이터 병렬처리 구간에서 새로운 적어도 하나 이상의 태스크를 생성하는 동적 관리 신호를 생성하는 단계; 및
상기 운영 시스템 제어부가, 상기 생성된 동적 관리 신호에 응답하여 상기 확인된 적어도 하나 이상의 태스크를 생성하는 단계
를 포함하는
동적 태스크 관리 방법.
- 제9항 또는 제10항에 있어서,
상기 확인하는 단계는,
상기 부하 관리부가, 상기 적어도 하나 이상의 코어에 대한 부하를 확인하는 단계 및
상기 부하 관리부가, 상기 확인된 부하가 기준치 이상인 경우에 상기 동적 관리 신호를 생성하는 단계
를 포함하는
동적 태스크 관리 방법.
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100023194A KR101653204B1 (ko) | 2010-03-16 | 2010-03-16 | 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법 |
US12/923,793 US8555289B2 (en) | 2010-03-16 | 2010-10-07 | System and method for dynamically managing tasks for data parallel processing on multi-core system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100023194A KR101653204B1 (ko) | 2010-03-16 | 2010-03-16 | 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110104199A KR20110104199A (ko) | 2011-09-22 |
KR101653204B1 true KR101653204B1 (ko) | 2016-09-01 |
Family
ID=44648257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100023194A KR101653204B1 (ko) | 2010-03-16 | 2010-03-16 | 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8555289B2 (ko) |
KR (1) | KR101653204B1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5641064B2 (ja) * | 2011-02-08 | 2014-12-17 | 富士通株式会社 | 実行制御プログラム、実行制御装置および実行制御方法 |
US9038088B2 (en) * | 2011-03-10 | 2015-05-19 | Nec Laboratories America, Inc. | Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases |
US9134788B2 (en) * | 2011-12-29 | 2015-09-15 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including detecting and controlling current ramps in processing circuit |
CN103377032A (zh) * | 2012-04-11 | 2013-10-30 | 浙江大学 | 一种基于异构多核芯片的细粒度科学计算并行处理装置 |
US9602423B2 (en) * | 2013-06-28 | 2017-03-21 | Pepperdata, Inc. | Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system |
US9727371B2 (en) | 2013-11-22 | 2017-08-08 | Decooda International, Inc. | Emotion processing systems and methods |
CN105824699A (zh) * | 2015-01-06 | 2016-08-03 | 中国移动通信集团山东有限公司 | 一种分布式任务调度装置及方法 |
US10073714B2 (en) | 2015-03-11 | 2018-09-11 | Western Digital Technologies, Inc. | Task queues |
CN104994032B (zh) * | 2015-05-15 | 2018-09-25 | 京信通信系统(中国)有限公司 | 一种信息处理的方法和装置 |
KR102245208B1 (ko) * | 2020-09-07 | 2021-04-28 | 박성빈 | 다중처리방법 및 그 장치 |
CN114546926B (zh) * | 2020-11-24 | 2023-08-08 | 北京灵汐科技有限公司 | 核心簇同步、控制方法、数据处理方法、核心、设备、介质 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09231181A (ja) * | 1996-02-28 | 1997-09-05 | Mitsubishi Electric Corp | 並列計算機における動的負荷分散方法 |
US6148324A (en) * | 1998-01-05 | 2000-11-14 | Lucent Technologies, Inc. | Prioritized load balancing among non-communicating processes in a time-sharing system |
US7216348B1 (en) * | 1999-01-05 | 2007-05-08 | Net2Phone, Inc. | Method and apparatus for dynamically balancing call flow workloads in a telecommunications system |
JP4028444B2 (ja) | 2003-06-27 | 2007-12-26 | 株式会社東芝 | スケジューリング方法およびリアルタイム処理システム |
US8028292B2 (en) * | 2004-02-20 | 2011-09-27 | Sony Computer Entertainment Inc. | Processor task migration over a network in a multi-processor system |
US20050228967A1 (en) | 2004-03-16 | 2005-10-13 | Sony Computer Entertainment Inc. | Methods and apparatus for reducing power dissipation in a multi-processor system |
US7437581B2 (en) * | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
JP4609113B2 (ja) | 2005-03-01 | 2011-01-12 | セイコーエプソン株式会社 | プロセッサ |
US7917907B2 (en) | 2005-03-23 | 2011-03-29 | Qualcomm Incorporated | Method and system for variable thread allocation and switching in a multithreaded processor |
GB0519981D0 (en) | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
JP2007156824A (ja) * | 2005-12-05 | 2007-06-21 | Nec Electronics Corp | プロセッサシステム、タスク制御方法 |
JP2007188212A (ja) | 2006-01-12 | 2007-07-26 | Seiko Epson Corp | マルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラム |
JP2007219577A (ja) | 2006-02-14 | 2007-08-30 | Sony Corp | データ処理装置、データ処理方法、データ処理方法のプログラム及びデータ処理方法のプログラムを記録した記録媒体 |
JP2008090546A (ja) | 2006-09-29 | 2008-04-17 | Toshiba Corp | マルチプロセッサシステム |
JP2008191949A (ja) | 2007-02-05 | 2008-08-21 | Nec Corp | マルチコアシステムおよびマルチコアシステムの負荷分散方法 |
KR20090005921A (ko) | 2007-07-10 | 2009-01-14 | 삼성전자주식회사 | 대칭적 다중 프로세서 시스템에서의 로드 밸런싱 방법 및장치 |
US7996346B2 (en) | 2007-12-19 | 2011-08-09 | International Business Machines Corporation | Method for autonomic workload distribution on a multicore processor |
KR101366075B1 (ko) | 2007-12-20 | 2014-02-21 | 삼성전자주식회사 | 멀티코어 플랫폼에서의 태스크 이동 방법 및 장치 |
US8615647B2 (en) * | 2008-02-29 | 2013-12-24 | Intel Corporation | Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state |
US8296773B2 (en) * | 2008-06-30 | 2012-10-23 | International Business Machines Corporation | Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance |
US9286075B2 (en) * | 2009-09-30 | 2016-03-15 | Oracle America, Inc. | Optimal deallocation of instructions from a unified pick queue |
US8276142B2 (en) * | 2009-10-09 | 2012-09-25 | Intel Corporation | Hardware support for thread scheduling on multi-core processors |
US8595731B2 (en) * | 2010-02-02 | 2013-11-26 | International Business Machines Corporation | Low overhead dynamic thermal management in many-core cluster architecture |
-
2010
- 2010-03-16 KR KR1020100023194A patent/KR101653204B1/ko active IP Right Grant
- 2010-10-07 US US12/923,793 patent/US8555289B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8555289B2 (en) | 2013-10-08 |
KR20110104199A (ko) | 2011-09-22 |
US20110231856A1 (en) | 2011-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101653204B1 (ko) | 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법 | |
JP6499986B2 (ja) | フォールトトレラントバッチ処理 | |
KR101953906B1 (ko) | 태스크 스케줄링 방법 및 장치 | |
US8799902B2 (en) | Priority based throttling for power/performance quality of service | |
US9619378B2 (en) | Dynamically optimizing memory allocation across virtual machines | |
JP6580307B2 (ja) | マルチコア装置及びマルチコア装置のジョブスケジューリング方法 | |
EP2216732A1 (en) | Virtual machine software license management | |
US20120036383A1 (en) | Power supply for networked host computers and control method thereof | |
JP2010525450A5 (ko) | ||
WO2016063482A1 (ja) | アクセラレータ制御装置、アクセラレータ制御方法およびプログラム記憶媒体 | |
JP2015507771A (ja) | 消費電力を低減する優先度に基づくアプリケーションイベント制御(paec) | |
CN104049712A (zh) | 用于计算机系统的功率管理方法和系统 | |
KR20080072457A (ko) | 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법 | |
KR101392584B1 (ko) | 리소스 모니터링을 이용한 동적 데이터 처리 장치 및 그 방법 | |
KR20120066189A (ko) | 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법 | |
CN111142943A (zh) | 自动控制并发方法及装置 | |
KR20130080663A (ko) | 멀티-쓰레딩을 사용하는 그래픽 처리를 위한 방법 및 장치 | |
KR20170023280A (ko) | 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법 | |
WO2017012339A1 (zh) | 资源管理方法及装置 | |
KR20130051076A (ko) | 응용프로그램 스케줄링 방법 및 장치 | |
TWI442323B (zh) | 用於多核心/眾核心的工作排程與分配管理架構及其方法 | |
KR20130104958A (ko) | 다중 운영체제들을 실행하는 장치 및 방법 | |
Dad et al. | Energy efficient VM live migration and allocation at cloud data centers | |
JP5734941B2 (ja) | マルチコアプロセッサの制御プログラム、電子機器及び制御方法 | |
CN117311910B (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: 20190731 Year of fee payment: 4 |