KR101553650B1 - 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법 - Google Patents

멀티코어 시스템에서의 로드 밸런싱 장치 및 방법 Download PDF

Info

Publication number
KR101553650B1
KR101553650B1 KR1020080133478A KR20080133478A KR101553650B1 KR 101553650 B1 KR101553650 B1 KR 101553650B1 KR 1020080133478 A KR1020080133478 A KR 1020080133478A KR 20080133478 A KR20080133478 A KR 20080133478A KR 101553650 B1 KR101553650 B1 KR 101553650B1
Authority
KR
South Korea
Prior art keywords
core
thread
load
allocation
threads
Prior art date
Application number
KR1020080133478A
Other languages
English (en)
Other versions
KR20100074920A (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 KR1020080133478A priority Critical patent/KR101553650B1/ko
Publication of KR20100074920A publication Critical patent/KR20100074920A/ko
Application granted granted Critical
Publication of KR101553650B1 publication Critical patent/KR101553650B1/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/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)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

데이터 분배를 변경하는 것이 아닌 쓰레드의 코어 할당의 변경을 통해서 오버헤드가 거의 없는 부하 분배를 달성하기 위한 멀티코어 시스템에서 로드 밸런싱 장치 및 방법이 개시된다. 일 실시예에 따르면, 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하고, 불균형하다고 결정되는 경우 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 코어 할당을 변경함으로써 로드 밸런싱을 수행한다. 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율에 기초하여 복수 개의 쓰레드를 멀티코어에 로딩하게 된다.
로드 밸런싱, 멀티코어, 쓰레드, 코어 이용율

Description

