KR101953906B1 - Apparatus for scheduling task - Google Patents
Apparatus for scheduling task Download PDFInfo
- Publication number
- KR101953906B1 KR101953906B1 KR1020160044176A KR20160044176A KR101953906B1 KR 101953906 B1 KR101953906 B1 KR 101953906B1 KR 1020160044176 A KR1020160044176 A KR 1020160044176A KR 20160044176 A KR20160044176 A KR 20160044176A KR 101953906 B1 KR101953906 B1 KR 101953906B1
- Authority
- KR
- South Korea
- Prior art keywords
- task
- processor
- data
- gpu
- information
- Prior art date
Links
- 238000007726 management method Methods 0.000 claims abstract description 45
- 238000013500 data storage Methods 0.000 claims abstract description 27
- 238000000034 method Methods 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 23
- 230000003068 static effect Effects 0.000 claims description 3
- 230000010365 information processing Effects 0.000 claims 1
- 238000012360 testing method Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000002618 waking effect 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
태스크 스케줄링 장치가 제공된다. 이 장치는, 입력되는 데이터를 저장하는 데이터 저장부; 상기 데이터 저장부에 저장된 데이터를 단위 시험을 통해 결정한 초기값 또는 작업량 분배 정보에 따라 CPU 프로세서 또는 GPU 프로세서에 할당하도록 태스크를 생성하고 스케줄링하는 태스크 관리부; 시스템 상태 정보 또는 상기 태스크 관리부를 통해 CPU 프로세서 또는 GPU 프로세서에서 처리된 태스크 이력 정보를 포함한 성능 프로파일 정보를 저장 관리하는 프로파일 관리부; 및 상기 프로파일 관리부에서 저장 관리되는 성능 프로파일 정보를 분석하여 CPU 프로세서 또는 GPU 프로세서에 할당할 태스크의 비율과 작업량을 동적으로 조절하여 작업량 분배 정보를 생성하고 상기 태스크 관리부에 전달하는 작업량 분배부를 포함한다.A task scheduling apparatus is provided. The apparatus comprises: a data storage unit for storing input data; A task manager for generating and scheduling tasks to be allocated to a CPU processor or a GPU processor according to an initial value or workload distribution information determined through a unit test; A profile management unit for storing performance status information including system status information or task history information processed by the CPU processor or the GPU processor through the task management unit; And a workload distribution unit for analyzing the performance profile information stored and managed by the profile management unit and dynamically adjusting a ratio of a task to be allocated to a CPU processor or a GPU processor and a workload to generate workload distribution information and delivering the information to the task management unit.
Description
본 발명은 태스크 스케줄링 방법 및 장치에 관한 것으로서, 보다 구체적으로는 CPU 자원과 GPU 자원을 동시에 이용하는 방식으로 태스크를 스케줄링하는 태스크 스케줄링 방법 및 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a task scheduling method and apparatus, and more particularly, to a task scheduling method and apparatus for scheduling tasks using a CPU resource and a GPU resource simultaneously.
최근 들어 다수의 코어(core)를 단일 칩에 집적하는 매니코어(many core) 시스템이 보급되고 있으며, 이에 나아가 다수의 코어 중 CPU 프로세서와 GPU 프로세서와 같이 이종의 프로세서 코어가 함께 탑재되는 형태의 매니코어 시스템이 개발되어있다. 또한, 하나의 단일 칩이 아닌 복수의 칩이 병렬적으로 연결되는 형태의 시스템이나 상술한 매니코어를 복수개 설치하여 병렬적으로 연결하는 형태의 시스템 또한 개발되어 있다.In recent years, many core systems for integrating a plurality of cores on a single chip have been popular. Furthermore, a plurality of cores, such as a CPU processor and a GPU processor, Core system has been developed. In addition, a system in which a plurality of chips are connected in parallel, rather than a single chip, or a system in which a plurality of the above-described manifolds are installed and connected in parallel is also developed.
이렇게 많은 코어나 칩이 또는 이종의 프로세서가 사용되는 시스템에서는 각각의 코어나 프로세서들을 효율적으로 사용하여 전체 시스템의 성능을 최대한 발휘하도록 하기 위한 연구가 진행되고 있다.In a system where a large number of cores, chips, or heterogeneous processors are used, studies are being conducted to efficiently use the respective cores or processors to maximize the performance of the entire system.
그 중, 이종의 프로세서 즉, CPU와 GPU에 대한 효율적인 처리를 위해 동일한 연산에 대하여 다수의 CPU를 이용하여 병렬 처리를 수행하거나 CPU 프로세서는 연산에 관여하지 않고 단순히 GPU 프로세서를 호출하여 처리를 수행하도록 요청하고 수행된 결과를 받기 위해서 대기하는 상태로 동작하는 처리 방식이 존재한다. 이는 GPU 프로세서의 활용율은 높지만 CPU 프로세서의 경우 유휴 상태로 존재하는 시간이 늘어나 전체적인 성능 향상에는 한계가 있다.In order to efficiently process different types of processors, that is, the CPU and the GPU, parallel processing is performed using a plurality of CPUs for the same operation, or the CPU processor simply calls the GPU processor There is a processing scheme that operates in a state of waiting to receive the requested result. This means that GPU processor utilization is high, but the CPU processor has more idle time, which limits the overall performance improvement.
또한, 상술한 바와 같이 매니코어 시스템 등은 다수의 CPU 프로세서와 GPU 프로세서를 포함하고 있어, 서로 다른 다수의 프로세서들 모두의 활용률을 높이는 연구가 필요한 상황이다. In addition, as described above, the Mann-core system includes a plurality of CPU processors and a GPU processor, and it is necessary to increase the utilization rate of all the different processors.
본 발명은 상기와 같은 필요에 의해 창출된 것으로서, 다수의 CPU 프로세서와 다수의 GPU 프로세서가 포함된 시스템 또는 클러스터 시스템에서 각각의 프로세서(CPU 프로세서, GPU 프로세서) 자원을 효율적으로 활용하기 위한 태스크 스케줄링 장치 및 방법을 제공하는데 그 목적이 있다.The present invention provides a task scheduling apparatus for efficiently utilizing resources of each processor (CPU processor, GPU processor) in a system or a cluster system including a plurality of CPU processors and a plurality of GPU processors, And a method thereof.
본 발명의 다른 목적 및 장점들은 하기에 설명될 것이며, 본 발명의 실시예에 의해 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 첨부된 특허 청구 범위에 나타낸 수단 및 조합에 의해 실현될 수 있다.Other objects and advantages of the present invention will be described hereinafter and will be understood by the embodiments of the present invention. Further, objects and advantages of the present invention can be realized by the means and the combination shown in the appended claims.
전술한 목적을 달성하기 위하여, 본 발명의 일면에 따른 태스크 스케줄링 장치는, 입력되는 데이터를 저장하는 데이터 저장부; 상기 데이터 저장부에 저장된 데이터를 기 설정된 제어 정보 또는 작업량 조절 정보에 따라 CPU 프로세서 또는 GPU 프로세서에 할당하도록 태스크를 생성하고 스케줄링하는 태스크 관리부; 시스템 상태 정보 또는 상기 태스크 관리부를 통해 CPU 프로세서 또는 GPU 프로세서에서 처리된 태스크의 이력 정보를 포함한 성능 프로파일 정보 정보를 저장 관리하는 프로파일 관리부; 및 상기 프로파일 관리부에서 저장 관리되는 성능 프로파일 정보를 분석하여 CPU 프로세서 또는 GPU 프로세서에 할당할 태스크의 비율과 작업량을 동적으로 조절하여 작업량 분배 정보를 생성하고 상기 태스크 관리부에 전달하는 작업량 분배부;를 포함한다.According to an aspect of the present invention, there is provided a task scheduling apparatus including: a data storage unit for storing input data; A task manager for creating and scheduling a task to assign data stored in the data storage unit to a CPU processor or a GPU processor according to preset control information or workload adjustment information; A profile management unit for storing performance profile information including system state information or history information of a task processed by the CPU processor or the GPU processor through the task manager; And a workload distribution unit for analyzing performance profile information stored and managed by the profile management unit and dynamically adjusting a ratio of a task to be allocated to a CPU processor or a GPU processor and a workload to generate workload distribution information and deliver the information to the task management unit do.
본 발명의 다른 일면에 따른 태스크 스케줄링 방법은, 프로파일 관리부가 시스템 상태 정보 또는 상기 CPU 프로세서 또는 GPU 프로세서에서 처리된 태스크의 이력 정보를 포함한 성능 프로파일 정보를 저장 관리하는 단계; 작업량 분배부가 상기 성능 프로파일 정보를 분석하여 CPU 프로세서 또는 GPU 프로세서에 할당할 태스크의 비율과 작업량을 동적으로 조절하는 작업량 분배 정보를 생성하여 상기 태스크 관리부에 전달하는 단계; 및 태스크 관리부가 데이터 저장부에 저장된 데이터를 CPU 프로세서 또는 GPU 프로세서에 할당하여 처리하기 위해 태스크를 생성하고, 상기 작업량 분배 정보를 기반으로 상기 생성된 태스크를 스케줄링하는 단계;를 포함한다.
According to another aspect of the present invention, there is provided a method for scheduling a task, the method comprising: storing and managing performance profile information including profile information including system state information or history information of a task processed by the CPU processor or a GPU processor; The workload distribution unit analyzes the performance profile information and generates workload distribution information for dynamically controlling the ratio of the tasks and the workload to be assigned to the CPU processor or the GPU processor and transmitting the generated information to the task management unit; And a task management unit for assigning data stored in the data storage unit to the CPU processor or the GPU processor to generate a task, and scheduling the generated task based on the workload distribution information.
본 발명에 따르면, 서로 다른 프로세서들의 특성(메모리 크기, 코어 수, 메모리 대역폭 등)과 처리 성능을 고려하여 데이터 처리시의 부하를 적절하게 분산하도록 처리함으로써, 각 프로세서의 자원을 동시에 최대한 효율적으로 활용할 수 있어, 전체적인 시스템 성능을 향상시킬 수 있는 효과가 있다.According to the present invention, the load during data processing is appropriately distributed in consideration of the characteristics (memory size, number of cores, memory bandwidth, etc.) of different processors and processing performance, So that the overall system performance can be improved.
또한, 본 발명의 태스크 스케줄링 장치는, 프로파일 관리기능 및 작업량 분배기능을 제공하여 CPU 프로세서와 GPU 프로세서에 할당되는 태스크의 비율과 작업량을 동적으로 조절하여 스케줄링 함으로써 시스템 자원 이용성을 높이고 전체 시스템의 성능을 향상할 수 있는 효과를 제공한다.In addition, the task scheduling apparatus of the present invention provides a profile management function and a workload distribution function to dynamically adjust the ratio and workload of a task assigned to a CPU processor and a GPU processor, thereby increasing system resource utilization, Thereby providing an effect that can be improved.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술할 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시예에 따른 태스크 스케줄링 장치의 주요 구성을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 태스크 스케줄링 장치의 동작 과정을 나타낸 순서도이다. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate preferred embodiments of the invention and, together with the description of the invention below, And should not be construed as limiting.
1 is a block diagram illustrating a main configuration of a task scheduling apparatus according to an embodiment of the present invention.
2 is a flowchart illustrating an operation of a task scheduling apparatus according to an exemplary embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 용이하게 이해할 수 있도록 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. And is intended to enable a person skilled in the art to readily understand the scope of the invention, and the invention is defined by the claims. It is to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. It is noted that " comprises, " or "comprising," as used herein, means the presence or absence of one or more other components, steps, operations, and / Do not exclude the addition.
도 1은 본 발명의 일 실시예에 따른 태스크 스케줄링 장치의 주요 구성을 나타낸 도면이다.1 is a block diagram illustrating a main configuration of a task scheduling apparatus according to an embodiment of the present invention.
본 발명의 일 실시예에 따른 태스크 스케줄링 장치(100)는, 복수의 프로세서들이 포함된 시스템에서 각 프로세서들의 특성(메모리 크기, 코어 수, 메모리 대역폭 등)과 처리 성능을 고려하여 데이터 처리시의 부하를 적절하게 분산 처리할 수 있는 기능을 제공한다. 이를 통해 각 프로세서의 자원을 동시에 최대한 효율적으로 활용할 수 있게 되어, 전체 시스템의 성능을 향상하도록 한다. 여기서 복수의 프로세서들은 CPU 프로세서(중앙 처리 장치), GPU 프로세서(그래픽 처리 장치) 등을 예로 들 수 있으며, 그 외에 데이터 처리가 가능한 다양한 프로세서 유닛이 이용될 수 있다.The task scheduling
도 1에 도시된 바와 같이, 본 발명에 따른 태스크 스케줄링 장치(100)는 데이터 저장부(110), 태스크 관리부(120), 프로파일 관리부(130), 작업량 분배부(140)를 포함한다.1, a
상기 데이터 저장부(110)는 입력으로 들어오는 데이터(210)를 저장 관리하고, 상기 태스크 관리부(210)의 요청에 따라 저장 관리중인 데이터를 전달한다. 이때, 상기 데이터 저장부(110)는 대량으로 입력되는 데이터(210)를 처리하기 위하여 분산 환경으로 구성될 수 있다. 또한, 다수의 시스템에 데이터를 복제하여 저장 관리하는 방식을 통하여, 네트워크 오류 또는 시스템 장애 발생 시에도 데이터 유실 없이 안전하게 데이터를 보관할 수 있도록 한다. The
아울러, 상기 데이터 저장부(110)는 상기 태스크 관리부(120)에서 다수의 태스크들이 동시에 접근할 경우에 대비하여 뮤텍스(mutex), 세마포어(semaphore) 또는 읽기-쓰기 락(Reader-Writer Lock) 등의 방식을 구현할 수 있는 기능을 구비할 수 있다. The
이를 통해, 다수의 태스크가 동시에 접근하더라도 허용된 태스크들만이 데이터 저장부(110)에 접근할 수 있도록 제어하여, 데이터의 무결성(integrity)을 보장할 수 있고, 나아가 데이터 안정성을 보장할 수 있도록 한다.Accordingly, even if a plurality of tasks are accessed at the same time, only authorized tasks are allowed to access the
이와 함께, 상기 데이터 저장부(110)는 임계값(threshold)을 설정할 수 있도록 하여, 입력 또는 저장되는 데이터(210)가 해당 임계값을 초과할 경우 저장 공간을 확장하는 방식으로 운용할 수 있다. In addition, the
또한, 상기 데이터 저장부(110)는 일정한 버퍼 크기를 갖는 회전 큐(circular queue)와 같은 형태를 구성하고 데이터가 들어오거나 나갈 때 데이터를 식별하는 인덱스를 조정하여 저장 공간을 재사용하는 방식으로 운용할 수 있다. The
이를 통해, 상기 데이터 저장부(110)의 물리적 저장 공간을 보다 효율적으로 활용할 수 있도록 한다.Thus, the physical storage space of the
상기 태스크 관리부(120)는 시스템에 탑재된 CPU(Central Processing Unit) 프로세서 또는 GPU(Graphics Processing Unit) 프로세서에서 태스크(220)를 수행할 수 있도록 프로세스(process)와 쓰레드(thread)를 생성하여 상기 데이터 저장부(110)에 입력된 데이터를 처리하는 역할을 수행한다. 이때, 상기 태스크 관리부(120)는 프로세스에서 복수의 멀티 쓰레드를 생성하고, 이를 통해 입력된 데이터를 동시에 처리하도록 한다. The
여기서, 프로세스는 메인 메모리에 저장되어 실행되는 프로그램의 작업의 단위가 되며, 쓰레드는 프로세서의 실행 흐름 단위로 프로세스 내에서 자원을 공유하며 병렬로 동시 작업을 수행한다. 즉, 하나의 프로세스는 복수의 쓰레드를 생성하여 동시에 병렬 처리를 수행한다. 따라서, 상기 태스크 관리부(120)에서는 시스템 환경이나 프로그램 환경에 따라 복수의 쓰레드를 동시에 실행할 수 있고, 본 발명의 실시예에서와 같이 멀티 쓰레드 실행 방식을 통해 구현할 수 있다.Here, a process is a unit of work of a program stored in main memory and executed, and a thread shares resources in a process as a unit of execution flow of a processor and performs a parallel operation concurrently. That is, one process creates a plurality of threads and performs parallel processing at the same time. Accordingly, the
즉, 상기 태스크 관리부(120)는 CPU 프로세서 또는 GPU 프로세서에서 동시에 태스크(220)를 처리하기 위해 각 프로세서를 위한 멀티 쓰레드를 생성하여 실행, 종료, 대기 등의 일련의 동기화를 포함한 태스크 스케줄링을 처리한다. That is, the
다시 말해서, 상기 데이터 저장부(110)에 입력되는 데이터가 없을 경우, 태스크(220)를 처리하는 멀티 쓰레드들은 대기 상태로 있게 되며, 상기 데이터 저장부(110)에 데이터가 입력될 경우 대기중인 멀티 쓰레드들을 깨워서 입력되는 데이터를 가져와 태스크(220)를 처리하는 형태로 동작한다. In other words, when there is no data to be input to the
나아가, 상술한 바와 같이 멀티 쓰레드들이 동시에 데이터를 가져오려고 할 때 상기 데이터 저장부(110)에 정의된 뮤텍스, 세마포어 또는 읽기-쓰기 락 등의 방식을 통해 허가된 쓰레드들만이 데이터를 가져와서 태스크(220)를 처리할 수 있도록 하여, 데이터의 무결성 및 안전성을 보장하도록 한다. Furthermore, when the multithreads try to fetch data at the same time, only the threads that are permitted through the mutex, semaphore, or read-write lock defined in the
또한, 상기 태스크 관리부(120)는 데이터 입력 시 대기중인 멀티 쓰레드들을 깨울 때에 입력되는 데이터의 크기를 고려하여 깨우는 시점을 조절하도록 할 수 있다.In addition, the
상기 태스크 관리부(120)에서는 CPU 프로세서 또는 GPU 프로세서를 동시에 이용하는 태스크 스케줄링을 구현하기 위하여, CPU 프로세서 또는 GPU 프로세서에서 처리할 태스크(220)의 비율과 작업량을 단위 시험을 통해 결정한 초기값으로 설정하고 처리 중 후술할 작업량 분배부(140)의 도움을 받아 프로세서 별로 처리할 태스크(220)의 비율과 작업량을 동적으로 조절하도록 한다. In order to implement task scheduling using a CPU processor or a GPU processor at the same time, the
상기 초기값 설정의 경우, 하나의 시스템에서 CPU 프로세서와 GPU 프로세서에 데이터를 처리하는 태스크의 수행 시간을 일정 횟수 반복 측정하여 CPU 프로세서와 GPU 프로세서에 할당할 초기 태스크의 비율과 작업량을 결정한다.In the case of setting the initial value, the execution time of the task of processing the data to the CPU processor and the GPU processor in one system is repeatedly measured a predetermined number of times to determine the ratio and workload of the initial task to be allocated to the CPU processor and the GPU processor.
아울러, 상기 태스크 관리부(120)는 시스템의 사양을 고려하여 일정한 수의 멀티 쓰레드들로 구성된 쓰레드 풀(pool)을 구성하고 데이터가 입력될 때 쓰레드 풀에서 기 생성된 쓰레드를 꺼내어 처리하고 재사용하는 방식을 통해, 처리 시간을 줄이고 자원을 효율적으로 사용하는 태스크 스케줄링을 구현할 수 있다.In addition, the
이와 함께, 상기 태스크 관리부(120)는 처리되는 데이터를 분할하여 동일한 형태의 태스크(220)로 처리하도록 할 수 있다. 이를 통해 다수의 CPU 프로세서 또는 GPU 프로세서에서 데이터를 분리 할당하여 병렬적으로 수행함으로써 시스템 전체 처리 성능을 향상시킬 수 있다. At the same time, the
또한, 상기 태스크 관리부(120)은 정적 태스크 스케줄링과 동적 태스크 스케줄링을 지원할 수 있다. 정적 태스크 스케줄링은 프로그램 실행 전 사전 지식 (시스템 환경, 프로그램 구조, 태스크의 특성 등)을 이용하여 태스크(220)의 특정 프로세서로의 매핑을 미리 결정하고 스케줄링하는 방식이며, 동적 태스크 스케줄링은 프로그램 실행 중에 태스크(220)의 특정 프로세서로의 매핑을 결정하여 스케줄링하는 방식이다.In addition, the
아울러, 상기 태스크 관리부(120)는 태스크(220)를 프로세서에 할당하고 스케줄링할 때 프로세서와 태스크(220)의 특성을 고려하도록 하여 보다 효율적으로 처리할 수 있도록 한다. In addition, the
이를 위해, 상기 태스크 관리부(120)는 순차적인 처리를 요구하는 태스크는 CPU 프로세서에 매핑되어 처리될 수 있도록 하고, 높은 수준의 병렬 태스크는 GPU 프로세서에 매핑되어 처리될 수 있도록 스케줄링 한다. For this, the
다른 예로, 상기 태스크 관리부(120)는 순차 알고리즘을 병렬화 하는 과정에서 규칙적인 부분은 높은 병렬성을 제공하는 GPU 프로세서에 매핑하여 처리하고, 동기화와 데이터 통신을 요구하여 GPU 프로세서의 이점을 볼 수 없는 불규칙적인 부분은 CPU 프로세서에 매핑하여 처리하도록 할 수 있다. As another example, the
이처럼, 상기 태스크 관리부(120)는 다양한 태스크(220)의 특성을 고려하여 상술한 처리 예에서와 같이 처리할 수 있으며, 이 외에도 각 특성에 맞게 효율적으로 처리할 수 있는 다양한 예가 이용될 수 있다.In this way, the
한편, 상기 태스크 관리부(120)에서는 상기 데이터 저장부(110)에 데이터가 없을 경우 데이터를 처리하기 위한 쓰레드들을 대기 상태로 전환하고, 상술한 임계치 기준 이상의 데이터가 입력될 경우 대기중인 쓰레드들을 깨워 데이터를 처리하도록 한다. 이때, 상기 데이터 저장부(110)에 임계치 기준 이상의 데이터가 기 설정된 기준 시간 동안 입력되지 않을 경우에는 쓰레드 풀을 종료하여 쓰레드 및 메모리 자원을 해제하고 태스크 처리 업무를 종료한다. If there is no data in the
이렇게, 태스크 처리 업무가 종료된 후에 데이터가 상기 데이터 저장부(110)에 입력될 경우 멀티 쓰레드를 생성하여 데이터를 처리하는 태스크 관리 기능을 다시 수행하도록 한다. 이를 통해, 보다 효율적인 처리를 수행할 수 있게 된다.When data is input to the
아울러, 상기 태스크 관리부(120)는 분산 시스템 환경에서 상기 데이터 저장부(110)가 다수개 존재할 경우, 데이터의 지역성(locality)을 고려하여 데이터가 위치한 곳의 CPU 또는 GPU 프로세서에 태스크가 할당되도록 스케줄링 함으로써 프로세서 간 데이터 전송 시간을 줄일 수 있도록 하여, 시스템 성능을 향상하도록 한다.When there are a plurality of
또한, 상기 태스크 관리부(120)는 태스크를 처리할 때 워크 스틸링(work stealing) 또는 워크 쉐어링(work sharing) 방식을 적용할 수 있다. 이를 통해 태스크 처리시 높은 로드 밸런싱을 확보할 수 있다. In addition, the
여기서, 상기 워크 스틸링 방식은 유휴(idle) 프로세서에서 바쁜(busy) 프로세서의 작업 일부를 가져와서 처리하는 방식이며, 워크 쉐어링 방식은 어떤 프로세서에서 태스크를 생성할 때마다 작업 분산을 위해 스케줄러에서 충분히 이용하지 못하는 프로세서로 태스크들의 일부를 이송(migration)하여 처리하는 방식이다.Herein, the work stealing method is a method of fetching and processing a part of a busy processor in an idle processor, and a work-sharing method is a method in which a scheduler sufficiently It is a method to migrate and process a part of tasks with an unavailable processor.
상기 프로파일 관리부(130)는 시스템 상태 정보 또는 CPU 프로세서 또는 GPU 프로세서에서 처리된 태스크 이력(history) 정보를 포함한 성능 프로파일 정보를 저장 관리하는 역할을 수행한다. The
여기서, 시스템 상태 정보로는, 시스템의 프로세서 코어 수, 프로세스 속도, 프로세서 사용율, 메모리 사용율, 디스크 사용율, 네트워크 사용율, 등의 다양한 시스템 상태 정보가 포함된다. Here, the system status information includes various system status information such as the number of processor cores in the system, the process speed, the processor usage rate, the memory usage rate, the disk usage rate, and the network usage rate.
또한, 상기 태스크 이력 정보로는, 상기 태스크 관리부(120)에서 상술한 바와 같이 태스크에 할당된 데이터의 크기, 멀티 쓰레드의 유휴 상태, 태스크의 특성, 상기 태스크 관리부(120)에서 처리한 CPU 또는 GPU 프로세서의 태스크 수행 결과 정보 등을 포함하며, 상기 프로파일 관리부(130)는 상술한 정보들을 포함한 성능 프로파일 정보를 누적 저장하고 관리하는 역할을 수행한다.As described above, the task history information includes the size of data allocated to the task, the idle state of the multi-thread, the characteristics of the task, the CPU or GPU processed by the
상기 작업량 분배부(140)는 상기 프로파일 관리부(130)에서 생성된 성능 프로파일 정보를 분석하여 CPU 프로세서와 GPU 프로세서에서 처리할 태스크의 비율과 작업량을 동적으로 조절하는 역할을 수행한다. The
상기 작업량 분배부(140)는 이렇게 동적으로 조절된 작업량 분배 정보 생성하고 이를 상기 태스크 관리부(120)로 전달한다.The
상기 작업량 분배부(140)에서 생성한 작업량 분배 정보는 상기 태스크 관리부(120)로 전달되고, 상기 태스크 관리부(120)는 전달받은 작업량 분배 정보에 근거하여 CPU 프로세서와 GPU 프로세서에서 처리할 태스크의 비율과 작업량을 조절하는 방식으로 작업할 태스크를 스케줄링한다.The workload distribution information generated by the
이와 같이, 성능 프로파일 정보에 기반한 스케줄링 방식은 CPU 프로세서와 GPU 프로세서의 처리 성능에 기반하여 태스크를 할당하는 방식으로써, 이미 남아 있는 태스크의 시간을 고려하지 않을 경우, CPU나 GPU 프로세서 자원이 과다하게 사용되거나 너무 낮게 사용될 수 있다.As described above, the scheduling method based on the performance profile information is a method of allocating a task based on the processing performance of a CPU processor and a GPU processor. If the time of an already remaining task is not taken into account, CPU or GPU processor resources are excessively used Or too low.
이를 위해, 상기 태스크 관리부(120)는 성능 프로파일 정보뿐만 아니라 남아 있는 태스크의 처리 예상 시간, 태스크의 특성 등을 추가로 고려하여 CPU 또는 GPU 프로세서의 처리할 작업량을 조절하도록 한다.To this end, the
또한, 본 발명의 실시예에 따른 태스크 스케줄링 장치(100)는 각각의 분리된 장치로 기술하였으나 실제 구현상에서는 필요에 의해 기능들이 통합되거나 하나의 단일 시스템에서 동작할 수 있을 뿐 아니라, 분산 시스템 환경에서도 동작할 수 있음은 물론이다.In addition, although the
도 2는 본 발명의 일 실시예에 따른 태스크 스케줄링 장치(100)의 동작 과정은 나타낸 순서도이다.FIG. 2 is a flowchart illustrating an operation of the
도 2를 참조하면, 본 발명의 일 실시예에 따른 태스크 스케줄링 장치(100)의 동작은 먼저, 데이터 저장부(110)를 통해 데이터(210)를 입력받아 저장하는 절차가 진행된다(S10).Referring to FIG. 2, an operation of the
이후, 데이터가 입력되면 태스크 관리부(120)에서는 저장된 데이터를 처리하기 위해 각 프로세서에 태스크를 할당하는 처리를 진행한다. 이때, 초기 설정값 또는 후술한 단계 S50을 통해 작업량 분배 정보를 전달받아, 이를 근거로 각 프로세서에서 처리할 태스크의 비율과 작업량을 조절하여 태스크를 할당하도록 한다(S20).Thereafter, when data is input, the
다음, 상기 태스크 관리부(120)에서는 CPU 프로세서와 GPU 프로세서에서 동시에 태스크를 수행하며, 태스크의 실행, 종료, 대기 등의 일련의 동기화를 포함한 태스크 스케줄링을 처리한다(S30).Next, the
프로파일 관리부(130)에서는 시스템 상태 정보 또는 CPU 프로세서 또는 GPU 프로세서에서 수행된 태스크 이력 정보를 포함한 성능 프로파일 정보를 누적하여 저장 관리하는 절차가 진행된다(S40).In step S40, the
이후로, 작업량 분배부(140)에서는 성능 프로파일 정보와 현재 시스템의 상태 정보를 검토하여 각 프로세서에서 처리할 작업량을 분배하고, 작업량 분배 정보를 생성하여 상기 태스크 관리부(120)로 전달하는 절차를 진행한다. 이렇게 작업량 분배 정보를 전달하여 상기 단계 S20에서 태스크 할당 처리시에 이용할 수 있도록 반복적으로 피드백 역할을 수행한다(S50).Thereafter, the
이상 바람직한 실시예와 첨부도면을 참조하여 본 발명의 구성에 관해 구체적으로 설명하였으나, 이는 예시에 불과한 것으로 본 발명의 기술적 사상을 벗어나지 않는 범주 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. Therefore, the scope of the present invention should not be limited by the illustrated embodiments, but should be determined by the scope of the appended claims and equivalents thereof.
100: 태스크 스케줄링 장치
110: 데이터 저장부
120: 태스크 관리부
130: 프로파일 관리부
140: 작업량 분배부100: Task scheduling device
110: Data storage unit
120: Task manager
130: Profile management unit
140: Workload distribution section
Claims (10)
작업량 분배부가 상기 성능 프로파일 정보를 분석하여 CPU 프로세서 또는 GPU 프로세서에 할당할 태스크의 비율과 작업량을 동적으로 조절하는 작업량 분배 정보를 생성하여 태스크 관리부에 전달하는 단계; 및
태스크 관리부가 데이터 저장부에 저장된 데이터를 CPU 프로세서 또는 GPU 프로세서에 할당하여 처리하기 위해 태스크를 생성하고, 상기 작업량 분배 정보를 기반으로 상기 생성된 태스크를 스케줄링하는 단계;를 포함하고,
상기 스케줄링하는 단계는,
상기 CPU 프로세서와 GPU 프로세서에서 동시에 태스크를 처리하기 위해 각 프로세서를 위한 멀티 쓰레드들을 생성하는 단계(상세한 설명 단락 0029); 및
상기 멀티 쓰레드들이 동시에 상기 데이터를 가져오려고 할 때 상기 데이터 저장부에 정의된 뮤텍스(mutex), 세마포어(semaphore) 또는 읽기-쓰기 락(Reader-Writer-Lock) 중 어느 하나의 방식을 이용하여 허가된 멀티 쓰레드들만이 상기 데이터를 가져와서 상기 태스크를 처리하도록 스케줄링하는 단계
를 포함하는 태스크 스케줄링 방법.
Storing and managing the performance profile information including the system status information or the history information of the CPU processor or the task processed by the GPU processor;
The workload distribution unit analyzes the performance profile information and generates workload distribution information for dynamically controlling the ratio of the tasks and the workload to be allocated to the CPU processor or the GPU processor and transmitting the generated information to the task management unit; And
Generating a task for assigning and processing data stored in a data storage unit to a CPU processor or a GPU processor and scheduling the generated task based on the workload distribution information,
Wherein the scheduling comprises:
Generating multiple threads for each processor to process the tasks simultaneously in the CPU and GPU processors (detailed description paragraph 0029); And
When the multithreads are attempting to fetch the data at the same time, they are permitted using any one of a mutex, a semaphore, or a reader-writer-lock defined in the data storage unit Only the multithreads fetch the data and schedule to process the task
Lt; / RTI >
상기 CPU 프로세서와 상기 GPU 프로세서에서 데이터를 처리하는 태스크의 수행 시간을 일정 횟수 반복 측정하여 상기 CPU 프로세서와 상기 GPU 프로세서에 할당할 초기 태스크의 비율과 작업량을 결정하는 단계; 및
상기 작업량 분배 정보를 기반으로 상기 CPU 프로세서와 상기 GPU 프로세서 각각에서 처리할 태스크의 비율과 작업량을 동적으로 조절하는 단계
를 포함하는 태스크 스케줄링 방법.
2. The method of claim 1, wherein the scheduling comprises:
Determining a ratio and an amount of an initial task to be allocated to the CPU processor and the GPU processor by repeatedly measuring the execution time of a task for processing data in the CPU processor and the GPU processor a predetermined number of times; And
Dynamically adjusting a ratio of a task to be processed and a workload in each of the CPU processor and the GPU processor based on the workload distribution information
Lt; / RTI >
정적 태스크 스케줄링 방식 또는 동적 태스크 스케줄링 방식을 기반으로 상기 태스크를 스케줄링하는 단계; 및
프로세서와 태스크의 특성을 고려하여 순차적인 처리를 요구하는 태스크는 상기 CPU 프로세서에 할당하고, 병렬적인 처리를 요구하는 병렬 태스크는 상기 GPU 프로세서에 할당하도록 스케줄링하는 것인 태스크 스케줄링 방법.
The method of claim 1, wherein the scheduling comprises:
Scheduling the task based on a static task scheduling scheme or a dynamic task scheduling scheme; And
Assigning a task requiring sequential processing to the CPU processor in consideration of characteristics of a processor and a task, and assigning a parallel task requiring parallel processing to the GPU processor.
워크 스틸링(work stealing) 또는 워크 쉐어링(work sharing) 방식을 기반으로 상기 태스크를 스케줄링하는 것인 태스크 스케줄링 방법.
2. The method of claim 1, wherein the scheduling comprises:
Wherein the task is scheduled based on a work stealing or a work sharing scheme.
프로세서의 코어 수, 프로세서 속도, 프로세서 사용율, 메모리 사용률, 디스크 사용율 및 네트워크 사용율을 포함하는 것인 태스크 스케줄링 방법.
The system according to claim 1,
A number of cores of a processor, a processor speed, a processor utilization rate, a memory utilization rate, a disk utilization rate, and a network utilization rate.
상기 태스크에 할당된 데이터의 크기, 멀티 쓰레드의 유휴 상태, 상기 태스크의 특성, 상기 태스크의 처리 예상 시간, 상기 태스크 관리부에서 처리한 CPU 또는 GPU 프로세서의 태스크 수행 결과 정보를 포함하는 것인 태스크 스케줄링 방법.
The information processing apparatus according to claim 1,
A task scheduling method comprising the steps of: determining a size of data allocated to the task, an idle state of the multithread, a characteristic of the task, a processing expected time of the task, and task execution result information of a CPU or a GPU processor processed by the task manager .
분산 시스템 환경에서 상기 데이터 저장부가 다수인 경우, 데이터의 지역성(locality)을 고려하여 데이터가 위치한 곳의 CPU 프로세서 또는 GPU 프로세서에 태스크가 할당되도록 스케줄링하는 것인 태스크 스케줄링 방법.
2. The method of claim 1, wherein the scheduling comprises:
Wherein scheduling is performed such that a task is allocated to a CPU processor or a GPU processor where data is located in consideration of locality of data when the data storage unit is a plurality of data storage units in a distributed system environment.
시스템의 사양을 고려하여 일정한 수의 멀티 쓰레드들로 구성된 쓰레드 풀(pool)을 구성하고 데이터가 입력될 때 상기 쓰레드 풀에서 기 생성된 쓰레드를 꺼내어 처리하고 재사용하는 방식으로 상기 태스크를 스케줄링하는 것인 태스크 스케줄링 방법.
2. The method of claim 1, wherein the scheduling comprises:
A thread pool having a predetermined number of multithreads in consideration of a system specification and scheduling the task in such a manner that a thread created in the thread pool is taken out and processed and reused when data is input Task scheduling method.
상기 데이터 저장부에 저장된 데이터를 CPU 프로세서 또는 GPU 프로세서에 할당하여 처리하기 위해 태스크를 생성하고 스케줄링하는 태스크 관리부;
시스템 상태 정보 또는 상기 태스크 관리부를 통해 CPU 프로세서 또는 GPU 프로세서에서 처리된 태스크의 이력 정보를 포함한 성능 프로파일 정보를 저장 관리하는 프로파일 관리부; 및
상기 프로파일 관리부에서 저장 관리되는 성능 프로파일 정보를 분석하여 CPU 프로세서 또는 GPU 프로세서에 할당할 태스크의 비율과 작업량을 동적으로 조절하여 작업량 분배 정보를 생성하고 상기 태스크 관리부에 전달하는 작업량 분배부;를 포함하고,
상기 태스크 관리부는,
상기 CPU 프로세서와 GPU 프로세서에서 동시에 태스크를 처리하기 위해 각 프로세서를 위한 멀티 쓰레드들을 생성하고, 상기 멀티 쓰레드들이 동시에 상기 데이터를 가져오려고 할 때 상기 데이터 저장부에 정의된 뮤텍스(mutex), 세마포어(semaphore) 또는 읽기-쓰기 락(Reader-Writer-Lock) 중 어느 하나의 방식을 이용하여 허가된 멀티 쓰레드들만이 상기 데이터를 가져와서 상기 태스크를 처리하도록 스케줄링하는 태스크 스케줄링 장치.A data storage unit for storing input data;
A task management unit for assigning the data stored in the data storage unit to a CPU processor or a GPU processor and creating and scheduling a task for processing;
A profile management unit for storing and managing performance profile information including system state information or history information of a CPU processor or a task processed by a GPU processor through the task manager; And
And a workload distribution unit for analyzing the performance profile information stored and managed by the profile management unit and dynamically adjusting a ratio of a task to be allocated to a CPU processor or a GPU processor and a workload to generate workload distribution information and delivering the information to the task management unit ,
The task management unit,
A plurality of threads for simultaneously processing tasks in the CPU and GPU processors; and a mutex, a semaphore, and a semaphore defined in the data store when the multithreads simultaneously attempt to fetch the data, ) Or a read-write lock (Reader-Writer-Lock), only authorized multithreaders fetch the data and schedule the task to be handled.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160044176A KR101953906B1 (en) | 2016-04-11 | 2016-04-11 | Apparatus for scheduling task |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160044176A KR101953906B1 (en) | 2016-04-11 | 2016-04-11 | Apparatus for scheduling task |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170116439A KR20170116439A (en) | 2017-10-19 |
KR101953906B1 true KR101953906B1 (en) | 2019-06-12 |
Family
ID=60298658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160044176A KR101953906B1 (en) | 2016-04-11 | 2016-04-11 | Apparatus for scheduling task |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101953906B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108109104A (en) * | 2017-12-06 | 2018-06-01 | 中国航空工业集团公司西安航空计算技术研究所 | A kind of three-level task scheduler circuitry towards unified dyeing framework GPU |
WO2022103181A1 (en) * | 2020-11-12 | 2022-05-19 | 삼성전자 주식회사 | Method and apparatus for allocating gpu to software package |
US11695626B2 (en) | 2020-09-24 | 2023-07-04 | Samsung Electronics Co., Ltd. | Method and apparatus for offloading hardware to software package |
US12028878B2 (en) | 2020-11-12 | 2024-07-02 | Samsung Electronics Co., Ltd. | Method and apparatus for allocating GPU to software package |
US12075450B2 (en) | 2020-12-04 | 2024-08-27 | Samsung Electronics Co., Ltd. | Method and apparatus for performing radio access network function |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102113093B1 (en) * | 2018-01-10 | 2020-05-20 | 서울대학교산학협력단 | GPU MEMORY MANAGEMENT FOR DNNs AND COMPUTING SYSTEM THEREOF |
CN109298897A (en) * | 2018-06-29 | 2019-02-01 | 杭州数澜科技有限公司 | A kind of system and method that the task using resource group is distributed |
KR102082484B1 (en) * | 2019-03-28 | 2020-02-27 | 한화시스템 주식회사 | Apparatus for transmitting and receiving data |
KR102082486B1 (en) * | 2019-03-28 | 2020-02-27 | 한화시스템 주식회사 | Method for transmitting and receiving data |
KR102194513B1 (en) * | 2019-06-20 | 2020-12-23 | 배재대학교 산학협력단 | Web service system and method using gpgpu based task queue |
KR102073684B1 (en) * | 2019-06-27 | 2020-02-05 | 한화시스템 주식회사 | Method for transmitting and receiving data for data distribution service |
KR102073682B1 (en) * | 2019-06-27 | 2020-02-05 | 한화시스템 주식회사 | Apparatus for transmitting and receiving data for data distribution service |
CN110795249A (en) * | 2019-10-30 | 2020-02-14 | 亚信科技(中国)有限公司 | GPU resource scheduling method and device based on MESOS containerized platform |
KR102335687B1 (en) * | 2019-12-31 | 2021-12-06 | 주식회사 포스코아이씨티 | Schedule Server System for Remote Control and Clusting Configuration |
KR20220036494A (en) | 2020-09-16 | 2022-03-23 | 삼성전자주식회사 | Method of hybrid scheduling for deep learning workloads and computing apparatus performing the method |
KR102384821B1 (en) * | 2021-07-14 | 2022-04-08 | (주)뤼이드 | Task scheduling methods for automated machine learning |
KR20230011857A (en) * | 2021-07-14 | 2023-01-25 | (주)뤼이드 | Task scheduling methods for automated machine learning |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101467558B1 (en) * | 2007-07-26 | 2014-12-01 | 엘지전자 주식회사 | A apparatus and a method of graphic data processing |
KR101651871B1 (en) * | 2009-12-28 | 2016-09-09 | 삼성전자주식회사 | Job Allocation Method on Multi-core System and Apparatus thereof |
KR101845328B1 (en) * | 2011-08-22 | 2018-04-04 | 삼성전자 주식회사 | Terminal and method for performing application thereof |
KR20130093995A (en) * | 2012-02-15 | 2013-08-23 | 한국전자통신연구원 | Method for performance optimization of hierarchical multi-core processor and the multi-core processor system of performing the method |
KR20160003502A (en) * | 2014-07-01 | 2016-01-11 | 삼성전자주식회사 | Parallelization method and electronic device |
KR101639003B1 (en) * | 2014-07-15 | 2016-07-12 | 고려대학교 산학협력단 | Manicore system based cpu/gpu and method for distributing workload for cpu/gpu concurrent processing |
-
2016
- 2016-04-11 KR KR1020160044176A patent/KR101953906B1/en active IP Right Grant
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108109104A (en) * | 2017-12-06 | 2018-06-01 | 中国航空工业集团公司西安航空计算技术研究所 | A kind of three-level task scheduler circuitry towards unified dyeing framework GPU |
CN108109104B (en) * | 2017-12-06 | 2021-02-09 | 中国航空工业集团公司西安航空计算技术研究所 | Three-level task scheduling circuit oriented to GPU (graphics processing Unit) with unified dyeing architecture |
US11695626B2 (en) | 2020-09-24 | 2023-07-04 | Samsung Electronics Co., Ltd. | Method and apparatus for offloading hardware to software package |
WO2022103181A1 (en) * | 2020-11-12 | 2022-05-19 | 삼성전자 주식회사 | Method and apparatus for allocating gpu to software package |
US12028878B2 (en) | 2020-11-12 | 2024-07-02 | Samsung Electronics Co., Ltd. | Method and apparatus for allocating GPU to software package |
US12075450B2 (en) | 2020-12-04 | 2024-08-27 | Samsung Electronics Co., Ltd. | Method and apparatus for performing radio access network function |
Also Published As
Publication number | Publication date |
---|---|
KR20170116439A (en) | 2017-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101953906B1 (en) | Apparatus for scheduling task | |
US11010199B2 (en) | Efficient critical thread scheduling for non-privileged thread requests | |
US8984519B2 (en) | Scheduler and resource manager for coprocessor-based heterogeneous clusters | |
US8793695B2 (en) | Information processing device and information processing method | |
US9973512B2 (en) | Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time | |
KR20180053359A (en) | Efficient scheduling of multi-version tasks | |
US11740921B2 (en) | Coordinated container scheduling for improved resource allocation in virtual computing environment | |
CN109564528B (en) | System and method for computing resource allocation in distributed computing | |
CN103677999A (en) | Management of resources within a computing environment | |
JP2013506179A (en) | Execution management system combining instruction threads and management method | |
CN109144710A (en) | Resource regulating method, device and computer readable storage medium | |
KR102052964B1 (en) | Method and system for scheduling computing | |
KR20110075295A (en) | Job allocation method on multi-core system and apparatus thereof | |
US11163606B1 (en) | Systems and methods for thread management to optimize resource utilization in a distributed computing environment | |
CN113342477A (en) | Container group deployment method, device, equipment and storage medium | |
KR101553650B1 (en) | Apparatus and method for load balancing in multi-core system | |
CN110300959B (en) | Method, system, device, apparatus and medium for dynamic runtime task management | |
US9471387B2 (en) | Scheduling in job execution | |
WO2016202154A1 (en) | Gpu resource allocation method and system | |
CN112948113A (en) | Cluster resource management scheduling method, device, equipment and readable storage medium | |
CN111597044A (en) | Task scheduling method and device, storage medium and electronic equipment | |
KR20130051076A (en) | Method and apparatus for scheduling application program | |
KR101377195B1 (en) | Computer micro-jobs | |
JP2008225641A (en) | Computer system, interrupt control method and program | |
KR102014246B1 (en) | Mesos process apparatus for unified management of resource and method for the same |
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 |