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 PDF

Info

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
Application number
KR1020180016213A
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 KR1020180016213A priority Critical patent/KR102009425B1/en
Application granted granted Critical
Publication of KR102009425B1 publication Critical patent/KR102009425B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Abstract

The present invention relates to technique for managing performance of a computing system. The technique may comprise the steps of: generating at least two two-dimensional coordinates representing a system state defined by a concurrency level and power allocation ratio of a computing system based on a resource analysis result of a computing system; measuring performance and Last-Level Cache Misses Per Kilo Instructions (LLC MPKI) of an application program executed in the computing system at the concurrency level and power allocation ratio corresponding to each of the two-dimensional coordinates; identifying the characteristics of the application program based on the measured performance and LLC MPKI and setting the two-dimensional coordinates having the maximum probability of adjoining the two-dimensional coordinates having the maximum performance of the application as a search starting point; and searching for two-dimensional coordinates having the maximum performance of the application program around the search starting point.

Description

컴퓨팅 시스템의 성능 관리 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체 {METHOD FOR MANAGING PERFORMANCE OF COMPUTING SYSTEM, PROGRAM AND COMPUTER READABLE STORAGE MEDIUM THEREFOR}METHOD FOR MANAGING PERFORMANCE OF COMPUTING SYSTEM, PROGRAM AND COMPUTER READABLE STORAGE MEDIUM THEREFOR}

본 발명은 컴퓨팅 시스템의 성능 관리 기술에 관한 것으로, 특히 전력 제한 컴퓨팅(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.

한국등록특허 제10-1620103호, 2016.05.03 등록Registered Korea Patent Registration No. 10-1620103, 2016.05.03

본 발명의 실시예에서는 전력 제한 컴퓨팅(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 performance management apparatus 100 of a computing system, for example, a power limited computing system 1, according to an embodiment of the present invention.

도 1의 성능 관리 장치(100)는 시스템 자원 분석부(102), 시스템 성능 관리부(104), 저장부(106) 및 응용 프로그램 실행부(108)를 포함하며, 이러한 성능 관리 장치(100)는 사용자 인터페이스부(10) 및 전원부(20)와 연결될 수 있다.The performance management apparatus 100 of FIG. 1 includes a system resource analysis unit 102, a system performance management unit 104, a storage unit 106, and an application execution unit 108. It may be connected to the user interface unit 10 and the power supply unit 20.

도 1에 도시한 바와 같이, 시스템 자원 분석부(102)는 전력 제한 컴퓨팅 시스템(1)의 하드웨어 사양(hardware specification), 예를 들어 CPU 코어, 스레드(thread), 메모리 등과 관련된 시스템 자원과, 전력 설계(power budget) 또는 전력 정책과 관련된 시스템 자원을 분석할 수 있다.As shown in FIG. 1, the system resource analysis unit 102 includes a system resource related to a hardware specification of the power limited computing system 1, for example, a CPU core, a thread, a memory, and the like. Analyze system resources associated with a power budget or power policy.

시스템 성능 관리부(104)는 시스템 자원 분석부(102)에서 분석된 시스템 자원 분석 결과를 기초로 전력 제한 컴퓨팅 시스템(1)의 성능 관리를 위한 2차원 좌표를 생성할 수 있다. 이러한 2차원 좌표는 전력 제한 컴퓨팅 시스템(1)의 동시성 레벨(concurrency level)과 전력 할당 비율(power allocation ratio)로 정의되는 시스템 상태를 나타내는 특성 정보로서, 예를 들어 도 2에 예시한 바와 같이 총 4개의 2차원 좌표로 표시될 수 있다.The system performance manager 104 may generate two-dimensional coordinates for performance management of the power limited computing system 1 based on the system resource analysis result analyzed by the system resource analyzer 102. These two-dimensional coordinates are characteristic information representing a system state defined by a concurrency level and a power allocation ratio of the power limited computing system 1. For example, as shown in FIG. It can be represented by four two-dimensional coordinates.

도 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 limited computing system 1 according to an embodiment of the present invention is based on a power allocation ratio (CPU power to CPU and memory) on the x and y axes. Allocation ratio) and concurrency level (number of cores), respectively, and two-dimensional coordinates for these x- and y-axes are scalable-core-intensive system state (A), scalability-memory. They were classified into memory intensive system state (B), non-scalable-core intensive system state (C), and non-scalability-memory intensive system state (D), respectively.

확장성-코어 집중적 시스템 상태(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 performance management unit 104 is a two-dimensional coordinates representing the system state defined by the concurrency level and the power allocation ratio, that is, the two-dimensional coordinates that maximize the performance of the application running on the computing system based on the system state characteristic information. Set the coordinates that have the greatest probability of adjacency to the search start point, and find the two-dimensional coordinates (system state defined by the concurrency level and power allocation ratio) that maximize the application's performance around the set search start point. To explore the two-dimensional coordinate space (system state space). The process of setting the search start point of the system state space and the process of specifically searching for the system state will be described in more detail in the flowcharts of FIGS. 3 and 4 described below.

저장부(106)는 시스템 성능 관리부(104)를 통해 생성되는 전력 제한 컴퓨팅 시스템(1)의 동시성 레벨과 전력 할당 비율로 정의되는 시스템 상태를 저장할 수 있다. 저장부(106)에 저장되는 시스템 상태 특성 정보는 시스템 성능 관리부(104)에 의해 취사 선택될 수 있다. 이러한 저장부(106)는, 예를 들어 캐시 메모리(Cache memory)를 포함할 수 있다. 다만, 도 1에는 저장부(106)가 성능 관리 장치(100) 내에 포함되는 경우를 예시한 것이며, 필요에 따라 저장부(106)를 성능 관리 장치(100)와는 별도의 기능 블록으로 표현할 수도 있다. 이 경우, 저장부(106)는, 예를 들어 SSD(Solid State Drive)와 같은 플래시 메모리(Flash memory) 기반의 기록 매체, 하드 디스크 드라이브(Hard Disc Driver)와 같은 자기 디스크 기반의 기록 매체 등을 포함할 수 있다.The storage unit 106 may store a system state defined by the concurrency level and the power allocation ratio of the power limited computing system 1 generated through the system performance management unit 104. The system state characteristic information stored in the storage unit 106 may be selected by the system performance management unit 104. Such a storage unit 106 may include, for example, a cache memory. However, FIG. 1 illustrates a case in which the storage unit 106 is included in the performance management apparatus 100. If necessary, the storage unit 106 may be represented by a function block separate from the performance management apparatus 100. . In this case, the storage unit 106 may include, for example, a flash memory based recording medium such as a solid state drive (SSD), a magnetic disk based recording medium such as a hard disc drive, or the like. It may include.

응용 프로그램 실행부(108)는 후술하는 사용자 인터페이스부(10)의 실행 명령, 또는 성능 관리 장치(100)의 실행 명령에 따라 임의의 응용 프로그램을 실행시킬 수 있다. 본 발명의 실시예에 따라 실행되는 응용 프로그램은, 예를 들어 멀티-스레드(multi-threaded) 응용 프로그램이 적용될 수 있다.The application program execution unit 108 may execute any application program according to the execution command of the user interface unit 10 to be described later, or the execution command of the performance management apparatus 100. An application program executed according to an embodiment of the present invention may be, for example, a multi-threaded application program.

상술한 바와 같은 시스템 자원 분석부(102), 시스템 성능 관리부(104), 응용 프로그램 실행부(108)(또는 저장부(106)는 각각 별개의 기능 블록으로 구분하였으나 이는 실시예일뿐이며, 성능 관리 장치(100) 내의 제어 수단, 예를 들어 마이크로프로세서(microprocessor)에 의해 이들 시스템 자원 분석, 시스템 성능 관리, 응용 프로그램 실행(또는 상관 관계 특성 정보 저장 및 독출) 등의 기능이 수행되도록 구현할 수도 있다.As described above, the system resource analysis unit 102, the system performance management unit 104, and the application program execution unit 108 (or the storage unit 106) are divided into separate functional blocks, but this is only an embodiment, and a performance management device. Functions such as analyzing these system resources, managing system performance, executing an application (or storing and reading correlation characteristic information) may be implemented by a control means in, for example, a microprocessor.

사용자 인터페이스부(10)는 컴퓨팅 시스템의 성능 관리를 위한 응용 프로그램 실행 명령과 같은 입력 신호를 성능 관리 장치(100)로 제공하거나, 도 2에 도시한 바와 같은 동시성 레벨과 전력 할당 비율 간의 상관 관계를 나타내는 2차원 좌표를 외부로 표시할 수 있다. 이때, 이러한 2차원 좌표는 컴퓨팅 시스템(1)의 성능 테스트 결과를 사용자가 확인하기 위한 시뮬레이션 정보로서 제공될 수 있으며, 본 발명의 실시예에 따라 응용 프로그램의 성능을 측정하거나 2차원 좌표의 탐색 시작 지점을 설정하거나 2차원 좌표를 상세히 탐색하는 과정에서는 표시되지 않을 수 있다. 이러한 사용자 인터페이스부(10)는, 예를 들어 터치 입력이나 키 입력이 가능한 터치 모니터 또는 터치 패드 등을 포함할 수 있다.The user interface unit 10 may provide an input signal, such as an application program execution command for managing the performance of the computing system, to the performance management apparatus 100, or provide a correlation between the concurrency level and the power allocation ratio as shown in FIG. 2. The two-dimensional coordinates to be displayed can be displayed to the outside. In this case, the two-dimensional coordinates may be provided as simulation information for the user to check the performance test results of the computing system 1, and in accordance with an embodiment of the present invention to measure the performance of the application or start searching for the two-dimensional coordinates It may not be displayed in the process of setting a point or searching two-dimensional coordinates in detail. The user interface unit 10 may include, for example, a touch monitor or a touch pad capable of a touch input or a key input.

전원부(20)는 컴퓨팅 시스템(1)으로 전력을 공급할 수 있다. 이때의 전력은 전력 설계 또는 전력 정책에 의해 제한된 전력일 수 있다.The power supply unit 20 may supply power to the computing system 1. The power at this time may be power limited by the power design or power policy.

이하, 상술한 구성들과 함께, 본 발명의 실시예에 따른 컴퓨팅 시스템의 성능 관리 방법을 첨부하는 도 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 system performance manager 104 may receive a system resource analysis result of the computing system 1 analyzed through the system resource analyzer 102 (S100), and input the system resource analysis. Based on the result, at least two or more two-dimensional coordinates representing a system state defined by the concurrency level and the power allocation ratio of the computing system 1 may be generated (S102).

여기서, 적어도 둘 이상의 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 computing system 1 is generated on the x-axis of the two-dimensional coordinate axis, and the number of cores of the computing system 1 is determined. Accordingly, a coordinate component that divides the concurrency level may be generated on the y-axis of the two-dimensional coordinate axis, and at least two or more two-dimensional coordinates representing the system state may be generated by combining the coordinate component on the x-axis and the coordinate component on the y-axis.

이후, 시스템 성능 관리부(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 performance management unit 104 performs the performance at the power allocation ratio and the concurrency level corresponding to each of the at least two or more two-dimensional coordinates for the application when the application is executed through the application execution unit 108. And LLC MPKI can be measured (S104). For example, the system performance management unit 104 may apply the application program at a power allocation ratio (0.8%) and concurrency level (16 cores) in two-dimensional coordinates corresponding to the system state A having scalability-core intensive characteristics. Measure the execution performance of the application, and measure the execution performance of the application with a power allocation ratio (0.67%) and concurrency level (16 cores) in two-dimensional coordinates corresponding to the system state (B) with scalability-memory intensive characteristics. Measure the execution performance of the application with a power allocation ratio (0.8%) and concurrency level (8 cores) in two-dimensional coordinates corresponding to a system state (C) with non-scalability-core intensive characteristics, The execution performance of the application can be measured by the power allocation ratio (0.67%) and the concurrency level (8 cores) in the two-dimensional coordinates corresponding to the system state D having the non-scalability-memory concentration characteristic.

이후, 시스템 성능 관리부(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 performance management unit 104 may set, as the search start point, coordinates that have a maximum probability of adjoining the two-dimensional coordinates having the maximum performance based on the results of the respective execution performance measurements (S106). For example, in a two-dimensional coordinate corresponding to the system state A having the scalability-core intensive characteristic, when the performance according to the concurrency level and the power allocation ratio of the corresponding application is determined to be maximum, the scalability-core intensive characteristic is determined. Two-dimensional coordinates corresponding to the system state A having a may be set as a search start point. Specifically, the system performance management unit 104 determines whether the concurrency level is scalable or non-scalable according to the performance of the application, and when the scalability or non-scalability is determined, the power allocation ratio is determined according to the measured LLC MPKI. And determining whether to be core intensive or memory intensive. The LLC MPKI refers to the number of misses occurring in the last-level cache (LLC) while performing approximately 1,000 instructions. LLC is a type of memory attached to the processor that is faster than main memory (eg DDR4, RAM, etc.) but smaller. For memory-intensive applications, LLC MPKI is high because of memory usage and frequent memory access, while for LLC-core applications, LLC MPKI is low. In the embodiment of the present invention, for example, it is assumed that the LLC MPKI criterion for distinguishing the memory-intensive case and the core-intensive case through an offline experiment using several benchmarks, for example, 10. That is, if 10 or more LLC misses per 1,000 instructions occur, it can be determined as memory intensive, otherwise core-intensive.

이때, 본 발명의 실시예에 따라 측정되는 응용 프로그램의 성능이라 함은, 예를 들어 해당 응용 프로그램이 임의의 전력 할당 비율과 동시성 레벨로 정의되는 시스템 상태에서 실행될 때의 단위 작업 당 수행 시간의 역수일 수 있다. 예컨대, 확장성-코어 집중적 특성을 갖는 시스템 상태(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 performance management unit 104 searches for two-dimensional coordinates (specific system states defined by concurrency levels and power allocation ratios) at which the execution performance of the application is maximized based on the search start point set in step S106. It may be (S108). For example, if the search start point is set to the system state A, the system performance management unit 104 determines the coordinate component on the x-axis or the coordinate component on the y-axis of FIG. 2 with respect to the coordinates representing the system state A. FIG. It is possible to determine the coordinate component that maximizes the performance of the application program by increasing or decreasing the preset unit.

이러한 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 system performance manager 104 may measure the performance of the application program in the coordinate component increased in a predetermined unit (S202). As described above, the performance of an application may be expressed as an inverse of the execution time per unit task of the application.

기 설정된 단위로 증가된 좌표 성분에서의 응용 프로그램 성능이 측정되면, 시스템 성능 관리부(104)는 증가된 좌표 성분에서의 응용 프로그램 성능과 이전 좌표 성분, 즉 탐색 시작 지점인 시스템 상태(A)에서의 좌표 성분에서의 응용 프로그램 성능을 비교하고(S204), 증가된 좌표 성분에서의 응용 프로그램 성능이 이전 좌표 성분에서의 응용 프로그램 성능보다 좋으면, 즉, 증가된 좌표 성분에서의 응용 프로그램의 수행 시간이 이전 좌표 성분에서의 응용 프로그램의 수행 시간보다 짧으면, 단계(S200)로 피드백하여 상기의 과정들(S202, S204)을 반복 수행할 수 있다.When the application performance is measured in the increased coordinate component in a preset unit, the system performance management unit 104 performs the application performance in the increased coordinate component and the system coordinate (A) at the previous coordinate component, that is, the search starting point. Compare the application performance in the coordinate component (S204), if the application performance in the increased coordinate component is better than the application performance in the previous coordinate component, that is, the execution time of the application in the increased coordinate component If it is shorter than the execution time of the application program in the coordinate component, the processes S202 and S204 may be repeatedly performed by feeding back to step S200.

반면, 증가된 좌표 성분에서의 응용 프로그램의 성능이 이전 좌표 성분에서의 응용 프로그램 성능보다 떨어진다면, 즉, 증가된 좌표 성분에서의 응용 프로그램의 수행 시간이 이전 좌표 성분에서의 응용 프로그램의 수행 시간보다 길다면, 시스템 성능 관리부(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 system performance manager 104 may change the search point to the previous coordinate component (S206), and then reduce the coordinate component in a predetermined unit (S208). For example, the coordinate component may be reduced in a negative direction in a predetermined unit on the x-axis (power allocation ratio) from the previous coordinate component.

좌표 성분이 음의 방향으로 감소되면, 시스템 성능 관리부(104)는 해당 좌표 성분에서의 응용 프로그램 성능을 측정할 수 있다(S210).If the coordinate component is reduced in the negative direction, the system performance manager 104 may measure the performance of the application program in the corresponding coordinate component (S210).

기 설정된 단위로 감소된 좌표 성분에서의 응용 프로그램 성능이 측정되면, 시스템 성능 관리부(104)는 감소된 좌표 성분에서의 응용 프로그램 성능과 이전 좌표 성분에서의 응용 프로그램 성능을 비교하고(S212), 증가된 좌표 성분에서의 응용 프로그램 성능이 이전 좌표 성분에서의 응용 프로그램 성능보다 좋으면, 즉, 증가된 좌표 성분에서의 응용 프로그램의 수행 시간이 이전 좌표 성분에서의 응용 프로그램의 수행 시간보다 짧으면, 단계(S208)로 피드백하여 상기의 과정들(S210, S212)을 반복 수행할 수 있다.When the application performance in the reduced coordinate component is measured in a predetermined unit, the system performance manager 104 compares the application performance in the reduced coordinate component with the application performance in the previous coordinate component (S212) and increases the performance. If the application performance at the given coordinate component is better than the application performance at the previous coordinate component, that is, if the execution time of the application program at the increased coordinate component is shorter than the execution time of the application program at the previous coordinate component, step S208. ), The processes S210 and S212 may be repeatedly performed.

반면, 감소된 좌표 성분에서의 응용 프로그램의 성능이 이전 좌표 성분에서의 응용 프로그램 성능보다 떨어진다면, 즉, 증가된 좌표 성분에서의 응용 프로그램의 수행 시간이 이전 좌표 성분에서의 응용 프로그램의 수행 시간보다 길다면, 시스템 성능 관리부(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 performance management unit 104 may determine whether the performance measurement for the x-axis and the y-axis of FIG. 2 is completed (S214).

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 performance management unit 104 may feed back to step S200. At this time, performing step S200 may increase, for example, a coordinate component in a positive direction on a y-axis (simultaneous level) centered on the coordinate representing the correlation A in a predetermined unit. In this case, the preset unit may be, for example, 25% of the total number of cores, and may be changed as necessary.

이후의 과정은 단계(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 performance management unit 104 may determine the two-dimensional coordinates (x-axis coordinate component and y-axis coordinate component) having the previous coordinate component as the search result (S216). ). For example, if the two-dimensional coordinates of the system state A are two-dimensional coordinates having a previous coordinate component, the two-dimensional coordinates of the system state A may be determined as a search result, and the two-dimensional coordinates of the system state A are determined. In the case where the two-dimensional coordinates having the coordinate component increased in the preset unit is the two-dimensional coordinate having the previous coordinate component, the two-dimensional coordinate having the increased coordinate component may be determined as the search result.

본 발명의 실시예에서, 상기 탐색하는 단계(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)

컴퓨팅 시스템의 자원 분석 결과를 기초로 상기 컴퓨팅 시스템의 동시성 레벨(concurrency level)과 전력 할당 비율(power allocation ratio)로 정의되는 시스템 상태를 나타내는 적어도 둘 이상의 2차원 좌표를 생성하는 단계;
상기 적어도 둘 이상의 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.
제 1 항에 있어서,
상기 생성하는 단계는,
상기 컴퓨팅 시스템의 코어 개수에 따라 상기 동시성 레벨을 구분한 좌표 성분을 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.
삭제delete 제 2 항에 있어서,
상기 측정하는 단계는,
상기 코어 개수 별로 상기 응용 프로그램을 실행했을 때의 수행 시간 및 상기 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.
제 4 항에 있어서,
상기 설정하는 단계는,
상기 측정되는 수행 시간에 따라 상기 동시성 레벨의 확장성 또는 비확장성 여부를 결정하는 단계;
상기 확장성 또는 비확장성 여부가 결정되면 상기 측정되는 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.
제 2 항에 있어서,
상기 탐색하는 단계는,
상기 탐색 시작 지점을 중심으로 상기 일 축 상의 좌표 성분 또는 상기 타 축 상의 좌표 성분을 기 설정된 단위로 증감시키면서 상기 응용 프로그램의 성능이 최대가 되는 좌표 성분을 결정하는 단계를 포함하는
컴퓨팅 시스템의 성능 관리 방법.
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.
제 6 항에 있어서,
상기 탐색하는 단계는,
상기 일 축 또는 상기 타 축 상에서 기 설정된 단위로 좌표 성분을 증가시키는 단계;
상기 증가된 좌표 성분에서의 상기 응용 프로그램의 성능을 측정하는 단계;
상기 증가된 좌표 성분에서의 성능이 이전 좌표 성분에서의 성능보다 높으면 상기 기 설정된 단위로 상기 좌표 성분을 증가시키는 단계;
상기 증가된 좌표 성분에서의 성능이 이전 좌표 성분에서의 성능보다 낮으면 상기 이전 좌표 성분에서 상기 기 설정된 단위로 상기 좌표 성분을 감소시키는 단계;
상기 감소된 좌표 성분에서의 성능이 상기 이전 좌표 성분에서의 성능보다 높으면 상기 기 설정된 단위로 상기 좌표 성분을 감소시키는 단계; 및
상기 감소된 좌표 성분에서의 성능이 상기 이전 좌표 성분에서의 성능보다 낮고, 상기 일 축 및 상기 타 축에 대한 성능 측정이 완료되었으면 상기 이전 좌표 성분을 갖는 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.
제 7 항에 있어서,
상기 성능은 상기 응용 프로그램의 단위 작업 당 수행 시간의 역수인
컴퓨팅 시스템의 성능 관리 방법.
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.
제 7 항에 있어서,
상기 탐색 결과를 기초로 상기 컴퓨팅 시스템의 코어 개수와, 상기 컴퓨팅 시스템의 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.
제 2 항에 있어서,
상기 탐색하는 단계는,
볼록 함수(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.
제 1 항에 있어서,
상기 컴퓨팅 시스템은 전력 제한 컴퓨팅 시스템(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차원 좌표를 생성하는 단계 - 상기 시스템 상태는, 확장성(scalable)-코어 집중적(core-intensive), 확장성-메모리 집중적(memory intensive), 비확장성(non-scalable)-코어 집중적 및 비확장성-메모리 집중적 시스템 상태 특성을 가짐 -;
상기 적어도 둘 이상의 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차원 좌표를 생성하는 단계 - 상기 시스템 상태는, 확장성(scalable)-코어 집중적(core-intensive), 확장성-메모리 집중적(memory intensive), 비확장성(non-scalable)-코어 집중적 및 비확장성-메모리 집중적 시스템 상태 특성을 가짐 -;
상기 적어도 둘 이상의 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.
KR1020180016213A 2018-02-09 2018-02-09 Method for managing performance of computing system, program and computer readable storage medium therefor KR102009425B1 (en)

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)

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

Patent Citations (6)

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