멀티코어 시스템에서의 로드 밸런싱 장치 및 방법{Apparatus and method for load balancing in multi-core system}
본 발명의 하나 이상의 양상은 멀티코어 기반 시스템에 관한 것으로, 더욱 상세하게는 멀티코어에서 계산 부하를 효과적으로 분배하는 장치 및 방법에 관한 것이다.
3D 그래픽이나 멀티 모달 UI(Multi-Modal User Interface) 등은 물리적인 현상을 시뮬레이션하여 결과를 계산하기 때문에 많은 연산 능력이 요구된다. 이러한 요구를 충족시키기 위하여 MPSoC(Multiprocessor System-on-chip)과 같은 멀티코어 시스템들이 제공되고 있다. 그러한, 멀티코어 시스템은 입력 데이터들에 따라 각 코어마다 요구되는 연산 능력이 달라지게 되기 때문에 전체 시스템의 성능이 모든 코어 중에서 가장 많은 연산 능력을 요구받는 코어의 성능과 같아지게 된다. 이러한 상황을 극복하기 위하여 동적으로 코어 간의 로드 밸런싱을 통해서 전체 성능을 개선하기 위한 방법이 연구되고 있다.
멀티코어에서 코어들 사이의 계산 부하를 분산시키는 문제는 분산 컴퓨팅 만큼이나 오래된 문제이다. 이러한 부하 분산의 문제에 대한 연구의 대부분은 분산 환경이나 그리드 컴퓨팅을 위한 기법들로 각 코어에 입력 데이터를 분배하는 방식을 연구하고 있다.
데이터 분배를 변경하는 것이 아닌 쓰레드의 코어 할당의 변경을 통해서 오버헤드가 거의 없는 부하 분배를 달성하기 위한 멀티코어 시스템에서 로드 밸런싱 장치 및 방법이 제안된다.
일 양상에 따른 멀티코어 시스템의 로드 밸런싱 장치는, 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하고, 불균형하다고 결정되는 경우 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 로드 관리부; 및 멀티코어에 할당된 각 쓰레드에 대응하는 로드 정보를 포함하는 쓰레드 로드 테이블을 포함한다.
로드 관리부에 의해 결정되는 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율에 기초하여 멀티코어에 로딩(loading) 또는 언로딩(unloading)하는 스케줄러를 더 포함할 수 있다. 스케줄러는 멀티코어 각각의 로드 밸런싱을 위하여 로드 관리부에 의해 적어도 하나의 쓰레드에 대한 코어 할당이 변경되어야 하는 것으로 결정된 경우, 할당이 변경되어야 하는 적어도 하나의 쓰레드의 동작만을 중지하고, 코어 할당이 변경된 후, 할당이 변경된 코어에서 적어도 하나의 쓰레드의 동작을 재개할 수 있다.
쓰레드 로드 정보는 각 쓰레드마다 쓰레드 식별 정보, 쓰레드에 대한 로드 정보, 쓰레드가 할당된 코어 정보, 코어에서 쓰레드를 처리하기 위한 코어의 이용율 정보를 포함한다.
로드 관리부는 각 코어의 쓰레드별로 로드를 측정하고, 측정된 쓰레드별 로드 정보를 쓰레드 로드 테이블에 업데이트하고, 코어 간의 로드가 불균형한지 여부를 결정하고, 코어 간 로드가 불균형하다고 결정되면 로드 밸런싱 요청을 전송하는 성능 측정부; 로드 밸런싱 요청을 수신하고, 업데이트된 로드 정보에 기초하여 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율을 결정하고, 결정된 할당 및 코어 이용율을 쓰레드 로드 테이블에 업데이트하는 로드 밸런싱 수행부; 및 업데이트된 할당 및 코어 이용율에 기초하여 복수 개의 쓰레드의 코어 할당 및 코어 이용율을 설정하는 코어 할당부를 포함한다.
다른 양상에 따른 멀티코어 시스템의 로드 밸런싱 방법은, 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하는 단계; 및 불균형하다고 결정되는 경우 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 단계; 를 포함한다.
일 실시예에 따르면, 코어 할당의 비용이 분산 환경에 비해서 훨씬 적은 MPSoC 환경에서 적합한 동적 로드 밸런싱 기법을 제공하여 불필요한 쓰레드들의 대기 시간(waiting time)을 줄이고 쓰레드들 사이의 데이터 재분배 오버헤드를 줄임으로써 MPSoC향 임베디드 시스템의 성능을 향상시킬 수 있다.
오버헤드가 적은 동적 로드 밸런싱 기법을 제공하기 때문에 루프 단위에서도 로드 밸런싱이 가능한 미세 단위 로드 밸런싱(fine grained load-balancing) 기법을 제공할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1a 및 도 1b는 일 실시예에 따른 멀티코어 시스템의 로드 밸런싱 기법을 나타내는 도면이다.
도 1a 및 도 1b는 2개의 코어 즉, 제1 코어(110) 및 제2 코어(120)가 버스(130)에 연결되어 쓰레드들을 처리하는 멀티코어 시스템을 나타낸다. 도 1a 및 도 1b에서 타원(11, 21, 31 및 41)은 해당 코어에서 수행되는 쓰레드를 나타낸다. 도 1a 도 1b에서 제1 코어(110) 및 제2 코어(120)에는 각각 2개의 쓰레드가 할당되어 있다.
쓰레드(11) 아래의 사각형(12)는 제1 코어(110)에서 쓰레드(11)가 차지하는 코어 이용율(core usage)를 나타내며, 쓰레드(21) 아래의 사각형(22)는 제1 코어(110)에서 쓰레드(21)가 차지하는 코어 이용율(core usage)를 나타낸다. 쓰레드 들(31, 41) 아래의 사각형(32, 42)도 각각 제2 코어(120)에서 해당 쓰레드가 차지하는 코어 이용율을 나타낸다. 코어 이용율은 하나의 코어(또는 코어 프로세서)에 복수 개의 쓰레드가 할당될 때 각 쓰레드를 처리하는데 이용하는 코어의 이용 시간(CPU time)을 비율로 나타낸 것이다. 또한, A(10), B(20), C(30) 및 D(40)는 각 쓰레드에 할당된 데이터를 나타내고, A, B, C 및 D 아래의 숫자는 각 데이터를 처리하는데 필요한 로드를 나타낸다.
도 1a는 일 실시예에 따른 로드 밸런싱 수행 전 멀티코어 시스템을 나타낸다.
제1 코어(110) 및 제2 코어(120)가 각 쓰레드를 처리하는데 할당된 코어 이용율은 동일하게 50%씩 차지하고 있다고 가정한다. 제1 코어(110)의 데이터 처리 로드는 8이고, 제2 코어(120)의 데이터 처리 로드는 12이므로, 멀티코어의 로드 불균형이 감지될 수 있다.
통상적인 로드 밸런싱 기법은 각 코어에 하나의 쓰레드가 할당되며, 각 코어별 로드를 측정한 후 글로벌 동기화 기법에 의해 전체 시스템의 동작을 일시 정지한 후 동적으로 데이터를 재분배하고, 전체 시스템을 다시 수행하는 이른바 스탑-앤-리파티션(stop-and-repartition) 기반 로드 밸런싱 기법들을 이용한다. 이러한, 스탑-앤-리파티션 기반의 동적 로드 밸런싱 기법들은 3D 그래픽(3D Graphics)과 같이 입력 데이터에 따라 로드의 변화가 많은 응용에 대해서는 적합하지 않다. 그 이유는 모든 쓰레드를 모두 수행 정지시키는 오버헤드와 데이터 재분배에 의한 오버헤드가 로드를 밸런싱함으로써 얻는 성능 향상보다 많아져서 로드 밸런싱의 효 과가 감소될 수 있기 때문이다.
이에 비하여, 일 실시예에 따르면, 각 코어에 복수 개의 쓰레드를 할당시킨 상태에서, 쓰레드의 코어 할당을 변경함으로써 로드 밸런싱을 수행함으로써 로드 불균형을 해소한다. 또한, 이 경우 전체 쓰레드들을 일시 정지하는 것이 아니라, 각 개별 쓰레드별로 미리 정해진 시점에서 일시 정지 후 코어 할당과 코어 이용율을 변경 조정한 후, 일시 정지했던 쓰레드를 다시 수행한다.
도 1b는 일 실시예에 따른 로드 밸런싱 수행 후 멀티코어 시스템을 나타낸다.
도 1b를 도 1a와 비교하면, 일 실시예에 따른 쓰레드의 코어 할당 변경에 따라 쓰레드(21)의 코어 할당이 제1 코어(110)에서 제2 코어(120)로 변경되고, 쓰레드(41)의 코어 할당이 제2 코어(120)에서 제1 코어(110)로 변경된다. 또한, 코어 할당의 변경에 따라 제1 코어(110)에서 50%로 설정되었던 쓰레드(11) 및 쓰레드(21)의 코어 이용율이 변경된 쓰레드의 코어 할당에 따른 데이터 처리량 변화에 따라서 쓰레드(11) 및 쓰레드(41)에 대해 각각 20% 및 80%로 조정된다. 제2 코어(120)에서 50%로 설정되었던 쓰레드(31) 및 쓰레드(41)의 코어 이용율도 변경된 쓰레드의 코어 할당에 따른 데이터 처리량 변화에 따라서 쓰레드(31) 및 쓰레드(21)에 대해 각각 40% 및 60%로 조정되었음이 도시되고 있다.
따라서, 일 실시예에 따른 로드 밸런싱 방법에 따르면, 통상의 방법과는 달리 글로벌 동기화가 없기 때문에 다른 쓰레드들의 불필요한 대기 시간을 줄일 수 있고, 로드 밸런스 조정을 위하여 전체 쓰레드 중 일부 쓰레드들의 코어 할당을 조 정하기 때문에 오버헤드를 줄일 수 있다.
도 2는 일 실시예에 따른 로드 밸런싱을 수행하는 멀티코어 시스템의 구성을 나타내는 블록도이다.
도 2를 참조하면, 멀티코어 시스템(200)는 로드 관리부(210), 쓰레드 로드 테이블(220), 스케줄러(230) 및 멀티코어 프로세서(240)를 포함한다.
로드 관리부(210)는 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하고, 불균형하다고 결정되는 경우 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행한다. 이때, 모든 코어에 대한 쓰레드 할당이 변경될 필요는 없으며, 로드 밸런싱을 위해 일부 코어의 일부 쓰레드의 할당이 변경될 수 있다.
쓰레드 로드 테이블(220)은 멀티코어에 할당된 각 쓰레드에 대응하는 로드 정보를 포함하며, 로드 관리부(210)에서 로드 밸런싱에 따른 로드 분배에 필요한 정보를 저장한다. 쓰레드 로드 테이블에 포함되는 정보 구조의 일 예는 도 3에 도시되어 있다.
도 3은 일 실시예에 따른 쓰레드 로드 테이블에 포함되는 정보 구조를 나타내는 도면이다.
도 3에 도시된 바와 같이, 쓰레드 로드 정보는 각 쓰레드마다 쓰레드 식별 정보(쓰레드 ID), 쓰레드에 대한 로드 정보, 쓰레드가 할당된 코어 정보, 코어에서 쓰레드를 처리하기 위한 코어의 이용율 정보를 포함할 수 있다.
다시 도 2를 참조하면, 스케줄러(230)에 의해 멀티코어(240)의 각 프로세스 마다 복수 개의 쓰레드가 할당된다. 스케줄러(230)는 로드 관리부(210)에 의해 결정되는 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율에 기초하여 쓰레드들을 멀티코어(240)의 각 프로세서에 로딩 또는 언로딩한다.
스케줄러(230)는 로드 관리부(210)의 제어에 따라서 멀티코어 각각의 로드 밸런싱을 위하여 로드 관리부(210)에 의해 적어도 하나의 쓰레드에 대한 코어 할당이 변경되어야 하는 것으로 결정된 경우, 할당이 변경되어야 하는 적어도 하나의 쓰레드의 동작만을 중지하고, 코어 할당이 변경된 후, 할당이 변경된 코어에서 적어도 하나의 쓰레드의 동작을 재개한다. 스케줄러(230)는 우선 순위 방식이 아닌 페어 큐잉(fair queueing) 기반의 스케줄링 방식이나 로터리(lottery) 스케줄링 방식을 이용하여 쓰레드의 코어 할당 및 로드를 실시간으로 조정할 수 있다.
멀티코어(230)는 프로세서 1(241), 프로세서 2(242), 프로세서 3(243) 및 프로세서 4(244)를 포함하는 것으로 도시되어 있으나, 멀티코어(230)에 구성되는 프로세서의 개수에는 제한이 없다.
도 2에 도시된 바와 같이, 로드 관리부(210)는 성능 측정부(212), 로드 밸런싱 수행부(214), 코어 할당부(216)를 포함하여 구성될 수 있다.
성능 측정부(212)는 각 쓰레드의 로드를 측정(또는 예측)한다. 또한, 성능 측정부(212)는 측정된 쓰레드별 로드 정보를 쓰레드 로드 테이블(220)에 업데이트한다. 성능 측정부(212)는 코어 간의 로드가 불균형한지 여부를 결정하고, 코어 간 로드가 불균형하다고 결정되면 로드 밸런싱 수행부(214)에 새로운 로드 밸런스가 필요하다는 로드 밸런싱 요청을 전송한다. 성능 측정부(212)는 통상의 여러가 지 방법을 이용하여 로드 측정 또는 예측을 할 수 있다. 예를 들어, 각 코어별로 로드의 불균형을 나타내는 값이 설정된 임계값을 넘게 되면, 로드가 불균형한 것으로 결정할 수 있다.
로드 밸런싱 수행부(214)는 로드의 불균형을 없애고 새로운 정책을 결정한다. 상세하게는, 로드 밸런싱 수행부(214)는 업데이트된 로드 정보에 기초하여 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율을 결정하고, 결정된 할당 및 코어 이용율을 쓰레드 로드 테이블(220)에 업데이트한다. 로드 밸런싱 수행부(214)는 로드 밸런싱을 위한 쓰레드의 코어 할당을 변경하기 위하여, 기존의 여러 가지 방법에 따른 로드 분배 기법을 이용할 수 있다.
코어 할당부(216)는 마지막으로 결정된 정책을 각 쓰레드에 적용시킨다.
즉, 코어 할당부(216)는 업데이트된 할당 및 코어 이용율에 기초하여 복수 개의 쓰레드의 코어 할당 및 코어 이용율을 스케줄러(220)에 전달 및 설정한다. 코어 할당부(216)는 결정된 복수 개의 쓰레드의 코어 할당 및 코어 이용율 정보를 스케줄러(220)이 처리하기에 적합한 형식으로 변경하여 전달할 수 있다.
일 실시예에 따르면, 코어 할당의 비용이 분산 환경에 비해서 훨씬 적은 MPSoC환경에 적합한 동적 로드 밸런싱 기법을 제공하여, 불필요한 쓰레드들의 대기 시간을 제거하그 쓰레드들 사이의 데이터 재분배 오버헤드를 줄임으로써 MPSoC 향 임베디드 시스템의 성능을 향상시킬 수 있다.
또한, 오버헤드가 적은 로드 밸런싱 기법을 제공하기 때문에 기존에 사용할 수 없었던 루프 단위에서도 로드 밸런싱이 가능한 파인 그레인드 로드 밸런싱 기법 을 제공할 수 있다.
도 4는 일 실시예에 따른 멀티코어 시스템의 로드 밸런싱 방법을 나타내는 순서도이다.
멀티코어에서 하나의 코어 당 복수 개의 쓰레드를 할당하고(S 410), 멀티코어의 로드 불균형이 아니면(S 420), 결정된 쓰레드들의 코어 할당에 따라 복수 개의 쓰레드를 스케줄링하여 처리한다(S 450). 상세하게는, 복수 개의 쓰레드의 멀티코어에 대한 할당 및 쓰레드의 할당에 따라 즉, 코어 할당된 쓰레드의 데이터 처리 로드에 따라 정해지는 코어 이용율에 기초하여 복수 개의 쓰레드가 멀티코어에 로딩되어 데이터가 처리된다.
멀티코어의 로드가 불균형하다고 결정되면(S 420), 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행한다(S 430). 로드 밸런싱을 위해 변경된 코어 할당에 기초하여 쓰레드가 처리된다(S 440). 멀티코어 각각의 로드 밸런싱을 위하여 복수 개의 쓰레드 중 적어도 하나의 쓰레드에 대한 할당이 변경되어야 하는 것으로 결정된 경우, 적어도 하나의 쓰레드의 동작만을 중지하고, 코어 할당이 변경된 후, 할당이 변경된 코어에서 적어도 하나의 쓰레드의 동작을 재개할 수 있다.
복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 할당을 변경하기 위하여, 각 쓰레드에 대응하는 로드 정보를 관리할 수 있다. 여기에서, 쓰레드에 대응하는 로드 정보는 각 쓰레드마다 쓰레드 식별 정보, 해당 쓰레드에 대한 로드 정보, 해당 쓰레드가 할당된 코어 정보, 코어에서 해당 쓰레드를 처리하기 위 한 코어의 이용율 정보를 포함할 수 있다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
도 1a 및 도 1b는 일 실시예에 따른 멀티코어 시스템의 로드 밸런싱 기법을 나타내는 도면이고,
도 2는 일 실시예에 따른 로드 밸런싱을 수행하는 멀티코어 시스템의 구성을 나타내는 블록도이고,
도 3은 일 실시예에 따른 쓰레드 로드 테이블에 포함되는 정보 구조를 나타내는 도면이고,
도 4는 일 실시예에 따른 멀티코어 시스템의 로드 밸런싱 방법을 나타내는 순서도이다.

