KR102116858B1 - Scheduling apparatus, and control method thereof - Google Patents

Scheduling apparatus, and control method thereof Download PDF

Info

Publication number
KR102116858B1
KR102116858B1 KR1020190110966A KR20190110966A KR102116858B1 KR 102116858 B1 KR102116858 B1 KR 102116858B1 KR 1020190110966 A KR1020190110966 A KR 1020190110966A KR 20190110966 A KR20190110966 A KR 20190110966A KR 102116858 B1 KR102116858 B1 KR 102116858B1
Authority
KR
South Korea
Prior art keywords
resource
scheduling
application
applications
regular polygon
Prior art date
Application number
KR1020190110966A
Other languages
Korean (ko)
Inventor
최지은
박근철
남덕윤
박찬열
Original Assignee
한국과학기술정보연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술정보연구원 filed Critical 한국과학기술정보연구원
Priority to KR1020190110966A priority Critical patent/KR102116858B1/en
Application granted granted Critical
Publication of KR102116858B1 publication Critical patent/KR102116858B1/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/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/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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine
    • 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/5061Partitioning or combining of resources

Abstract

The present invention relates to a scheduling device capable of improving the execution performance of an application program as well as optimizing the performance of a high performance computing system by scheduling concurrent executions between applications that have less interference with each other based on execution characteristics according to the use of resources of the application program, and an operation method thereof. The scheduling device comprises: a classification part; and a determination part.

Description

스케줄링장치 및 그 동작 방법{SCHEDULING APPARATUS, AND CONTROL METHOD THEREOF}Scheduling device and its operation method {SCHEDULING APPARATUS, AND CONTROL METHOD THEREOF}

본 발명은 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서, 응용 프로그램의 실행 특성을 기반으로 자원 간섭이 적은 응용 프로그램 간의 동시 실행을 스케줄링하기 위한 기술에 관한 것이다.The present invention relates to a technique for scheduling concurrent execution between application programs with low resource interference based on execution characteristics of an application program in a high performance computing (HPC) environment.

프로세스 기술의 발달과 응용 프로그램으로부터 요구되는 성능이 증가함에 어플리케이션으로부터 요구되는 성능이 증가함에 따라서 현대의 프로세서들은 여러 개의 코어(core)들을 한 칩에 집적할 수 있게 되었다.With the development of process technology and the increase in performance required from application programs, as the performance required from applications increases, modern processors are able to integrate multiple cores on a single chip.

이러한 기술의 발전은 하나의 칩에 수십에서 수백 개의 코어를 포함하고 있는 매니코어(many-core) 형태의 프로세서를 등장시키게 되었고, 다수의 응용 프로그램의 실행을 동시에 프로세서에서 수행할 수 있는 고성능 컴퓨팅(HPC, High Performance Computing) 시스템의 구축에 까지 이르게 되었다.Advances in this technology have led to the emergence of a many-core type processor that contains dozens to hundreds of cores on a single chip, and high-performance computing that can execute multiple applications simultaneously on the processor. HPC, High Performance Computing (HPC) system has been established.

다만, 이처럼, 응용 프로그램 간의 동시 실행을 지원하는 고성능 컴퓨팅(HPC) 환경에서 시스템 성능을 최적하기 위해선, 응용 프로그램 간의 간섭의 영향을 고려할 필요가 있다.However, in order to optimize system performance in a high performance computing (HPC) environment supporting concurrent execution between application programs, it is necessary to consider the effect of interference between application programs.

이에, 본 발명에서는 응용 프로그램의 실행 시 사용되는 자원 간 간섭의 영향을 고려하여 응용 프로그램 간 동시 실행을 스케줄링할 수 있는 새로운 방안을 제안하고자 한다.Accordingly, the present invention intends to propose a new method for scheduling concurrent execution between application programs in consideration of the effect of interference between resources used when executing the application program.

본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서, 응용 프로그램의 자원 사용에 따른 실행 특성을 기반으로 상호 간 간섭이 적은 응용 프로그램 간의 동시 실행을 스케줄링하는데 있다.The present invention was created in view of the above circumstances, and the object to be reached in the present invention is that, in a high performance computing (HPC) environment, mutual interference is based on execution characteristics according to resource usage of an application program. A small number is in scheduling concurrent execution between applications.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 스케줄링장치는, 응용 프로그램 별로 각 응용 프로그램이 실행을 위해 사용한 자원에 대한 정보인 성능 이벤트를 수집하는 수집부; 상기 성능 이벤트로부터 확인되는 각 응용 프로그램의 자원 별 사용량에 따라 각 자원 별로 응용 프로그램을 군집화하는 분류부; 및 응용 프로그램 별로 각 자원에서의 군집화 결과를 취합하여 각 응용 프로그램의 실행 특성을 결정하는 결정부를 포함하는 것을 특징으로 한다.Scheduling apparatus according to an embodiment of the present invention for achieving the above object, a collection unit for collecting a performance event that is information about the resource used by each application program for execution for each application; A classification unit for clustering application programs for each resource according to resource usage of each application program identified from the performance event; And it characterized in that it comprises a determination unit for determining the execution characteristics of each application by collecting the clustering results in each resource for each application.

구체적으로, 상기 스케줄링장치는, 각 응용 프로그램에 대해 결정된 실행 특성 간 유사도를 판단하여, 유사도가 임계치 이하인 응용 프로그램 간의 동시 실행을 스케줄링하는 스케줄링부를 더 포함할 수 있다.Specifically, the scheduling apparatus may further include a scheduling unit that determines the similarity between execution characteristics determined for each application program and schedules simultaneous execution between application programs having similarity or less than a threshold.

구체적으로, 상기 분류부는, 자원 별로 응용 프로그램 간 상대적 자원 사용량을 구분하기 위한 2 이상의 군집을 설정하여, 하나의 응용 프로그램을 각 자원에 대해 상기 2 이상의 군집 중 어느 하나로 분류할 수 있다.Specifically, the classification unit may set two or more clusters for distinguishing relative resource usage between application programs for each resource, and classify one application program into any one of the two or more clusters for each resource.

구체적으로, 상기 결정부는, 각 자원에 해당하는 범주를 꼭짓점으로 하는 정다각형을 기준으로 상기 정다각형의 중심으로부터 각각의 꼭짓점까지의 길이에 따라 자원 사용량에 따른 군집을 구분하는 경우, 응용 프로그램 별로 상기 정다각형 내에서 도식화되는 상대적 자원 사용량의 분포에 따라 각 응용 프로그램의 실행 특성을 결정할 수 있다.Specifically, the determining unit, if the group according to the resource usage according to the length from the center of the regular polygon to each vertex on the basis of the regular polygon having a category corresponding to each resource as a vertex, the application within the regular polygon The execution characteristics of each application can be determined according to the distribution of relative resource usage diagrammed in.

구체적으로, 상기 스케줄링부는, 상기 정다각형 내에서 상대적 자원 사용량의 분포가 상호 겹치는 면적이 넓을수록 응용 프로그램의 실행 특성 간에 유사도가 높은 것으로 판단할 수 있다.Specifically, the scheduling unit may determine that the similarity between execution characteristics of an application program increases as the area where the distribution of relative resource usage overlaps within the regular polygon is larger.

구체적으로, 상기 스케줄링부는, 상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하거나, 또는 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 조정하도록 할 수 있다.Specifically, the scheduling unit clusters the application programs for each resource when the area where the distribution of the relative resource usage diagrammed in the regular polygon overlaps or exceeds the maximum area or the ratio of applications that are less than the minimum area is greater than or equal to the threshold ratio. You can adjust the number of clusters to do.

