KR20140097815A - Resource allocation and apparatus - Google Patents

Resource allocation and apparatus Download PDF

Info

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
Application number
KR1020130010378A
Other languages
Korean (ko)
Other versions
KR101770191B1 (en
Inventor
최현화
배승조
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020130010378A priority Critical patent/KR101770191B1/en
Priority to CN201310248688.0A priority patent/CN103970606A/en
Publication of KR20140097815A publication Critical patent/KR20140097815A/en
Application granted granted Critical
Publication of KR101770191B1 publication Critical patent/KR101770191B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Abstract

A resource allocation method of the present invention may comprises: a process of selecting a task to be executed based on a scheduling policy including a sequence relationship between tasks; a process of determining an available required resource or an optimal resource for the selected task based on a status information of the available resource, service execution time of a prior task, a predetermined predicted execution time, and a prior execution threshold; and a process of allocating and executing a resource for the selected task based on the determined required resource or optical resource.

Description

자원 할당 방법 및 그 장치{RESOURCE ALLOCATION AND APPARATUS}{RESOURCE ALLOCATION AND APPARATUS}

본 발명은 자원을 할당하는 기법에 관한 것으로, 더욱 상세하게는 분산 컴퓨팅 환경에서 파이프라인 형태의 작업들(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 queue manager 102, a task scheduler 104, a resource manager 106, a resource allocation manager 108, a resource 110, and the like.

도 1을 참조하면, 큐 관리자(102)는 큐 관리자(102)는 사용자가 제출(submit)한 작업(job)을 받아들여 작업 스케줄러(104)에게 작업 실행 요청을 전달하는데, 사용자는 작업 제출 시 각 작업을 수행하기 위해 필요한 자원 요구를 설정(명시)해야 한다.Referring to FIG. 1, the queue manager 102 receives a job submitted by a user and delivers a job execution request to the job scheduler 104, You must set (specify) the resource requirements that are required to perform each task.

다음에, 작업 스케줄러(104)는 자원 관리자(106)로부터 자원의 상태 정보를 받아서 언제, 어느 컴퓨팅 자원을 사용하여 작업을 실행할지를 결정하며, 이를 통해 스케줄링 정책에 의해 클러스터를 구성하는 자원을 최적으로 이용할 수 있게 한다. 이를 위해 자원 관리자(106)는 가용한 자원의 상태 정보를 작업 스케줄러(104)에게 보고한다.Next, the task scheduler 104 receives the status information of the resource from the resource manager 106, determines when to use the computing resource to perform the task, and optimizes the resource constituting the cluster according to the scheduling policy . To this end, the resource manager 106 reports the status information of the available resources to the task scheduler 104.

그리고, 자원 할당 관리자(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 resource allocation manager 108 receives the information of the task to be performed sent by the task scheduler 104 and executes the task (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).

도 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 step 206, it is regarded as having been normally completed (considered), and the process then proceeds to step 210, which will be described later.

상기 단계(208)에서의 검사 결과, 선행 작업이 정상 완료되지 않은 것으로 판단되면, 처리는 단계(202)로 되돌아가 새로 실행할 작업을 선정하는 프로세스를 진행하게 된다.If it is determined in step 208 that the preceding job has not been normally completed, the process returns to step 202 to proceed to a process of selecting a job to be newly executed.

상기 단계(208)에서의 검사 결과, 선행 작업이 정상 완료된 것으로 판단되면, 작업에 명시된 필요 자원이 가용한지의 여부를 판단ㅎ나다(단계 210). 판단 결과 가용 자원이 존재하지 않을 경우 일정 시간 동안 대기한 후(단계 212), 다시 가용 자원의 존재 여부를 판단하는 프로세스를 진행한다.If it is determined in step 208 that the preceding job is normally completed, it is determined whether the necessary resources specified in the job are available (step 210). As a result of the determination, if there is no available resource, the process waits for a predetermined period of time (step 212), and the process of determining whether or not the resource exists again is performed.

상기 단계(210)에서의 판단 결과, 필요 자원이 가용한 경우, 가용 자원을 선정된 작업의 수행을 위해 할당한 후 작업을 실행시키는 프로세스를 진행한다(단계 214).If it is determined in step 210 that the required resources are available, the process proceeds to step 214, after assigning the available resources to perform the selected tasks.

일예로서, 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.

대한민국 공개특허 제2012-0110870호(공개일 : 2012. 10. 10.)Korea Open Patent No. 2012-0110870 (Publication Date: Oct. 10, 2012)

본 발명은, 자원 관리 시스템에서 두 개 이상의 작업들이 파이프라인 형태로 구성되는 서비스의 실행 시간에 대한 사용자의 만족도를 전체적으로 향상시키기 위하여, 선행 작업까지의 서비스 실행 시간에 대한 임계치 명시를 통해, 후행 작업에 사용자가 명시한 필요 자원량 이상 혹은 이하의 자원을 할당하는 새로운 기법을 제공하고자 한다.
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 queue manager 302, a job scheduler 304, a resource manager 306 a resource manager, a database 308 (DBMS), a resource allocation manager 310 (RAM), a resource 312, and the like.

먼저, 사용자는 서비스를 구성하는 각 작업에 필요한 자원 정보, 예측된 실행 시간 등의 정보를 명시(설정)할 수 있으며, 또한 작업들 간의 실행 선후 관계와 선행 실행 임계치를 명시(설정)할 수 있다. 여기에서, 선행 실행 임계치는 현 작업의 모든 선행 작업들의 실행 완료까지 걸린 실제 실행 시간과 예측된 실행 시간과의 허용 가능한 차이를 나타내며, 선행 작업들의 실제 실행 시간과 예측 실행 시간 차이를 값이나 비율(%)로 명시할 수 있다. 본 발명에서는 선행 실행 임계치를 비율로 명시한 경우로 가정하고 설명한다.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 database 308, generates a job execution request according to a user request, and delivers the job execution request to the job scheduler 304. [ Here, the preceding execution threshold represents an allowable range of the difference of the actual execution time with respect to the predicted execution time according to the longest execution path having the longest execution time among all the preceding tasks. The actual execution time of the preceding tasks and the predicted execution time The difference can be specified as a value or percentage (%).

다음에, 작업 스케줄러(304)는 큐 관리자(302)로부터 전달되는 작업 실행 요청에 따라 자원 관리자(306)로부터 제공되는 가용 자원들의 상태 정보와 데이터베이스(308)로부터 인출한 선행 작업의 실행 시간 관련 정보들에 의거하여 선정된 작업에 대해 가용한 필요 자원 또는 최적 자원을 결정하는 등의 기능을 제공할 수 있는데, 이러한 기능 실현을 위해 도 4에 도시된 바와 같은 구성을 포함할 수 있다. 여기에서, 선행 작업의 실행 시간 관련 정보들은, 예컨대 선행 작업의 서비스 실행 시간, 예측 실행 시간 및 기 설정된 선행 실행 임계치 등을 포함할 수 있다.Next, the task scheduler 304, based on the status information of the available resources provided from the resource manager 306 and the execution time information of the preceding task fetched from the database 308 according to the task execution request transmitted from the queue manager 302 And determining a necessary resource or an optimal resource available for the selected task based on the received information. In order to realize such a function, the configuration as shown in FIG. 4 may be included. Here, the execution time related information of the preceding task may include, for example, a service execution time of the preceding task, a predicted execution time, and a predetermined preceding execution threshold.

도 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 resource decision block 406, and the like.

도 4를 참조하면, 선행 작업 검사 블록(402)은 큐 관리자(302)로부터 작업 실행 요청이 전달될 때 데이터베이스(308)에 저장되어 있는 정보들을 탐색하여 선행 작업이 존재하는지의 여부를 검사하고, 선행 작업이 존재할 때 그 실행이 정상 완료되었는지의 여부를 검사하며, 실행이 정상 완료된 경우 선행 작업까지의 서비스 실행 시간과 예측 실행 시간의 차이를 산출한 후 그 차이 값이 기 설정된 선행 실행 임계치의 범주(범위)에 속하는지의 여부를 체크하는 등의 기능을 제공할 수 있다.Referring to FIG. 4, the predecessor check block 402 searches information stored in the database 308 when a job execution request is transmitted from the queue manager 302 to check whether a predecessor job exists, And if the execution is completed normally, the difference between the execution time of the service up to the preceding task and the execution time of the execution is calculated, and then the difference value is compared with the category of the predetermined execution threshold (Range), and the like can be provided.

즉, 선행 작업 검사 블록(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 resource decision block 406. If the difference value is within the predetermined prior execution threshold category When the difference value does not fall within the category of the predetermined execution threshold value, generates a category detection signal corresponding thereto, and transmits the detection result to the resource decision block 406. When the difference value is not within the category of the predetermined execution threshold, To block 404, and so on. Here, the non-existence detection signal of the preceding task may mean that the process should be treated as normally completed if there is no preceding task.

다음에, 최적 자원 계산 블록(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 resource manager 306 when the category departure detection signal is transmitted from the preceding task check block 402 And transferring the optimal resource to the resource decision block 406. [0154] Here, the optimal resource calculation block 404 may calculate the optimal resource so as to allocate more or less resources than the necessary resources specified by the user when the calculated difference does not fall within the predetermined prior execution threshold category.

그리고, 자원 결정 블록(406)은 선행 작업 검사 블록(402)으로부터 범주 이탈 검출 신호가 전달될 때 자원 관리자(306)로부터 제공되는 가용 자원의 상태 정보들에 의거하여 필요 자원의 가용 여부를 결정하거나 혹은 최적 자원 계산 블록(404)으로부터 전달되는 최적 자원의 가용 여부를 결정하며, 가용 여부의 결정에 따른 자원 할당 제어신호를 생성하여 도 3의 자원 할당 관리자(310)로 전달하는 등의 기능을 제공할 수 있다. 이때, 자원 할당 블록(406)은 선정된 작업에 할당할 가용 자원이 존재하지 않을 경우, 기 설정된 일정 시간을 대기한 후 필요 자원 또는 최적 자원의 가용 여부를 다시 판단하는 프로세스를 수행할 수 있다.The resource decision block 406 determines whether the necessary resources are available based on the status information of the available resources provided from the resource manager 306 when the category departure detection signal is transmitted from the preceding task check block 402 Or whether or not the optimal resource is available from the optimal resource calculation block 404 and generates a resource allocation control signal according to the availability determination and transmits the generated resource allocation control signal to the resource allocation manager 310 of FIG. can do. In this case, if there is no available resource to be allocated to the selected task, the resource allocation block 406 may wait for a predetermined time and then perform a process of re-determining whether a required resource or an optimal resource is available.

다시, 도 3을 참조하면, 자원 관리자(306)는 컴퓨팅 노드들에서 사용 가능한 가용 자원들의 상태 정보를 관리하며, 여기에서 관리되는 가용 자원의 상태 정보들은 작업 스케줄러(304)의 자원 검색 요청에 따라 검색되어 작업 스케줄러(304)에 제공될 수 있다.3, the resource manager 306 manages the status information of the available resources available at the computing nodes, and the status information of the available resources managed by the resource manager 306 is managed according to the resource search request of the task scheduler 304 And may be retrieved and provided to job scheduler 304. [

다음에, 자원 할당 관리자(310)는 사용자에 의해 명시되어 결정된 필요 자원 또는 계산된 최적 자원에 의거하여 선정된 작업에 대한 자원(312)을 할당하여 실행시키고, 작업 실행의 결과를 사용자에게 전달하며, 선정된 작업에 대한 실행이 완료될 때 작업의 실행 시간 등을 포함하는 실행 관련 정보를 생성하여 데이터베이스(308)에 저장하는 등의 기능을 제공할 수 있다.Next, the resource allocation manager 310 allocates and executes a resource 312 for the selected job based on the necessary resource determined by the user or the calculated optimal resource, and delivers the result of the job execution to the user Related information including the execution time of the task when the execution of the selected task is completed, and storing the execution related information in the database 308. [

이때, 데이터베이스(308)에 저장되는 작업 정보는 작업 이름, 선행 작업 이름, 선행 실행 임계치, 작업 실행을 위한 필요 자원, 작업의 예측 실행 시간 등을 포함하며, 본 발명에 따라 자원 할당 장치가 구축하는 작업 정보에는 실제 실행 시간, 예측 서비스 시간, 실제 서비스 시간, 지연 시간 등이 포함된다. 작업의 필요 자원과 예측 실행 시간은 사용자 정의 혹은 프로파일링 정보에서의 추출 등 다양한 방법으로 구축 가능하다.At this time, the job information stored in the database 308 includes a job name, a preceding job name, a preceding execution threshold, a necessary resource for executing a job, a predicted execution time of a job, and the like. The job information includes actual execution time, predicted service time, actual service time, and delay time. The resources required for the task and the execution time of the task can be constructed in various ways such as user-defined or extraction from profiling information.

그리고, 각 작업의 예측 서비스 시간은 선행 작업의 예측 서비스 시간에 해당 작업의 예측 실행 시간의 합이며, 사용자가 정의한 작업 정보의 삽입 시에 계산되어 저장된다. 여기에서, 실제 실행 시간은 작업이 선정되고 해당 작업에 할당된 자원에서 실행을 시작하여 종료하기까지의 시간을 말한다.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 job scheduler 304 searches the information stored in the database 308 to check whether a preceding job exists (Steps 504 and 506).

상기 단계(506)에서의 검사 결과, 선행 작업이 존재하지 않을 경우 처리는 후술하는 단계(510)로 진행되어 선행 작업의 실행이 정상 완료된 것으로 처리하는 프로세스를 진행하게 된다.As a result of the check in step 506, if there is no preceding job, the process proceeds to step 510 to proceed to a process of processing that the execution of the preceding job is normally completed.

상기 단계(506)에서의 검사 결과, 선행 작업이 존재할 경우 해당 선행의 실행이 정상 완료되었는지의 여부를 검사하는데(단계 508), 여기에서의 검사 결과 선행 작업의 실행이 정상 완료되지 않은 것으로 판단되면 처리는 실행할 작업을 선정하는 단계(502)로 되돌아가 진행된다.As a result of the check in step 506, if there is a preceding job, it is checked whether the execution of the preceding job is normally completed (step 508). If it is determined that the execution of the preceding job is not normally completed The process returns to step 502 for selecting an operation to be executed.

상기 단계(508)에서의 검사 결과, 선행 작업의 실행이 정상 완료된 것으로 판단되면, 선행 작업 검사 블록(402)에서는 해당 선행 작업의 실제 서비스 시간과 예측 서비스 시간의 차이를 산출하고(단계 510), 산출된 차이 값이 기 설정된 선행 실행 임계치의 범주(범위)에 속하는지의 여부를 체크한다(단계 512). 여기에서, 기 설정된 선행 실행 임계치는 현 작업의 모든 선행 작업들의 실행 완료까지 걸린 실제 실행 시간과 예측된 실행 시간과의 허용 가능한 차이를 나타내며, 선행 작업들의 실제 실행 시간과 예측 실행 시간 차이를 값이나 비율(%)로 명시될 수 있다.If it is determined in step 508 that the execution of the preceding task is normally completed, the preceding task check block 402 calculates the difference between the actual service time and the predicted service time of the preceding task (step 510) It is checked whether the calculated difference value belongs to the category (range) of the preset preceding execution threshold (step 512). Here, the preset preceding execution threshold represents an allowable difference between the actual execution time and the predicted execution time until completion of execution of all the preceding tasks of the current task, and the difference between the actual execution time of the preceding tasks and the predicted execution time value Can be specified in percentage (%).

상기 단계(512)에서의 체크 결과, 산출된 차이 값이 기 설정된 선행 실행 임계치의 범주(범위) 이내 이면 처리는 후술하는 단계(516)로 진행하고, 산출된 차이 값이 기 설정된 선행 실행 임계치의 범주(범위)에 속하지 않으면 최적 자원 계산 블록(404)에서 자원 관리자(306)로부터 제공되는 가용 자원의 상태 정보들에 의거하여 선정된 작업을 실행하기 위한 최적 자원을 계산한다(단계 514). 여기에서, 최적 자원은 사용자에 의해 명시된 필요 자원보다 더 많거나 혹은 더 적은 자원으로 계산될 수 있다.If it is determined in step 512 that the calculated difference value is within the predetermined range of the preceding execution threshold value, the process proceeds to step 516, which will be described later. If the calculated difference value is less than the predetermined threshold value If it does not belong to the category (range), the optimal resource calculation block 404 calculates the optimal resource for executing the selected task based on the status information of the available resources provided from the resource manager 306 (step 514). Here, the optimal resource can be calculated with more or less resources than the required resources specified by the user.

다음에, 자원 결정 블록(406)에서 자원 관리자(306)로부터 제공되는 가용 자원의 상태 정보들에 의거하여 필요 자원의 가용 여부를 체크(또는 결정)하는데(단계 516), 체크 결과 선정된 작업에 할당할 가용 자원이 존재하지 않을 경우 기 설정된 일정 시간을 대기한 후(단계 518), 필요 자원 또는 최적 자원의 가용 여부를 다시 판단하는 프로세스를 수행한다.Next, the resource decision block 406 checks (or determines) whether the necessary resources are available based on the status information of the available resources provided from the resource manager 306 (step 516) If there is no available resource to allocate, a predetermined period of time is waited for (step 518), and a process of re-determining whether a necessary resource or an optimum resource is available is performed.

상기 단계(516)에서의 체크 결과, 선정된 작업에 할당할 가용 자원이 존재할 경우, 자원 결정 블록(406)에서는 자원 할당 제어신호를 생성하여 자원 할당 관리자(310)로 전달한다.If it is determined in step 516 that there is an available resource to be allocated to the selected task, the resource decision block 406 generates a resource allocation control signal and transmits the resource allocation control signal to the resource allocation manager 310.

그 결과, 자원 할당 관리자(310)에서는 생성된 자원 할당 제어신호에 따라 필요 자원 또는 계산된 최적 자원에 의거하여 선정된 작업에 대한 자원(312)을 할당하여 실행시킨다(단계 520).As a result, the resource allocation manager 310 allocates and executes the resources 312 for the selected work based on the required resources or the calculated optimal resources according to the generated resource allocation control signal (step 520).

이후에, 자원 할당 관리자(310)에서는 할당된 자원을 이용한 작업의 실행 완료 여부를 체크하는데(단계 522), 여기에서의 체크 결과 선정된 작업에 대한 실행이 완료된 것으로 판단될 때 작업의 실행 시간 등을 포함하는 실행 관련 정보를 생성하여 데이터베이스(308)에 저장한다(단계 524).Thereafter, the resource allocation manager 310 checks whether the execution of the job using the allocated resource is completed (step 522). When it is determined that the execution of the selected job is completed as a result of the check here, And stores it in the database 308 (step 524).

일예로서, 본 발명에 따라 데이터베이스에 저장되는 작업 정보는 아래의 표 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.

작업 이름Action name 선행 작업 이름Predecessor name 선행 실행 임계치Pre-execution threshold 필요 자원
(CPUs)
Required Resources
(CPUs)
예측 실행 시간Forecast execution time 할당 자원
(CPUs)
Assigned Resources
(CPUs)
실제 실행 시간Actual execution time 종료 타입(완료, 실패)Termination type (completion, failure) 예측 서비스 시간Forecast service time 실제 서비스 시간Actual Service Time 서비스 지연 시간Service latency
J1J1 NULLNULL NULLNULL 22 2020 22 3030 완료complete 2020 3030 1010 J2J2 J1J1 20%20% 22 3030 -- -- 5050 J3J3 J2J2 20%20% 33 2020 -- -- 7070

상기 표에 명시된 서비스를 구성하는 작업 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]

Figure pat00001
Figure pat00001

상기의 수식 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 >
제 2 항에 있어서,
상기 기 설정된 선행 실행 임계치는,
모든 선행 작업 중 가장 긴 실행 시간을 가지는 최장 실행 경로에 따른 예측 실행 시간에 대한 실제 실행 시간의 차이의 허용 가능 범위인
자원 할당 방법.
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.
제 3 항에 있어서,
상기 기 설정된 선행 실행 임계치는,
실행 시간에 대한 값 또는 비율로 표시되는
자원 할당 방법.
The method of claim 3,
The pre-set pre-
A value or percentage for the execution time.
Resource allocation method.
제 2 항에 있어서,
상기 계산하는 과정은,
상기 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 상기 필요 자원보다 더 많거나 혹은 더 적은 자원을 할당하도록 상기 최적 자원을 계산하는
자원 할당 방법.
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.
제 2 항에 있어서,
상기 판단하는 과정은,
상기 선정된 작업에 할당할 가용 자원이 존재하지 않을 경우, 기 설정된 일정 시간을 대기한 후, 상기 필요 자원 또는 최적 자원의 가용 여부를 다시 판단하는
자원 할당 방법.
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.
제 2 항에 있어서,
상기 자원 할당 방법은,
상기 선정된 작업에 대한 실행이 완료될 때 작업의 실행 시간을 포함하는 실행 관련 정보를 생성하여 데이터베이스에 저장하는 과정
을 더 포함하는 자원 할당 방법.
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.
제 8 항에 있어서,
상기 실행 시간 관련 정보들은,
상기 선행 작업의 서비스 실행 시간, 기 설정된 예측 실행 시간 및 선행 실행 임계치를 포함하는
자원 할당 장치.
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.
제 9 항에 있어서,
상기 작업 스케줄러는,
상기 선행 작업의 실행이 정상 완료되었는지의 여부를 검사하고, 정상 완료된 경우 상기 선행 작업까지의 서비스 실행 시간과 예측 실행 시간의 차이를 산출하여 기 설정된 선행 실행 임계치의 범주에 속하는지의 여부를 체크하는 선행 작업 검사 블록과,
상기 산출된 차이가 상기 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 상기 선정된 작업의 실행을 위한 최적 자원을 계산하는 최적 자원 계산 블록과,
상기 산출된 차이가 상기 기 설정된 선행 실행 임계치의 범주에 속할 때의 필요 자원 또는 상기 계산된 최적 자원의 가용 여부에 의거하여 상기 필요 자원 또는 최적 자원을 결정하는 자원 결정 블록
을 포함하는 자원 할당 장치.
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.
제 10 항에 있어서,
상기 기 설정된 선행 실행 임계치는,
모든 선행 작업 중 가장 긴 실행 시간을 가지는 최장 실행 경로에 따른 예측 실행 시간에 대한 실제 실행 시간의 차이의 허용 가능 범위인
자원 할당 장치.
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.
제 11 항에 있어서,
상기 선행 작업 검사 블록은,
상기 기 설정된 선행 실행 임계치를 실행 시간에 대한 값 또는 비율로 표시하는
자원 할당 장치.
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.
제 10 항에 있어서,
상기 최적 자원 계산 블록은,
상기 산출된 차이가 상기 기 설정된 선행 실행 임계치의 범주에 속하지 않을 때 상기 필요 자원보다 더 많거나 혹은 더 적은 자원을 할당하도록 상기 최적 자원을 계산하는
자원 할당 장치.
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.
제 10 항에 있어서,
상기 자원 결정 블록은,
상기 선정된 작업에 할당할 가용 자원이 존재하지 않을 경우, 기 설정된 일정 시간을 대기한 후, 상기 필요 자원 또는 최적 자원의 가용 여부를 다시 판단하는
자원 할당 장치.
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.
제 8 항에 있어서,
상기 자원 할당 관리자는,
상기 선정된 작업에 대한 실행이 완료될 때 작업의 실행 시간을 포함하는 실행 관련 정보를 생성하여 상기 데이터베이스에 저장하는
자원 할당 장치.
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.
KR1020130010378A 2013-01-30 2013-01-30 Resource allocation and apparatus KR101770191B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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