Claims (11)

  1. 멀티코어 시스템의 로드 밸런싱 장치로서,
    하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하고, 불균형하다고 결정되는 경우 상기 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 상기 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 로드 관리부;
    상기 멀티코어에 할당된 각 쓰레드에 대응하는 로드 정보를 포함하는 쓰레드 로드 테이블; 및
    멀티코어의 로드 밸런싱을 위하여 상기 로드 관리부에 의해 상기 적어도 하나의 쓰레드에 대한 코어 할당이 변경되어야 하는 것으로 결정된 경우, 할당이 변경되어야 하는 적어도 하나의 쓰레드의 동작만을 중지하고, 코어 할당이 변경된 후, 할당이 변경된 코어에서 상기 적어도 하나의 쓰레드의 동작을 재개하는 스케줄러; 를 포함하는 장치.
  2. 제1항에 있어서,
    상기 스케줄러는 상기 로드 관리부에 의해 결정되는 상기 복수 개의 쓰레드의 상기 멀티코어에 대한 할당 및 코어 이용율에 기초하여 상기 복수 개의 쓰레드를 상기 멀티코어에 로딩 또는 언로딩하는 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 쓰레드에 대응하는 로드 정보는 각 쓰레드마다 쓰레드 식별 정보, 해당 쓰레드에 대한 로드 정보, 해당 쓰레드가 할당된 코어 정보, 상기 코어에서 상기 해당 쓰레드를 처리하기 위한 상기 코어의 이용율 정보를 포함하는 장치.
  5. 제1항에 있어서,
    상기 로드 관리부는
    각 코어의 쓰레드별로 로드를 측정하고, 측정된 쓰레드별 로드 정보를 상기 쓰레드 로드 테이블에 업데이트하고, 코어 간의 로드가 불균형한지 여부를 결정하고, 코어 간 로드가 불균형하다고 결정되면 로드 밸런싱 요청을 전송하는 성능 측정부;
    상기 로드 밸런싱 요청을 수신하고, 상기 업데이트된 로드 정보에 기초하여 상기 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율을 결정하고, 상기 결정된 할당 및 코어 이용율을 상기 쓰레드 로드 테이블에 업데이트하는 로드 밸런싱 수행부; 및
    상기 업데이트된 상기 할당 및 코어 이용율에 기초하여 상기 복수 개의 쓰레드의 코어 할당 및 코어 이용율을 설정하는 코어 할당부를 포함하는 장치.
  6. 멀티코어 시스템의 로드 밸런싱 장치의 로드 밸런싱 방법으로서,
    하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하는 단계;
    불균형하다고 결정되는 경우 상기 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 동작만을 중지하는 단계;
    상기 적어도 하나의 쓰레드의 상기 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 단계; 및
    코어 할당이 변경된 후, 할당이 변경된 코어에서 상기 적어도 하나의 쓰레드의 동작을 재개하는 단계; 를 포함하는 방법.
  7. 제6항에 있어서,
    상기 로드 밸런싱을 수행하는 단계 이후에,
    상기 복수 개의 쓰레드의 상기 멀티코어에 대한 할당 및 코어 이용율에 기초하여 상기 복수 개의 쓰레드를 상기 멀티코어에 로딩 또는 언로딩하는 단계를 더 포함하는 방법.
  8. 삭제
  9. 제6항에 있어서,
    상기 로드 밸런싱을 수행하는 단계 이후에,
    상기 쓰레드에 대응하는 로드 정보를 관리하는 단계를 더 포함하고,
    상기 쓰레드에 대응하는 로드 정보는 각 쓰레드마다 쓰레드 식별 정보, 해당 쓰레드에 대한 로드 정보, 해당 쓰레드가 할당된 코어 정보, 상기 코어에서 상기 해당 쓰레드를 처리하기 위한 상기 코어의 이용율 정보를 포함하는 방법.
  10. 제9항에 있어서,
    하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어 각각의 로드가 불균형한지 여부를 결정하는 단계는,
    각 코어의 쓰레드별로 로드를 측정하고, 측정된 로드 정보를 쓰레드에 대응하는 로드 정보를 저장하는 쓰레드 로드 테이블에 업데이트하는 단계, 및
    상기 측정된 쓰레드별 로드 정보에 기초하여 멀티코어의 로드가 불균형한지 여부를 결정하는 단계를 포함하고,
    상기 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 상기 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 단계는,
    상기 업데이트된 로드 정보에 기초하여 상기 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율을 결정하는 단계; 및
    상기 변경된 코어 할당 및 코어 이용율에 기초하여 상기 복수 개의 쓰레드의 코어 할당 및 코어 이용율을 설정하는 단계를 포함하는 방법.
  11. 멀티코어 시스템의 로드 밸런싱 방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 방법은,
    하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하는 단계;
    불균형하다고 결정되는 경우 상기 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 동작만을 중지하는 단계;
    상기 적어도 하나의 쓰레드의 상기 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 단계; 및
    코어 할당이 변경된 후, 할당이 변경된 코어에서 상기 적어도 하나의 쓰레드의 동작을 재개하는 단계; 를 포함하는 기록매체.
KR1020080133478A 2008-12-24 2008-12-24 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법 KR101553650B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080133478A KR101553650B1 (ko) 2008-12-24 2008-12-24 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080133478A KR101553650B1 (ko) 2008-12-24 2008-12-24 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20100074920A KR20100074920A (ko) 2010-07-02
KR101553650B1 true KR101553650B1 (ko) 2015-09-16

Family

ID=42637394

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080133478A KR101553650B1 (ko) 2008-12-24 2008-12-24 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101553650B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725828B2 (en) 2016-03-18 2020-07-28 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same
KR20230034697A (ko) 2021-09-03 2023-03-10 주식회사 케이티 서버의 리소스 제어방법 및 이를 이용하는 서버

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101738641B1 (ko) 2010-12-17 2017-05-23 삼성전자주식회사 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법
KR101869325B1 (ko) * 2011-12-13 2018-06-21 한국전자통신연구원 이종 멀티코어 환경에서의 코어 배정 장치
KR101834195B1 (ko) 2012-03-15 2018-04-13 삼성전자주식회사 다중코어 시스템 및 로드 밸런싱 방법
KR101684677B1 (ko) * 2013-12-26 2016-12-09 한국전자통신연구원 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법
KR102197874B1 (ko) * 2014-09-01 2021-01-05 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 쓰레드 스케줄링 방법
KR102509988B1 (ko) * 2015-12-15 2023-03-14 삼성전자주식회사 커넥션 기반 로드 밸런싱을 위한 저장 시스템 및 방법
CN110333911A (zh) * 2019-07-04 2019-10-15 北京迈格威科技有限公司 一种文件包读取方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204268A1 (en) 2006-02-27 2007-08-30 Red. Hat, Inc. Methods and systems for scheduling processes in a multi-core processor environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204268A1 (en) 2006-02-27 2007-08-30 Red. Hat, Inc. Methods and systems for scheduling processes in a multi-core processor environment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725828B2 (en) 2016-03-18 2020-07-28 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same
US11385935B2 (en) 2016-03-18 2022-07-12 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same
KR20230034697A (ko) 2021-09-03 2023-03-10 주식회사 케이티 서버의 리소스 제어방법 및 이를 이용하는 서버

Also Published As

Publication number Publication date
KR20100074920A (ko) 2010-07-02

Similar Documents

Publication Publication Date Title
KR101553650B1 (ko) 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
CN109936604B (zh) 一种资源调度方法、装置和***
KR101953906B1 (ko) 태스크 스케줄링 방법 및 장치
US8984519B2 (en) Scheduler and resource manager for coprocessor-based heterogeneous clusters
US9021490B2 (en) Optimizing allocation of computer resources by tracking job status and resource availability profiles
KR101651871B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
US8875146B2 (en) Systems and methods for bounding processing times on multiple processing units
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
US8812639B2 (en) Job managing device, job managing method and job managing program
KR101812583B1 (ko) 태스크 할당 장치, 태스크 할당 방법 및 컴퓨터로 읽을 수 있는 저장 매체
US8316365B2 (en) Computer system
KR101640848B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
US20140372810A1 (en) Apparatus and method for monitoring performance of cores based on multi-core processor
JP2008191949A (ja) マルチコアシステムおよびマルチコアシステムの負荷分散方法
JP5765423B2 (ja) マルチコアプロセッサシステム、およびスケジューリング方法
KR20100070556A (ko) 실시간 스케쥴링 방법 및 이를 이용한 중앙처리장치
KR20110075297A (ko) 병렬도를 고려한 병렬 처리 장치 및 방법
KR20130088513A (ko) 멀티코어 시스템의 태스크 분배 방법 및 장치
US10733022B2 (en) Method of managing dedicated processing resources, server system and computer program product
KR101694302B1 (ko) 이기종 멀티코어 프로세서 시스템의 관리 장치 및 방법
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
CN113010309B (zh) 集群资源调度方法、装置、存储介质、设备和程序产品
US20160055037A1 (en) Analysis controller, analysis control method and computer-readable medium
Markthub et al. Using rcuda to reduce gpu resource-assignment fragmentation caused by job scheduler
KR102014246B1 (ko) 리소스 통합관리를 위한 메소스 처리 장치 및 방법

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: 20180820

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190814

Year of fee payment: 5