구체적으로, 상기 스케줄링부는, 상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하는 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 상향 조정하도록 할 수 있다.Specifically, the scheduling unit, if the ratio of the application where the area where the distribution of relative resource usage schematically within the regular polygon overlaps the maximum area is greater than or equal to the threshold ratio, the number of clusters for clustering the application for each resource Can be adjusted upward.

구체적으로, 상기 스케줄링부는, 상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 하향 조정하도록 할 수 있다.Specifically, the scheduling unit, when the proportion of applications with an area in which the distribution of relative resource usage diagrammatically overlapped within the regular polygon is less than a minimum area is greater than or equal to a threshold ratio, decreases the number of clusters for clustering applications for each resource. Can be adjusted.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 스케줄링장치의 동작 방법은, 응용 프로그램 별로 각 응용 프로그램이 실행을 위해 사용한 자원에 대한 정보인 성능 이벤트를 수집하는 수집단계; 상기 성능 이벤트로부터 확인되는 각 응용 프로그램의 자원 별 사용량에 따라 각 자원 별로 응용 프로그램을 군집화하는 분류단계; 및 응용 프로그램 별로 각 자원에서의 군집화 결과를 취합하여 각 응용 프로그램의 실행 특성을 결정하는 결정단계를 포함하는 것을 특징으로 한다.An operation method of a scheduling apparatus according to an embodiment of the present invention for achieving the above object includes: a collection step of collecting performance events, which are information on resources used for execution by each application program for each application program; A classification step of clustering application programs for each resource according to resource usage of each application program identified from the performance event; And a determination step of collecting clustering results from each resource for each application program to determine execution characteristics of each application program.

구체적으로, 상기 방법은, 각 응용 프로그램에 대해 결정된 실행 특성 간의 유사도를 판단하여, 유사도가 임계치 이하인 응용 프로그램 간의 동시 실행을 스케줄링하는 스케줄링단계를 더 포함할 수 있다.Specifically, the method may further include a scheduling step of determining similarity between execution characteristics determined for each application program and scheduling concurrent executions between application programs having similarity or less than a threshold.

구체적으로, 상기 분류단계는, 자원 별로 응용 프로그램 간 상대적 자원 사용량을 구분하기 위한 2 이상의 군집을 설정하여, 하나의 응용 프로그램을 각 자원에 대해 상기 2 이상의 군집 중 어느 하나로 분류할 수 있다.Specifically, in the classification step, two or more clusters for distinguishing relative resource usage between application programs for each resource may be set, and one application program may be classified into any one of the two or more clusters for each resource.

구체적으로, 상기 결정단계는, 각 자원에 해당하는 범주를 꼭짓점으로 하는 정다각형을 기준으로 상기 정다각형의 중심으로부터 각각의 꼭짓점까지의 길이에 따라 자원 사용량에 따른 군집을 구분하는 경우, 응용 프로그램 별로 상기 정다각형 내에서 도식화되는 상대적 자원 사용량의 분포에 따라 각 응용 프로그램의 실행 특성을 결정할 수 있다.Specifically, in the determining step, when the clusters according to resource usage are classified according to the length from the center of the regular polygon to each vertex based on a regular polygon having a category corresponding to each resource as a vertex, the regular polygon is applied for each application. The execution characteristics of each application can be determined according to the distribution of the relative resource usage diagrammatically within.

구체적으로, 상기 스케줄링단계는, 상기 정다각형 내에서 상대적 자원 사용량의 분포가 상호 겹치는 면적이 넓을수록 응용 프로그램의 실행 특성 간에 유사도가 높은 것으로 판단할 수 있다.Specifically, in the scheduling step, it can be determined that the larger the area where the distribution of relative resource usage overlaps within the regular polygon, the higher the similarity between execution characteristics of the application program.

구체적으로, 상기 스케줄링단계는, 상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하거나, 또는 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 조정하도록 할 수 있다.Specifically, in the scheduling step, if the area where the distribution of the relative resource usage diagrammed in the regular polygon overlaps each other exceeds the maximum area or the ratio of applications that are less than the minimum area is greater than or equal to the threshold ratio, the application program is applied to each resource. It is possible to adjust the number of clusters for clustering.

구체적으로, 상기 스케줄링단계는, 상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하는 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 상향 조정하도록 할 수 있다.Specifically, in the scheduling step, when the proportion of applications in which the distribution of the relative resource usage diagrammed in the regular polygon overlaps the maximum area is greater than or equal to the critical ratio, the clustering for clustering applications for each resource The number can be adjusted upward.

구체적으로, 상기 스케줄링단계는, 상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 하향 조정하도록 할 수 있다.Specifically, in the scheduling step, when the proportion of applications in which the distribution of the relative resource usage diagrammed in the regular polygon overlaps each other is less than the minimum area, the threshold ratio is greater than or equal to the threshold ratio, the number of clusters for clustering applications for each resource is determined. It can be adjusted downward.

이에, 본 발명의 스케줄링장치 및 그 동작 방법에서는, 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서, 응용 프로그램의 자원 사용에 따른 실행 특성을 기반으로 상호 간 간섭이 적은 응용 프로그램 간의 동시 실행을 스케줄링함으로써, 고성능 컴퓨팅 시스템 성능의 최적화뿐만 아니라 응용 프로그램의 실행 성능을 향상시키는 효과를 성취할 수 있다.Accordingly, in the scheduling apparatus and the operation method of the present invention, in a high performance computing (HPC) environment, by scheduling concurrent executions between applications with little interference between each other based on execution characteristics according to resource usage of the application program In addition, it is possible to achieve an effect of not only optimizing performance of a high-performance computing system, but also improving performance of an application program.

도 1은 본 발명의 일 실시예에 따른 고성능 컴퓨팅 환경을 설명하기 위한 개략적인 구성도.
도 2는 본 발명의 일 실시예에 따른 스케줄링장치의 구성을 설명하기 위한 구성도.
도 3은 본 발명의 일 실시예에 따른 성능 이벤트 수집 과정을 설명하기 위한 예시도.
도 4는 본 발명의 일 실시예에 따른 응용 프로그램 별 실행 특성을 도식화한 예시도.
도 5 및 도 6은 본 발명의 일 실시예에 따른 응용 프로그램 간 실행 특성의 유사도를 설명하기 위한 예시도.
도 7은 본 발명의 일 실시예에 따른 스케줄링장치의 동작 방법을 설명하기 위한 개략적인 순서도.
1 is a schematic configuration diagram for explaining a high performance computing environment according to an embodiment of the present invention.
2 is a configuration diagram for explaining the configuration of a scheduling apparatus according to an embodiment of the present invention.
3 is an exemplary view for explaining a performance event collection process according to an embodiment of the present invention.
4 is an exemplary diagram illustrating execution characteristics of each application according to an embodiment of the present invention.
5 and 6 are exemplary views for explaining the similarity of execution characteristics between application programs according to an embodiment of the present invention.
7 is a schematic flowchart for explaining a method of operating a scheduling apparatus according to an embodiment of the present invention.

도 1은 본 발명의 일 실시예에 따른 고성능 컴퓨팅 환경을 개략적으로 보여주고 있다.1 schematically shows a high performance computing environment according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 고성능 컴퓨팅 환경은, 응용 어플리케이션 간 동시 실행을 스케줄링하는 스케줄링장치(100)를 포함할 수 있다.As shown in FIG. 1, a high performance computing environment according to an embodiment of the present invention may include a scheduling device 100 that schedules concurrent execution between application applications.

스케줄링장치(100)는 응용 프로그램 간 동시 실행을 스케줄링하기 위한 장치를 일컫는 것으로서, 예컨대, 유무선 통신망을 통해 접속 가능한 서버의 형태로 구현되거나, 또는 컴퓨터 시스템(예: 컴퓨터, 모바일 폰) 내 프로그램 형태로도 구현될 수 있다.Scheduling device 100 refers to a device for scheduling concurrent execution between application programs, for example, implemented in the form of a server accessible through a wired or wireless communication network, or in the form of a program in a computer system (eg, computer, mobile phone) Can also be implemented.

이러한 스케줄링장치(100)가 서버의 형태로 구현되는 경우에는, 예컨대, 웹 서버, 데이터베이스 서버, 프록시 서버 등의 형태로 구현될 수 있으며, 네트워크 부하 분산 메커니즘, 내지 서비스 장치가 인터넷 또는 다른 네트워크 상에서 동작할 수 있도록 하는 다양한 소프트웨어 중 하나 이상이 설치될 수 있으며, 이를 통해 컴퓨터화된 시스템으로도 구현될 수 있다.When the scheduling device 100 is implemented in the form of a server, for example, it may be implemented in the form of a web server, a database server, a proxy server, etc., a network load balancing mechanism, or a service device operating on the Internet or other network One or more of a variety of software that can be installed can be installed, which can also be implemented as a computerized system.

이처럼, 응용 프로그램 간의 동시 실행을 지원하는 고성능 컴퓨팅(HPC) 환경에서 시스템 성능을 최적하기 위해선, 응용 프로그램 간의 간섭의 영향을 최소화할 필요가 있다.As described above, in order to optimize system performance in a high performance computing (HPC) environment supporting concurrent execution between application programs, it is necessary to minimize the influence of interference between application programs.

이와 관련하여 종래에는, 단순히 단일 군집 분석 결과를 사용하여 응용 프로그램의 단일 특성을 분류한 군집간의 거리 기반으로 응용 프로그램간의 간섭을 계산하는 방식이 존재한다.In this regard, in the related art, there is a method of calculating interference between application programs based on a distance between clusters that classifies a single characteristic of an application program by simply using a single cluster analysis result.

그러나, 기존 기술의 경우, 응용 프로그램의 단일 특성을 기반으로 응용 프로그램 간의 간섭이 고려되는 관계로, 각 응용 프로그램의 실행 시 실질적인 간섭의 원인이 되는 개별 사용 자원 간의 간섭의 영향을 충분히 반영하기에는 한계가 따르는 것이 현실이다.However, in the case of the existing technology, since interference between applications is considered based on a single characteristic of the application, there is a limit to sufficiently reflect the effect of interference between individual use resources that cause substantial interference when executing each application. It is reality to follow.

이에, 본 발명의 일 실시예에서는, 응용 프로그램 별 자원 사용에 따른 실행 특성을 기반으로 상호 간 간섭이 적은 응용 프로그램 간의 동시 실행을 스케줄링하기 위한 새로운 방안을 제안하고자 하며, 이하에서는 이를 실현하기 위한 스케줄링장치(100)의 구체적인 구성에 대해 설명하기로 한다.Accordingly, according to an embodiment of the present invention, a new method for scheduling concurrent execution between application programs having little interference with each other is proposed based on execution characteristics according to resource usage of each application program. The specific configuration of the device 100 will be described.

도 2는 본 발명의 일 실시예에 따른 스케줄링장치(100)의 구성을 보여주고 있다.2 shows a configuration of the scheduling device 100 according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 본 발명이 일 실시예에 따른 스케줄링장치(100)는 응용 프로그램 별 성능 이벤트를 수집하는 수집부(10), 응용 프로그램을 군집화하는 분류부(20), 응용 프로그램의 실행 특성을 결정하는 결정부(30)를 포함하는 구성을 가질 수 있다.As shown in FIG. 2, the scheduling apparatus 100 according to an embodiment of the present invention includes a collection unit 10 for collecting performance events for each application, a classification unit 20 for clustering application programs, and an application program. It may have a configuration including a determining unit 30 for determining the execution characteristics.

또한, 본 발명의 일 실시예에 따른 스케줄링장치(100)는 전술한 구성 이외에 응용 프로그램 간 동시 실행을 스케줄링하는 스케줄링부(40)의 구성을 더 포함할 수 있다.In addition, the scheduling apparatus 100 according to an embodiment of the present invention may further include a configuration of the scheduling unit 40 for scheduling concurrent execution between application programs in addition to the above-described configuration.

이상의 수집부(10), 분류부(20), 결정부(30), 및 스케줄링부(40)를 포함하는 스케줄링장치(100)의 전체 구성 내지는 적어도 일부는 하드웨어 모듈 형태 또는 소프트웨어 모듈 형태로 구현되거나, 하드웨어 모듈과 소프트웨어 모듈이 조합된 형태로도 구현될 수 있다.The entire configuration or at least a portion of the scheduling device 100 including the above-described collection unit 10, classification unit 20, determination unit 30, and scheduling unit 40 is implemented in the form of a hardware module or a software module, or , It can also be implemented in the form of a combination of hardware modules and software modules.

여기서, 소프트웨어 모듈이란, 예컨대, 스케줄링장치(100) 내에서 연산을 제어하는 프로세서에 의해 실행되는 명령어로 이해될 수 있으며, 이러한 명령어는 스케줄링장치(100) 내 메모리에 탑재된 형태를 가질 수 있을 것이다.Here, the software module may be understood as, for example, instructions executed by a processor that controls operations within the scheduling apparatus 100, and these instructions may have a form mounted in a memory in the scheduling apparatus 100. .

한편, 본 발명의 일 실시예에 따른 스케줄링장치(100)는 전술한 구성 이외에, 유무선 통신망 접속을 지원하기 위한 통신 기능을 담당하는 RF 모듈인 통신부(50)의 구성을 더 포함할 수 있다.Meanwhile, the scheduling apparatus 100 according to an embodiment of the present invention may further include a configuration of the communication unit 50, which is an RF module in charge of a communication function for supporting a wired / wireless communication network connection, in addition to the above-described configuration.

여기서, 통신부(50)는 예컨대, 안테나 시스템, RF 송수신기, 하나 이상의 증폭기, 튜너, 하나 이상의 발진기, 디지털 신호 처리기, 코덱(CODEC) 칩셋, 및 메모리 등을 포함하지만 이에 제한되지는 않으며, 이 기능을 수행하는 공지의 회로는 모두 포함할 수 있다.Here, the communication unit 50 includes, for example, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a codec (CODEC) chipset, and memory, but is not limited thereto. Any known circuit to be performed may be included.

이상 본 발명의 일 실시예에 따른 스케줄링장치(100)는 전술한 구성을 통해서 응용 프로그램 별 자원 사용에 따른 실행 특성을 기반으로 상호 간 간섭이 적은 응용 프로그램 간의 동시 실행을 스케줄링할 수 있는데, 이하에서는 이를 실현하기 위한 스케줄링장치(100) 내 각 구성에 대해 보다 구체적으로 설명하기로 한다.As described above, the scheduling apparatus 100 according to an embodiment of the present invention can schedule concurrent executions between applications having little interference with each other based on execution characteristics according to resource use by application through the above-described configuration. Each configuration in the scheduling apparatus 100 for realizing this will be described in more detail.

수집부(11)는 응용 프로그램 별 성능 이벤트를 수집하는 기능을 수행한다.The collection unit 11 performs a function of collecting performance events for each application.

보다 구체적으로, 수집부(11)는 응용 프로그램 별로 각 응용 프로그램이 실행을 위해 사용한 자원에 대한 정보인 성능 이벤트를 수집하게 된다.More specifically, the collection unit 11 collects performance events, which are information on resources used for execution by each application for each application.

이때, 수집부(11)는 시스템 프로세서에 내장된 하드웨어 성능 카운터를 사용하여 각 응용 프로그램이 시스템에서 실행되는 동안 사용한 자원에 대한 성능 이벤트를 수집할 수 있다.At this time, the collection unit 11 may collect performance events for resources used while each application program is running in the system using a hardware performance counter built into the system processor.

예를 들어, 도 3을 참고하면, 이처럼 응용 프로그램 별로 수집되는 성능 이벤트에는 예컨대, 프로세서 사용에 관한 자원 범주인 'Compute', 메모리 사용에 관한 자원 범주인 'Memory', 및 디스크 사용에 관한 자원 범주인 'I/O' 가 포함될 수 있다.For example, referring to FIG. 3, performance events collected for each application may include, for example, 'Compute', a resource category for processor use, 'Memory', a resource category for memory use, and a resource category for disk use. Phosphorus 'I / O' may be included.

분류부(20)는 응용 프로그램을 군집화하는 기능을 수행한다.The classification unit 20 performs a function of clustering application programs.

보다 구체적으로, 분류부(20)는 응용 프로그램 별 성능 이벤트의 수집이 완료되면, 수집된 성능 이벤트로부터 확인되는 각 응용 프로그램의 자원 별 사용량에 따라 응용 프로그램을 분류하여 각 자원 별로 응용 프로그램을 군집화하게 된다.More specifically, when the collection of performance events for each application is completed, the classification unit 20 classifies the applications according to resource usage of each application identified from the collected performance events to cluster the applications for each resource. do.

이때, 분류부(20)는 각 자원에 대해 응용 프로그램 간 상대적 자원 사용량을 구분하기 위한 2 이상의 군집을 설정하여, 하나의 응용 프로그램을 각 자원에 대해 사용량에 따라 2 이상의 군집 중 어느 하나로 분류할 수 있다. At this time, the classification unit 20 may set two or more clusters for distinguishing the relative resource usage between application programs for each resource, so that one application can be classified into any one of two or more clusters according to the usage amount for each resource. have.

여기서, 군집은 본 발명의 일 실시예에 따라 성능 이벤트에 포함되는 자원 범주인 'Compute', 'Memory', 및 'I/O'각각에 대해서 예컨대, 1(낮은 군집), 2(보통 군집), 및 3(높은 군집)으로 동일하게 설정될 수 있다.Here, the cluster is, for example, 1 (low cluster), 2 (normal cluster) for each of the resource categories 'Compute', 'Memory', and 'I / O' included in the performance event according to an embodiment of the present invention. , And 3 (high cluster).

결정부(30)는 응용 프로그램을 실행 특성을 결정하는 기능을 수행한다.The determining unit 30 performs a function of determining an execution characteristic of the application program.

보다 구체적으로, 결정부(30)는 응용 프로그램 별로 각 자원에서의 군집화가 완료되면, 자원 별 응용 프로그램의 군집화 결과를 취합하여 각 응용 프로그램에 대한 실행 특성을 결정하게 된다.More specifically, when clustering in each resource is completed for each application, the determination unit 30 collects the clustering results of the application for each resource and determines execution characteristics for each application.

이때, 결정부(30)는 각 자원에 해당하는 범주를 꼭짓점으로 하는 정다각형을 기준으로 상기 정다각형의 중심으로부터 각각의 꼭짓점까지의 길이에 따라 자원 사용량에 따른 군집을 구분하는 경우, 응용 프로그램 별로 정다각형 내에서 도식화되는 상대적 자원 사용량의 분포에 따라 각 응용 프로그램의 실행 특성을 결정할 수 있다.At this time, the determining unit 30 is based on a regular polygon having a category corresponding to each resource as a vertex, when classifying clusters according to resource usage according to the length from the center of the regular polygon to each vertex, within the regular polygon for each application program The execution characteristics of each application can be determined according to the distribution of relative resource usage diagrammed in.

즉, 응용 프로그램 별로 정다각형 내에서 상대적 자원 사용량의 분포와 그 면적을 각 응용 프로그램의 실행 특성으로 간주할 수 있는 것이다.That is, the distribution and relative area of relative resource usage within a regular polygon for each application can be regarded as execution characteristics of each application.

이와 관련하여, 도 4에는 응용 프로그램 별 실행 특성이 도식화된 상태를 예시적으로 보여주고 있다.In this regard, FIG. 4 exemplarily shows a state in which execution characteristics for each application program are schematically illustrated.

도 4에서, 정삼각형 각각은 실행 특성이 결정되는 각각의 응용 프로그램을 의미하며, 각 삼각형의 꼭짓점은 본 발명의 일 실시예에 따른 자원 범주(Compute, Memory, 및 I/O)를 나타내며, 내부의 작은 정삼각형부터 최 외곽 정삼각형까지의 경계 각각은 낮은 군집 1, 보통인 군집 2, 및 높은 군집 3을 순차적으로 의미한다.In FIG. 4, each of the equilateral triangles represents each application program in which execution characteristics are determined, and the vertices of each triangle represent a resource category (Compute, Memory, and I / O) according to an embodiment of the present invention. Each of the boundaries from the smallest equilateral triangle to the outermost equilateral triangle sequentially refers to the lower cluster 1, the normal cluster 2, and the higher cluster 3.

스케줄링부(40)는 응용 프로그램 간 동시 실행을 스케줄링하는 기능을 수행한다.The scheduling unit 40 performs a function of scheduling concurrent execution between application programs.

보다 구체적으로, 스케줄링부(40)는 각 응용 프로그램에 대해 결정된 실행 특성 간 유사도를 판단하여, 유사도가 임계치 이하인 응용 프로그램 간의 동시 실행을 스케줄링하게 된다.More specifically, the scheduling unit 40 determines the similarity between execution characteristics determined for each application program, and schedules concurrent executions between application programs having similarity or less than a threshold.

이때, 스케줄링부(40)는 응용 프로그램 각각에 대해 표현되는 정다각형을 서로 겹쳤을 때, 상대적 자원 사용량의 분포가 상호 겹치는 면적에 따라 응용 프로그램 간 유사도를 판단하며, 상대적 자원 사용량의 분포가 상호 겹치는 면적이 넓을수록 응용 프로그램 간 유사도가 높은 것으로 판단할 수 있다.In this case, when the regular polygons expressed for each application program overlap each other, the scheduling unit 40 determines the similarity between applications according to the area where the distribution of relative resource use overlaps, and the area where distribution of relative resource use overlaps each other. It can be determined that the wider the degree of similarity between application programs, the greater.

여기서, 응용 프로그램 간 유사도가 높다는 것은, 자원 사용에 따른 실행 특성이 서로 유사한 관계로 상호 간의 자원 간섭률이 높다는 것을 의미하며, 반대로 응용 프로그램 간 유사도가 낮다는 것은, 자원 사용에 따른 실행 특성이 상이하여 상호 간의 자원 간섭률이 낮다는 것을 의미한다.Here, the high degree of similarity between applications means that the resource interference rate is high because the execution characteristics due to resource use are similar to each other, whereas the similarity between applications is low, the execution characteristics due to resource usage are different. Therefore, it means that the mutual resource interference rate is low.

따라서, 스케줄링부(40)는 응용 프로그램 간 유사도 판단 결과에 따라 자원 간섭률이 낮은(유사도가 낮은) 응용 프로그램들을 식별하여, 식별된 응용 프로그램들에 대해서 시스템 내 동시 실행을 스케줄링하게 된다.Accordingly, the scheduling unit 40 identifies applications with low resource interference rate (low similarity) according to the similarity determination result between application programs, and schedules concurrent execution in the system for the identified application programs.

참고로 도 5에는 응용 프로그램 별 실행 특성에 따른 분포를 상호 간 중첩시킨 상태를 나타내고 있으며, 도 6의 표에서는 이처럼 응용 프로그램 별 실행 특성을 상호 중첩시킬 경우에 계산되는 응용 프로그램 간 자원 간섭률을 보여주고 있다.For reference, FIG. 5 shows a state in which distributions according to execution characteristics for each application are superimposed on each other, and the table in FIG. 6 shows a resource interference rate between applications calculated when application-specific execution characteristics are overlapped. Giving.

한편, 본 발명의 일 실시예에서는, 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하거나, 또는 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 조정하는 특징 구성을 적용할 수 있다.On the other hand, in one embodiment of the present invention, if the area where the distribution of the relative resource usage diagrammed in the regular polygon overlaps each other exceeds the maximum area, or the proportion of applications that are less than the minimum area is greater than or equal to the critical ratio, application programs for each resource A feature configuration that adjusts the number of clusters for clustering can be applied.

이는, 응용 프로그램 간 자원 간섭률 확인 결과에 따라, 동시 실행이 가능한 응용 프로그램의 비율이 설정치 이상 높거나, 반대로 동시 실행이 가능한 응용 프로그램의 비율이 설정치 이상 낮은 경우를 고려하여, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 조정하여 동시 실행 가능한 응용 프로그램의 개수를 조정하기 위한 것으로 이해될 수 있다.According to the result of checking the resource interference rate between applications, the application for each resource is considered in consideration of the case where the ratio of applications that can be concurrently executed is higher than the set value or the ratio of applications that can be concurrently executed is lower than the set value. It can be understood that the number of clusters for clustering is adjusted to adjust the number of concurrently executable applications.

즉, 스케줄링부(40)는 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하는 응용 프로그램의 비율이 임계비율 이상인 경우 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 상향 조정함으로써, 동시 실행이 가능한 응용 프로그램의 개수를 늘릴 수 있다.That is, the scheduling unit 40 determines the number of clusters for clustering applications for each resource when the proportion of applications in which the distribution of the relative resource usage diagrammed in the regular polygon overlaps the maximum area is greater than or equal to the threshold ratio. By adjusting upward, the number of applications that can be concurrently executed can be increased.

반대로, 스케줄링부(40)는 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 하향 조정함으로써, 동시 실행이 가능한 응용 프로그램의 개수를 감소시킬 수 있는 것이다.On the contrary, the scheduling unit 40 lowers the number of clusters for clustering applications for each resource when the ratio of applications in which the distribution of relative resource usage schematically within a regular polygon overlaps with a minimum area is greater than or equal to a threshold ratio. By adjusting, it is possible to reduce the number of applications that can be concurrently executed.

이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따른 스케줄링장치(100)의 구성에 따르면, 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서, 응용 프로그램의 자원 사용에 따른 실행 특성을 기반으로 상호 간 간섭이 적은 응용 프로그램 간의 동시 실행을 스케줄링함으로써, 고성능 컴퓨팅 시스템 성능의 최적화뿐만 아니라 응용 프로그램의 실행 성능을 향상시키는 효과를 성취할 수 있음을 알 수 있다.As described above, according to the configuration of the scheduling device 100 according to an embodiment of the present invention, in a high-performance computing (HPC, High Performance Computing) environment, based on the execution characteristics of the application using the resources of each other It can be seen that by scheduling concurrent executions between applications with low interference, it is possible to achieve not only optimization of performance of a high performance computing system, but also improvement of execution performances of applications.

이하에서는, 도 7을 참조하여 스케줄링장치(100)의 동작 방법에 대한 설명을 이어 가기로 한다.Hereinafter, a description of the operation method of the scheduling apparatus 100 will be continued with reference to FIG. 7.

먼저, 수집부(11)는 응용 프로그램 별로 각 응용 프로그램이 실행을 위해 사용한 자원에 대한 정보인 성능 이벤트를 수집한다(S10).First, the collection unit 11 collects performance events, which are information on resources used for execution by each application for each application (S10).

이때, 수집부(11)는 시스템 프로세서에 내장된 하드웨어 성능 카운터를 사용하여 각 응용 프로그램이 시스템에서 실행되는 동안 사용한 자원에 대한 성능 이벤트를 수집할 수 있다.At this time, the collection unit 11 may collect performance events for resources used while each application program is running in the system using a hardware performance counter built into the system processor.

앞서 예시한 도 3을 참고하면, 이처럼 응용 프로그램 별로 수집되는 성능 이벤트에는 예컨대, 프로세서 사용에 관한 자원 범주인 'Compute', 메모리 사용에 관한 자원 범주인 'Memory', 및 디스크 사용에 관한 자원 범주인 'I/O' 가 포함될 수 있다.3, the performance events collected for each application include, for example, 'Compute', a resource category for processor use, 'Memory', a resource category for memory use, and a resource category for disk use. 'I / O' may be included.

이어서, 분류부(20)는 응용 프로그램 별 성능 이벤트의 수집이 완료되면, 수집된 성능 이벤트로부터 확인되는 각 응용 프로그램의 자원 별 사용량에 따라 응용 프로그램을 분류하여 각 자원 별로 응용 프로그램을 군집화한다(S20).Subsequently, when the collection of performance events for each application is completed, the classification unit 20 classifies the applications according to resource usage of each application identified from the collected performance event and clusters the applications for each resource (S20). ).

이때, 분류부(20)는 각 자원에 대해 응용 프로그램 간 상대적 자원 사용량을 구분하기 위한 2 이상의 군집을 설정하여, 하나의 응용 프로그램을 각 자원에 대해 사용량에 따라 2 이상의 군집 중 어느 하나로 분류할 수 있다. At this time, the classification unit 20 may set two or more clusters for distinguishing the relative resource usage between application programs for each resource, so that one application can be classified into any one of two or more clusters according to the usage amount for each resource. have.

여기서, 군집은 본 발명의 일 실시예에 따라 성능 이벤트에 포함되는 자원 범주인 'Compute', 'Memory', 및 'I/O'각각에 대해서 예컨대, 1(낮은 군집), 2(보통 군집), 및 3(높은 군집)으로 동일하게 설정될 수 있다.Here, the cluster is, for example, 1 (low cluster), 2 (normal cluster) for each of the resource categories 'Compute', 'Memory', and 'I / O' included in the performance event according to an embodiment of the present invention. , And 3 (high cluster).

나아가, 결정부(30)는 응용 프로그램 별로 각 자원에서의 군집화가 완료되면, 자원 별 응용 프로그램의 군집화 결과를 취합하여 각 응용 프로그램에 대한 실행 특성을 결정한다(S30-S40).Furthermore, when clustering in each resource is completed for each application, the determination unit 30 collects the clustering result of the application for each resource and determines execution characteristics for each application (S30-S40).

이때, 결정부(30)는 각 자원에 해당하는 범주를 꼭짓점으로 하는 정다각형을 기준으로 상기 정다각형의 중심으로부터 각각의 꼭짓점까지의 길이에 따라 자원 사용량에 따른 군집을 구분하는 경우, 응용 프로그램 별로 정다각형 내에서 도식화되는 상대적 자원 사용량의 분포에 따라 각 응용 프로그램의 실행 특성을 결정할 수 있다.At this time, the determining unit 30 is based on a regular polygon having a category corresponding to each resource as a vertex, when classifying clusters according to resource usage according to the length from the center of the regular polygon to each vertex, within the regular polygon for each application program The execution characteristics of each application can be determined according to the distribution of relative resource usage diagrammed in.

즉, 응용 프로그램 별로 정다각형 내에서 상대적 자원 사용량의 분포와 그 면적을 각 응용 프로그램의 실행 특성으로 간주할 수 있는 것이다.That is, the distribution and relative area of relative resource usage within a regular polygon for each application can be regarded as execution characteristics of each application.

앞서 예시한, 도 4에서는 응용 프로그램 별 실행 특성이 도식화된 상태를 예시적으로 보여주고 있다.As illustrated above, FIG. 4 exemplarily shows a state in which execution characteristics for each application program are schematically illustrated.

도 4에서, 정삼각형 각각은 실행 특성이 결정되는 각각의 응용 프로그램을 의미하며, 각 삼각형의 꼭짓점은 본 발명의 일 실시예에 따른 자원 범주(Compute, Memory, 및 I/O)를 나타내며, 내부의 작은 정삼각형부터 최 외곽 정삼각형까지의 경계 각각은 낮은 군집 1, 보통인 군집 2, 및 높은 군집 3을 순차적으로 의미한다.In FIG. 4, each of the equilateral triangles represents each application program in which execution characteristics are determined, and the vertices of each triangle represent a resource category (Compute, Memory, and I / O) according to an embodiment of the present invention. Each of the boundaries from the smallest equilateral triangle to the outermost equilateral triangle sequentially refers to the lower cluster 1, the normal cluster 2, and the higher cluster 3.

이후, 스케줄링부(40)는 각 응용 프로그램에 대해 결정된 실행 특성 간 유사도를 판단하여, 유사도가 임계치 이하인 응용 프로그램 간의 동시 실행을 스케줄링한다(S50-S60).Subsequently, the scheduling unit 40 determines the similarity between execution characteristics determined for each application program, and schedules concurrent executions between application programs having similarity or less than a threshold (S50-S60).

이때, 스케줄링부(40)는 응용 프로그램 각각에 대해 표현되는 정다각형을 서로 겹쳤을 때, 상대적 자원 사용량의 분포가 상호 겹치는 면적에 따라 응용 프로그램 간 유사도를 판단하며, 상대적 자원 사용량의 분포가 상호 겹치는 면적이 넓을수록 응용 프로그램 간 유사도가 높은 것으로 판단할 수 있다.In this case, when the regular polygons expressed for each application program overlap each other, the scheduling unit 40 determines the similarity between applications according to the area where the distribution of relative resource use overlaps, and the area where distribution of relative resource use overlaps each other. It can be determined that the wider the degree of similarity between application programs, the greater.

여기서, 응용 프로그램 간 유사도가 높다는 것은, 자원 사용에 따른 실행 특성이 서로 유사한 관계로 상호 간의 자원 간섭률이 높다는 것을 의미하며, 반대로 응용 프로그램 간 유사도가 낮다는 것은, 자원 사용에 따른 실행 특성이 상이하여 상호 간의 자원 간섭률이 낮다는 것을 의미한다.Here, the high degree of similarity between applications means that the resource interference rate is high because the execution characteristics due to resource use are similar to each other, whereas the similarity between applications is low, the execution characteristics due to resource usage are different. Therefore, it means that the mutual resource interference rate is low.

따라서, 스케줄링부(40)는 응용 프로그램 간 유사도 판단 결과에 따라 자원 간섭률이 낮은(유사도가 낮은) 응용 프로그램들을 식별하여, 식별된 응용 프로그램들에 대해서 시스템 내 동시 실행을 스케줄링하게 된다.Accordingly, the scheduling unit 40 identifies applications with low resource interference rate (low similarity) according to the similarity determination result between application programs, and schedules concurrent execution in the system for the identified application programs.

앞서 예시한 도 5에서는 응용 프로그램 별 실행 특성에 따른 분포를 상호 간 중첩시킨 상태를 나타내고 있으며, 또한 도 6의 표에서는 이처럼 응용 프로그램 별 실행 특성을 상호 중첩시킬 경우에 계산되는 응용 프로그램 간 자원 간섭률을 보여주고 있다.FIG. 5 exemplified above shows a state in which distributions according to execution characteristics for each application are superimposed on each other. In addition, in the table of FIG. 6, resource interference rates between applications are calculated when application-specific execution characteristics are superimposed on each other. Is showing.

한편, 본 발명의 일 실시예에서는, 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하거나, 또는 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 조정하는 특징 구성을 적용할 수 있다.On the other hand, in one embodiment of the present invention, if the area where the distribution of the relative resource usage diagrammed in the regular polygon overlaps each other exceeds the maximum area, or the proportion of applications that are less than the minimum area is greater than or equal to the critical ratio, application programs for each resource A feature configuration that adjusts the number of clusters for clustering can be applied.

이는, 응용 프로그램 간 자원 간섭률 확인 결과에 따라, 동시 실행이 가능한 응용 프로그램의 비율이 설정치 이상 높거나, 반대로 동시 실행이 가능한 응용 프로그램의 비율이 설정치 이상 낮은 경우를 고려하여, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 조정하여 동시 실행 가능한 응용 프로그램의 개수를 조정하기 위한 것으로 이해될 수 있다.According to the result of checking the resource interference rate between applications, the application for each resource is considered in consideration of the case where the ratio of applications that can be concurrently executed is higher than the set value or the ratio of applications that can be concurrently executed is lower than the set value. It can be understood that the number of clusters for clustering is adjusted to adjust the number of concurrently executable applications.

즉, 스케줄링부(40)는 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하는 응용 프로그램의 비율이 임계비율 이상인 경우 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 상향 조정함으로써, 동시 실행이 가능한 응용 프로그램의 개수를 늘릴 수 있다.That is, the scheduling unit 40 determines the number of clusters for clustering applications for each resource when the proportion of applications in which the distribution of the relative resource usage schematically within the regular polygon overlaps the maximum area is greater than or equal to the threshold ratio. By adjusting upward, the number of applications that can be concurrently executed can be increased.

반대로, 스케줄링부(40)는 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 하향 조정함으로써, 동시 실행이 가능한 응용 프로그램의 개수를 감소시킬 수 있는 것이다.On the contrary, the scheduling unit 40 lowers the number of clusters for clustering applications for each resource when the ratio of applications in which the distribution of relative resource usage schematically within a regular polygon overlaps with a minimum area is greater than or equal to a threshold ratio. By adjusting, it is possible to reduce the number of applications that can be concurrently executed.

이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따른 스케줄링장치(100)의 동작 방법에 따르면, 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서, 응용 프로그램의 자원 사용에 따른 실행 특성을 기반으로 상호 간 간섭이 적은 응용 프로그램 간의 동시 실행을 스케줄링함으로써, 고성능 컴퓨팅 시스템 성능의 최적화뿐만 아니라 응용 프로그램의 실행 성능을 향상시키는 효과를 성취할 수 있음을 알 수 있다.As described above, according to the operating method of the scheduling apparatus 100 according to an embodiment of the present invention, in a high performance computing (HPC, High Performance Computing) environment, based on the execution characteristics of the application using the resource interaction It can be seen that by scheduling concurrent executions between application programs with less inter-interference, it is possible to achieve not only optimization of performance of a high performance computing system, but also improvement of execution performances of application programs.

한편, 여기에 제시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.On the other hand, steps of the method or algorithm described in connection with the embodiments presented herein may be implemented directly in hardware or in the form of program instructions that can be executed through various computer means to be recorded on a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, or the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and available to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, and magnetic media such as floptical disks. -Hardware devices specifically configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, etc., as well as machine language codes produced by a compiler. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the present invention, and vice versa.

지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.The present invention has been described in detail with reference to preferred embodiments, but the present invention is not limited to the above-described embodiments, and the technical field to which the present invention pertains without departing from the gist of the present invention claimed in the claims below. Anyone with ordinary knowledge in the technical idea of the present invention extends to the extent that various modifications or modifications are possible.

본 발명에 따른 스케줄링장치 및 그 동작 방법에 따르면, 고성능 컴퓨팅(HPC, High Performance Computing) 환경에서, 응용 프로그램의 실행 특성을 기반으로 자원 간섭이 적은 응용 프로그램 간의 동시 실행을 스케줄링할 수 있다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.According to the scheduling apparatus and its operating method according to the present invention, in a high performance computing (HPC, High Performance Computing) environment, in the point that it is possible to schedule concurrent execution between applications with low resource interference based on the execution characteristics of the application, As it surpasses the limitations of the existing technology, it is not only the use of the related technology, but also the possibility of commercially available or sales of the applied device, as well as the degree to which it can be practiced clearly and in practice.

100: 스케줄링장치
10: 수집부 20: 분류부
30: 결정부 40: 스케줄링부
100: scheduling device
10: collection unit 20: classification unit
30: decision unit 40: scheduling unit

Claims (16)

각 응용 프로그램의 자원 별 사용량에 따라 각 자원 별로 응용 프로그램을 군집화하는 분류부; 및
응용 프로그램 별로 각 자원에서의 군집화 결과를 취합하여 각 응용 프로그램의 자원 사용에 따른 실행 특성을 결정하는 결정부를 포함하며,
상기 결정부는,
각 자원에 해당하는 범주를 꼭짓점으로 하는 정다각형을 기준으로 상기 정다각형의 중심으로부터 각각의 꼭짓점까지의 길이에 따라 자원 사용량에 따른 군집을 구분하는 경우, 응용 프로그램 별로 상기 정다각형 내에서 도식화되는 상대적 자원 사용량의 분포에 따라 각 응용 프로그램의 실행 특성을 결정하는 것을 특징으로 하는 스케줄링장치.
A classification unit for clustering application programs for each resource according to resource usage of each application; And
It includes a decision unit that collects clustering results from each resource for each application and determines execution characteristics according to resource usage of each application.
The determining unit,
In the case of classifying clusters according to resource usage according to the length from the center of the regular polygon to each vertex based on a regular polygon having a category corresponding to each resource as a vertex, the relative resource usage plotted within the regular polygon for each application program Scheduling device characterized in that to determine the execution characteristics of each application according to the distribution.
제 1 항에 있어서,
상기 스케줄링장치는,
각 응용 프로그램에 대해 결정된 실행 특성 간 유사도를 판단하여, 유사도가 임계치 이하인 응용 프로그램 간의 동시 실행을 스케줄링하는 스케줄링부를 더 포함하는 것을 특징으로 하는 스케줄링장치.
According to claim 1,
The scheduling device,
And a scheduling unit determining the similarity between execution characteristics determined for each application program and scheduling concurrent executions between application programs having similarity or less than a threshold.
제 1 항에 있어서,
상기 분류부는,
자원 별로 응용 프로그램 간 상대적 자원 사용량을 구분하기 위한 2 이상의 군집을 설정하여, 하나의 응용 프로그램을 각 자원에 대해 상기 2 이상의 군집 중 어느 하나로 분류하는 것을 특징으로 하는 스케줄링장치.
According to claim 1,
The classification unit,
Scheduling apparatus characterized in that by setting two or more clusters for distinguishing relative resource usage between application programs for each resource, one application is classified into any one of the two or more clusters for each resource.
삭제delete 제 2 항에 있어서,
상기 스케줄링부는,
상기 정다각형 내에서 상대적 자원 사용량의 분포가 상호 겹치는 면적이 넓을수록 응용 프로그램의 실행 특성 간에 유사도가 높은 것으로 판단하는 것을 특징으로 하는 스케줄링장치.
According to claim 2,
The scheduling unit,
Scheduling device characterized in that the larger the area where the distribution of relative resource usage overlaps within the regular polygon, the higher the similarity between execution characteristics of the application program.
제 2 항에 있어서,
상기 스케줄링부는,
상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하거나, 또는 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 조정하도록 하는 것을 특징으로 하는 스케줄링장치.
According to claim 2,
The scheduling unit,
Adjust the number of clusters for clustering applications for each resource when the area where the distribution of relative resource usage schematically within the regular polygon exceeds the maximum area or the proportion of applications that are less than the minimum area is greater than or equal to a threshold ratio. Scheduling device characterized in that to do.
제 6 항에 있어서,
상기 스케줄링부는,
상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하는 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 상향 조정하도록 하는 것을 특징으로 하는 스케줄링장치.
The method of claim 6,
The scheduling unit,
When the proportion of applications in which the distribution of the relative resource usage schematically within the regular polygon overlaps the maximum area is greater than or equal to a critical ratio, the number of clusters for clustering applications for each resource is adjusted upward. Scheduling device.
제 6 항에 있어서,
상기 스케줄링부는,
상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 하향 조정하도록 하는 것을 특징으로 하는 스케줄링장치.
The method of claim 6,
The scheduling unit,
When the ratio of applications in which the distribution of relative resource usage schematically plotted within the regular polygon overlaps with a minimum area is greater than or equal to a threshold ratio, the number of clusters for clustering applications for each resource is adjusted downward. Scheduling device.
각 응용 프로그램의 자원 별 사용량에 따라 각 자원 별로 응용 프로그램을 군집화하는 분류단계; 및
응용 프로그램 별로 각 자원에서의 군집화 결과를 취합하여 각 응용 프로그램의 자원 사용에 따른 실행 특성을 결정하는 결정단계를 포함하며,
상기 결정단계는,
각 자원에 해당하는 범주를 꼭짓점으로 하는 정다각형을 기준으로 상기 정다각형의 중심으로부터 각각의 꼭짓점까지의 길이에 따라 자원 사용량에 따른 군집을 구분하는 경우, 응용 프로그램 별로 상기 정다각형 내에서 도식화되는 상대적 자원 사용량의 분포에 따라 각 응용 프로그램의 실행 특성을 결정하는 것을 특징으로 하는 스케줄링장치의 동작 방법.
A classification step of clustering application programs for each resource according to resource usage of each application program; And
It includes a decision step of collecting clustering results from each resource for each application and determining execution characteristics according to resource use of each application.
The determining step,
In the case of classifying clusters according to resource usage according to the length from the center of the regular polygon to each vertex based on a regular polygon having a category corresponding to each resource as a vertex, the relative resource usage plotted within the regular polygon for each application program The operating method of the scheduling device, characterized in that to determine the execution characteristics of each application according to the distribution.
제 9 항에 있어서,
상기 방법은,
각 응용 프로그램에 대해 결정된 실행 특성 간의 유사도를 판단하여, 유사도가 임계치 이하인 응용 프로그램 간의 동시 실행을 스케줄링하는 스케줄링단계를 더 포함하는 것을 특징으로 하는 스케줄링장치의 동작 방법.
The method of claim 9,
The above method,
And determining a degree of similarity between execution characteristics determined for each application program and scheduling concurrent executions between applications having a similarity level below a threshold value.
제 9 항에 있어서,
상기 분류단계는,
자원 별로 응용 프로그램 간 상대적 자원 사용량을 구분하기 위한 2 이상의 군집을 설정하여, 하나의 응용 프로그램을 각 자원에 대해 상기 2 이상의 군집 중 어느 하나로 분류하는 것을 특징으로 하는 스케줄링장치의 동작 방법.
The method of claim 9,
The classification step,
A method of operating a scheduling apparatus, characterized in that two or more clusters are set to distinguish relative resource usage between application programs for each resource, and one application is classified into one of the two or more clusters for each resource.
삭제delete 제 10 항에 있어서,
상기 스케줄링단계는,
상기 정다각형 내에서 상대적 자원 사용량의 분포가 상호 겹치는 면적이 넓을수록 응용 프로그램의 실행 특성 간에 유사도가 높은 것으로 판단하는 것을 특징으로 하는 스케줄링장치의 동작 방법.
The method of claim 10,
The scheduling step,
The larger the area where the distribution of relative resource usage overlaps within the regular polygon, the higher the similarity between execution characteristics of the application program is.
제 10 항에 있어서,
상기 스케줄링단계는,
상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하거나, 또는 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 조정하도록 하는 것을 특징으로 하는 스케줄링장치의 동작 방법.
The method of claim 10,
The scheduling step,
Adjust the number of clusters for clustering applications for each resource when the area where the distribution of relative resource usage schematically within the regular polygon exceeds the maximum area or the proportion of applications that are less than the minimum area is greater than or equal to a threshold ratio. The operation method of the scheduling device, characterized in that to be.
제 14 항에 있어서,
상기 스케줄링단계는,
상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최대면적을 초과하는 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 상향 조정하도록 하는 것을 특징으로 하는 스케줄링장치의 동작 방법.
The method of claim 14,
The scheduling step,
When the proportion of applications in which the distribution of the relative resource usage schematically within the regular polygon overlaps the maximum area is greater than or equal to a critical ratio, the number of clusters for clustering applications for each resource is adjusted upward. How to operate the scheduling device.
제 14 항에 있어서,
상기 스케줄링단계는,
상기 정다각형 내에서 도식화된 상대적 자원 사용량의 분포가 상호 겹치는 면적이 최소면적 미만인 응용 프로그램의 비율이 임계비율 이상인 경우, 각 자원 별로 응용 프로그램을 군집화하기 위한 군집의 개수를 하향 조정하도록 하는 것을 특징으로 하는 스케줄링장치의 동작 방법.
The method of claim 14,
The scheduling step,
When the ratio of applications in which the distribution of relative resource usage schematically plotted within the regular polygon overlaps with a minimum area is greater than or equal to a threshold ratio, the number of clusters for clustering applications for each resource is adjusted downward. How the scheduling device works.
KR1020190110966A 2019-09-06 2019-09-06 Scheduling apparatus, and control method thereof KR102116858B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190110966A KR102116858B1 (en) 2019-09-06 2019-09-06 Scheduling apparatus, and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190110966A KR102116858B1 (en) 2019-09-06 2019-09-06 Scheduling apparatus, and control method thereof

Publications (1)

Publication Number Publication Date
KR102116858B1 true KR102116858B1 (en) 2020-05-29

Family

ID=70911381

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190110966A KR102116858B1 (en) 2019-09-06 2019-09-06 Scheduling apparatus, and control method thereof

Country Status (1)

Country Link
KR (1) KR102116858B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040031645A (en) * 2002-10-04 2004-04-13 마이크로소프트 코포레이션 Methods and mechanisms for proactive memory management
KR20090092128A (en) * 2008-02-26 2009-08-31 한국과학기술연구원 Dynamic robot software architecture management method based on computing resources
US20120023492A1 (en) * 2010-07-26 2012-01-26 Microsoft Corporation Workload interference estimation and performance optimization
KR20150041406A (en) * 2013-10-08 2015-04-16 한국전자통신연구원 Apparatus and Method Managing Migration of Tasks among Cores Based On Scheduling Policy
KR20170058997A (en) * 2014-09-24 2017-05-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Device-specific user context adaptation of computing environment
KR101924467B1 (en) * 2017-09-01 2018-12-03 고려대학교 산학협력단 System and method of resource allocation scheme for cpu and block i/o performance guarantee of virtual machine

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040031645A (en) * 2002-10-04 2004-04-13 마이크로소프트 코포레이션 Methods and mechanisms for proactive memory management
KR20090092128A (en) * 2008-02-26 2009-08-31 한국과학기술연구원 Dynamic robot software architecture management method based on computing resources
US20120023492A1 (en) * 2010-07-26 2012-01-26 Microsoft Corporation Workload interference estimation and performance optimization
KR20150041406A (en) * 2013-10-08 2015-04-16 한국전자통신연구원 Apparatus and Method Managing Migration of Tasks among Cores Based On Scheduling Policy
KR20170058997A (en) * 2014-09-24 2017-05-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Device-specific user context adaptation of computing environment
KR101924467B1 (en) * 2017-09-01 2018-12-03 고려대학교 산학협력단 System and method of resource allocation scheme for cpu and block i/o performance guarantee of virtual machine

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Shashank Shekhar 외 4명. ‘Performance Interference-Aware Vertical Elasticity for Cloud-hosted Latency-Sensitive Applications’. IEEE 11th International Conference on Cloud Computing, 2018, pp.82-89. *

Similar Documents

Publication Publication Date Title
US6944630B2 (en) Database management system and method which monitors activity levels and determines appropriate schedule times
US20100030877A1 (en) Virtual server system and physical server selecting method
US20130160024A1 (en) Dynamic Load Balancing for Complex Event Processing
US10042732B2 (en) Dynamic data collection pattern for target device
US9965327B2 (en) Dynamically scalable data collection and analysis for target device
CN102667724A (en) Goal oriented performance management of workload utilizing accelerators
US10176711B2 (en) Analyzing big data to manage traffic flow
WO2023131121A1 (en) Integrated circuit automation parallel simulation method and simulation device
Kumar et al. A comprehensive review of straggler handling algorithms for mapreduce framework
KR101856454B1 (en) Computer device for distributed processing
Maroulis et al. A holistic energy-efficient real-time scheduler for mixed stream and batch processing workloads
US9940157B2 (en) Computer readable medium, method, and management device for determining whether a virtual machine can be constructed within a time period determined based on historical data
KR102116858B1 (en) Scheduling apparatus, and control method thereof
US9305068B1 (en) Methods and apparatus for database virtualization
CN112749003A (en) Method, apparatus and computer-readable storage medium for system optimization
CN114356712A (en) Data processing method, device, equipment, readable storage medium and program product
KR20180093834A (en) Method and apparatus for automaticgeneration of auto scaling call rulefor individual tenant in multi-tenancy environment
CN114661571A (en) Model evaluation method, model evaluation device, electronic equipment and storage medium
CN114355793A (en) Training method and device of automatic driving planning model for vehicle simulation evaluation
KR102656541B1 (en) Device, method and program that analyzes large log data using a distributed method for each log type
WO2022218001A1 (en) Video analysis method and related system
US20220004427A1 (en) Workload assessment and configuration simulator
US20240126668A1 (en) System and method for pro-actively limiting a client information handling system from increase in greenhouse gas emissions
KR102009454B1 (en) Intelligent data preprocessing system and method for minimizing delay time of real-time data processing in distributed cloud environment
CN117762577A (en) Digital product area scheduling method and system based on gridding realization

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant