[go: up one dir, main page]

KR101553650B1 - Load Balancing Device and Method in Multicore Systems - Google Patents

Load Balancing Device and Method in Multicore Systems 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
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020080133478A
Other languages
Korean (ko)
Other versions
KR20100074920A (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 삼성전자주식회사
Priority to KR1020080133478A priority Critical patent/KR101553650B1/en
Publication of KR20100074920A publication Critical patent/KR20100074920A/en
Application granted granted Critical
Publication of KR101553650B1 publication Critical patent/KR101553650B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

데이터 분배를 변경하는 것이 아닌 쓰레드의 코어 할당의 변경을 통해서 오버헤드가 거의 없는 부하 분배를 달성하기 위한 멀티코어 시스템에서 로드 밸런싱 장치 및 방법이 개시된다. 일 실시예에 따르면, 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하고, 불균형하다고 결정되는 경우 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 코어 할당을 변경함으로써 로드 밸런싱을 수행한다. 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율에 기초하여 복수 개의 쓰레드를 멀티코어에 로딩하게 된다. A load balancing apparatus and method in a multicore system for achieving load distribution with little overhead through the modification of the core allocation of a thread rather than changing the data distribution is disclosed. According to one embodiment, it may be determined whether the load of a multicore allocated to a plurality of threads per core is unbalanced, and if it is determined to be unbalanced, the core allocation for at least one thread of the plurality of threads may be changed Thereby performing load balancing. A plurality of threads are loaded on the multicore based on the allocation of the plurality of threads to the multicore and the core utilization rate.

로드 밸런싱, 멀티코어, 쓰레드, 코어 이용율 Load balancing, multicore, thread, core utilization

Description

멀티코어 시스템에서의 로드 밸런싱 장치 및 방법{Apparatus and method for load balancing in multi-core system} [0001] Apparatus and method for load balancing in multi-core systems [

본 발명의 하나 이상의 양상은 멀티코어 기반 시스템에 관한 것으로, 더욱 상세하게는 멀티코어에서 계산 부하를 효과적으로 분배하는 장치 및 방법에 관한 것이다. One or more aspects of the present invention pertain to multicore based systems, and more particularly, to an apparatus and method for effectively distributing computational loads in multicore.

3D 그래픽이나 멀티 모달 UI(Multi-Modal User Interface) 등은 물리적인 현상을 시뮬레이션하여 결과를 계산하기 때문에 많은 연산 능력이 요구된다. 이러한 요구를 충족시키기 위하여 MPSoC(Multiprocessor System-on-chip)과 같은 멀티코어 시스템들이 제공되고 있다. 그러한, 멀티코어 시스템은 입력 데이터들에 따라 각 코어마다 요구되는 연산 능력이 달라지게 되기 때문에 전체 시스템의 성능이 모든 코어 중에서 가장 많은 연산 능력을 요구받는 코어의 성능과 같아지게 된다. 이러한 상황을 극복하기 위하여 동적으로 코어 간의 로드 밸런싱을 통해서 전체 성능을 개선하기 위한 방법이 연구되고 있다. 3D graphics or multi-modal user interface (UI) require computational power because they simulate physical phenomena and calculate the results. Multicore systems such as Multiprocessor System-on-Chip (MPSoC) are being offered to meet these needs. Such a multi-core system has a different computation power required for each core according to input data, so that the performance of the entire system becomes equal to the performance of the cores requiring the most computation power among all cores. To overcome this situation, a method is being studied to improve overall performance by dynamically balancing load between cores.

멀티코어에서 코어들 사이의 계산 부하를 분산시키는 문제는 분산 컴퓨팅 만큼이나 오래된 문제이다. 이러한 부하 분산의 문제에 대한 연구의 대부분은 분산 환경이나 그리드 컴퓨팅을 위한 기법들로 각 코어에 입력 데이터를 분배하는 방식을 연구하고 있다. The problem of distributing computing loads among cores in multicore is as old as distributed computing. Most of the researches on this problem of load distribution are studying a way to distribute input data to each core with techniques for distributed environment or grid computing.

데이터 분배를 변경하는 것이 아닌 쓰레드의 코어 할당의 변경을 통해서 오버헤드가 거의 없는 부하 분배를 달성하기 위한 멀티코어 시스템에서 로드 밸런싱 장치 및 방법이 제안된다.A load balancing apparatus and method is proposed in a multicore system for achieving load distribution with little overhead by changing the core allocation of a thread rather than changing the data distribution.

일 양상에 따른 멀티코어 시스템의 로드 밸런싱 장치는, 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하고, 불균형하다고 결정되는 경우 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 로드 관리부; 및 멀티코어에 할당된 각 쓰레드에 대응하는 로드 정보를 포함하는 쓰레드 로드 테이블을 포함한다. A load balancing apparatus of a multicore system according to an aspect of the present invention determines whether a load of a multicore core allocated to a plurality of threads per core is unbalanced and determines whether a load of at least one thread among a plurality of threads A load management unit for performing load balancing by changing the allocation to the core; And a thread load table including load information corresponding to each thread allocated to the multicore.

로드 관리부에 의해 결정되는 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율에 기초하여 멀티코어에 로딩(loading) 또는 언로딩(unloading)하는 스케줄러를 더 포함할 수 있다. 스케줄러는 멀티코어 각각의 로드 밸런싱을 위하여 로드 관리부에 의해 적어도 하나의 쓰레드에 대한 코어 할당이 변경되어야 하는 것으로 결정된 경우, 할당이 변경되어야 하는 적어도 하나의 쓰레드의 동작만을 중지하고, 코어 할당이 변경된 후, 할당이 변경된 코어에서 적어도 하나의 쓰레드의 동작을 재개할 수 있다. And a scheduler for loading or unloading the multicore based on the allocation of the plurality of threads to the multicore determined by the load management unit and the core utilization rate. If the scheduler determines that the core allocation for at least one thread should be changed by the load management unit for load balancing of each of the multi-cores, the scheduler stops only the operation of at least one thread whose allocation is to be changed, , The operation of at least one thread in the core whose allocation has been changed can be resumed.

쓰레드 로드 정보는 각 쓰레드마다 쓰레드 식별 정보, 쓰레드에 대한 로드 정보, 쓰레드가 할당된 코어 정보, 코어에서 쓰레드를 처리하기 위한 코어의 이용율 정보를 포함한다. The thread load information includes thread identification information for each thread, load information for the thread, core information allocated to the thread, and utilization information of the core for processing the thread in the core.

로드 관리부는 각 코어의 쓰레드별로 로드를 측정하고, 측정된 쓰레드별 로드 정보를 쓰레드 로드 테이블에 업데이트하고, 코어 간의 로드가 불균형한지 여부를 결정하고, 코어 간 로드가 불균형하다고 결정되면 로드 밸런싱 요청을 전송하는 성능 측정부; 로드 밸런싱 요청을 수신하고, 업데이트된 로드 정보에 기초하여 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율을 결정하고, 결정된 할당 및 코어 이용율을 쓰레드 로드 테이블에 업데이트하는 로드 밸런싱 수행부; 및 업데이트된 할당 및 코어 이용율에 기초하여 복수 개의 쓰레드의 코어 할당 및 코어 이용율을 설정하는 코어 할당부를 포함한다. The load management unit measures the load for each thread of each core, updates the thread load information for each measured thread to the thread load table, determines whether the load between the cores is unbalanced, and if the load between the cores is determined to be unbalanced, A transmitting performance measuring unit; A load balancing execution unit for receiving a load balancing request, determining a quota and a core utilization rate for a plurality of threads of a plurality of threads based on updated load information, and updating the determined allocation and core utilization ratios in a thread load table; And a core allocation unit for setting a core allocation and a core utilization ratio of the plurality of threads based on the updated allocation and the core utilization ratio.

다른 양상에 따른 멀티코어 시스템의 로드 밸런싱 방법은, 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하는 단계; 및 불균형하다고 결정되는 경우 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 단계; 를 포함한다. According to another aspect of the present invention, there is provided a load balancing method for a multi-core system, the multi-core load balancing method comprising: determining whether a load of a multi-core allocated to a plurality of threads per core is unbalanced; And performing load balancing by changing allocation of at least one thread of the plurality of threads to a multicore if it is determined to be unbalanced; .

일 실시예에 따르면, 코어 할당의 비용이 분산 환경에 비해서 훨씬 적은 MPSoC 환경에서 적합한 동적 로드 밸런싱 기법을 제공하여 불필요한 쓰레드들의 대기 시간(waiting time)을 줄이고 쓰레드들 사이의 데이터 재분배 오버헤드를 줄임으로써 MPSoC향 임베디드 시스템의 성능을 향상시킬 수 있다. According to one embodiment, by providing an appropriate dynamic load balancing scheme in a MPSoC environment where the cost of core allocation is much less than in a distributed environment, reducing the waiting time of unnecessary threads and reducing the data redistribution overhead between threads The performance of the MPSoC embedded system can be improved.

오버헤드가 적은 동적 로드 밸런싱 기법을 제공하기 때문에 루프 단위에서도 로드 밸런싱이 가능한 미세 단위 로드 밸런싱(fine grained load-balancing) 기법을 제공할 수 있다. Because it provides dynamic load balancing with less overhead, it can provide a fine grained load-balancing technique that enables load balancing even on a per-loop basis.

이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. In addition, the terms described below are defined in consideration of the functions of the present invention, which may vary depending on the intention of the user, the operator, or the custom. Therefore, the definition should be based on the contents throughout this specification.

도 1a 및 도 1b는 일 실시예에 따른 멀티코어 시스템의 로드 밸런싱 기법을 나타내는 도면이다. FIGS. 1A and 1B illustrate a load balancing technique for a multicore system according to an embodiment.

도 1a 및 도 1b는 2개의 코어 즉, 제1 코어(110) 및 제2 코어(120)가 버스(130)에 연결되어 쓰레드들을 처리하는 멀티코어 시스템을 나타낸다. 도 1a 및 도 1b에서 타원(11, 21, 31 및 41)은 해당 코어에서 수행되는 쓰레드를 나타낸다. 도 1a 도 1b에서 제1 코어(110) 및 제2 코어(120)에는 각각 2개의 쓰레드가 할당되어 있다. 1A and 1B illustrate a multicore system in which two cores, a first core 110 and a second core 120, are coupled to the bus 130 to process threads. In FIGS. 1A and 1B, the ellipses 11, 21, 31, and 41 represent threads executed in the corresponding core. 1B, two threads are allocated to the first core 110 and the second core 120, respectively.

쓰레드(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 아래의 숫자는 각 데이터를 처리하는데 필요한 로드를 나타낸다. The rectangle 12 below the thread 11 represents the core usage occupied by the thread 11 in the first core 110 and the rectangle 22 below the thread 21 represents the core usage occupied by the first core 110. [ Represents the core usage occupied by the thread 21 in the thread. The quadrangles 32 and 42 under the threads 31 and 41 also indicate the core utilization rate of the corresponding thread in the second core 120, respectively. The core utilization rate is a ratio of the CPU usage time (CPU time) used to process each thread when a plurality of threads are allocated to one core (or core processor). In addition, A (10), B (20), C (30) and D (40) represent the data allocated to each thread, and the numbers under A, B, C and D indicate the load .

도 1a는 일 실시예에 따른 로드 밸런싱 수행 전 멀티코어 시스템을 나타낸다. FIG. 1A shows a multi-core system before load balancing according to one embodiment.

제1 코어(110) 및 제2 코어(120)가 각 쓰레드를 처리하는데 할당된 코어 이용율은 동일하게 50%씩 차지하고 있다고 가정한다. 제1 코어(110)의 데이터 처리 로드는 8이고, 제2 코어(120)의 데이터 처리 로드는 12이므로, 멀티코어의 로드 불균형이 감지될 수 있다. It is assumed that the first core 110 and the second core 120 occupy the same 50% of the core utilization allocated for processing each thread. The data processing load of the first core 110 is 8 and the data processing load of the second core 120 is 12, so that the load imbalance of the multicore can be detected.

통상적인 로드 밸런싱 기법은 각 코어에 하나의 쓰레드가 할당되며, 각 코어별 로드를 측정한 후 글로벌 동기화 기법에 의해 전체 시스템의 동작을 일시 정지한 후 동적으로 데이터를 재분배하고, 전체 시스템을 다시 수행하는 이른바 스탑-앤-리파티션(stop-and-repartition) 기반 로드 밸런싱 기법들을 이용한다. 이러한, 스탑-앤-리파티션 기반의 동적 로드 밸런싱 기법들은 3D 그래픽(3D Graphics)과 같이 입력 데이터에 따라 로드의 변화가 많은 응용에 대해서는 적합하지 않다. 그 이유는 모든 쓰레드를 모두 수행 정지시키는 오버헤드와 데이터 재분배에 의한 오버헤드가 로드를 밸런싱함으로써 얻는 성능 향상보다 많아져서 로드 밸런싱의 효 과가 감소될 수 있기 때문이다. In a typical load balancing scheme, one thread is allocated to each core. After the load of each core is measured, the operation of the entire system is suspended by the global synchronization technique, and the data is dynamically redistributed. Called " stop-and-repartition " based load balancing techniques. These dynamic load balancing techniques based on the stop-and-re partition are not suitable for applications with a large load change according to input data such as 3D graphics. The reason is that the overhead of stopping all threads at all, and the overhead of data redistribution, are more than the performance gains of balancing the load, reducing the effect of load balancing.

이에 비하여, 일 실시예에 따르면, 각 코어에 복수 개의 쓰레드를 할당시킨 상태에서, 쓰레드의 코어 할당을 변경함으로써 로드 밸런싱을 수행함으로써 로드 불균형을 해소한다. 또한, 이 경우 전체 쓰레드들을 일시 정지하는 것이 아니라, 각 개별 쓰레드별로 미리 정해진 시점에서 일시 정지 후 코어 할당과 코어 이용율을 변경 조정한 후, 일시 정지했던 쓰레드를 다시 수행한다. On the other hand, according to one embodiment, load balancing is performed by changing the core allocation of the threads while allocating a plurality of threads to each core, thereby eliminating the load imbalance. In this case, instead of pausing all the threads, after temporarily stopping each of the individual threads at a predetermined time, after adjusting the core allocation and the core utilization ratio, the suspended thread is executed again.

도 1b는 일 실시예에 따른 로드 밸런싱 수행 후 멀티코어 시스템을 나타낸다. 1B illustrates a multicore system after performing load balancing according to one embodiment.

도 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%로 조정되었음이 도시되고 있다. 1B is compared with FIG. 1A, the core allocation of the thread 21 is changed from the first core 110 to the second core 120 according to the modification of the core allocation of the thread according to the embodiment, The core allocation of the first core 110 is changed from the second core 120 to the first core 110. [ In accordance with the change in the core throughput of the thread whose core usage rate of the thread 11 and the thread 21 set to 50% in the first core 110 is changed according to the change of the core allocation, And adjusted to 20% and 80% for the thread 41, respectively. The core utilization rate of the thread 31 and the thread 41 that have been set to 50% in the second core 120 is also 40 (n) for the thread 31 and the thread 21 in accordance with the data throughput change according to the core allocation of the changed thread. % ≪ / RTI > and 60%, respectively.

따라서, 일 실시예에 따른 로드 밸런싱 방법에 따르면, 통상의 방법과는 달리 글로벌 동기화가 없기 때문에 다른 쓰레드들의 불필요한 대기 시간을 줄일 수 있고, 로드 밸런스 조정을 위하여 전체 쓰레드 중 일부 쓰레드들의 코어 할당을 조 정하기 때문에 오버헤드를 줄일 수 있다. Therefore, according to the load balancing method according to the embodiment, unnecessary waiting time of other threads can be reduced because there is no global synchronization unlike the conventional method, and the core allocation of some threads among all threads is adjusted The overhead can be reduced.

도 2는 일 실시예에 따른 로드 밸런싱을 수행하는 멀티코어 시스템의 구성을 나타내는 블록도이다. 2 is a block diagram illustrating a configuration of a multicore system for performing load balancing according to an embodiment.

도 2를 참조하면, 멀티코어 시스템(200)는 로드 관리부(210), 쓰레드 로드 테이블(220), 스케줄러(230) 및 멀티코어 프로세서(240)를 포함한다. Referring to FIG. 2, the multicore system 200 includes a load management unit 210, a thread load table 220, a scheduler 230, and a multicore processor 240.

로드 관리부(210)는 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하고, 불균형하다고 결정되는 경우 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행한다. 이때, 모든 코어에 대한 쓰레드 할당이 변경될 필요는 없으며, 로드 밸런싱을 위해 일부 코어의 일부 쓰레드의 할당이 변경될 수 있다. The load management unit 210 determines whether or not the loads of the multi-core to which a plurality of threads are allocated per core are unbalanced, and changes the assignment of at least one thread among the plurality of threads to the multi-core when it is determined to be unbalanced Perform load balancing. At this time, the thread allocation for all cores does not need to be changed, and the allocation of some threads of some cores may be changed for load balancing.

쓰레드 로드 테이블(220)은 멀티코어에 할당된 각 쓰레드에 대응하는 로드 정보를 포함하며, 로드 관리부(210)에서 로드 밸런싱에 따른 로드 분배에 필요한 정보를 저장한다. 쓰레드 로드 테이블에 포함되는 정보 구조의 일 예는 도 3에 도시되어 있다. The thread load table 220 includes load information corresponding to each thread allocated to the multicore, and the load management unit 210 stores information necessary for load distribution according to load balancing. An example of the information structure included in the thread load table is shown in FIG.

도 3은 일 실시예에 따른 쓰레드 로드 테이블에 포함되는 정보 구조를 나타내는 도면이다. 3 is a diagram illustrating an information structure included in a thread load table according to an exemplary embodiment of the present invention.

도 3에 도시된 바와 같이, 쓰레드 로드 정보는 각 쓰레드마다 쓰레드 식별 정보(쓰레드 ID), 쓰레드에 대한 로드 정보, 쓰레드가 할당된 코어 정보, 코어에서 쓰레드를 처리하기 위한 코어의 이용율 정보를 포함할 수 있다.As shown in FIG. 3, the thread load information includes thread identification information (thread ID) for each thread, load information for the thread, core information allocated to the thread, and utilization information of the core for processing the thread in the core .

다시 도 2를 참조하면, 스케줄러(230)에 의해 멀티코어(240)의 각 프로세스 마다 복수 개의 쓰레드가 할당된다. 스케줄러(230)는 로드 관리부(210)에 의해 결정되는 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율에 기초하여 쓰레드들을 멀티코어(240)의 각 프로세서에 로딩 또는 언로딩한다. Referring again to FIG. 2, a plurality of threads are allocated to each process of the multicore 240 by the scheduler 230. The scheduler 230 loads or unloads the threads to each processor of the multicore 240 based on the allocation and core utilization of the multicore of the plurality of threads determined by the load management unit 210.

스케줄러(230)는 로드 관리부(210)의 제어에 따라서 멀티코어 각각의 로드 밸런싱을 위하여 로드 관리부(210)에 의해 적어도 하나의 쓰레드에 대한 코어 할당이 변경되어야 하는 것으로 결정된 경우, 할당이 변경되어야 하는 적어도 하나의 쓰레드의 동작만을 중지하고, 코어 할당이 변경된 후, 할당이 변경된 코어에서 적어도 하나의 쓰레드의 동작을 재개한다. 스케줄러(230)는 우선 순위 방식이 아닌 페어 큐잉(fair queueing) 기반의 스케줄링 방식이나 로터리(lottery) 스케줄링 방식을 이용하여 쓰레드의 코어 할당 및 로드를 실시간으로 조정할 수 있다. If it is determined by the load management unit 210 that the core allocation for at least one thread should be changed for load balancing of each of the multi-cores under the control of the load management unit 210, the scheduler 230 must change the allocation Stopping only the operation of at least one thread, and resuming operation of at least one thread in the core whose allocation has changed after the core allocation is changed. The scheduler 230 can adjust the core allocation and loading of threads in real time using a fair queuing based scheduling method or a lottery scheduling method instead of the priority method.

멀티코어(230)는 프로세서 1(241), 프로세서 2(242), 프로세서 3(243) 및 프로세서 4(244)를 포함하는 것으로 도시되어 있으나, 멀티코어(230)에 구성되는 프로세서의 개수에는 제한이 없다. Although the multicore 230 is shown as including processor 1 241, processor 2 242, processor 3 243 and processor 4 244, the number of processors configured in multicore 230 is limited There is no.

도 2에 도시된 바와 같이, 로드 관리부(210)는 성능 측정부(212), 로드 밸런싱 수행부(214), 코어 할당부(216)를 포함하여 구성될 수 있다. 2, the load management unit 210 may include a performance measurement unit 212, a load balancing unit 214, and a core allocation unit 216.

성능 측정부(212)는 각 쓰레드의 로드를 측정(또는 예측)한다. 또한, 성능 측정부(212)는 측정된 쓰레드별 로드 정보를 쓰레드 로드 테이블(220)에 업데이트한다. 성능 측정부(212)는 코어 간의 로드가 불균형한지 여부를 결정하고, 코어 간 로드가 불균형하다고 결정되면 로드 밸런싱 수행부(214)에 새로운 로드 밸런스가 필요하다는 로드 밸런싱 요청을 전송한다. 성능 측정부(212)는 통상의 여러가 지 방법을 이용하여 로드 측정 또는 예측을 할 수 있다. 예를 들어, 각 코어별로 로드의 불균형을 나타내는 값이 설정된 임계값을 넘게 되면, 로드가 불균형한 것으로 결정할 수 있다. The performance measuring unit 212 measures (or predicts) the load of each thread. In addition, the performance measuring unit 212 updates the thread load table 220 with the measured thread load information. The performance measuring unit 212 determines whether the load between the cores is unbalanced, and transmits a load balancing request to the load balancing performing unit 214 that a new load balancing is required if the inter-core load is determined to be unbalanced. The performance measuring unit 212 can perform load measurement or prediction using various conventional methods. For example, if the value indicating the load imbalance for each core exceeds the set threshold, it can be determined that the load is unbalanced.

로드 밸런싱 수행부(214)는 로드의 불균형을 없애고 새로운 정책을 결정한다. 상세하게는, 로드 밸런싱 수행부(214)는 업데이트된 로드 정보에 기초하여 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율을 결정하고, 결정된 할당 및 코어 이용율을 쓰레드 로드 테이블(220)에 업데이트한다. 로드 밸런싱 수행부(214)는 로드 밸런싱을 위한 쓰레드의 코어 할당을 변경하기 위하여, 기존의 여러 가지 방법에 따른 로드 분배 기법을 이용할 수 있다. The load balancing performing unit 214 eliminates the load imbalance and determines a new policy. In more detail, the load balancing execution unit 214 determines allocation and core utilization ratios of the plurality of threads to the multi-core based on the updated load information, and updates the determined allocation and core utilization ratios to the thread load table 220 . The load balancing performing unit 214 may use a load balancing method according to various existing methods to change a core allocation of a thread for load balancing.

코어 할당부(216)는 마지막으로 결정된 정책을 각 쓰레드에 적용시킨다. The core allocator 216 applies the last determined policy to each thread.

즉, 코어 할당부(216)는 업데이트된 할당 및 코어 이용율에 기초하여 복수 개의 쓰레드의 코어 할당 및 코어 이용율을 스케줄러(220)에 전달 및 설정한다. 코어 할당부(216)는 결정된 복수 개의 쓰레드의 코어 할당 및 코어 이용율 정보를 스케줄러(220)이 처리하기에 적합한 형식으로 변경하여 전달할 수 있다. That is, the core allocator 216 transfers and sets the core allocation and the core utilization rate of the plurality of threads to the scheduler 220 based on the updated allocations and the core utilization rates. The core allocation unit 216 may change the core allocation and core utilization rate information of the determined plurality of threads to a format suitable for the scheduler 220 to process and deliver.

일 실시예에 따르면, 코어 할당의 비용이 분산 환경에 비해서 훨씬 적은 MPSoC환경에 적합한 동적 로드 밸런싱 기법을 제공하여, 불필요한 쓰레드들의 대기 시간을 제거하그 쓰레드들 사이의 데이터 재분배 오버헤드를 줄임으로써 MPSoC 향 임베디드 시스템의 성능을 향상시킬 수 있다.According to one embodiment, a dynamic load balancing scheme is provided that is suitable for MPSoC environments where the cost of core allocation is much less than in a distributed environment, thereby eliminating the idle time of unnecessary threads and reducing the data redistribution overhead between threads. The performance of the embedded system can be improved.

또한, 오버헤드가 적은 로드 밸런싱 기법을 제공하기 때문에 기존에 사용할 수 없었던 루프 단위에서도 로드 밸런싱이 가능한 파인 그레인드 로드 밸런싱 기법 을 제공할 수 있다. In addition, it provides a load balancing technique with less overhead, so it can provide fine grained load balancing techniques that can be used for load balancing even on a per-loop basis.

도 4는 일 실시예에 따른 멀티코어 시스템의 로드 밸런싱 방법을 나타내는 순서도이다. 4 is a flowchart illustrating a load balancing method of a multicore system according to an embodiment.

멀티코어에서 하나의 코어 당 복수 개의 쓰레드를 할당하고(S 410), 멀티코어의 로드 불균형이 아니면(S 420), 결정된 쓰레드들의 코어 할당에 따라 복수 개의 쓰레드를 스케줄링하여 처리한다(S 450). 상세하게는, 복수 개의 쓰레드의 멀티코어에 대한 할당 및 쓰레드의 할당에 따라 즉, 코어 할당된 쓰레드의 데이터 처리 로드에 따라 정해지는 코어 이용율에 기초하여 복수 개의 쓰레드가 멀티코어에 로딩되어 데이터가 처리된다. If a plurality of threads are allocated to one core in a multi-core (S410), and if it is not a load unbalance in a multi-core (S420), a plurality of threads are scheduled and processed according to a core allocation of determined threads (S450). More specifically, a plurality of threads are loaded on the multicore based on the allocation of the plurality of threads to the multicore and the allocation of the threads, that is, based on the core usage rate determined according to the data processing load of the core allocated thread, do.

멀티코어의 로드가 불균형하다고 결정되면(S 420), 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행한다(S 430). 로드 밸런싱을 위해 변경된 코어 할당에 기초하여 쓰레드가 처리된다(S 440). 멀티코어 각각의 로드 밸런싱을 위하여 복수 개의 쓰레드 중 적어도 하나의 쓰레드에 대한 할당이 변경되어야 하는 것으로 결정된 경우, 적어도 하나의 쓰레드의 동작만을 중지하고, 코어 할당이 변경된 후, 할당이 변경된 코어에서 적어도 하나의 쓰레드의 동작을 재개할 수 있다. If it is determined that the load of the multicore is unbalanced (S 420), load balancing is performed by changing allocation of at least one thread among the plurality of threads to the multicore (S 430). The threads are processed based on the changed core allocation for load balancing (S440). If it is determined that the allocation for at least one thread of the plurality of threads should be changed for load balancing of each of the multi-cores, only the operation of the at least one thread is stopped, and after the core allocation is changed, The operation of the thread of FIG.

복수 개의 쓰레드 중 적어도 하나의 쓰레드의 멀티코어에 대한 할당을 변경하기 위하여, 각 쓰레드에 대응하는 로드 정보를 관리할 수 있다. 여기에서, 쓰레드에 대응하는 로드 정보는 각 쓰레드마다 쓰레드 식별 정보, 해당 쓰레드에 대한 로드 정보, 해당 쓰레드가 할당된 코어 정보, 코어에서 해당 쓰레드를 처리하기 위 한 코어의 이용율 정보를 포함할 수 있다. In order to change the allocation of at least one thread among the plurality of threads to the multicore, load information corresponding to each thread can be managed. Here, the load information corresponding to the thread may include thread identification information for each thread, load information for the thread, core information allocated to the thread, and utilization information of the core for processing the thread in the core .

본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.One aspect of the present invention may be embodied as computer readable code on a computer readable recording medium. The code and code segments implementing the above program can be easily deduced by a computer programmer in the field. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical disk, and the like. The computer-readable recording medium may also be distributed over a networked computer system and stored and executed in computer readable code in a distributed manner.

이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다. It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention. Therefore, the scope of the present invention is not limited to the above-described embodiments, but should be construed to include various embodiments within the scope of the claims.

도 1a 및 도 1b는 일 실시예에 따른 멀티코어 시스템의 로드 밸런싱 기법을 나타내는 도면이고,1A and 1B are diagrams illustrating a load balancing technique of a multicore system according to an embodiment,

도 2는 일 실시예에 따른 로드 밸런싱을 수행하는 멀티코어 시스템의 구성을 나타내는 블록도이고,2 is a block diagram showing a configuration of a multicore system for performing load balancing according to an embodiment,

도 3은 일 실시예에 따른 쓰레드 로드 테이블에 포함되는 정보 구조를 나타내는 도면이고, 3 is a diagram illustrating an information structure included in a thread load table according to an embodiment,

도 4는 일 실시예에 따른 멀티코어 시스템의 로드 밸런싱 방법을 나타내는 순서도이다. 4 is a flowchart illustrating a load balancing method of a multicore system according to an embodiment.

Claims (11)

멀티코어 시스템의 로드 밸런싱 장치로서, A load balancing apparatus for a multicore system, 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하고, 불균형하다고 결정되는 경우 상기 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 상기 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 로드 관리부;Determining whether a load of a plurality of threads allocated to a plurality of threads per core is unbalanced, and performing load balancing by changing allocation of at least one thread among the plurality of threads to the multicore when it is determined to be unbalanced ; 상기 멀티코어에 할당된 각 쓰레드에 대응하는 로드 정보를 포함하는 쓰레드 로드 테이블; 및A thread load table including load information corresponding to each thread allocated to the multicore; And 멀티코어의 로드 밸런싱을 위하여 상기 로드 관리부에 의해 상기 적어도 하나의 쓰레드에 대한 코어 할당이 변경되어야 하는 것으로 결정된 경우, 할당이 변경되어야 하는 적어도 하나의 쓰레드의 동작만을 중지하고, 코어 할당이 변경된 후, 할당이 변경된 코어에서 상기 적어도 하나의 쓰레드의 동작을 재개하는 스케줄러; 를 포함하는 장치. If it is determined by the load management unit that the core allocation for the at least one thread should be changed for load balancing of the multicore, stopping only the operation of at least one thread whose allocation is to be changed, A scheduler for resuming operation of the at least one thread in a core whose allocation has been changed; / RTI > 제1항에 있어서, The method according to claim 1, 상기 스케줄러는 상기 로드 관리부에 의해 결정되는 상기 복수 개의 쓰레드의 상기 멀티코어에 대한 할당 및 코어 이용율에 기초하여 상기 복수 개의 쓰레드를 상기 멀티코어에 로딩 또는 언로딩하는 장치. Wherein the scheduler loads or unloads the plurality of threads to the multicore based on an allocation and a core utilization rate of the plurality of threads to the multicore determined by the load management unit. 삭제delete 제1항에 있어서, The method according to claim 1, 상기 쓰레드에 대응하는 로드 정보는 각 쓰레드마다 쓰레드 식별 정보, 해당 쓰레드에 대한 로드 정보, 해당 쓰레드가 할당된 코어 정보, 상기 코어에서 상기 해당 쓰레드를 처리하기 위한 상기 코어의 이용율 정보를 포함하는 장치. Wherein the load information corresponding to the thread includes thread identification information for each thread, load information for the thread, core information allocated to the thread, and utilization information of the core for processing the thread in the core. 제1항에 있어서, The method according to claim 1, 상기 로드 관리부는The load management unit 각 코어의 쓰레드별로 로드를 측정하고, 측정된 쓰레드별 로드 정보를 상기 쓰레드 로드 테이블에 업데이트하고, 코어 간의 로드가 불균형한지 여부를 결정하고, 코어 간 로드가 불균형하다고 결정되면 로드 밸런싱 요청을 전송하는 성능 측정부; Load on each thread of each core is measured, the measured load-by-thread load information is updated in the thread load table, the load between the cores is determined to be unbalanced, and the load balancing request is transmitted when the inter-core load is determined to be unbalanced Performance Measurement Department; 상기 로드 밸런싱 요청을 수신하고, 상기 업데이트된 로드 정보에 기초하여 상기 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율을 결정하고, 상기 결정된 할당 및 코어 이용율을 상기 쓰레드 로드 테이블에 업데이트하는 로드 밸런싱 수행부; 및Performing load balancing to receive the load balancing request, determine allocation and core utilization rates for the multi-cores of the plurality of threads based on the updated load information, and update the determined allocation and core utilization rates in the thread load table part; And 상기 업데이트된 상기 할당 및 코어 이용율에 기초하여 상기 복수 개의 쓰레드의 코어 할당 및 코어 이용율을 설정하는 코어 할당부를 포함하는 장치. And a core allocator configured to set a core allocation and a core utilization rate of the plurality of threads based on the updated allocations and core utilization rates. 멀티코어 시스템의 로드 밸런싱 장치의 로드 밸런싱 방법으로서, A load balancing method of a load balancing apparatus of a multicore system, 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하는 단계;Determining whether a load of the multi-core to which a plurality of threads per core is allocated is unbalanced; 불균형하다고 결정되는 경우 상기 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 동작만을 중지하는 단계;Stopping only the operation of at least one thread among the plurality of threads when it is determined to be unbalanced; 상기 적어도 하나의 쓰레드의 상기 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 단계; 및Performing load balancing by changing the allocation of the at least one thread to the multicore; And 코어 할당이 변경된 후, 할당이 변경된 코어에서 상기 적어도 하나의 쓰레드의 동작을 재개하는 단계; 를 포함하는 방법. Resuming the operation of the at least one thread in a core whose allocation has changed after the core allocation is changed; ≪ / RTI > 제6항에 있어서, The method according to claim 6, 상기 로드 밸런싱을 수행하는 단계 이후에,After performing the load balancing, 상기 복수 개의 쓰레드의 상기 멀티코어에 대한 할당 및 코어 이용율에 기초하여 상기 복수 개의 쓰레드를 상기 멀티코어에 로딩 또는 언로딩하는 단계를 더 포함하는 방법. Further comprising loading or unloading the plurality of threads to the multicore based on the allocation of the plurality of threads to the multicore and the core utilization rate. 삭제delete 제6항에 있어서, The method according to claim 6, 상기 로드 밸런싱을 수행하는 단계 이후에,After performing the load balancing, 상기 쓰레드에 대응하는 로드 정보를 관리하는 단계를 더 포함하고, Further comprising managing load information corresponding to the thread, 상기 쓰레드에 대응하는 로드 정보는 각 쓰레드마다 쓰레드 식별 정보, 해당 쓰레드에 대한 로드 정보, 해당 쓰레드가 할당된 코어 정보, 상기 코어에서 상기 해당 쓰레드를 처리하기 위한 상기 코어의 이용율 정보를 포함하는 방법. Wherein the load information corresponding to the thread includes thread identification information for each thread, load information for the thread, core information allocated to the thread, and utilization information of the core for processing the thread in the core. 제9항에 있어서, 10. The method of claim 9, 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어 각각의 로드가 불균형한지 여부를 결정하는 단계는, Determining whether the load of each of the multi-cores allocated to a plurality of threads per core is unbalanced, 각 코어의 쓰레드별로 로드를 측정하고, 측정된 로드 정보를 쓰레드에 대응하는 로드 정보를 저장하는 쓰레드 로드 테이블에 업데이트하는 단계, 및Measuring the load for each thread of each core, updating the measured load information to a thread load table storing load information corresponding to the thread, and 상기 측정된 쓰레드별 로드 정보에 기초하여 멀티코어의 로드가 불균형한지 여부를 결정하는 단계를 포함하고, Determining whether the load of the multicore is unbalanced based on the measured thread-specific load information, 상기 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 상기 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 단계는, Performing load balancing by changing an allocation of at least one thread among the plurality of threads to the multicore, 상기 업데이트된 로드 정보에 기초하여 상기 복수 개의 쓰레드의 멀티코어에 대한 할당 및 코어 이용율을 결정하는 단계; 및Determining allocation and core utilization for the plurality of threads based on the updated load information; And 상기 변경된 코어 할당 및 코어 이용율에 기초하여 상기 복수 개의 쓰레드의 코어 할당 및 코어 이용율을 설정하는 단계를 포함하는 방법. And setting core allocation and core utilization of the plurality of threads based on the modified core allocation and core utilization. 멀티코어 시스템의 로드 밸런싱 방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 방법은,A computer-readable recording medium having recorded thereon a program for implementing a load balancing method of a multicore system, 하나의 코어 당 복수 개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지 여부를 결정하는 단계;Determining whether a load of the multi-core to which a plurality of threads per core is allocated is unbalanced; 불균형하다고 결정되는 경우 상기 복수 개의 쓰레드 중 적어도 하나의 쓰레드의 동작만을 중지하는 단계;Stopping only the operation of at least one thread among the plurality of threads when it is determined to be unbalanced; 상기 적어도 하나의 쓰레드의 상기 멀티코어에 대한 할당을 변경함으로써 로드 밸런싱을 수행하는 단계; 및Performing load balancing by changing the allocation of the at least one thread to the multicore; And 코어 할당이 변경된 후, 할당이 변경된 코어에서 상기 적어도 하나의 쓰레드의 동작을 재개하는 단계; 를 포함하는 기록매체.Resuming the operation of the at least one thread in a core whose allocation has changed after the core allocation is changed; ≪ / RTI >
KR1020080133478A 2008-12-24 2008-12-24 Load Balancing Device and Method in Multicore Systems Active KR101553650B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080133478A KR101553650B1 (en) 2008-12-24 2008-12-24 Load Balancing Device and Method in Multicore Systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080133478A KR101553650B1 (en) 2008-12-24 2008-12-24 Load Balancing Device and Method in Multicore Systems

Publications (2)

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

Family

ID=42637394

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080133478A Active KR101553650B1 (en) 2008-12-24 2008-12-24 Load Balancing Device and Method in Multicore Systems

Country Status (1)

Country Link
KR (1) KR101553650B1 (en)

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 (en) 2021-09-03 2023-03-10 주식회사 케이티 Method for controlling resources of server and server using the same

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101738641B1 (en) 2010-12-17 2017-05-23 삼성전자주식회사 Apparatus and method for compilation of program on multi core system
KR101869325B1 (en) * 2011-12-13 2018-06-21 한국전자통신연구원 Core allocation apparatus in different multi-core
KR101834195B1 (en) 2012-03-15 2018-04-13 삼성전자주식회사 System and Method for Balancing Load on Multi-core Architecture
KR101684677B1 (en) * 2013-12-26 2016-12-09 한국전자통신연구원 Apparatus and method for optimizing system performance of multi-core system
KR102197874B1 (en) * 2014-09-01 2021-01-05 삼성전자주식회사 System on chip including multi-core processor and thread scheduling method thereof
KR102509988B1 (en) * 2015-12-15 2023-03-14 삼성전자주식회사 Storage system and method for connection-based load balancing
CN110333911A (en) * 2019-07-04 2019-10-15 北京迈格威科技有限公司 A kind of file packet read method and device

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 (en) 2021-09-03 2023-03-10 주식회사 케이티 Method for controlling resources of server and server using the same

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101553650B1 (en) Load Balancing Device and Method in Multicore Systems
KR101953906B1 (en) Apparatus for scheduling task
KR101651871B1 (en) Job Allocation Method on Multi-core System and Apparatus thereof
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
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
CN109936604A (en) A resource scheduling method, device and system
KR101812583B1 (en) Apparatus or task assignment, method for task assignment and a computer-readable storage medium
US9207977B2 (en) Systems and methods for task grouping on multi-processors
US8316365B2 (en) Computer system
KR101640848B1 (en) Job Allocation Method on Multi-core System and Apparatus thereof
US20140372810A1 (en) Apparatus and method for monitoring performance of cores based on multi-core processor
US10733022B2 (en) Method of managing dedicated processing resources, server system and computer program product
HUP0301326A2 (en) Method and system for managing workload in a computing environment, as well as computer program for implementing the method
JP2008191949A (en) Multi-core system, and method for distributing load of the same
JP5765423B2 (en) Multi-core processor system and scheduling method
KR101694302B1 (en) Apparatus and method foe managing heterogeneous multicore processor system
CN113010309A (en) Cluster resource scheduling method, device, storage medium, equipment and program product
US9983911B2 (en) Analysis controller, analysis control method and computer-readable medium
KR101639947B1 (en) Hadoop preemptive deadline constraint scheduling method, execution program thereof method and recorded medium of the program
KR102014246B1 (en) Mesos process apparatus for unified management of resource and method for the same
KR101952221B1 (en) Efficient Multitasking GPU with Latency Minimization and Cache boosting
JP2021092904A (en) CPU resource management device

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

FPAY Annual fee payment

Payment date: 20180820

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

FPAY Annual fee payment

Payment date: 20190814

Year of fee payment: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 10

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 11