KR20140097815A - Resource allocation and apparatus - Google Patents
Resource allocation and apparatus Download PDFInfo
- Publication number
- KR20140097815A KR20140097815A KR1020130010378A KR20130010378A KR20140097815A KR 20140097815 A KR20140097815 A KR 20140097815A KR 1020130010378 A KR1020130010378 A KR 1020130010378A KR 20130010378 A KR20130010378 A KR 20130010378A KR 20140097815 A KR20140097815 A KR 20140097815A
- Authority
- KR
- South Korea
- Prior art keywords
- resource
- execution
- task
- execution time
- job
- Prior art date
Links
- 238000013468 resource allocation Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 54
- 230000003287 optical effect Effects 0.000 abstract 1
- 238000007726 management method Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion 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, 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Abstract
Description
본 발명은 자원을 할당하는 기법에 관한 것으로, 더욱 상세하게는 분산 컴퓨팅 환경에서 파이프라인 형태의 작업들(jobs)로 구성되는 서비스를 수행하는데 적합한 자원 할당 방법 및 그 장치에 관한 것이다.
TECHNICAL FIELD The present invention relates to a resource allocation technique, and more particularly, to a resource allocation method and apparatus suitable for performing a service composed of pipelined jobs in a distributed computing environment.
잘 알려진 바와 같이, 자원 관리 시스템(RMS : Resource Management System)은 클러스터 내 컴퓨팅 자원의 관리 및 사용자가 제출한 작업들(jobs)의 실행을 담당하는 시스템을 의미하는데, 현재 많이 사용되고 있는 자원 관리 시스템으로는 SLURM(Simple Linux Utility for Resource Management), TORQUE(Terascale Open-Source Resource and QUEue Manager), SGE(Sun Grid Engine) 등이 있다.As is well known, Resource Management System (RMS) refers to a system that manages computing resources in a cluster and executes jobs submitted by users. It is a widely used resource management system (SLURM), TORQUE (Open Source Resource and QUEUE Manager), and SGE (Sun Grid Engine).
도 1은 종래의 전형적인 자원 관리 시스템의 구성도로서, 큐 관리자(102), 작업 스케줄러(104), 자원 관리자(106), 자원 할당 관리자(108), 자원(110) 등을 포함한다.FIG. 1 is a block diagram of a conventional resource management system, which includes a
도 1을 참조하면, 큐 관리자(102)는 큐 관리자(102)는 사용자가 제출(submit)한 작업(job)을 받아들여 작업 스케줄러(104)에게 작업 실행 요청을 전달하는데, 사용자는 작업 제출 시 각 작업을 수행하기 위해 필요한 자원 요구를 설정(명시)해야 한다.Referring to FIG. 1, the
다음에, 작업 스케줄러(104)는 자원 관리자(106)로부터 자원의 상태 정보를 받아서 언제, 어느 컴퓨팅 자원을 사용하여 작업을 실행할지를 결정하며, 이를 통해 스케줄링 정책에 의해 클러스터를 구성하는 자원을 최적으로 이용할 수 있게 한다. 이를 위해 자원 관리자(106)는 가용한 자원의 상태 정보를 작업 스케줄러(104)에게 보고한다.Next, the
그리고, 자원 할당 관리자(108)는 작업 스케줄러(104)가 보내주는 수행해야 할 작업의 정보를 받아서 작업을 실행시킨다(Kalim Qureshi, Syed Munir Hussain Shah, Paul Manuel, “Empirical performance evaluation of schedulers for cluster of workstations,” Cluster Computing, Volume 14 Issue 2, June 2011 참조).Then, the
도 2는 종래 방법에 따라 선정된 작업에 자원을 할당하여 실행시키는 주요 과정을 도시한 순서도이다.FIG. 2 is a flowchart showing a main process of assigning and executing resources to a selected task according to a conventional method.
도 2를 참조하면, 종래의 자원 관리 시스템에서 사용자는 작업에 필요한 자원 정보, 예측된 실행 시간 등의 정보와 작업들 간의 실행 선후 관계를 설정(명시)할 수 있는데, 작업 간의 선후 관계를 포함하는 스케줄링 정책을 바탕으로 실행할 작업을 선정한다(단계 202).2, in a conventional resource management system, a user can set (specify) information such as resource information required for a task, a predicted execution time and the like, and a post-execution relation between tasks. An operation to be executed is selected based on the scheduling policy (step 202).
실행을 위해 선정된 작업의 선행 작업을 검사하여(단계 204), 선행 작업이 존재하는 지의 여부를 검사하고(단계 206), 존재할 경우 정상 완료되었는지의 여부를 검사한다(단계 208). 단계(206)에서의 검사 결과 선행 작업이 존재하지 않은 것으로 판단되면, 정상 완료한 것으로 처리(간주)하며, 이후 처리는 후술하는 단계(210)로 진행된다.It checks the pre-work of the selected work for execution (step 204), checks whether the pre-work exists (step 206), and checks if it has been completed normally (step 208). If it is determined that the preceding job does not exist as a result of the check in
상기 단계(208)에서의 검사 결과, 선행 작업이 정상 완료되지 않은 것으로 판단되면, 처리는 단계(202)로 되돌아가 새로 실행할 작업을 선정하는 프로세스를 진행하게 된다.If it is determined in
상기 단계(208)에서의 검사 결과, 선행 작업이 정상 완료된 것으로 판단되면, 작업에 명시된 필요 자원이 가용한지의 여부를 판단ㅎ나다(단계 210). 판단 결과 가용 자원이 존재하지 않을 경우 일정 시간 동안 대기한 후(단계 212), 다시 가용 자원의 존재 여부를 판단하는 프로세스를 진행한다.If it is determined in
상기 단계(210)에서의 판단 결과, 필요 자원이 가용한 경우, 가용 자원을 선정된 작업의 수행을 위해 할당한 후 작업을 실행시키는 프로세스를 진행한다(단계 214).If it is determined in
일예로서, 3개의 작업{J1, J2, J3}이 파이프라인 형태로 순차 실행되어야 하는 서비스 S를 가정해 볼 때, 서비스 S의 실행을 위해 자원 관리 시스템(RMS)에 입력된 작업들은 수행할 작업 명세, 선행 작업, 필요 자원, 예측 실행 시간(time) 등의 속성들을 바탕으로 아래와 같이 정의될 수 있다.Assuming, for example, a service S in which three jobs {J1, J2, J3} must be executed in a pipelined manner, the jobs entered in the resource management system (RMS) Specification, predecessor task, required resource, and forecast execution time (time).
J1 = {Job1, null, 2 CPUs, 20}J1 = {Job1, null, 2 CPUs, 20}
J2 = {Job2, J1, 2 CPUs, 30}J2 = {Job2, J1, 2 CPUs, 30}
J3 = {Job3, J2, 3 CPUs, 20}J3 = {Job3, J2, 3 CPUs, 20}
여기에서, 서비스 S의 사용자 예측 실행 시간 Setime은 J1, J2, J3의 실행 예측 시간 Jetime의 합으로 계산될 수 있다.Here, the user prediction execution time S etime of the service S can be calculated as the sum of the execution prediction time J etime of J1, J2, J3.
Setime=J1etime+J2etime+J3etime= 20 + 30 + 20 = 70S etime = J1 etiquette + J2 etiquette + J3 etiquette = 20 + 30 + 20 = 70
종래의 자원 관리 시스템은 작업 J2, J3의 실행을 위해 각각의 선행 작업 J1 혹은 J2의 실행 완료 여부만을 고려하며, 작업 별로 명시된 필요 자원을 바탕으로 자원을 검색하고 할당한다.The conventional resource management system considers only whether the execution of each preceding task J1 or J2 has been completed for the execution of tasks J2 and J3, and searches and allocates resources based on the necessary resources specified for each task.
따라서, 서비스를 구성하는 작업들 중에 하나라도 예측 실행 시간보다 긴 실제 실행 시간을 가지는 경우, 서비스의 실제 실행 시간도 길어져 사용자의 만족도는 떨어지는 문제가 발생한다. 예컨대, J1의 실제 실행 시간 J1rtime이 예측치보다 10분 긴 30분이 걸렸다면, 서비스의 실제 실행 시간은 적어도 10분 이상 길어지게 된다.Therefore, if one of the tasks constituting the service has an actual execution time longer than the predicted execution time, the actual execution time of the service becomes longer, and the user's satisfaction is lowered. For example, if the actual execution time J1 rtime of J1 is 30 minutes longer than the predicted value by 10 minutes, the actual execution time of the service becomes longer than at least 10 minutes.
Srtime -≥ J1rtime+J2etime+J3etime=30+30+20=80S rtime -? J1 rtime + J2 etime + J3 etime = 30 + 30 + 20 = 80
J1rtime - J1etime=30-20=10 ≤ Srtime-Setime J1 rtime - J1 etime = 30-20 = 10 ≤ S rtime -S etime
즉, 종래의 자원 관리 시스템에서는 2개 이상의 작업들이 파이프라인 형태로 구성되는 서비스의 경우, 각 단계별 작업 실행의 지연이 그대로 서비스의 실행 지연으로 연계되는 문제점이 있는데, 이것은 선행 작업의 실행 완료 여부만이 후행 작업의 실행에 영향을 미치기 때문이다.That is, in the conventional resource management system, in the case of a service in which two or more tasks are configured in the form of a pipeline, there is a problem that the delay in execution of the task for each step is directly linked to the execution delay of the service. This affects the execution of this trailing operation.
또한, 선행 작업들이 예측 실행 시간보다 빠르게 실행이 완료되었을 경우, 종래의 자원 관리 시스템은 사용자의 서비스 실행 예측 시간에 여유가 있음에도 불구하고, 후행 작업에 사용자가 명시한 자원을 그대로 할당하여 실행하게 되는데, 이것은 서비스의 실행에 있어, 사용자 예측 실행 시간을 만족시키는 데 필요한 자원보다 많은 여유 있는 자원들을 다른 서비스의 작업에 양도할 수 없어 자원 사용의 효율성을 저하시키는 요인으로 작용하게 된다.
In addition, when the preceding tasks are executed faster than the predicted execution time, the conventional resource management system assigns the resources specified by the user to the following tasks as they are, even though the user has a margin for the service execution prediction time. This is because, in the execution of the service, it is not possible to allocate more spare resources than the resources required for satisfying the user prediction execution time to the work of the other service, thereby decreasing the efficiency of resource use.
본 발명은, 자원 관리 시스템에서 두 개 이상의 작업들이 파이프라인 형태로 구성되는 서비스의 실행 시간에 대한 사용자의 만족도를 전체적으로 향상시키기 위하여, 선행 작업까지의 서비스 실행 시간에 대한 임계치 명시를 통해, 후행 작업에 사용자가 명시한 필요 자원량 이상 혹은 이하의 자원을 할당하는 새로운 기법을 제공하고자 한다.
In order to improve the user's satisfaction with the execution time of a service in which two or more tasks are configured in a pipeline form in the resource management system, To allocate more than or less than the amount of resources required by the user.
본 발명은, 일 관점에 따라, 작업 간의 선후 관계를 포함하는 스케줄링 정책을 바탕으로 실행하고자 하는 작업을 선정하는 과정과, 가용 자원의 상태 정보, 선행 작업의 서비스 실행 시간, 기 설정된 예측 실행 시간 및 선행 실행 임계치에 의거하여 상기 선정된 작업에 대해 가용한 필요 자원 또는 최적 자원을 결정하는 과정과, 상기 결정된 필요 자원 또는 최적 자원에 의거하여 상기 선정된 작업에 대한 자원을 할당하여 실행시키는 과정을 포함하는 자원 할당 방법을 제공한다.According to one aspect of the present invention, there is provided a scheduling method comprising: selecting a task to be executed based on a scheduling policy including a relation between tasks; and determining a state of available resources, a service execution time of a preceding task, Determining a usable resource or an optimal resource available for the selected task based on a preceding execution threshold and allocating and executing a resource for the selected task based on the determined required resource or optimal resource A resource allocation method.
본 발명은, 다른 관점에 따라, 작업 간의 선후 관계를 포함하는 스케줄링 정책을 바탕으로 실행하고자 하는 작업을 선정하는 과정과, 상기 작업이 선정될 때 선행 작업의 실행이 정상 완료되었는지의 여부를 검사하는 과정과, 상기 선행 작업의 실행이 정상 완료된 경우, 상기 선행 작업까지의 서비스 실행 시간과 예측 실행 시간의 차이를 산출하는 과정과, 상기 산출된 차이가 기 설정된 선행 실행 임계치의 범주에 속하는지의 여부를 체크하는 과정과, 상기 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 선정된 작업의 실행을 위한 최적 자원을 계산하는 과정과, 상기 기 설정된 선행 실행 임계치의 범주에 속할 때의 필요 자원 또는 상기 최적 자원의 가용 여부를 판단하는 과정과, 상기 필요 자원 또는 최적 자원이 가용한 것으로 판단될 때 선정된 작업에 자원을 할당하여 실행시키는 과정을 포함하는 자원 할당 방법을 제공한다.According to another aspect of the present invention, there is provided a method for managing a job, the method comprising the steps of: selecting a job to be executed based on a scheduling policy including a posterior relationship between jobs; checking whether execution of a preceding job is normally completed Calculating a difference between a service execution time and a predicted execution time until the preceding task when the execution of the preceding task is normally completed; and a step of determining whether the calculated difference belongs to a category of a predetermined preceding execution threshold Calculating an optimal resource for execution of a selected task when the task does not fall within the category of the predetermined execution threshold value; Determining whether the resource is available or not; determining whether the resource or the optimal resource is available; And allocating and executing resources for the tasks to be performed.
본 발명의 상기 검사하는 과정은, 상기 선행 작업이 존재하지 않을 때 정상 완료된 것으로 처리할 수 있다.The checking process of the present invention can be regarded as normally completed when the preceding job does not exist.
본 발명의 상기 자원 할당 방법은, 상기 선행 작업의 실행이 정상 완료되지 않은 것으로 판단될 때, 상기 선정하는 과정을 재수행하여 실행할 작업을 다시 선정하는 과정을 더 포함할 수 있다.The resource allocation method of the present invention may further include a step of re-executing the selection process and selecting a task to be executed again when it is determined that the execution of the preceding task is not normally completed.
본 발명의 상기 기 설정된 선행 실행 임계치는, 모든 선행 작업 중 가장 긴 실행 시간을 가지는 최장 실행 경로에 따른 예측 실행 시간에 대한 실제 실행 시간의 차이의 허용 가능 범위일 수 있으며, 실행 시간에 대한 값 또는 비율로 표시될 수 있다.The preset pre-execution threshold of the present invention may be an allowable range of the actual execution time difference with respect to the predicted execution time according to the longest execution path having the longest execution time among all the preceding tasks, . ≪ / RTI >
본 발명의 상기 계산하는 과정은, 상기 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 상기 필요 자원보다 더 많거나 혹은 더 적은 자원을 할당하도록 상기 최적 자원을 계산할 수 있다.The calculation process of the present invention may calculate the optimal resource so as to allocate more or less resources than the required resources when the resource does not fall within the predetermined prior execution threshold category.
본 발명의 상기 판단하는 과정은, 상기 선정된 작업에 할당할 가용 자원이 존재하지 않을 경우, 기 설정된 일정 시간을 대기한 후, 상기 필요 자원 또는 최적 자원의 가용 여부를 다시 판단할 수 있다.The determining process of the present invention may determine whether the required resource or the optimal resource is available after waiting for a predetermined period of time when there is no available resource to be allocated to the selected job.
본 발명의 상기 자원 할당 방법은, 상기 선정된 작업에 대한 실행이 완료될 때 작업의 실행 시간을 포함하는 실행 관련 정보를 생성하여 데이터베이스에 저장하는 과정을 더 포함할 수 있다.The resource allocation method of the present invention may further include generating execution related information including execution time of the task when the execution of the selected task is completed and storing the execution related information in the database.
본 발명은, 또 다른 관점에 따라, 실행하고자 하는 작업의 선정을 위한 작업 정보를 데이터베이스에 등록하고, 사용자 요청에 따른 작업 실행 요청을 발생하는 큐 관리자와, 가용 자원들의 상태 정보를 관리하는 자원 관리자와, 상기 작업 실행 요청에 따라 상기 자원 관리자로부터 제공되는 상태 정보와 상기 데이터베이스로부터 제공되는 선행 작업의 실행 시간 관련 정보들에 의거하여 선정된 작업에 대해 가용한 필요 자원 또는 최적 자원을 결정하는 작업 스케줄러와, 상기 결정된 필요 자원 또는 최적 자원에 의거하여 상기 선정된 작업에 대한 자원을 할당하여 실행시키는 자원 할당 관리자를 포함하는 자원 할당 장치를 제공한다.According to another aspect of the present invention, there is provided a system for managing a resource manager, comprising: a queue manager for registering job information for selecting a job to be executed in a database and generating a job execution request according to a user request; And a task scheduler that determines an available resource or an optimal resource for the selected task on the basis of status information provided from the resource manager in accordance with the task execution request and execution time information of a preceding task provided from the database And a resource allocation manager for allocating and executing resources for the selected task on the basis of the determined necessary resources or optimal resources.
본 발명의 상기 실행 시간 관련 정보들은, 상기 선행 작업의 서비스 실행 시간, 기 설정된 예측 실행 시간 및 선행 실행 임계치를 포함할 수 있다.The execution time related information of the present invention may include a service execution time of the preceding task, a predetermined execution time, and a preceding execution threshold.
본 발명의 상기 작업 스케줄러는, 상기 선행 작업의 실행이 정상 완료되었는지의 여부를 검사하고, 정상 완료된 경우 상기 선행 작업까지의 서비스 실행 시간과 예측 실행 시간의 차이를 산출하여 기 설정된 선행 실행 임계치의 범주에 속하는지의 여부를 체크하는 선행 작업 검사 블록과, 상기 산출된 차이가 상기 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 상기 선정된 작업의 실행을 위한 최적 자원을 계산하는 최적 자원 계산 블록과, 상기 산출된 차이가 상기 기 설정된 선행 실행 임계치의 범주에 속할 때의 필요 자원 또는 상기 계산된 최적 자원의 가용 여부에 의거하여 상기 필요 자원 또는 최적 자원을 결정하는 자원 결정 블록을 포함할 수 있다.The task scheduler of the present invention checks whether or not the execution of the preceding task is normally completed. If the task is normally completed, the task scheduler calculates the difference between the service execution time and the predicted execution time to the preceding task, An optimum resource calculation block for calculating an optimum resource for execution of the selected task when the calculated difference does not belong to the category of the preset preceding execution threshold; And a resource decision block for determining the required resource or the optimal resource based on whether the calculated difference is in the category of the preset preceding execution threshold or whether the calculated optimal resource is available.
본 발명의 상기 선행 작업 검사 블록은, 상기 선행 작업이 존재하지 않을 때 정상 완료된 것으로 처리할 수 있다.The preceding task check block of the present invention can be regarded as normally completed when the preceding task does not exist.
본 발명의 상기 선행 작업 검사 블록은, 상기 기 설정된 선행 실행 임계치를 실행 시간에 대한 값 또는 비율로 표시할 수 있다.The pre-task check block of the present invention may display the pre-set pre-execution threshold value as a value or a ratio to the execution time.
본 발명의 상기 최적 자원 계산 블록은, 상기 산출된 차이가 상기 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 상기 필요 자원보다 더 많거나 혹은 더 적은 자원을 할당하도록 상기 최적 자원을 계산할 수 있다.The optimal resource calculation block of the present invention may calculate the optimal resource so as to allocate more or less resources than the required resource when the calculated difference does not fall within the category of the preset preceding execution threshold.
본 발명의 상기 자원 결정 블록은, 상기 선정된 작업에 할당할 가용 자원이 존재하지 않을 경우, 기 설정된 일정 시간을 대기한 후, 상기 필요 자원 또는 최적 자원의 가용 여부를 다시 판단할 수 있다.The resource decision block of the present invention may re-determine whether the required resource or the optimal resource is available after waiting for a predetermined period of time when there is no available resource to be allocated to the selected task.
본 발명의 상기 자원 할당 관리자는, 상기 선정된 작업에 대한 실행이 완료될 때 작업의 실행 시간을 포함하는 실행 관련 정보를 생성하여 상기 데이터베이스에 저장할 수 있다.
The resource allocation manager of the present invention may generate execution related information including the execution time of the task when the execution of the selected task is completed and store the execution related information in the database.
본 발명에 따르면, 다수의 작업이 파이프라인 형태로 구성되는 서비스의 경우, 서비스 내 각 단계의 작업 실행을 위하여 선행 작업들의 실제 걸린 실행 시간에 따라 자원량을 변경하여 할당할 수 있으며, 이를 통해 다수의 서비스를 사용자의 예측 실행 시간에 맞춰 제공할 수 있을 뿐만 아니라 자원 사용의 효율성을 증진시킬 수 있다.
According to the present invention, in the case of a service in which a plurality of jobs are constituted in the form of a pipeline, the resource amount can be changed and allocated according to the actual execution time of the preceding jobs in order to execute the jobs at each step in the service, Service can be provided in accordance with the user's predicted execution time, and the efficiency of resource use can be improved.
도 1은 종래의 전형적인 자원 관리 시스템의 구성도,
도 2는 종래 방법에 따라 선정된 작업에 자원을 할당하여 실행시키는 주요 과정을 도시한 순서도,
도 3은 본 발명의 실시 예에 따른 자원 할당 장치의 블록 구성도,
도 4는 도 3에 도시된 작업 스케줄러에 대한 세부적인 블록 구성도,
도 5는 본 발명의 실시 예에 따라 선정된 작업에 자원을 할당하여 실행시키는 주요 과정을 도시한 순서도.1 is a block diagram of a conventional resource management system,
FIG. 2 is a flowchart showing a main process of assigning resources to a selected task according to a conventional method,
3 is a block diagram of a resource allocation apparatus according to an embodiment of the present invention.
FIG. 4 is a detailed block diagram of the task scheduler shown in FIG. 3;
5 is a flowchart illustrating a main process of allocating and executing resources for a selected job according to an embodiment of the present invention;
먼저, 본 발명의 장점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되는 실시 예들을 참조하면 명확해질 것이다. 여기에서, 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 발명의 범주를 명확하게 이해할 수 있도록 하기 위해 예시적으로 제공되는 것이므로, 본 발명의 기술적 범위는 청구항들에 의해 정의되어야 할 것이다.First, the advantages and features of the present invention, and how to accomplish them, will be clarified with reference to the embodiments to be described in detail with reference to the accompanying drawings. While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.
아울러, 아래의 본 발명을 설명함에 있어서 공지 기능 또는 구성 등에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들인 것으로, 이는 사용자, 운용자 등의 의도 또는 관례 등에 따라 달라질 수 있음은 물론이다. 그러므로, 그 정의는 본 명세서의 전반에 걸쳐 기술되는 기술사상을 토대로 이루어져야 할 것이다.In the following description of the present invention, 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. It is to be understood that the following terms are defined in consideration of the functions of the present invention, and may be changed according to intentions or customs of a user, an operator, and the like. Therefore, the definition should be based on the technical idea described throughout this specification.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대하여 상세하게 설명한다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 3은 본 발명의 실시 예에 따른 자원 할당 장치의 블록 구성도로서, 큐 관리자(302)(QM : queue manager), 작업 스케줄러(304)(JS : job scheduler), 자원 관리자(306)(RM : resource manager), 데이터베이스(308)(DBMS), 자원 할당 관리자(310)(RAM : resource allocation manager), 자원(312)(source) 등을 포함할 수 있다.3 is a block diagram of a resource allocation apparatus according to an embodiment of the present invention. The resource allocation apparatus includes a
먼저, 사용자는 서비스를 구성하는 각 작업에 필요한 자원 정보, 예측된 실행 시간 등의 정보를 명시(설정)할 수 있으며, 또한 작업들 간의 실행 선후 관계와 선행 실행 임계치를 명시(설정)할 수 있다. 여기에서, 선행 실행 임계치는 현 작업의 모든 선행 작업들의 실행 완료까지 걸린 실제 실행 시간과 예측된 실행 시간과의 허용 가능한 차이를 나타내며, 선행 작업들의 실제 실행 시간과 예측 실행 시간 차이를 값이나 비율(%)로 명시할 수 있다. 본 발명에서는 선행 실행 임계치를 비율로 명시한 경우로 가정하고 설명한다.First, the user can specify (set) information such as resource information and predicted execution time required for each task constituting the service, and can specify (set) the execution precedence relationship and the precedence execution threshold between the tasks . Here, the preceding execution threshold represents the allowable difference between the actual execution time and the expected execution time until completion of execution of all the preceding tasks of the current task, and the difference between the actual execution time and the predicted execution time difference of the preceding tasks, %). In the present invention, it is assumed that the preceding execution threshold value is specified as a ratio.
그리고, 본 발명에 따른 자원 할당 장치(또는 자원 관리 시스템)는 서비스를 구성하는 파이프라인 형태의 다수의 작업 실행을 위한 자원 할당 시에 참조 정보로서 선행 실행 임계치를 사용한다. 사용자가 명시한 필요 자원을 기준으로 하여, 선행 작업들의 실제 실행 시간이 예측 실행 시간의 선행 실행 임계치 범위(범주)에 있지 않은 경우 필요 자원보다 더 많거나 혹은 적은 자원을 할당하도록 한다.The resource allocation apparatus (or resource management system) according to the present invention uses a precedence execution threshold as reference information in allocating resources for execution of a plurality of pipelined tasks composing a service. If the actual execution time of the predecessor tasks is not in the preceding execution threshold range (category) of the predicted execution time, allocate more or less resources than the required resources, based on the necessary resources specified by the user.
본 발명에서의 자원 할당은 물리(physical) 혹은 가상(virtual) 컴퓨팅 노드(computing node)들을 대상으로 노드 단위의 자원 할당뿐 아니라 단일 컴퓨팅 노드 내 CPU, GPU, 메모리 등의 세부 자원들의 할당을 포함할 수 있으며, 두 가지의 할당 모두에 적용할 수도 있다.The resource allocation in the present invention includes allocation of detailed resources such as a CPU, a GPU, and a memory in a single computing node as well as node-based resource allocation for physical or virtual computing nodes And can be applied to both allocations.
도 3을 참조하면, 큐 관리자(302)는 사용자가 작업을 수행하기 위해 필요한 작업 정보, 예컨대 선행 작업 정보, 선행 실행 임계치, 필요 자원 정보, 예측 실행 시간 등의 작업 정보를 입력(명시)하면 이들 데이터들을 데이터베이스(308)에 등록하고, 사용자 요청에 따른 작업 실행 요청을 발생하여 작업 스케줄러(304)에게 전달하는 등의 기능을 제공할 수 있다. 여기에서, 선행 실행 임계치는 모든 선행 작업 중 가장 긴 실행 시간을 가지는 최장 실행 경로에 따른 예측 실행 시간에 대한 실제 실행 시간의 차이의 허용 가능 범위를 나타내는 것으로, 선행 작업들의 실제 실행 시간과 예측 실행 시간 차이는 값이나 비율(%)로 명시(표시)될 수 있다.Referring to FIG. 3, when the user inputs (specifies) job information, such as preceding job information, preceding execution threshold, required resource information, and predicted execution time, necessary for a user to perform a job, Registers the data in the
다음에, 작업 스케줄러(304)는 큐 관리자(302)로부터 전달되는 작업 실행 요청에 따라 자원 관리자(306)로부터 제공되는 가용 자원들의 상태 정보와 데이터베이스(308)로부터 인출한 선행 작업의 실행 시간 관련 정보들에 의거하여 선정된 작업에 대해 가용한 필요 자원 또는 최적 자원을 결정하는 등의 기능을 제공할 수 있는데, 이러한 기능 실현을 위해 도 4에 도시된 바와 같은 구성을 포함할 수 있다. 여기에서, 선행 작업의 실행 시간 관련 정보들은, 예컨대 선행 작업의 서비스 실행 시간, 예측 실행 시간 및 기 설정된 선행 실행 임계치 등을 포함할 수 있다.Next, the
도 4는 도 3에 도시된 작업 스케줄러에 대한 세부적인 블록 구성도로서, 선행 작업 검사 블록(402), 최적 자원 계산 블록(404) 및 자원 결정 블록(406) 등을 포함할 수 있다.FIG. 4 is a detailed block diagram of the task scheduler shown in FIG. 3, and may include a predecessor task check block 402, an optimal resource calculation block 404, a
도 4를 참조하면, 선행 작업 검사 블록(402)은 큐 관리자(302)로부터 작업 실행 요청이 전달될 때 데이터베이스(308)에 저장되어 있는 정보들을 탐색하여 선행 작업이 존재하는지의 여부를 검사하고, 선행 작업이 존재할 때 그 실행이 정상 완료되었는지의 여부를 검사하며, 실행이 정상 완료된 경우 선행 작업까지의 서비스 실행 시간과 예측 실행 시간의 차이를 산출한 후 그 차이 값이 기 설정된 선행 실행 임계치의 범주(범위)에 속하는지의 여부를 체크하는 등의 기능을 제공할 수 있다.Referring to FIG. 4, the predecessor check block 402 searches information stored in the
즉, 선행 작업 검사 블록(402)은 선행 작업이 존재하지 않을 때 그에 상응하는 선행 작업의 미존재 검출 신호를 생성하여 자원 결정 블록(406)으로 전달하고, 차이 값이 기 설정된 선행 실행 임계치의 범주에 포함될 때 그에 상응하는 범주 이내 검출 신호를 생성하여 자원 결정 블록(406)으로 전달하며, 차이 값이 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 그에 상응하는 범주 이탈 검출 신호를 생성하여 최적 자원 계산 블록(404)으로 전달하는 등의 기능을 제공한다. 여기에서, 선행 작업의 미존재 검출 신호는 선행 작업이 존재하지 않을 경우 프로세스를 정상 완료된 것으로 처리하라는 것을 의미할 수 있다.That is, when the preceding task does not exist, the preceding task check block 402 generates a non-existent detection signal of the corresponding preceding task and transfers it to the
다음에, 최적 자원 계산 블록(404)은 선행 작업 검사 블록(402)으로부터 범주 이탈 검출 신호가 전달될 때 자원 관리자(306)로부터 제공되는 가용 자원의 상태 정보들에 의거하여 선정된 작업을 실행하기 위한 최적 자원을 계산하여 자원 결정 블록(406)으로 전달하는 등의 기능을 제공할 수 있다. 여기에서, 최적 자원 계산 블록(404)은 산출된 차이가 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 사용자에 의해 명시된 필요 자원보다 더 많거나 혹은 더 적은 자원을 할당하도록 최적 자원을 계산할 수 있다.Next, the optimal resource calculation block 404 executes the selected task based on the status information of the available resources provided from the
그리고, 자원 결정 블록(406)은 선행 작업 검사 블록(402)으로부터 범주 이탈 검출 신호가 전달될 때 자원 관리자(306)로부터 제공되는 가용 자원의 상태 정보들에 의거하여 필요 자원의 가용 여부를 결정하거나 혹은 최적 자원 계산 블록(404)으로부터 전달되는 최적 자원의 가용 여부를 결정하며, 가용 여부의 결정에 따른 자원 할당 제어신호를 생성하여 도 3의 자원 할당 관리자(310)로 전달하는 등의 기능을 제공할 수 있다. 이때, 자원 할당 블록(406)은 선정된 작업에 할당할 가용 자원이 존재하지 않을 경우, 기 설정된 일정 시간을 대기한 후 필요 자원 또는 최적 자원의 가용 여부를 다시 판단하는 프로세스를 수행할 수 있다.The
다시, 도 3을 참조하면, 자원 관리자(306)는 컴퓨팅 노드들에서 사용 가능한 가용 자원들의 상태 정보를 관리하며, 여기에서 관리되는 가용 자원의 상태 정보들은 작업 스케줄러(304)의 자원 검색 요청에 따라 검색되어 작업 스케줄러(304)에 제공될 수 있다.3, the
다음에, 자원 할당 관리자(310)는 사용자에 의해 명시되어 결정된 필요 자원 또는 계산된 최적 자원에 의거하여 선정된 작업에 대한 자원(312)을 할당하여 실행시키고, 작업 실행의 결과를 사용자에게 전달하며, 선정된 작업에 대한 실행이 완료될 때 작업의 실행 시간 등을 포함하는 실행 관련 정보를 생성하여 데이터베이스(308)에 저장하는 등의 기능을 제공할 수 있다.Next, the
이때, 데이터베이스(308)에 저장되는 작업 정보는 작업 이름, 선행 작업 이름, 선행 실행 임계치, 작업 실행을 위한 필요 자원, 작업의 예측 실행 시간 등을 포함하며, 본 발명에 따라 자원 할당 장치가 구축하는 작업 정보에는 실제 실행 시간, 예측 서비스 시간, 실제 서비스 시간, 지연 시간 등이 포함된다. 작업의 필요 자원과 예측 실행 시간은 사용자 정의 혹은 프로파일링 정보에서의 추출 등 다양한 방법으로 구축 가능하다.At this time, the job information stored in the
그리고, 각 작업의 예측 서비스 시간은 선행 작업의 예측 서비스 시간에 해당 작업의 예측 실행 시간의 합이며, 사용자가 정의한 작업 정보의 삽입 시에 계산되어 저장된다. 여기에서, 실제 실행 시간은 작업이 선정되고 해당 작업에 할당된 자원에서 실행을 시작하여 종료하기까지의 시간을 말한다.The predicted service time of each task is the sum of the predicted execution time of the task in the predicted service time of the preceding task and is calculated and stored at the time of insertion of the task information defined by the user. Here, the actual execution time refers to the time from when the task is selected and resources assigned to the task start to execute and end.
또한, 각 작업의 실제 서비스 시간은 선행 작업의 실제 서비스 시간에 해당 작업의 실제 실행 시간의 합이며, 선행 작업이 없는 경우에는 해당 작업의 실제 실행 시간과 실제 서비스 시간이 같다. 선행 작업들의 다양한 실행 경로가 존재한다면, 가장 긴 예측 실행 시간을 가지는 흐름을 바탕으로 예측 서비스 시간과 실제 서비스 시간을 계산한다. 서비스 지연 시간은 예측 서비스 시간과 실제 서비스 시간의 차이로 계산된다. 서비스 지연 시간은 양수인 경우 서비스 실행 지연을, 음수인 경우에는 서비스의 빠른 실행을 나타낸다.In addition, the actual service time of each task is the sum of the actual execution time of the task in the actual service time of the preceding task. If there is no preceding task, the actual execution time of the task is equal to the actual service time. If there are various execution paths of the predecessor tasks, the predicted service time and the actual service time are calculated based on the flow having the longest predicted execution time. The service delay time is calculated as the difference between the predicted service time and the actual service time. The service delay time indicates the delay in executing the service when the value is positive, and the quick execution of the service when the value is negative.
다음에, 상술한 바와 같은 구성을 갖는 본 발명의 자원 할당 장치를 이용하여 사용자에게 자원 할당 서비스를 제공하는 일련의 과정들에 대하여 상세하게 설명한다.Next, a series of processes for providing a resource allocation service to a user using the resource allocation apparatus of the present invention having the above-described configuration will be described in detail.
도 5는 본 발명의 실시 예에 따라 선정된 작업에 자원을 할당하여 실행시키는 주요 과정을 도시한 순서도이다.FIG. 5 is a flowchart illustrating a main process of assigning and executing resources to a selected task according to an embodiment of the present invention.
도 5를 참조하면, 사용자가 작업을 수행하기 위해 필요한 작업 정보, 예컨대 선행 작업 정보, 선행 실행 임계치, 필요 자원 정보, 예측 실행 시간 등의 작업 정보를 입력(명시)하여 작업 간의 선후 관계를 포함하는 스케줄링 정책을 바탕으로 작업을 선정하면(단계 502), 작업 스케줄러(304) 내 선행 작업 검사 블록(402)에서는 데이터베이스(308)에 저장되어 있는 정보들을 탐색하여 선행 작업이 존재하는지의 여부를 검사한다(단계 504, 506).Referring to FIG. 5, the user inputs (specifies) job information, such as preceding job information, preceding execution threshold, required resource information, and prediction execution time, necessary for performing a job, When a job is selected based on the scheduling policy (step 502), the preceding job check block 402 in the
상기 단계(506)에서의 검사 결과, 선행 작업이 존재하지 않을 경우 처리는 후술하는 단계(510)로 진행되어 선행 작업의 실행이 정상 완료된 것으로 처리하는 프로세스를 진행하게 된다.As a result of the check in
상기 단계(506)에서의 검사 결과, 선행 작업이 존재할 경우 해당 선행의 실행이 정상 완료되었는지의 여부를 검사하는데(단계 508), 여기에서의 검사 결과 선행 작업의 실행이 정상 완료되지 않은 것으로 판단되면 처리는 실행할 작업을 선정하는 단계(502)로 되돌아가 진행된다.As a result of the check in
상기 단계(508)에서의 검사 결과, 선행 작업의 실행이 정상 완료된 것으로 판단되면, 선행 작업 검사 블록(402)에서는 해당 선행 작업의 실제 서비스 시간과 예측 서비스 시간의 차이를 산출하고(단계 510), 산출된 차이 값이 기 설정된 선행 실행 임계치의 범주(범위)에 속하는지의 여부를 체크한다(단계 512). 여기에서, 기 설정된 선행 실행 임계치는 현 작업의 모든 선행 작업들의 실행 완료까지 걸린 실제 실행 시간과 예측된 실행 시간과의 허용 가능한 차이를 나타내며, 선행 작업들의 실제 실행 시간과 예측 실행 시간 차이를 값이나 비율(%)로 명시될 수 있다.If it is determined in
상기 단계(512)에서의 체크 결과, 산출된 차이 값이 기 설정된 선행 실행 임계치의 범주(범위) 이내 이면 처리는 후술하는 단계(516)로 진행하고, 산출된 차이 값이 기 설정된 선행 실행 임계치의 범주(범위)에 속하지 않으면 최적 자원 계산 블록(404)에서 자원 관리자(306)로부터 제공되는 가용 자원의 상태 정보들에 의거하여 선정된 작업을 실행하기 위한 최적 자원을 계산한다(단계 514). 여기에서, 최적 자원은 사용자에 의해 명시된 필요 자원보다 더 많거나 혹은 더 적은 자원으로 계산될 수 있다.If it is determined in
다음에, 자원 결정 블록(406)에서 자원 관리자(306)로부터 제공되는 가용 자원의 상태 정보들에 의거하여 필요 자원의 가용 여부를 체크(또는 결정)하는데(단계 516), 체크 결과 선정된 작업에 할당할 가용 자원이 존재하지 않을 경우 기 설정된 일정 시간을 대기한 후(단계 518), 필요 자원 또는 최적 자원의 가용 여부를 다시 판단하는 프로세스를 수행한다.Next, the
상기 단계(516)에서의 체크 결과, 선정된 작업에 할당할 가용 자원이 존재할 경우, 자원 결정 블록(406)에서는 자원 할당 제어신호를 생성하여 자원 할당 관리자(310)로 전달한다.If it is determined in
그 결과, 자원 할당 관리자(310)에서는 생성된 자원 할당 제어신호에 따라 필요 자원 또는 계산된 최적 자원에 의거하여 선정된 작업에 대한 자원(312)을 할당하여 실행시킨다(단계 520).As a result, the
이후에, 자원 할당 관리자(310)에서는 할당된 자원을 이용한 작업의 실행 완료 여부를 체크하는데(단계 522), 여기에서의 체크 결과 선정된 작업에 대한 실행이 완료된 것으로 판단될 때 작업의 실행 시간 등을 포함하는 실행 관련 정보를 생성하여 데이터베이스(308)에 저장한다(단계 524).Thereafter, the
일예로서, 본 발명에 따라 데이터베이스에 저장되는 작업 정보는 아래의 표 1과 같이 정의될 수 있다.As an example, the task information stored in the database according to the present invention can be defined as shown in Table 1 below.
(CPUs)Required Resources
(CPUs)
(CPUs)Assigned Resources
(CPUs)
상기 표에 명시된 서비스를 구성하는 작업 J1, J2, J3을 바탕으로, 본 발명에 따른 작업의 자원 할당에 대해서 생각해보자. 본 발명에서는 자원 할당의 이해를 돕기 위하여, 3개의 작업이 순차적으로 실행되는 경우를 예로 하여 설명한다.Based on the tasks J1, J2, J3 constituting the services specified in the above table, consider the resource allocation of the tasks according to the present invention. In the present invention, in order to facilitate understanding of resource allocation, a case in which three jobs are sequentially executed will be described as an example.
J1은 초기 작업으로 사용자가 명시한 필요 자원을 바탕으로 작업이 이미 수행된 상태이다. 그러므로, 작업 J2에 대한 자원 할당을 위하여, 선행 작업J1까지의 실행 시간 즉, 예측 서비스 시간 내에 실제 서비스 시간이 선행 실행 임계치 범주에 있는지를 판단한다. 이는 예측 서비스 시간과 실제 서비스 시간의 차가 선행 실행 임계치보다 작은지로 판단할 수 있다. 선행 작업까지의 서비스 실행 시간이 선행 실행 임계치에 있으면, 필요 자원이 가용한지 여부를 검색한 후 해당 자원을 할당한다.J1 is an initial operation in which the operation has already been performed based on the necessary resources specified by the user. Therefore, in order to allocate resources for the task J2, it is determined whether the actual service time is within the execution time threshold up to the preceding task J1, that is, within the predicted service time. It can be determined that the difference between the predicted service time and the actual service time is smaller than the preceding execution threshold. If the service execution time up to the preceding task is in the preceding execution threshold, it is searched whether the necessary resources are available, and the corresponding resources are allocated.
[수식 1][Equation 1]
상기의 수식 1에 의해 선행 작업까지의 서비스의 실행 시간은 J2에 명시된 선행 실행 임계치에 있지 못하기 때문에 최적 자원을 계산한다. 병렬 프로그래밍 기반 응용의 작업은 CPU와 같은 자원의 수가 입력 데이터 처리의 병렬화와 연계된다. 즉, 필요 자원과 예측 실행 시간의 곱을 처리해야 할 입력 데이터로 간주하는 경우, 최적 자원의 수와 최적 실행 시간의 곱은 입력 데이터와 같아야 한다. 이때, 실행 지연인 경우에는 자원을 추가하고, 빠른 실행인 경우에는 자원을 감소하며, 지연 시간을 0에 가깝게 만들 수 있는 자원이 최적 자원이 된다. 선행 작업 J1의 서비스 지연 시간 = 10인 경우, 작업 J2의 최적 자원은 아래와 같이 결정된다.According to Equation (1), the execution time of the service up to the preceding task is not in the preceding execution threshold specified in J2, so the optimal resource is calculated. The work of a parallel programming-based application is related to the parallelization of the input data processing in the number of resources such as CPU. That is, when the product of the required resources and the predicted execution time is regarded as input data to be processed, the product of the optimum number of resources and the optimal execution time should be the same as the input data. At this time, in the case of the execution delay, the resource is added, the resource is decreased in the case of the quick execution, and the resource capable of making the delay time close to 0 becomes the optimal resource. When the service delay time of the preceding task J1 = 10, the optimum resource of the task J2 is determined as follows.
입력 데이터 = (필요 자원 x 예측 실행 시간) = (최적 자원 x 최적 실행 시간) Input data = (required resource x predicted execution time) = (optimal resource x optimal execution time)
2 CPUs(필요 자원) x 30 (예측 실행 시간) = 60 = 입력 데이터2 CPUs (required resources) x 30 (predicted execution time) = 60 = input data
입력 데이터 = 60 = 3 CPUs(최적 자원) * 20 (최적 실행 시간)Input data = 60 = 3 CPUs (optimal resource) * 20 (optimal execution time)
30 (예측 실행 시간) - 20 (최적 실행 시간) = 10 = 서비스 지연 시간30 (forecast execution time) - 20 (optimal execution time) = 10 = service delay time
따라서, J2의 최적 자원은 3 x CPU가 되며, 최적 자원이 가용한지 검사한다. 가용하면 최적 자원을 할당하여 J2를 실행한다.Therefore, the optimal resource of J2 becomes 3 x CPU and it is checked whether the optimum resource is available. If available, allocate the optimal resources and run J2.
J2가 완료되면, J2의 실제 실행 시간을 바탕으로, 실제 서비스 시간, 서비스 지연 시간이 결정되는데, J2의 실제 실행 시간은 필요 자원 보다 더 많은 최적 자원 할당으로 예측 실행 시간보다 짧아진다. 즉, J1의 실행 지연 시간이 그대로 서비스 지연 시간으로 연계되지 않고, J2 을 통해 해소될 수 있다.When J2 is completed, the actual service time and the service delay time are determined based on the actual execution time of J2, and the actual execution time of J2 is shorter than the predicted execution time with more optimal resource allocation than the required resources. That is, the execution delay time of J1 can be solved through J2 without being directly linked to the service delay time.
반대로, J1의 예측 실행 시간보다 빠른 실제 실행 시간을 가지면서, J2에 명시된 선행 실행 임계치를 벗어나는 경우, 본 발명의 따르면 J2에 명시된 필요 자원보다 적은 최적 자원을 할당하게 함으로써 사용자의 서비스 실행 시간에 대한 만족도는 유지하면서 여유 자원이 다른 서비스 실행을 위해 할당될 수 있다.Conversely, if the actual execution time is faster than the predicted execution time of J1 and the preceding execution threshold specified by J2 is exceeded, according to the present invention, by allocating less optimal resources than the required resources indicated by J2, Free resources can be allocated for different service implementations while maintaining satisfaction.
즉, 본 발명에 따른 작업 실행을 위한 자원 할당 방법은 병렬 프로그래밍 기반 응용을 가지는 두 개 이상의 작업이 파이프라인 형태로 구성되는 서비스의 경우, 선행 작업 실행의 지연 혹은 빠름이 후행 작업에 할당할 자원량을 결정토록 함으로써, 사용자의 서비스 실행 시간에 대한 만족도를 유지하면서 클러스터 내 자원을 효율적으로 활용할 수 있도록 지원한다.That is, in the case of a service in which two or more tasks having a parallel programming-based application are configured in the form of a pipeline, the resource allocation method for executing the task according to the present invention is characterized in that the delay amount of the preceding task execution, And thus it is possible to efficiently utilize the resources in the cluster while maintaining satisfaction with the user's service execution time.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경 등이 가능함을 쉽게 알 수 있을 것이다. 즉, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것으로서, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다.It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims. It is easy to see that this is possible. In other words, the embodiments disclosed in the present invention are not intended to limit the scope of the present invention but to limit the scope of the technical idea of the present invention.
따라서, 본 발명의 보호 범위는 후술되는 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Therefore, the scope of protection of the present invention should be construed in accordance with the following claims, and all technical ideas within the scope of equivalents should be interpreted as being included in the scope of the present invention.
302 : 큐 관리자 304 : 작업 스케줄러
306 : 자원 관리자 308 : 데이터베이스
310 : 자원 할당 관리자 402 : 선행 작업 검사 블록
404 : 최적 자원 계산 블록 406 : 자원 결정 블록302: queue manager 304: job scheduler
306: Resource manager 308: Database
310: resource allocation manager 402: predecessor check block
404: Optimal resource calculation block 406: Resource decision block
Claims (15)
가용 자원의 상태 정보, 선행 작업의 서비스 실행 시간, 기 설정된 예측 실행 시간 및 선행 실행 임계치에 의거하여 상기 선정된 작업에 대해 가용한 필요 자원 또는 최적 자원을 결정하는 과정과,
상기 결정된 필요 자원 또는 최적 자원에 의거하여 상기 선정된 작업에 대한 자원을 할당하여 실행시키는 과정
을 포함하는 자원 할당 방법.
Selecting a job to be executed based on a scheduling policy including a posterior relationship between jobs,
Determining a necessary resource or an optimal resource available for the selected task based on status information of available resources, a service execution time of a preceding task, a predetermined prediction execution time, and a preceding execution threshold,
And allocating and executing a resource for the selected task based on the determined necessary resource or optimal resource
/ RTI >
상기 작업이 선정될 때 선행 작업의 실행이 정상 완료되었는지의 여부를 검사하는 과정과,
상기 선행 작업의 실행이 정상 완료된 경우, 상기 선행 작업까지의 서비스 실행 시간과 예측 실행 시간의 차이를 산출하는 과정과,
상기 산출된 차이가 기 설정된 선행 실행 임계치의 범주에 속하는지의 여부를 체크하는 과정과,
상기 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 선정된 작업의 실행을 위한 최적 자원을 계산하는 과정과,
상기 기 설정된 선행 실행 임계치의 범주에 속할 때의 필요 자원 또는 상기 최적 자원의 가용 여부를 판단하는 과정과,
상기 필요 자원 또는 최적 자원이 가용한 것으로 판단될 때 선정된 작업에 자원을 할당하여 실행시키는 과정
을 포함하는 자원 할당 방법.
Selecting a job to be executed based on a scheduling policy including a posterior relationship between jobs,
Checking whether the execution of the preceding job is normally completed when the job is selected;
Calculating a difference between a service execution time until the preceding task and a predicted execution time when the execution of the preceding task is normally completed;
Checking whether the calculated difference belongs to a category of a predetermined preceding execution threshold;
Calculating an optimal resource for execution of a selected task when the task does not fall within the category of the preset preceding execution threshold;
Determining whether a necessary resource or the optimal resource is available if the resource belongs to a category of the predetermined execution threshold;
And allocating and executing a resource to the selected task when it is determined that the required resource or the optimal resource is available
/ RTI >
상기 기 설정된 선행 실행 임계치는,
모든 선행 작업 중 가장 긴 실행 시간을 가지는 최장 실행 경로에 따른 예측 실행 시간에 대한 실제 실행 시간의 차이의 허용 가능 범위인
자원 할당 방법.
3. The method of claim 2,
The pre-set pre-
The allowable range of the actual execution time difference for the predicted execution time according to the longest execution path having the longest execution time among all the preceding tasks
Resource allocation method.
상기 기 설정된 선행 실행 임계치는,
실행 시간에 대한 값 또는 비율로 표시되는
자원 할당 방법.
The method of claim 3,
The pre-set pre-
A value or percentage for the execution time.
Resource allocation method.
상기 계산하는 과정은,
상기 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 상기 필요 자원보다 더 많거나 혹은 더 적은 자원을 할당하도록 상기 최적 자원을 계산하는
자원 할당 방법.
3. The method of claim 2,
The calculation process may include:
Calculating the optimal resource so as to allocate more or less resources than the required resource when the resource does not belong to the category of the predetermined execution threshold
Resource allocation method.
상기 판단하는 과정은,
상기 선정된 작업에 할당할 가용 자원이 존재하지 않을 경우, 기 설정된 일정 시간을 대기한 후, 상기 필요 자원 또는 최적 자원의 가용 여부를 다시 판단하는
자원 할당 방법.
3. The method of claim 2,
The determining step may include:
If there is no available resource to be allocated to the selected task, the apparatus waits for a predetermined period of time and determines whether the required resource or the optimal resource is available again
Resource allocation method.
상기 자원 할당 방법은,
상기 선정된 작업에 대한 실행이 완료될 때 작업의 실행 시간을 포함하는 실행 관련 정보를 생성하여 데이터베이스에 저장하는 과정
을 더 포함하는 자원 할당 방법.
3. The method of claim 2,
The resource allocation method includes:
Generating execution-related information including execution time of the task when the execution of the selected task is completed, and storing the execution-related information in a database
The resource allocation method further comprising:
가용 자원들의 상태 정보를 관리하는 자원 관리자와,
상기 작업 실행 요청에 따라 상기 자원 관리자로부터 제공되는 상태 정보와 상기 데이터베이스로부터 제공되는 선행 작업의 실행 시간 관련 정보들에 의거하여 선정된 작업에 대해 가용한 필요 자원 또는 최적 자원을 결정하는 작업 스케줄러와,
상기 결정된 필요 자원 또는 최적 자원에 의거하여 상기 선정된 작업에 대한 자원을 할당하여 실행시키는 자원 할당 관리자
를 포함하는 자원 할당 장치.
A queue manager for registering job information for selecting a job to be executed in a database and generating a job execution request according to a user request;
A resource manager for managing status information of available resources,
A task scheduler for determining a necessary resource or an optimal resource available for a task selected based on state information provided from the resource manager and execution time information of a preceding task provided from the database in response to the task execution request;
A resource allocation manager for allocating and executing a resource for the selected task on the basis of the determined necessary resource or optimal resource,
And a resource allocation unit.
상기 실행 시간 관련 정보들은,
상기 선행 작업의 서비스 실행 시간, 기 설정된 예측 실행 시간 및 선행 실행 임계치를 포함하는
자원 할당 장치.
9. The method of claim 8,
The execution time-
A service execution time of the preceding task, a predetermined execution time and a preceding execution threshold
Resource allocation device.
상기 작업 스케줄러는,
상기 선행 작업의 실행이 정상 완료되었는지의 여부를 검사하고, 정상 완료된 경우 상기 선행 작업까지의 서비스 실행 시간과 예측 실행 시간의 차이를 산출하여 기 설정된 선행 실행 임계치의 범주에 속하는지의 여부를 체크하는 선행 작업 검사 블록과,
상기 산출된 차이가 상기 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 상기 선정된 작업의 실행을 위한 최적 자원을 계산하는 최적 자원 계산 블록과,
상기 산출된 차이가 상기 기 설정된 선행 실행 임계치의 범주에 속할 때의 필요 자원 또는 상기 계산된 최적 자원의 가용 여부에 의거하여 상기 필요 자원 또는 최적 자원을 결정하는 자원 결정 블록
을 포함하는 자원 할당 장치.
10. The method of claim 9,
The job scheduler,
It is checked whether or not the execution of the preceding task is normally completed. If the execution of the preceding task is normally completed, a difference between the service execution time and the predicted execution time until the preceding task is calculated and it is checked whether or not it belongs to the category of the previously executed execution threshold A predecessor check block,
An optimum resource calculation block for calculating an optimal resource for execution of the selected task when the calculated difference does not fall within the category of the preset preceding execution threshold;
Determining a necessary resource or an optimal resource based on whether the calculated difference is in a category of the preset preceding execution threshold or whether the calculated optimal resource is available;
And a resource allocation unit.
상기 기 설정된 선행 실행 임계치는,
모든 선행 작업 중 가장 긴 실행 시간을 가지는 최장 실행 경로에 따른 예측 실행 시간에 대한 실제 실행 시간의 차이의 허용 가능 범위인
자원 할당 장치.
11. The method of claim 10,
The pre-set pre-
The allowable range of the actual execution time difference for the predicted execution time according to the longest execution path having the longest execution time among all the preceding tasks
Resource allocation device.
상기 선행 작업 검사 블록은,
상기 기 설정된 선행 실행 임계치를 실행 시간에 대한 값 또는 비율로 표시하는
자원 할당 장치.
12. The method of claim 11,
The pre-task check block includes:
The pre-set pre-execution threshold is displayed as a value or a ratio to the execution time
Resource allocation device.
상기 최적 자원 계산 블록은,
상기 산출된 차이가 상기 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 상기 필요 자원보다 더 많거나 혹은 더 적은 자원을 할당하도록 상기 최적 자원을 계산하는
자원 할당 장치.
11. The method of claim 10,
Wherein the optimal resource calculation block comprises:
Calculating the optimal resource so as to allocate more or less resources than the required resource when the calculated difference does not fall within the category of the preset preceding execution threshold
Resource allocation device.
상기 자원 결정 블록은,
상기 선정된 작업에 할당할 가용 자원이 존재하지 않을 경우, 기 설정된 일정 시간을 대기한 후, 상기 필요 자원 또는 최적 자원의 가용 여부를 다시 판단하는
자원 할당 장치.
11. The method of claim 10,
Wherein the resource decision block comprises:
If there is no available resource to be allocated to the selected task, the apparatus waits for a predetermined period of time and determines whether the required resource or the optimal resource is available again
Resource allocation device.
상기 자원 할당 관리자는,
상기 선정된 작업에 대한 실행이 완료될 때 작업의 실행 시간을 포함하는 실행 관련 정보를 생성하여 상기 데이터베이스에 저장하는
자원 할당 장치.9. The method of claim 8,
Wherein the resource allocation manager comprises:
When the execution of the selected job is completed, execution-related information including the execution time of the job is generated and stored in the database
Resource allocation device.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130010378A KR101770191B1 (en) | 2013-01-30 | 2013-01-30 | Resource allocation and apparatus |
CN201310248688.0A CN103970606A (en) | 2013-01-30 | 2013-06-21 | Device And Method For Distributing Resource |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130010378A KR101770191B1 (en) | 2013-01-30 | 2013-01-30 | Resource allocation and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140097815A true KR20140097815A (en) | 2014-08-07 |
KR101770191B1 KR101770191B1 (en) | 2017-08-23 |
Family
ID=51240140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130010378A KR101770191B1 (en) | 2013-01-30 | 2013-01-30 | Resource allocation and apparatus |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101770191B1 (en) |
CN (1) | CN103970606A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486644A (en) * | 2020-11-27 | 2021-03-12 | 北京百度网讯科技有限公司 | Method, apparatus, device and storage medium for generating information |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106959891A (en) * | 2017-03-30 | 2017-07-18 | 山东超越数控电子有限公司 | A kind of cluster management method and system for realizing GPU scheduling |
CN110389816B (en) * | 2018-04-20 | 2023-05-23 | 伊姆西Ip控股有限责任公司 | Method, apparatus and computer readable medium for resource scheduling |
CN109063897B (en) * | 2018-07-03 | 2022-06-10 | 蔚来(安徽)控股有限公司 | Method, system and equipment for predicting productivity of service resources in service system |
CN111198755B (en) * | 2019-12-23 | 2023-07-21 | 曙光信息产业(北京)有限公司 | Pre-charging device and method based on SLURM job scheduling system |
CN111090401B (en) * | 2020-03-23 | 2020-06-26 | 上海飞旗网络技术股份有限公司 | Storage device performance prediction method and device |
CN112269650A (en) * | 2020-12-18 | 2021-01-26 | 北京达佳互联信息技术有限公司 | Task scheduling method and device, electronic equipment and storage medium |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4015898B2 (en) | 2002-07-26 | 2007-11-28 | 松下電器産業株式会社 | Program execution device |
FR2873830B1 (en) * | 2004-07-30 | 2008-02-22 | Commissariat Energie Atomique | TASK PROCESSING ORDERING METHOD AND DEVICE FOR CARRYING OUT THE METHOD |
DE602006002915D1 (en) * | 2005-04-21 | 2008-11-13 | Ibm | Procedure and system for workload planning with improved scheme for updating the duration of a planned work |
JP4781089B2 (en) * | 2005-11-15 | 2011-09-28 | 株式会社ソニー・コンピュータエンタテインメント | Task assignment method and task assignment device |
US20090025004A1 (en) * | 2007-07-16 | 2009-01-22 | Microsoft Corporation | Scheduling by Growing and Shrinking Resource Allocation |
JP5377231B2 (en) | 2009-10-30 | 2013-12-25 | 株式会社東芝 | Job net control program and job net control device |
CN102521056B (en) * | 2011-12-28 | 2013-08-14 | 用友软件股份有限公司 | Task allocation device and task allocation method |
-
2013
- 2013-01-30 KR KR1020130010378A patent/KR101770191B1/en active IP Right Grant
- 2013-06-21 CN CN201310248688.0A patent/CN103970606A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486644A (en) * | 2020-11-27 | 2021-03-12 | 北京百度网讯科技有限公司 | Method, apparatus, device and storage medium for generating information |
Also Published As
Publication number | Publication date |
---|---|
KR101770191B1 (en) | 2017-08-23 |
CN103970606A (en) | 2014-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11656911B2 (en) | Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items | |
KR101770191B1 (en) | Resource allocation and apparatus | |
US10514951B2 (en) | Systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery | |
US11294726B2 (en) | Systems, methods, and apparatuses for implementing a scalable scheduler with heterogeneous resource allocation of large competing workloads types using QoS | |
US9501318B2 (en) | Scheduling and execution of tasks based on resource availability | |
CN111406250B (en) | Provisioning using prefetched data in a serverless computing environment | |
US8839260B2 (en) | Automated cloud workload management in a map-reduce environment | |
US8875143B2 (en) | Utility-optimized scheduling of time-sensitive tasks in a resource-constrained environment | |
US9262220B2 (en) | Scheduling workloads and making provision decisions of computer resources in a computing environment | |
US9940162B2 (en) | Realtime optimization of compute infrastructure in a virtualized environment | |
US8578381B2 (en) | Apparatus, system and method for rapid resource scheduling in a compute farm | |
CN110806933B (en) | Batch task processing method, device, equipment and storage medium | |
KR101350755B1 (en) | Cost Based Scheduling Algorithm for Multiple Workflow in Cloud Computing and System of The Same | |
US20210248469A1 (en) | Method and apparatus for scheduling deep learning reasoning engines, device, and medium | |
CN109086135B (en) | Resource scaling method and device, computer equipment and storage medium | |
US10084866B1 (en) | Function based dynamic traffic management for network services | |
CN108205469B (en) | MapReduce-based resource allocation method and server | |
JP4912927B2 (en) | Task allocation apparatus and task allocation method | |
TWI554945B (en) | Routine task allocating method and multicore computer using the same | |
KR20140077769A (en) | Method for allocating and managing of adaptive resource | |
US10635492B2 (en) | Leveraging shared work to enhance job performance across analytics platforms | |
CN117331668A (en) | Job scheduling method, device, equipment and storage medium | |
CN115952054A (en) | Simulation task resource management method, device, equipment and medium | |
Nino-Ruiz et al. | Elastic scaling of e-infrastructures to support data-intensive research collaborations | |
Zhang et al. | COBRA: Toward provably efficient semi-clairvoyant scheduling in data analytics systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |