KR102009425B1 - Method for managing performance of computing system, program and computer readable storage medium therefor - Google Patents
Method for managing performance of computing system, program and computer readable storage medium therefor Download PDFInfo
- Publication number
- KR102009425B1 KR102009425B1 KR1020180016213A KR20180016213A KR102009425B1 KR 102009425 B1 KR102009425 B1 KR 102009425B1 KR 1020180016213 A KR1020180016213 A KR 1020180016213A KR 20180016213 A KR20180016213 A KR 20180016213A KR 102009425 B1 KR102009425 B1 KR 102009425B1
- Authority
- KR
- South Korea
- Prior art keywords
- performance
- coordinate component
- dimensional coordinates
- computing system
- application
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Abstract
Description
본 발명은 컴퓨팅 시스템의 성능 관리 기술에 관한 것으로, 특히 전력 제한 컴퓨팅(Power-constrained computing) 환경에서의 성능 관리 기술에 관한 것이다.TECHNICAL FIELD The present invention relates to performance management techniques for computing systems, and more particularly, to performance management techniques in power-constrained computing environments.
전력 제한 컴퓨팅 시스템은 주어진 전력 설계(power budget) 하에서 컴퓨팅 성능을 최적화하는 것을 목표로 하고 있으며, 데이터 센터(Data Center)에서 임베디드 시스템(Embedded System)까지 다양한 분야에 걸쳐 그 중요성이 커지고 있다.Power-limited computing systems aim to optimize computing performance under a given power budget, and their importance is growing across a variety of fields, from data centers to embedded systems.
본 발명의 실시예에서는 전력 제한 컴퓨팅(power constrained computing) 환경에서 동시성 레벨(concurrency level)과 전력 할당 비율(power allocation ratio)을 동시에 적응적으로 조절하여 응용 프로그램 별 시스템 성능을 최적화할 수 있는 기술을 제안하고자 한다.In an embodiment of the present invention, a technique for optimizing system performance for each application by adaptively adjusting concurrency level and power allocation ratio simultaneously in a power constrained computing environment is disclosed. I would like to suggest.
구체적으로, 본 발명의 실시예에서는 전력 제한 컴퓨팅 환경에서 수행되는 응용 프로그램 별로 CPU(Central Processing Unit)의 코어(core) 개수, CPU 및 메모리에 대한 CPU의 전력 할당 비율 등을 적응적으로 설정하여 컴퓨팅 수행 시간을 최소화할 수 있는 전력 제한 컴퓨팅 환경에서의 시스템 성능 관리 기술을 제안하고자 한다.Specifically, in an embodiment of the present invention, computing by adaptively setting the number of cores of the central processing unit (CPU), the power allocation ratio of the CPU to the memory, and the like for each application executed in the power limited computing environment. We propose a system performance management technique in a power-limited computing environment that can minimize execution time.
본 발명이 해결하고자 하는 과제는 상기에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재들로부터 본 발명이 속하는 통상의 지식을 가진 자에 의해 명확하게 이해될 수 있을 것이다.The problem to be solved by the present invention is not limited to the above-mentioned, another problem to be solved is not mentioned can be clearly understood by those skilled in the art from the following description. will be.
본 발명의 실시예에 따르면, 컴퓨팅 시스템의 자원 분석 결과를 기초로 상기 컴퓨팅 시스템의 동시성 레벨(concurrency level)과 전력 할당 비율(power allocation ratio)로 정의되는 상기 컴퓨팅 시스템의 상태를 나타내는 적어도 둘 이상의 2차원 좌표를 생성하는 단계; 상기 적어도 둘 이상의 2차원 좌표 각각에 대응하는 동시성 레벨과 전력 할당 비율로 상기 컴퓨팅 시스템에서 실행되는 응용 프로그램의 성능 및 LLC MPKI(Last-Level Cache Misses Per Kilo Instructions)를 측정하는 단계; 상기 측정되는 성능 및 LLC MPKI를 기초로 상기 응용 프로그램의 특성을 파악하여 상기 응용 프로그램의 성능이 최대가 되는 2차원 좌표와 인접할 확률이 최대가 되는 2차원 좌표를 탐색 시작 지점으로 설정하는 단계; 및 상기 탐색 시작 지점을 중심으로 상기 응용 프로그램의 성능이 최대가 되는 2차원 좌표를 탐색하는 단계를 포함하는 컴퓨팅 시스템의 성능 관리 방법을 제공할 수 있다.According to an embodiment of the present invention, at least two or more two representing a state of the computing system defined by a concurrency level and a power allocation ratio of the computing system based on a resource analysis result of the computing system. Generating dimensional coordinates; Measuring performance and LLC Last-Level Cache Misses Per Kilo Instructions (MPKI) of an application running on the computing system at a concurrency level and power allocation ratio corresponding to each of the at least two two-dimensional coordinates; Identifying the characteristics of the application program based on the measured performance and the LLC MPKI and setting the two-dimensional coordinates having the maximum probability of adjoining the two-dimensional coordinates that maximize the performance of the application program as a search start point; And searching for two-dimensional coordinates at which the performance of the application program is maximized based on the search start point.
여기서, 상기 생성하는 단계는, 상기 컴퓨팅 시스템의 코어 개수에 따라 상기 동시성 레벨을 구분한 좌표 성분을 2차원 좌표축의 일 축 상에 생성하는 단계; 상기 컴퓨팅 시스템의 CPU 및 메모리에 대한 CPU의 전력 할당 비율에 따라 상기 전력 할당 비율을 구분한 좌표 성분을 상기 2차원 좌표축의 타 축 상에 생성하는 단계; 상기 일 축 상의 좌표 성분과 상기 타 축 상의 좌표 성분을 조합하여 상기 상관 관계를 나타내는 적어도 둘 이상의 2차원 좌표를 생성하는 단계를 포함할 수 있다.The generating may include: generating, on one axis of a two-dimensional coordinate axis, a coordinate component that divides the concurrency level according to the number of cores of the computing system; Generating a coordinate component that divides the power allocation ratio according to the power allocation ratio of the CPU to the CPU and the memory of the computing system on the other axis of the two-dimensional coordinate axis; The method may include generating at least two two-dimensional coordinates representing the correlation by combining the coordinate component on the one axis and the coordinate component on the other axis.
또한, 상기 상관 관계는, 확장성(scalable)-코어 집중적(core-intensive), 확장성-메모리 집중적(memory intensive), 비확장성(non-scalable)-코어 집중적 및 비확장성-메모리 집중적 상관 관계 특성을 가질 수 있다.In addition, the correlations are scalable-core-intensive, scalable-memory intensive, non-scalable-core-intensive and non-scalable-memory-intensive correlations. Can have relationship characteristics.
또한, 상기 측정하는 단계는, 상기 코어 개수 별로 상기 응용 프로그램을 실행했을 때의 수행 시간 및 상기 LLC MPKI를 측정하는 단계를 포함할 수 있다.In addition, the measuring may include measuring an execution time and the LLC MPKI when the application program is executed for each core number.
또한, 상기 설정하는 단계는, 상기 측정되는 수행 시간에 따라 상기 동시성 레벨의 확장성 또는 비확장성 여부를 결정하는 단계; 상기 확장성 또는 비확장성 여부가 결정되면 상기 측정되는 LLC MPKI에 따라 상기 전력 할당 비율의 코어 집중적 또는 메모리 집중적 여부를 결정하는 단계를 포함할 수 있다.The setting may include determining whether the concurrency level is scalable or non-expandable according to the measured execution time; If the scalability or non-scalability is determined, determining whether the power allocation ratio is core intensive or memory intensive according to the measured LLC MPKI.
또한, 상기 탐색하는 단계는, 상기 탐색 시작 지점을 중심으로 상기 일 축 상의 좌표 성분 또는 상기 타 축 상의 좌표 성분을 기 설정된 단위로 증감시키면서 상기 응용 프로그램의 성능이 최대가 되는 좌표 성분을 결정하는 단계를 포함할 수 있다.The searching may include determining a coordinate component that maximizes the performance of the application program while increasing or decreasing the coordinate component on the one axis or the coordinate component on the other axis with respect to the search start point. It may include.
또한, 상기 탐색하는 단계는, 상기 일 축 또는 상기 타 축 상에서 기 설정된 단위로 좌표 성분을 증가시키는 단계; 상기 증가된 좌표 성분에서의 상기 응용 프로그램의 성능을 측정하는 단계; 상기 증가된 좌표 성분에서의 성능이 이전 좌표 성분에서의 성능보다 높으면 상기 기 설정된 단위로 상기 좌표 성분을 증가시키는 단계; 상기 증가된 좌표 성분에서의 성능이 이전 좌표 성분에서의 성능보다 낮으면 상기 이전 좌표 성분에서 상기 기 설정된 단위로 상기 좌표 성분을 감소시키는 단계; 상기 감소된 좌표 성분에서의 성능이 상기 이전 좌표 성분에서의 성능보다 높으면 상기 기 설정된 단위로 상기 좌표 성분을 감소시키는 단계; 및 상기 감소된 좌표 성분에서의 성능이 상기 이전 좌표 성분에서의 성능보다 낮고, 상기 일 축 및 상기 타 축에 대한 성능 측정이 완료되었으면 상기 이전 좌표 성분을 갖는 2차원 좌표를 탐색 결과로 결정하는 단계를 포함할 수 있다.The searching may include: increasing a coordinate component in a predetermined unit on the one axis or the other axis; Measuring the performance of the application at the increased coordinate component; Increasing the coordinate component in the predetermined unit if the performance in the increased coordinate component is higher than the performance in the previous coordinate component; Decreasing the coordinate component in the predetermined unit in the previous coordinate component if the performance in the increased coordinate component is lower than the performance in the previous coordinate component; Reducing the coordinate component in the predetermined unit if the performance in the reduced coordinate component is higher than the performance in the previous coordinate component; And if the performance at the reduced coordinate component is lower than the performance at the previous coordinate component and the performance measurement on the one axis and the other axis is completed, determining the two-dimensional coordinates having the previous coordinate component as the search result. It may include.
또한, 상기 성능은 상기 응용 프로그램의 단위 작업 당 수행 시간의 역수일 수 있다.In addition, the performance may be an inverse of the execution time per unit task of the application.
또한, 상기 탐색 결과를 기초로 상기 컴퓨팅 시스템의 코어 개수와 상기 컴퓨팅 시스템의 CPU 및 메모리에 대한 CPU의 전력 할당 비율을 설정하는 단계를 더 포함할 수 있다.The method may further include setting a number of cores of the computing system and a power allocation ratio of the CPU to the CPU and the memory of the computing system based on the search result.
또한, 상기 탐색하는 단계는, 볼록 함수(convex function) 또는 오목 함수(concave function)의 특성을 이용한 탐색 알고리즘으로 상기 2차원 좌표를 탐색하는 단계를 포함할 수 있다.The searching may include searching for the two-dimensional coordinates using a search algorithm using a characteristic of a convex function or a concave function.
또한, 상기 컴퓨팅 시스템은 전력 제한 컴퓨팅 시스템을 포함할 수 있다.The computing system can also include a power limited computing system.
본 발명의 실시예에 의하면, 전력 제한 컴퓨팅 환경에서 동시성 레벨과 전력 할당 비율을 동시에 적응적으로 조절하여 응용 프로그램 별 시스템 성능을 최적화할 수 있다. 구체적으로, 전력 제한 컴퓨팅 환경에서 수행되는 응용 프로그램 별로 CPU 코어 개수와, CPU 및 메모리에 대한 CPU의 전력 할당 비율을 동시에 적응적으로 설정하여 컴퓨팅 수행 시간을 최소화시키면서 동적인 성능 관리가 가능하다. 또한, 본 발명의 실시예에 의하면, 컴퓨팅 시스템에 대한 온라인 프로파일링(Online Profiling)이 가능하여 특정 응용 프로그램에 대한 특성을 런타임(run-time)에 파악할 수 있다.According to an embodiment of the present invention, system performance for each application may be optimized by adaptively adjusting the concurrency level and the power allocation ratio simultaneously in a power limited computing environment. Specifically, dynamic performance management can be performed while minimizing computing execution time by adaptively setting the number of CPU cores and the power allocation ratio of the CPUs to the CPUs and the memory for each application executed in the power-limited computing environment. In addition, according to an embodiment of the present invention, online profiling of the computing system is possible, so that characteristics of a specific application program can be grasped at run-time.
도 1은 본 발명의 실시예에 따른 전력 제한 컴퓨팅 시스템의 성능 관리 장치에 대한 블록도이다.
도 2는 본 발명의 실시예에 따른 전력 제한 컴퓨팅 시스템의 성능 관리를 위한 동시성 레벨과 전력 할당 비율 간의 상관 관계 그래프이다.
도 3은 본 발명의 실시예에 따른 전력 제한 컴퓨팅 시스템의 성능 관리 방법을 예시적으로 설명하는 흐름도이다.
도 4는 도 3의 탐색 시작 지점을 중심으로 응용 프로그램의 성능이 최대가 되는 2차원 좌표를 탐색하는 과정을 보다 상세히 나타낸 흐름도이다.1 is a block diagram of a performance management apparatus of a power limited computing system according to an embodiment of the present invention.
2 is a correlation graph between a concurrency level and a power allocation ratio for performance management of a power limited computing system according to an embodiment of the present invention.
3 is a flowchart illustrating a method of managing performance of a power limited computing system according to an embodiment of the present invention.
FIG. 4 is a flowchart illustrating a process of searching for two-dimensional coordinates for maximizing performance of an application program based on a search start point of FIG. 3.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 범주는 청구항에 의해 정의될 뿐이다.Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various forms, only the embodiments are to make the disclosure of the present invention complete, and those skilled in the art to which the present invention pertains. It is provided to fully inform the scope of the invention, and the scope of the invention is defined only by the claims.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명은 본 발명의 실시예들을 설명함에 있어 실제로 필요한 경우 외에는 생략될 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing the embodiments of the present invention, detailed descriptions of well-known functions or configurations will be omitted unless they are actually necessary in describing the embodiments of the present invention. In addition, terms to be described below are terms defined in consideration of functions in the embodiments of the present invention, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the contents throughout the specification.
본 발명의 실시예는 전력 제한 컴퓨팅(Power-constrained computing) 환경에서 동시성 레벨과 전력 할당 비율을 동시에 적응적으로 조절하여 응용 프로그램 별 시스템 성능을 최적화하도록 하며, 구체적으로, 전력 제한 컴퓨팅 환경에서 수행되는 응용 프로그램 별로 CPU(Central Processing Unit)의 코어(core) 개수와, CPU 및 메모리에 대한 CPU의 전력 할당 비율을 동시에 적응적으로 설정하여 컴퓨팅 수행 시간을 최소화시키면서 동적으로 성능을 관리할 수 있는 컴퓨팅 시스템의 성능 관리 기술을 제안하고자 한다.Embodiment of the present invention to adaptively adjust the concurrency level and power allocation ratio simultaneously in a power-constrained computing environment to optimize system performance for each application, specifically, A computing system that can dynamically manage performance while minimizing computing time by adaptively setting the number of cores of the central processing unit (CPU) and the power allocation ratio of the CPU to memory at the same time for each application. We propose a performance management technique.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described in detail an embodiment of the present invention.
도 1은 본 발명의 실시예에 따른 컴퓨팅 시스템, 예를 들어 전력 제한 컴퓨팅 시스템(1)의 성능 관리 장치(100)를 나타낸 블록도이다.1 is a block diagram illustrating a
도 1의 성능 관리 장치(100)는 시스템 자원 분석부(102), 시스템 성능 관리부(104), 저장부(106) 및 응용 프로그램 실행부(108)를 포함하며, 이러한 성능 관리 장치(100)는 사용자 인터페이스부(10) 및 전원부(20)와 연결될 수 있다.The
도 1에 도시한 바와 같이, 시스템 자원 분석부(102)는 전력 제한 컴퓨팅 시스템(1)의 하드웨어 사양(hardware specification), 예를 들어 CPU 코어, 스레드(thread), 메모리 등과 관련된 시스템 자원과, 전력 설계(power budget) 또는 전력 정책과 관련된 시스템 자원을 분석할 수 있다.As shown in FIG. 1, the system
시스템 성능 관리부(104)는 시스템 자원 분석부(102)에서 분석된 시스템 자원 분석 결과를 기초로 전력 제한 컴퓨팅 시스템(1)의 성능 관리를 위한 2차원 좌표를 생성할 수 있다. 이러한 2차원 좌표는 전력 제한 컴퓨팅 시스템(1)의 동시성 레벨(concurrency level)과 전력 할당 비율(power allocation ratio)로 정의되는 시스템 상태를 나타내는 특성 정보로서, 예를 들어 도 2에 예시한 바와 같이 총 4개의 2차원 좌표로 표시될 수 있다.The
도 2에 도시한 바와 같이, 본 발명의 실시예에 따른 전력 제한 컴퓨팅 시스템(1)의 성능 관리를 위한 시스템 상태 특성 정보는 x축과 y축에 전력 할당 비율(CPU 및 메모리에 대한 CPU의 전력 할당 비율) 및 동시성 레벨(코어 개수)을 각각 설정하고, 이러한 x축 및 y축에 대한 2차원 좌표를 확장성(scalable)-코어 집중적(core-intensive) 시스템 상태(A), 확장성-메모리 집중적(memory intensive) 시스템 상태(B), 비확장성(non-scalable)-코어 집중적 시스템 상태(C) 및 비확장성-메모리 집중적 시스템 상태(D)로 각각 분류하였다.As shown in FIG. 2, the system state characteristic information for performance management of the power
확장성-코어 집중적 시스템 상태(A)는, 예를 들어 x축의 전력 할당 비율이 0.8%이고 y축의 동시성 레벨이 16코어인 경우의 2차원 좌표일 수 있다. 또한, 확장성-메모리 집중적 시스템 상태(B)는, 예를 들어 x축의 전력 할당 비율이 0.67%이고 y축의 동시성 레벨이 16코어인 경우의 2차원 좌표일 수 있다. 또한, 비확장성-코어 집중적 시스템 상태(C)는, 예를 들어 x축의 전력 할당 비율이 0.8%이고 y축의 동시성 레벨이 8코어인 경우의 2차원 좌표일 수 있다. 또한, 비확장성-메모리 집중적 시스템 상태(D)는, 예를 들어 x축의 전력 할당 비율이 0.67%이고 y축의 동시성 레벨이 8코어인 경우의 2차원 좌표일 수 있다.The scalability-core intensive system state A may be, for example, two-dimensional coordinates when the power allocation ratio of the x-axis is 0.8% and the concurrency level of the y-axis is 16 cores. Further, the scalability-memory intensive system state B may be, for example, two-dimensional coordinates when the power allocation ratio of the x-axis is 0.67% and the concurrency level of the y-axis is 16 cores. Further, the non-scalability-core intensive system state C can be, for example, two-dimensional coordinates when the power allocation ratio of the x-axis is 0.8% and the concurrency level of the y-axis is 8 cores. Further, the non-scalability-memory intensive system state D may be, for example, two-dimensional coordinates when the power allocation ratio of the x-axis is 0.67% and the concurrency level of the y-axis is 8 cores.
시스템 성능 관리부(104)는 이러한 동시성 레벨과 전력 할당 비율로 정의되는 시스템 상태를 나타내는 2차원 좌표, 즉 시스템 상태 특성 정보를 기초로, 컴퓨팅 시스템에서 실행되는 응용 프로그램의 성능이 최대가 되는 2차원 좌표와 인접할 확률이 최대가 되는 좌표를 탐색 시작 지점으로 설정하고, 설정된 탐색 시작 지점을 중심으로 응용 프로그램의 성능이 최대가 되는 2차원 좌표(동시성 레벨과 전력 할당 비율로 정의되는 시스템 상태)를 찾기 위해 2차원 좌표 공간(시스템 상태 공간)을 탐색할 수 있다. 이러한 시스템 성능 관리부(104)가 시스템 상태 공간의 탐색 시작 지점을 설정하는 과정과 시스템 상태를 구체적으로 탐색하는 과정은 하기에 기술하는 도 3 및 도 4의 흐름도에서 보다 상세히 다루기로 한다.The system
저장부(106)는 시스템 성능 관리부(104)를 통해 생성되는 전력 제한 컴퓨팅 시스템(1)의 동시성 레벨과 전력 할당 비율로 정의되는 시스템 상태를 저장할 수 있다. 저장부(106)에 저장되는 시스템 상태 특성 정보는 시스템 성능 관리부(104)에 의해 취사 선택될 수 있다. 이러한 저장부(106)는, 예를 들어 캐시 메모리(Cache memory)를 포함할 수 있다. 다만, 도 1에는 저장부(106)가 성능 관리 장치(100) 내에 포함되는 경우를 예시한 것이며, 필요에 따라 저장부(106)를 성능 관리 장치(100)와는 별도의 기능 블록으로 표현할 수도 있다. 이 경우, 저장부(106)는, 예를 들어 SSD(Solid State Drive)와 같은 플래시 메모리(Flash memory) 기반의 기록 매체, 하드 디스크 드라이브(Hard Disc Driver)와 같은 자기 디스크 기반의 기록 매체 등을 포함할 수 있다.The
응용 프로그램 실행부(108)는 후술하는 사용자 인터페이스부(10)의 실행 명령, 또는 성능 관리 장치(100)의 실행 명령에 따라 임의의 응용 프로그램을 실행시킬 수 있다. 본 발명의 실시예에 따라 실행되는 응용 프로그램은, 예를 들어 멀티-스레드(multi-threaded) 응용 프로그램이 적용될 수 있다.The application
상술한 바와 같은 시스템 자원 분석부(102), 시스템 성능 관리부(104), 응용 프로그램 실행부(108)(또는 저장부(106)는 각각 별개의 기능 블록으로 구분하였으나 이는 실시예일뿐이며, 성능 관리 장치(100) 내의 제어 수단, 예를 들어 마이크로프로세서(microprocessor)에 의해 이들 시스템 자원 분석, 시스템 성능 관리, 응용 프로그램 실행(또는 상관 관계 특성 정보 저장 및 독출) 등의 기능이 수행되도록 구현할 수도 있다.As described above, the system
사용자 인터페이스부(10)는 컴퓨팅 시스템의 성능 관리를 위한 응용 프로그램 실행 명령과 같은 입력 신호를 성능 관리 장치(100)로 제공하거나, 도 2에 도시한 바와 같은 동시성 레벨과 전력 할당 비율 간의 상관 관계를 나타내는 2차원 좌표를 외부로 표시할 수 있다. 이때, 이러한 2차원 좌표는 컴퓨팅 시스템(1)의 성능 테스트 결과를 사용자가 확인하기 위한 시뮬레이션 정보로서 제공될 수 있으며, 본 발명의 실시예에 따라 응용 프로그램의 성능을 측정하거나 2차원 좌표의 탐색 시작 지점을 설정하거나 2차원 좌표를 상세히 탐색하는 과정에서는 표시되지 않을 수 있다. 이러한 사용자 인터페이스부(10)는, 예를 들어 터치 입력이나 키 입력이 가능한 터치 모니터 또는 터치 패드 등을 포함할 수 있다.The
전원부(20)는 컴퓨팅 시스템(1)으로 전력을 공급할 수 있다. 이때의 전력은 전력 설계 또는 전력 정책에 의해 제한된 전력일 수 있다.The
이하, 상술한 구성들과 함께, 본 발명의 실시예에 따른 컴퓨팅 시스템의 성능 관리 방법을 첨부하는 도 3 및 도 4의 흐름도를 참조하여 보다 구체적으로 설명하기로 한다.Hereinafter, with reference to the above-described configuration, with reference to the flowchart of Figures 3 and 4 attached to the performance management method of the computing system according to an embodiment of the present invention will be described in more detail.
먼저, 도 3은 본 발명의 실시예에 따른 컴퓨팅 시스템의 성능 관리 방법을 나타낸 흐름도이다.First, FIG. 3 is a flowchart illustrating a performance management method of a computing system according to an exemplary embodiment of the present invention.
도 3에 도시한 바와 같이, 시스템 성능 관리부(104)는 시스템 자원 분석부(102)를 통해 분석된 컴퓨팅 시스템(1)의 시스템 자원 분석 결과를 입력받을 수 있으며(S100), 입력된 시스템 자원 분석 결과를 기초로 컴퓨팅 시스템(1)의 동시성 레벨과 전력 할당 비율로 정의되는 시스템 상태를 나타내는 적어도 둘 이상의 2차원 좌표를 생성할 수 있다(S102).As shown in FIG. 3, the
여기서, 적어도 둘 이상의 2차원 좌표는, 예를 들어 도 2에 예시한 바와 같은 확장성-코어 집중적 특성을 갖는 시스템 상태(A), 확장성-메모리 집중적 특성을 갖는 시스템 상태(B), 비확장성-코어 집중적 특성을 갖는 시스템 상태(C) 및 비확장성-메모리 집중적 특성을 갖는 시스템 상태(D)로 각각 분류될 수 있다. 구체적으로, 컴퓨팅 시스템(1)의 CPU 및 메모리에 대한 CPU의 전력 할당 비율에 따라 전력 할당 비율을 구분한 좌표 성분을 2차원 좌표축의 x축 상에 생성하고, 컴퓨팅 시스템(1)의 코어 개수에 따라 동시성 레벨을 구분한 좌표 성분을 2차원 좌표축의 y축 상에 생성하며, x축 상의 좌표 성분과 y축 상의 좌표 성분을 조합하여 시스템 상태를 나타내는 적어도 둘 이상의 2차원 좌표를 생성할 수 있다.Here, the at least two two-dimensional coordinates are, for example, a system state (A) having a scalability-core intensive characteristic as illustrated in FIG. 2, a system state (B) having a scalability-memory intensive characteristic, a non-expansion It can be classified into a system state (C) having a sex-core intensive characteristic and a system state (D) having a non-scalability-memory intensive characteristic. Specifically, a coordinate component that divides the power allocation ratio according to the power allocation ratio of the CPU to the CPU and the memory of the
이후, 시스템 성능 관리부(104)는 응용 프로그램 실행부(108)를 통해 임의의 응용 프로그램이 실행될 때 해당 응용 프로그램에 대해서 상기 적어도 둘 이상의 2차원 좌표 각각에 대응하는 동시성 레벨과 전력 할당 비율에서의 성능 및 LLC MPKI을 측정할 수 있다(S104). 예를 들어, 시스템 성능 관리부(104)는 확장성-코어 집중적 특성을 갖는 시스템 상태(A)에 대응하는 2차원 좌표에서의 전력 할당 비율(0.8%)과 동시성 레벨(16코어)로 해당 응용 프로그램의 실행 성능을 측정하고, 확장성-메모리 집중적 특성을 갖는 시스템 상태(B)에 대응하는 2차원 좌표에서의 전력 할당 비율(0.67%)과 동시성 레벨(16코어)로 해당 응용 프로그램의 실행 성능을 측정하며, 비확장성-코어 집중적 특성을 갖는 시스템 상태(C)에 대응하는 2차원 좌표에서의 전력 할당 비율(0.8%)과 동시성 레벨(8코어)로 해당 응용 프로그램의 실행 성능을 측정하고, 비확장성-메모리 집중적 특성을 갖는 시스템 상태(D)에 대응하는 2차원 좌표에서의 전력 할당 비율(0.67%)과 동시성 레벨(8코어)로 해당 응용 프로그램의 실행 성능을 각각 측정할 수 있다.Thereafter, the system
이후, 시스템 성능 관리부(104)는 이러한 각각의 실행 성능 측정 결과를 기초로 성능이 최대가 되는 2차원 좌표와 인접할 확률이 최대가 되는 좌표를 탐색 시작 지점으로 설정할 수 있다(S106). 예를 들어, 확장성-코어 집중적 특성을 갖는 시스템 상태(A)에 대응하는 2차원 좌표에서 해당 응용 프로그램의 동시성 레벨과 전력 할당 비율에 따른 성능이 최대로 판정된 경우, 확장성-코어 집중적 특성을 갖는 시스템 상태(A)에 대응하는 2차원 좌표를 탐색 시작 지점으로 설정할 수 있다. 구체적으로, 시스템 성능 관리부(104)는 응용 프로그램의 성능에 따라 동시성 레벨의 확장성 또는 비확장성 여부를 결정하고, 확장성 또는 비확장성 여부가 결정되면 측정된 LLC MPKI에 따라 전력 할당 비율의 코어 집중적 또는 메모리 집중적 여부를 결정하는 과정을 포함할 수 있다. LLC MPKI는 대략 1,000개의 명령(instruction)을 수행하면서 Last-level cache(LLC)에 발생한 미스(miss) 횟수를 의미한다. LLC는 프로세서에 부착된 메모리의 일종으로 main memory(예를 들어, DDR4, RAM 등) 보다 빠르지만 용량이 작다. 메모리 집중적인 응용 프로그램의 경우 메모리 사용량이 많고 메모리에 자주 접근해야 하기 때문에 LLC MPKI 수치가 높게 나오고, 코어 집중적인 응용 프로그램의 경우에는 그렇지 않기 때문에 LLC MPKI가 낮게 나온다. 본 발명의 실시예에서는 여러 벤치마크들을 사용한 오프라인 실험을 통해 메모리 집중적인 경우와 코어 집중적인 경우를 구분하는 LLC MPKI 기준을, 예를 들어 10으로 가정하였다. 즉, 1,000개의 명령어당 LLC 미스가 10회 이상 발생하면 메모리 집중적인 것으로, 그렇지 않으면 코어-집중적인 것으로 판단할 수 있다.Thereafter, the system
이때, 본 발명의 실시예에 따라 측정되는 응용 프로그램의 성능이라 함은, 예를 들어 해당 응용 프로그램이 임의의 전력 할당 비율과 동시성 레벨로 정의되는 시스템 상태에서 실행될 때의 단위 작업 당 수행 시간의 역수일 수 있다. 예컨대, 확장성-코어 집중적 특성을 갖는 시스템 상태(A)에서의 응용 프로그램의 단위 작업 당 수행 시간이 2초라고 가정하면, 응용 프로그램의 성능은 1/2인 0.5로 표현될 수 있다. In this case, the performance of an application measured according to an embodiment of the present invention is, for example, the inverse of the execution time per unit task when the application is executed in a system state defined by an arbitrary power allocation ratio and a concurrency level. Can be. For example, assuming that the execution time per unit task of an application in the system state A having the scalability-core intensive characteristic is 2 seconds, the performance of the application may be expressed as 0.5, which is 1/2.
이후, 시스템 성능 관리부(104)는 단계(S106)에서 설정된 탐색 시작 지점을 중심으로 응용 프로그램의 실행 성능이 최대가 되는 2차원 좌표(동시성 레벨과 전력 할당 비율로 정의되는 구체적인 시스템 상태)를 탐색할 수 있다(S108). 예를 들어, 탐색 시작 지점이 시스템 상태(A)로 설정되었다면, 시스템 성능 관리부(104)는 시스템 상태(A)를 나타내는 좌표를 중심으로 도 2의 x축 상의 좌표 성분 또는 y축 상의 좌표 성분을 기 설정된 단위로 증감시키면서 응용 프로그램의 성능이 최대가 되는 좌표 성분을 결정할 수 있다.Thereafter, the system
이러한 2차원 좌표 탐색 과정은 도 4에 보다 구체적으로 도시되어 있다.This two-dimensional coordinate search process is shown in more detail in FIG.
도 4에 도시한 바와 같이, 예를 들어 시스템 상태(A)를 나타내는 좌표를 중심으로 x축(전력 할당 비율) 상에서 기 설정된 단위로 좌표 성분을 양(+)의 방향으로 증가시킬 수 있다. 이때의 기 설정된 단위는, 예를 들어 전체 전력 설계량의 10% 단위일 수 있으며, 필요에 따라 가변될 수 있다.As shown in FIG. 4, for example, the coordinate component may be increased in a positive direction in a predetermined unit on the x-axis (power allocation ratio) around the coordinate representing the system state A. FIG. In this case, the preset unit may be, for example, 10% of the total power design amount, and may be changed as necessary.
이후, 시스템 성능 관리부(104)는 기 설정된 단위로 증가된 좌표 성분에서의 응용 프로그램의 성능을 측정할 수 있다(S202). 응용 프로그램의 성능은 앞서 설명한 바와 같이 응용 프로그램의 단위 작업 당 수행 시간의 역수로 나타낼 수 있다.Thereafter, the
기 설정된 단위로 증가된 좌표 성분에서의 응용 프로그램 성능이 측정되면, 시스템 성능 관리부(104)는 증가된 좌표 성분에서의 응용 프로그램 성능과 이전 좌표 성분, 즉 탐색 시작 지점인 시스템 상태(A)에서의 좌표 성분에서의 응용 프로그램 성능을 비교하고(S204), 증가된 좌표 성분에서의 응용 프로그램 성능이 이전 좌표 성분에서의 응용 프로그램 성능보다 좋으면, 즉, 증가된 좌표 성분에서의 응용 프로그램의 수행 시간이 이전 좌표 성분에서의 응용 프로그램의 수행 시간보다 짧으면, 단계(S200)로 피드백하여 상기의 과정들(S202, S204)을 반복 수행할 수 있다.When the application performance is measured in the increased coordinate component in a preset unit, the system
반면, 증가된 좌표 성분에서의 응용 프로그램의 성능이 이전 좌표 성분에서의 응용 프로그램 성능보다 떨어진다면, 즉, 증가된 좌표 성분에서의 응용 프로그램의 수행 시간이 이전 좌표 성분에서의 응용 프로그램의 수행 시간보다 길다면, 시스템 성능 관리부(104)는 이전 좌표 성분으로 탐색 지점을 변경한 후(S206), 기 설정된 단위로 좌표 성분을 감소시킬 수 있다(S208). 예를 들어, 이전 좌표 성분으로부터 x축(전력 할당 비율) 상에서 기 설정된 단위로 좌표 성분을 음(-)의 방향으로 감소시킬 수 있다.On the other hand, if the performance of the application in the increased coordinate component is lower than the application performance in the previous coordinate component, that is, the execution time of the application in the increased coordinate component is greater than the execution time of the application in the previous coordinate component. If long, the
좌표 성분이 음의 방향으로 감소되면, 시스템 성능 관리부(104)는 해당 좌표 성분에서의 응용 프로그램 성능을 측정할 수 있다(S210).If the coordinate component is reduced in the negative direction, the
기 설정된 단위로 감소된 좌표 성분에서의 응용 프로그램 성능이 측정되면, 시스템 성능 관리부(104)는 감소된 좌표 성분에서의 응용 프로그램 성능과 이전 좌표 성분에서의 응용 프로그램 성능을 비교하고(S212), 증가된 좌표 성분에서의 응용 프로그램 성능이 이전 좌표 성분에서의 응용 프로그램 성능보다 좋으면, 즉, 증가된 좌표 성분에서의 응용 프로그램의 수행 시간이 이전 좌표 성분에서의 응용 프로그램의 수행 시간보다 짧으면, 단계(S208)로 피드백하여 상기의 과정들(S210, S212)을 반복 수행할 수 있다.When the application performance in the reduced coordinate component is measured in a predetermined unit, the
반면, 감소된 좌표 성분에서의 응용 프로그램의 성능이 이전 좌표 성분에서의 응용 프로그램 성능보다 떨어진다면, 즉, 증가된 좌표 성분에서의 응용 프로그램의 수행 시간이 이전 좌표 성분에서의 응용 프로그램의 수행 시간보다 길다면, 시스템 성능 관리부(104)는 도 2의 x축 및 y축에 대한 성능 측정이 완료되었는지를 판단할 수 있다(S214).On the other hand, if the performance of the application in the reduced coordinate component is lower than the application performance in the previous coordinate component, that is, the execution time of the application in the increased coordinate component is greater than the execution time of the application in the previous coordinate component. If it is long, the system
x축 및 y축에 대한 성능 측정이 완료되지 않은 경우, 시스템 성능 관리부(104)는 단계(S200)로 피드백할 수 있다. 이때의 단계(S200) 수행은, 예를 들어 상관 관계(A)를 나타내는 좌표를 중심으로 y축(동시성 레벨) 상에서 기 설정된 단위로 좌표 성분을 양(+)의 방향으로 증가시킬 수 있다. 이때의 기 설정된 단위는, 예를 들어 전체 코어 개수의 25% 단위일 수 있으며, 필요에 따라 가변될 수 있다.If the performance measurement for the x-axis and the y-axis is not completed, the system
이후의 과정은 단계(S200) 내지 단계(S214)까지의 과정과 동일하므로 중복되는 설명은 생략하기로 한다.Since the subsequent process is the same as the process from step S200 to step S214, redundant description will be omitted.
한편, x축 및 y축에 대한 성능 측정이 완료되었다면, 시스템 성능 관리부(104)는 이전 좌표 성분을 갖는 2차원 좌표(x축 좌표 성분 및 y축 좌표 성분)를 탐색 결과로 결정할 수 있다(S216). 예를 들어, 시스템 상태(A)의 2차원 좌표가 이전 좌표 성분을 갖는 2차원 좌표라면, 시스템 상태(A)의 2차원 좌표를 탐색 결과로 결정할 수 있으며, 시스템 상태(A)의 2차원 좌표에서 기 설정 단위로 증가된 좌표 성분을 갖는 2차원 좌표가 이전 좌표 성분을 갖는 2차원 좌표라면, 증가된 좌표 성분을 갖는 2차원 좌표를 탐색 결과로 결정할 수 있다.On the other hand, if the performance measurement for the x-axis and y-axis is completed, the system
본 발명의 실시예에서, 상기 탐색하는 단계(S108)는, 예를 들어 볼록 함수(convex function) 또는 오목 함수(concave function)의 특성을 이용한 탐색 알고리즘, 예를 들어 hill-climbing 알고리즘으로 2차원 좌표를 탐색하는 단계를 포함할 수 있으며, 이와 같은 탐색 알고리즘은 본 발명의 기술분야에서 통상의 지식을 가진 자라면 용이하게 알 수 있는 바, 구체적인 설명은 생략하기로 한다.In an embodiment of the present invention, the step of searching (S108) is, for example, two-dimensional coordinates using a search algorithm, for example, a hill-climbing algorithm, using the characteristics of a convex function or a concave function. It may include the step of searching, such a search algorithm can be easily understood by those of ordinary skill in the art, a detailed description thereof will be omitted.
단계(S216)에서와 같이 탐색 결과가 결정되면, 도 3의 단계(S110)와 같이 탐색 결과를 기초로 동시성 레벨과 전력 할당 비율을 설정할 수 있다. 예를 들어, 탐색 결과가 상관 관계(A)의 2차원 좌표에 해당한다면, 0.8%의 전력 할당 비율과 16코어의 동시성 레벨로 시스템 상태를 설정할 수 있으며, 탐색 결과가 시스템 상태(A)의 2차원 좌표에서 기 설정된 단위로 감소된 2차원 좌표에 해당한다면, 그에 해당하는 전력 할당 비율과 코어 개수의 동시성 레벨로 시스템 상태를 설정할 수 있다.When the search result is determined as in step S216, the concurrency level and the power allocation ratio may be set based on the search result as in step S110 of FIG. 3. For example, if the search result corresponds to the two-dimensional coordinates of correlation A, then the system state can be set to a power allocation rate of 0.8% and a concurrency level of 16 cores, and the search result is 2 of system state A. If it corresponds to the two-dimensional coordinates reduced by a predetermined unit in the dimensional coordinates, the system state can be set to the concurrency level of the corresponding power allocation ratio and the number of cores.
이상 설명한 바와 같이 본 발명의 실시예에 의하면, 전력 제한 컴퓨팅 환경에서 동시성 레벨과 전력 할당 비율을 동시에 적응적으로 조절하여 응용 프로그램 별 시스템 성능을 최적화하도록 하며, 구체적으로, 전력 제한 컴퓨팅 환경에서 수행되는 응용 프로그램 별로 CPU의 코어 개수와, CPU 및 메모리에 대한 CPU의 전력 할당 비율을 동시에 적응적으로 설정하여 컴퓨팅 수행 시간을 최소화시키면서 동적으로 성능을 관리할 수 있는 컴퓨팅 시스템의 성능 관리 기술을 구현하고자 한다.As described above, according to an embodiment of the present invention, in the power constrained computing environment, the concurrency level and the power allocation ratio may be adaptively adjusted simultaneously to optimize system performance for each application. The purpose of this paper is to implement the performance management technology of the computing system that can dynamically manage the performance while minimizing the computing time by adaptively setting the number of cores of the CPU and the power allocation ratio of the CPU to the memory for each application program simultaneously. .
한편, 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록에서 설명된 기능들을 수행하는 수단을 생성하게 된다.On the other hand, the combination of each block in the accompanying block diagram and each step in the flowchart may be performed by computer program instructions. These computer program instructions may be mounted on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, such that the instructions executed by the processor of the computer or other programmable data processing equipment are described in each block of the block diagram. It creates a means to perform the functions.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 기록매체(또는 메모리) 등에 저장되는 것도 가능하므로, 그 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 기록매체(또는 메모리)에 저장된 인스트럭션들은 블록도의 각 블록에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.These computer program instructions may be stored on a computer usable or computer readable recording medium (or memory) or the like that may be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, thereby making the computer available. Alternatively, instructions stored on a computer readable recording medium (or memory) may produce an article of manufacture containing instruction means for performing the functions described in each block of the block diagram.
그리고, 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.In addition, computer program instructions may be mounted on a computer or other programmable data processing equipment, such that a series of operating steps may be performed on the computer or other programmable data processing equipment to create a computer-implemented process to generate a computer or other program. Instructions that perform possible data processing equipment may also provide steps for performing the functions described in each block of the block diagram.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 적어도 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each block may represent a portion of a module, segment, or code that includes at least one or more executable instructions for executing a specified logical function (s). It should also be noted that in some alternative embodiments, the functions noted in the blocks may occur out of order. For example, the two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending on the corresponding function.
1: 전력 제한 컴퓨팅 시스템
10: 사용자 인터페이스부
20: 전원부
100: 시스템 성능 관리 장치
102: 시스템 자원 분석부
104: 시스템 성능 관리부
106: 저장부
108: 응용 프로그램 실행부1: power limited computing system
10: user interface
20: power supply
100: system performance management unit
102: system resource analysis unit
104: system performance management unit
106: storage unit
108: application execution unit
Claims (13)
상기 적어도 둘 이상의 2차원 좌표 각각에 대응하는 동시성 레벨과 전력 할당 비율로 상기 컴퓨팅 시스템에서 실행되는 응용 프로그램의 성능 및 LLC MPKI(Last-Level Cache Misses Per Kilo Instructions)를 측정하는 단계;
상기 측정되는 성능 및 LLC MPKI를 기초로 상기 응용 프로그램의 특성을 파악하여 상기 응용 프로그램의 성능이 최대가 되는 2차원 좌표와 인접할 확률이 최대가 되는 좌표를 탐색 시작 지점으로 설정하는 단계; 및
상기 탐색 시작 지점을 중심으로 상기 응용 프로그램의 성능이 최대가 되는 2차원 좌표를 탐색하는 단계를 포함하고,
상기 시스템 상태는,
확장성(scalable)-코어 집중적(core-intensive), 확장성-메모리 집중적(memory intensive), 비확장성(non-scalable)-코어 집중적 및 비확장성-메모리 집중적 시스템 상태 특성을 갖는
컴퓨팅 시스템의 성능 관리 방법.Generating at least two two-dimensional coordinates representing a system state defined by a concurrency level and a power allocation ratio of the computing system based on a result of analyzing the resource of the computing system;
Measuring performance and LLC Last-Level Cache Misses Per Kilo Instructions (MPKI) of an application running on the computing system at a concurrency level and power allocation ratio corresponding to each of the at least two two-dimensional coordinates;
Identifying the characteristics of the application based on the measured performance and the LLC MPKI and setting coordinates that have a maximum probability of being adjacent to two-dimensional coordinates that maximize the performance of the application as a search start point; And
Searching for two-dimensional coordinates at which the performance of the application program is maximized based on the search start point;
The system state is
Scalable, core-intensive, scalable-memory intensive, non-scalable-core-intensive and non-scalable-memory-intensive system state characteristics
How to manage performance in computing systems.
상기 생성하는 단계는,
상기 컴퓨팅 시스템의 코어 개수에 따라 상기 동시성 레벨을 구분한 좌표 성분을 2차원 좌표축의 일 축 상에 생성하는 단계;
상기 컴퓨팅 시스템의 CPU 및 메모리에 대한 CPU의 전력 할당 비율에 따라 상기 전력 할당 비율을 구분한 좌표 성분을 상기 2차원 좌표축의 타 축 상에 생성하는 단계;
상기 일 축 상의 좌표 성분과 상기 타 축 상의 좌표 성분을 조합하여 상기 시스템 상태를 나타내는 적어도 둘 이상의 2차원 좌표를 생성하는 단계를 포함하는
컴퓨팅 시스템의 성능 관리 방법.The method of claim 1,
The generating step,
Generating coordinate components on the one axis of a two-dimensional coordinate axis which divide the concurrency level according to the number of cores of the computing system;
Generating a coordinate component that divides the power allocation ratio according to the power allocation ratio of the CPU to the CPU and the memory of the computing system on the other axis of the two-dimensional coordinate axis;
Combining at least one coordinate component on the one axis with the coordinate component on the other axis to generate at least two two-dimensional coordinates representing the system state;
How to manage performance in computing systems.
상기 측정하는 단계는,
상기 코어 개수 별로 상기 응용 프로그램을 실행했을 때의 수행 시간 및 상기 LLC MPKI를 측정하는 단계를 포함하는
컴퓨팅 시스템의 성능 관리 방법.The method of claim 2,
The measuring step,
Measuring an execution time and the LLC MPKI when the application is executed for each core number;
How to manage performance in computing systems.
상기 설정하는 단계는,
상기 측정되는 수행 시간에 따라 상기 동시성 레벨의 확장성 또는 비확장성 여부를 결정하는 단계;
상기 확장성 또는 비확장성 여부가 결정되면 상기 측정되는 LLC MPKI에 따라 상기 전력 할당 비율의 코어 집중적 또는 메모리 집중적 여부를 결정하는 단계를 포함하는
컴퓨팅 시스템의 성능 관리 방법.The method of claim 4, wherein
The setting step,
Determining whether the concurrency level is scalable or non-expandable according to the measured execution time;
Determining whether the power allocation ratio is core intensive or memory intensive according to the measured LLC MPKI if the scalability or non-scalability is determined.
How to manage performance in computing systems.
상기 탐색하는 단계는,
상기 탐색 시작 지점을 중심으로 상기 일 축 상의 좌표 성분 또는 상기 타 축 상의 좌표 성분을 기 설정된 단위로 증감시키면서 상기 응용 프로그램의 성능이 최대가 되는 좌표 성분을 결정하는 단계를 포함하는
컴퓨팅 시스템의 성능 관리 방법.The method of claim 2,
The searching step,
Determining a coordinate component that maximizes the performance of the application program while increasing or decreasing the coordinate component on the one axis or the coordinate component on the other axis with respect to the search start point;
How to manage performance in computing systems.
상기 탐색하는 단계는,
상기 일 축 또는 상기 타 축 상에서 기 설정된 단위로 좌표 성분을 증가시키는 단계;
상기 증가된 좌표 성분에서의 상기 응용 프로그램의 성능을 측정하는 단계;
상기 증가된 좌표 성분에서의 성능이 이전 좌표 성분에서의 성능보다 높으면 상기 기 설정된 단위로 상기 좌표 성분을 증가시키는 단계;
상기 증가된 좌표 성분에서의 성능이 이전 좌표 성분에서의 성능보다 낮으면 상기 이전 좌표 성분에서 상기 기 설정된 단위로 상기 좌표 성분을 감소시키는 단계;
상기 감소된 좌표 성분에서의 성능이 상기 이전 좌표 성분에서의 성능보다 높으면 상기 기 설정된 단위로 상기 좌표 성분을 감소시키는 단계; 및
상기 감소된 좌표 성분에서의 성능이 상기 이전 좌표 성분에서의 성능보다 낮고, 상기 일 축 및 상기 타 축에 대한 성능 측정이 완료되었으면 상기 이전 좌표 성분을 갖는 2차원 좌표를 탐색 결과로 결정하는 단계를 포함하는
컴퓨팅 시스템의 성능 관리 방법.The method of claim 6,
The searching step,
Increasing a coordinate component in a predetermined unit on the one axis or the other axis;
Measuring the performance of the application at the increased coordinate component;
Increasing the coordinate component in the predetermined unit if the performance in the increased coordinate component is higher than the performance in the previous coordinate component;
Decreasing the coordinate component in the predetermined unit in the previous coordinate component if the performance in the increased coordinate component is lower than the performance in the previous coordinate component;
Reducing the coordinate component in the predetermined unit if the performance in the reduced coordinate component is higher than the performance in the previous coordinate component; And
Determining a two-dimensional coordinate having the previous coordinate component as a search result when the performance at the reduced coordinate component is lower than the performance at the previous coordinate component and the performance measurement on the one axis and the other axis is completed. Containing
How to manage performance in computing systems.
상기 성능은 상기 응용 프로그램의 단위 작업 당 수행 시간의 역수인
컴퓨팅 시스템의 성능 관리 방법.The method of claim 7, wherein
The performance is an inverse of the execution time per unit task of the application.
How to manage performance in computing systems.
상기 탐색 결과를 기초로 상기 컴퓨팅 시스템의 코어 개수와, 상기 컴퓨팅 시스템의 CPU 및 메모리에 대한 CPU의 전력 할당 비율을 설정하는 단계를 더 포함하는
컴퓨팅 시스템의 성능 관리 방법.The method of claim 7, wherein
Setting a number of cores of the computing system and a power allocation ratio of the CPU to the CPU and the memory of the computing system based on the search result;
How to manage performance in computing systems.
상기 탐색하는 단계는,
볼록 함수(convex function) 또는 오목 함수(concave function)의 특성을 이용한 탐색 알고리즘으로 상기 2차원 좌표를 탐색하는 단계를 포함하는
컴퓨팅 시스템의 성능 관리 방법.The method of claim 2,
The searching step,
Searching for the two-dimensional coordinates with a search algorithm using a characteristic of a convex function or a concave function.
How to manage performance in computing systems.
상기 컴퓨팅 시스템은 전력 제한 컴퓨팅 시스템(Power-constrained computing system)을 포함하는
컴퓨팅 시스템의 성능 관리 방법.The method of claim 1,
The computing system includes a power-constrained computing system.
How to manage performance in computing systems.
상기 적어도 둘 이상의 2차원 좌표 각각에 대응하는 동시성 레벨과 전력 할당 비율로 상기 컴퓨팅 시스템에서 실행되는 응용 프로그램의 성능 및 LLC MPKI를 측정하는 단계;
상기 측정되는 성능 및 LLC MPKI를 기초로 상기 응용 프로그램의 특성을 파악하여 상기 응용 프로그램의 성능이 최대가 되는 2차원 좌표와 인접할 확률이 최대가 되는 좌표를 탐색 시작 지점으로 설정하는 단계; 및
상기 탐색 시작 지점을 중심으로 상기 응용 프로그램의 성능이 최대가 되는 2차원 좌표를 탐색하는 단계를 수행하는 명령어를 포함하는 프로그램이 기록된
컴퓨터 판독 가능 기록 매체.Generating at least two two-dimensional coordinates indicative of a system state defined by a concurrency level and a power allocation ratio of the computing system based on a resource analysis result of the computing system, the system state being scalable-core intensive. core-intensive, scalable-memory intensive, non-scalable-core intensive and non-scalable-memory intensive system state characteristics;
Measuring the performance and LLC MPKI of an application running on the computing system with a concurrency level and a power allocation rate corresponding to each of the at least two two-dimensional coordinates;
Identifying the characteristics of the application based on the measured performance and the LLC MPKI and setting coordinates that have a maximum probability of being adjacent to two-dimensional coordinates that maximize the performance of the application as a search start point; And
A program including a command for performing a step of searching for two-dimensional coordinates for maximizing the performance of the application program based on the search start point;
Computer-readable recording media.
상기 적어도 둘 이상의 2차원 좌표 각각에 대응하는 동시성 레벨과 전력 할당 비율로 상기 컴퓨팅 시스템에서 실행되는 응용 프로그램의 성능 및 LLC MPKI를 측정하는 단계;
상기 측정되는 성능 및 LLC MPKI를 기초로 상기 응용 프로그램의 특성을 파악하여 상기 응용 프로그램의 성능이 최대가 되는 2차원 좌표와 인접할 확률이 최대가 되는 좌표를 탐색 시작 지점으로 설정하는 단계; 및
상기 탐색 시작 지점을 중심으로 상기 응용 프로그램의 성능이 최대가 되는 2차원 좌표를 탐색하는 단계를 수행하는
컴퓨터 판독 가능 기록 매체에 저장된 컴퓨터 프로그램.Generating at least two two-dimensional coordinates indicative of a system state defined by a concurrency level and a power allocation ratio of the computing system based on a resource analysis result of the computing system, the system state being scalable-core intensive. core-intensive, scalable-memory intensive, non-scalable-core intensive and non-scalable-memory intensive system state characteristics;
Measuring the performance and LLC MPKI of an application running on the computing system with a concurrency level and a power allocation rate corresponding to each of the at least two two-dimensional coordinates;
Identifying the characteristics of the application based on the measured performance and the LLC MPKI and setting coordinates that have a maximum probability of being adjacent to two-dimensional coordinates that maximize the performance of the application as a search start point; And
Searching for two-dimensional coordinates that maximize the performance of the application program around the search starting point;
Computer program stored on a computer readable recording medium.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180016213A KR102009425B1 (en) | 2018-02-09 | 2018-02-09 | Method for managing performance of computing system, program and computer readable storage medium therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180016213A KR102009425B1 (en) | 2018-02-09 | 2018-02-09 | Method for managing performance of computing system, program and computer readable storage medium therefor |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102009425B1 true KR102009425B1 (en) | 2019-08-09 |
Family
ID=67613566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180016213A KR102009425B1 (en) | 2018-02-09 | 2018-02-09 | Method for managing performance of computing system, program and computer readable storage medium therefor |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102009425B1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120066189A (en) * | 2010-12-14 | 2012-06-22 | 삼성전자주식회사 | Apparatus for dynamically self-adapting of software framework on many-core systems and method of the same |
KR101509938B1 (en) * | 2013-10-11 | 2015-04-08 | 고려대학교 산학협력단 | Method and apparatus for task scheduling |
KR101620103B1 (en) | 2009-10-21 | 2016-05-13 | 삼성전자주식회사 | Appratus and method for power control of central processing unit in a multi-core system |
KR20160063974A (en) * | 2014-11-27 | 2016-06-07 | 삼성전자주식회사 | System on chip for controlling power using workload, method thereof, and computing device having the same |
KR20160085029A (en) * | 2015-01-07 | 2016-07-15 | (주)레드스톤시스템 | Computer-system power control unit and method thereof |
JP2016134120A (en) * | 2015-01-22 | 2016-07-25 | 富士通株式会社 | Job management program, job management method, and job management device |
-
2018
- 2018-02-09 KR KR1020180016213A patent/KR102009425B1/en active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101620103B1 (en) | 2009-10-21 | 2016-05-13 | 삼성전자주식회사 | Appratus and method for power control of central processing unit in a multi-core system |
KR20120066189A (en) * | 2010-12-14 | 2012-06-22 | 삼성전자주식회사 | Apparatus for dynamically self-adapting of software framework on many-core systems and method of the same |
KR101509938B1 (en) * | 2013-10-11 | 2015-04-08 | 고려대학교 산학협력단 | Method and apparatus for task scheduling |
KR20160063974A (en) * | 2014-11-27 | 2016-06-07 | 삼성전자주식회사 | System on chip for controlling power using workload, method thereof, and computing device having the same |
KR20160085029A (en) * | 2015-01-07 | 2016-07-15 | (주)레드스톤시스템 | Computer-system power control unit and method thereof |
JP2016134120A (en) * | 2015-01-22 | 2016-07-25 | 富士通株式会社 | Job management program, job management method, and job management device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gupta et al. | The architectural implications of facebook's dnn-based personalized recommendation | |
Jain et al. | Gist: Efficient data encoding for deep neural network training | |
Xu et al. | Deepwear: Adaptive local offloading for on-wearable deep learning | |
US10534773B2 (en) | Intelligent query parameterization of database workloads | |
US9098608B2 (en) | Processor configured to allocate resources using an entitlement vector | |
US9558034B2 (en) | Entitlement vector for managing resource allocation | |
US8813085B2 (en) | Scheduling threads based on priority utilizing entitlement vectors, weight and usage level | |
US8224811B2 (en) | Workload management using robustness mapping | |
US20130024867A1 (en) | Resource allocation using a library with entitlement | |
US9268609B2 (en) | Application thread to cache assignment | |
Zhu et al. | Kelp: Qos for accelerated machine learning systems | |
US9594839B2 (en) | Methods and systems for load balancing databases in a cloud environment | |
Mendoza et al. | Interference-aware scheduling for inference serving | |
Liu et al. | A MapReduce approach to G i*(d) spatial statistic | |
Yu et al. | MIA: Metric importance analysis for big data workload characterization | |
Maroulis et al. | A holistic energy-efficient real-time scheduler for mixed stream and batch processing workloads | |
da Silva et al. | Smart resource allocation of concurrent execution of parallel applications | |
Malik et al. | Co-locating and concurrent fine-tuning MapReduce applications on microservers for energy efficiency | |
KR102009425B1 (en) | Method for managing performance of computing system, program and computer readable storage medium therefor | |
Zheng et al. | Flexio: Location-flexible execution of in situ data analytics for large scale scientific applications | |
Geimer et al. | Recent developments in the scalasca toolset | |
Gomes et al. | CASHT: Contention analysis in shared hierarchies with thefts | |
Hua et al. | Data similarity-aware computation infrastructure for the cloud | |
Ma et al. | Cost-effective On-device Continual Learning over Memory Hierarchy with Miro | |
Rughetti et al. | Adaptive transactional memories: Performance and energy consumption tradeoffs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |