KR101814988B1 - Method and apparatus for dynamic controlling of system state in concurrent heterogeneous computing environment - Google Patents

Method and apparatus for dynamic controlling of system state in concurrent heterogeneous computing environment Download PDF

Info

Publication number
KR101814988B1
KR101814988B1 KR1020160117993A KR20160117993A KR101814988B1 KR 101814988 B1 KR101814988 B1 KR 101814988B1 KR 1020160117993 A KR1020160117993 A KR 1020160117993A KR 20160117993 A KR20160117993 A KR 20160117993A KR 101814988 B1 KR101814988 B1 KR 101814988B1
Authority
KR
South Korea
Prior art keywords
type
system state
specific calculation
processing time
workload
Prior art date
Application number
KR1020160117993A
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 KR1020160117993A priority Critical patent/KR101814988B1/en
Application granted granted Critical
Publication of KR101814988B1 publication Critical patent/KR101814988B1/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

A method for dynamic control of a system state in a concurrent heterogeneous computing environment according to an embodiment of the present invention comprises: an information receiving step of acquiring information on a workload to be processed when a target application is executed; a profile step of distributing a predetermined portion of the workload to a type-specific calculation device to calculate a work item processing time per operation speed of the type-specific calculation device; a system state space analyzing step of determining, based on the work item processing time per operation speed of the type-specific calculation device, one among a first system state, a second system state, and a third system state in which a workload can be distributed to the type-specific calculation device, wherein the first system state in which a processing speed is maximized, the second system state in which energy efficiency is maximized, and the third system state in which energy delay product (EDP) becomes the most favorable when the target application is executed; and a system state applying step of executing distribution of the workload to the type-specific calculation device according to one of the first, second, and third system states.

Description

동시 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법 및 장치{METHOD AND APPARATUS FOR DYNAMIC CONTROLLING OF SYSTEM STATE IN CONCURRENT HETEROGENEOUS COMPUTING ENVIRONMENT}[0001] The present invention relates to a method and apparatus for dynamic system state control in a heterogeneous computing environment, and more particularly, to a method and apparatus for dynamic system state control in a simultaneous heterogeneous computing environment. ≪ Desc / Clms Page number 1 >

본 발명은 동시 이기종 컴퓨팅 환경(concurrent heterogeneous computing environment)에서의 동적 시스템 상태 조절 방법 및 장치에 관한 것으로서, 보다 자세하게는 동시 이기종 컴퓨팅 환경에서 실행되는 애플리케이션의 작업량(workload)에 대해 최적의 유형별 계산 장치의 동작속도 및 유형별 계산 장치의 작업량 분배를 결정하여 시스템 상태를 조절하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for dynamic system state control in a concurrent heterogeneous computing environment and, more particularly, to a method and apparatus for dynamic system state control in a concurrent heterogeneous computing environment, To a method and apparatus for controlling the system state by determining the workload distribution of the operation speed and type-specific calculation apparatus.

최근 중앙 처리 장치(CPU, Central Processing Unit)와 그래픽 처리 장치(GPU, Graphics Processing Unit)을 동시에 구동해 전력 소비량은 줄이면서도 시스템의 연산 속도를 높이는 이기종 컴퓨팅(heterogeneous computing) 기술이 활성화되고 있다. Recently, a heterogeneous computing technology that increases the operation speed of a system while reducing power consumption by simultaneously driving a central processing unit (CPU) and a graphics processing unit (GPU) is being activated.

기존의 컴퓨팅은 작업의 대부분을 CPU에 의존했다. 그러나 CPU는 복잡한 작업을 처리하는 데 최적화 돼 있어서 단순하고 반복적인 수학적 계산에서는 효율이 떨어진다. 반대로 GPU는 복잡한 연산에 대해서는 효율이 낮지만 특정한 공식에 의해 반복되는 수치 계산은 CPU보다 빠르게 계산할 수 있다.Conventional computing has relied on the CPU for most of its work. However, CPUs are optimized for handling complex tasks, which is less efficient in simple, iterative mathematical calculations. Conversely, GPUs are less efficient for complex operations, but numerical computations that are repeated by certain formulas can be computed faster than the CPU.

이렇게 기능적 특성이 상이한 CPU와 GPU를 적절히 활용함으로써 시스템을 업그레이드 하지 않아도 연산 속도를 높일 수 있다. 그러나 CPU와 GPU의 동작 속도 및 CPU 및 GPU에 분배된 작업량(workload)의 분배량에 따라 성능 및 에너지 효율이 달라지기 때문에, 최적화하고자 하는 메트릭을 고려한 최적의 유형별 계산 장치의 동작속도 및 유형별 계산 장치의 작업량 분배를 결정하는 것이 중요하다.By appropriately using these CPUs and GPUs with different functional characteristics, it is possible to increase the operation speed without upgrading the system. However, since the performance and the energy efficiency vary depending on the operation speed of the CPU and the GPU and the distribution amount of the workload distributed to the CPU and the GPU, the optimal calculation type of the calculation device according to the type of metric to be optimized, It is important to determine the workload distribution of

한국 공개특허공보 제10-2016-0061422호: 소프트웨어 프로그램의 연산 블록을 멀티-프로세서 시스템의 코어에 할당하는 방법 및 시스템Korean Patent Laid-Open Publication No. 10-2016-0061422: A method and system for allocating a computational block of a software program to a core of a multi-processor system

본 발명의 실시예에서 해결하고자 하는 과제는 동시 이기종 컴퓨팅 환경에서 유형별 계산 장치의 에너지 효율을 최대화하기 위해, 동적으로 유형별 계산 장치의 동작속도 및 유형별 계산 장치의 작업량 분배를 결정하는 기술을 제공하는 것이다. A problem to be solved by the embodiments of the present invention is to provide a technique for dynamically determining the operation speed of the type-specific calculation device and the workload distribution of the type-specific calculation device in order to maximize the energy efficiency of the type- .

다만, 본 발명의 실시예가 이루고자 하는 기술적 과제는 이상에서 언급한 과제로 제한되지 않으며, 이하에서 설명할 내용으로부터 통상의 기술자에게 자명한 범위 내에서 다양한 기술적 과제가 도출될 수 있다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.

일 실시예에 따른 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법은 타겟 애플리케이션 실행 시 처리되어야 할 작업량(workload)에 관한 정보를 획득하는 정보 수신 단계; 상기 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출하는 프로파일 단계; 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 상기 유형별 계산 장치에 상기 작업량을 분배할 수 있는 시스템 상태 중 상기 타겟 애플리케이션 실행 시 처리 속도를 가장 빠르게 하는 제1 시스템 상태, 에너지 효율을 가장 좋게 하는 제2 시스템 상태 및 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태 중 적어도 하나를 판별하는 시스템 상태 공간 분석 단계 - 상기 시스템 상태는 상기 유형별 계산 장치의 동작 속도 및 상기 유형별 계산 장치의 작업량 분배를 포함함-; 및 상기 제1, 제2 및 제3 시스템 상태 중 하나의 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용하는 시스템 상태 적용 단계를 포함한다. The dynamic system state adjustment method in a heterogeneous computing environment according to an exemplary embodiment includes: an information receiving step of obtaining information on a workload to be processed when a target application is executed; A profile step of distributing a predetermined portion of the workload to the type-specific calculation device and calculating a work item processing time per operation speed of the type-specific calculation device; A first system state that maximizes a processing speed in executing the target application among system states that can distribute the workload to the type-specific calculation apparatus based on a work item processing time for each operation speed of the type-specific calculation apparatus, A system state space analysis step of discriminating at least one of a first system state that optimizes the first system state and a third system state that optimizes the Energy Delay Product (EDP), wherein the system state includes at least one of an operation speed of the type- Includes workload distribution; And applying the workload distribution to the type-specific computing device according to the system state of one of the first, second, and third system states.

이때 상기 유형별 계산 장치는, CPU의 빅코어 클러스터, CPU의 리틀코어 클러스터, GPU를 포함할 수 있다. The type-specific calculation device may include a big core cluster of a CPU, a little core cluster of a CPU, and a GPU.

또한 상기 프로파일 단계는, 상기 유형별 계산 장치의 2가지 동작 속도에 대한 작업 아이템 처리 시간을 측정한 결과에 선형 모델(linear model)을 적용하여 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출하는 단계를 포함할 수 있다. Also, the profile step may include calculating a work item processing time per operation speed of the type-specific calculation apparatus by applying a linear model to a result of measuring a work item processing time with respect to two operation speeds of the type- Step < / RTI >

이때 상기 2가지 동작 속도는, 상기 유형별 계산 장치의 동작 속도의 최대값과 최소값일 수 있다. At this time, the two operation speeds may be the maximum value and the minimum value of the operation speed of the type-specific calculation device.

또한 상기 시스템 상태 공간 분석 단계는, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간을 기초로 상기 제1 시스템 상태를 판별하는 단계를 포함할 수 있다. The system state space analysis step may include analyzing the system state space based on the processing time of the workload distributed to the type-specific calculation apparatuses, which is obtained by multiplying the work item processing time of the type- Based on the result of the determination.

더불어 상기 시스템 상태 공간 분석 단계는, 상기 유형별 계산 장치에 분배된 작업량의 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 상기 유형별 계산 장치에서의 소비 전력량을 기초로 상기 제2 시스템 상태를 판별하는 단계를 포함할 수 있다. In addition, the system state space analysis step may calculate the second system state based on the amount of power consumed by the type-specific calculation apparatus, which is obtained by multiplying the processing time of the workload distributed to the type- And a step of discriminating between the two.

아울러 상기 시스템 상태 공간 분석 단계는, 상기 유형별 계산 장치에서의 소비 전력량의 합을 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 가장 긴 값으로 나눈 EDP 값을 기초로 상기 제3 시스템 상태를 판별하는 단계를 포함할 수 있다. In addition, the system state space analysis step determines the third system state based on the EDP value obtained by dividing the sum of the power consumption amounts of the type-specific calculation apparatuses by the longest processing time of the workloads distributed to the type-specific calculation apparatuses Step < / RTI >

더하여 상기 시스템 상태 공간 분석 단계는, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 값이 최소가 되게 하는 상기 유형별 계산 장치의 제1 동작 속도를 판별하는 단계; 상기 유형별 계산 장치가 제1 동작 속도일 때의 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 최대값인 제1 시간을 판별하는 단계; 및 상기 제1 시간 및 상기 유형별 계산 장치가 상기 제1 동작 속도일 때의 작업량 처리 시간을 기초로 상기 유형별 계산 장치가 동작 중일 때의 소비 전력량 및 상기 유형별 계산 장치가 대기 중일 때의 소비 전력량의 합이 최소가 되게 하는 작업량 분배를 판별하는 단계를 포함하고, 상기 시스템 상태 조절 단계는, 상기 판별된 유형별 계산 장치의 제1 동작 속도 및 상기 판별된 작업량 분배로 설정된 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용하는 단계를 포함할 수 있다. In addition, the system state space analysis step may include a step of calculating a first operation speed of the type-specific calculation device that minimizes the value obtained by multiplying the work item processing time by the operation speed of the type- ; Determining a first time which is a maximum value among a processing time of the workload distributed to the type-specific calculation apparatuses, which is obtained by multiplying the work item processing time when the type-specific calculation apparatus is at the first operation speed, by the work amount distribution of the type- And a sum of the amount of power consumption when the type-specific calculation apparatus is in operation and the amount of power consumption when the type-specific calculation apparatus is in standby, on the basis of the work amount processing time when the first time and the type- Wherein the system state adjustment step comprises the steps of: determining, based on the first operating speed of the discriminated type-specific calculation apparatus and the system state set by the discriminated work amount distribution, And applying the workload distribution.

일 실시예에 따른 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치는 타겟 애플리케이션 실행 시 처리되어야 할 작업량(work item)에 관한 정보를 획득하고 상기 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출하는 성능 예측기; 상기 유형별 계산 장치의 동작 속도별 소비전력을 산출하는 전력 예측기; 및 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 상기 유형별 계산 장치에 상기 작업량을 분배할 수 있는 시스템 상태 중 상기 타겟 애플리케이션 실행시 처리 속도를 가장 빠르게 하는 제1 시스템 상태, 에너지 효율을 가장 좋게 하는 제2 시스템 상태 및 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태 중 적어도 하나를 판별하여, 상기 제1, 제2 및 제3 시스템 상태 중 하나의 시스템 상태에 따라 상기 작업량을 상기 유형별 계산 장치에 분배하는 시스템 상태 조절 관리자 - 상기 시스템 상태는 상기 유형별 계산 장치의 동작 속도 및 상기 유형별 계산 장치의 작업량 분배를 포함함-를 포함한다. A dynamic system state control apparatus in a heterogeneous computing environment according to an exemplary embodiment obtains information on a work item to be processed when a target application is executed and distributes a predetermined portion of the work amount to a type-specific calculation apparatus, A performance predictor for calculating a work item processing time for each operation speed of the apparatus; A power predictor for calculating power consumption by operating speed of the type-specific calculation device; And a first system state that maximizes a processing speed when executing the target application among system states capable of distributing the workload to the type-specific calculation apparatus based on a work item processing time per operation speed of the type-specific calculation apparatus, Determining a second system state that best optimizes the first system state and a third system state that optimizes the EDP (Energy Delay Product); and determining the amount of work according to one of the first, second, and third system states And a system state management manager for distributing the system state management manager to the type-specific calculation apparatus, wherein the system state includes an operation speed of the type-specific calculation apparatus and a work amount distribution of the type-specific calculation apparatus.

이때 상기 유형별 계산 장치는, CPU의 빅코어 클러스터, CPU의 리틀코어 클러스터 및 GPU를 포함할 수 있다. At this time, the type-specific calculation device may include a big-core cluster of a CPU, a little-core cluster of a CPU, and a GPU.

또한 상기 성능 예측기는, 상기 유형별 계산 장치의 2가지 동작 속도에 대한 작업 아이템 처리 시간을 측정한 결과에 선형 모델(linear model)을 적용하여 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출할 수 있다. In addition, the performance predictor may calculate a work item processing time per operation speed of the type-specific calculation apparatus by applying a linear model to a result of measuring a work item processing time with respect to two operation speeds of the type- .

이때 상기 2가지 동작 속도는, 상기 유형별 계산 장치의 동작 속도의 최대값과 최소값일 수 있다. At this time, the two operation speeds may be the maximum value and the minimum value of the operation speed of the type-specific calculation device.

또한 상기 전력 예측기는, 상기 유형별 계산 장치의 동작 속도별 이용률에 따라 소비되는 전력을 산출할 수 있다. Also, the power predictor may calculate the power consumed according to the usage rate for each operation speed of the type-specific calculation device.

더하여 상기 시스템 상태 조절 관리자는, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간을 기초로 상기 제1 시스템 상태를 판별할 수 있다. In addition, the system state adjustment manager may calculate the first system state based on the processing time of the workload distributed to the type-specific calculation apparatus, which is obtained by multiplying the work item processing time of the type-specific calculation apparatus by the work item processing time of the type- Can be distinguished.

더불어 상기 시스템 상태 조절 관리자는, 상기 유형별 계산 장치에 분배된 작업량의 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 상기 유형별 계산 장치에서의 소비 전력량을 기초로 상기 제2 시스템 상태를 판별할 수 있다. In addition, the system state control manager determines the second system state based on the amount of power consumed by the type-specific calculation apparatus, which is obtained by multiplying the processing time of the workload distributed to the type-specific calculation apparatus by the power consumption by the operation speed of the type- can do.

아울러 상기 시스템 상태 조절 관리자는, 상기 유형별 계산 장치에서의 소비 전력량의 합을 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 가장 긴 값으로 나눈 EDP 값을 기초로 상기 제3 시스템 상태를 판별할 수 있다. The system state adjustment manager may determine the third system state based on the EDP value obtained by dividing the sum of the power consumption amounts in the type-specific calculation apparatuses by the longest processing time of the workloads distributed to the type-specific calculation apparatuses have.

또한 상기 시스템 상태 조절 관리자는, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 값이 최소가 되게 하는 상기 유형별 계산 장치의 제1 동작 속도를 판별하고, 상기 유형별 계산 장치가 상기 제1 동작 속도일 때의 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 최대값인 제1 시간을 판별하여, 상기 제1 시간 및 상기 유형별 계산 장치가 상기 제1 동작 속도일 때 작업량의 처리 시간을 기초로 상기 유형별 계산 장치가 동작 중일 때의 소비 전력량 및 상기 유형별 계산 장치가 대기 중일 때의 소비 전력량의 합이 최소가 되게 하는 작업량 분배를 판별하고, 상기 판별된 유형별 계산 장치의 제1 동작 속도 및 상기 판별된 작업량 분배로 설정된 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용할 수 있다. The system state adjustment manager also determines a first operation speed of the type-specific calculation device that causes a value obtained by multiplying a work item processing time per operation speed of the type-specific calculation device by a power consumption per operation speed of the type- And a first time which is a maximum value among processing times of the workloads distributed to the type-specific calculation apparatuses obtained by multiplying the work item processing time of the type-specific calculation apparatuses by the type-specific calculation apparatuses at the first operation speed is discriminated , The sum of the amount of power consumption when the type-specific calculation device is in operation and the amount of power consumption when the type-specific calculation device is in standby, on the basis of the processing time of the work amount when the first time and the type- Of the calculation device according to the determined type, And it can be applied to the amount of work allocated to each type of the computing device based on the system state is set to distribute the workload of the discrimination.

본 발명의 실시예에 따르면, 동시 이기종 컴퓨팅 환경에서 에너지 효율을 극대화 시킬 수 있는 시스템 상태를 결정하여 작업량을 분배함으로써 애플리케이션 수행 시 에너지 효율을 극대화 할 수 있다. According to an embodiment of the present invention, energy efficiency can be maximized when an application is executed by determining a system state that maximizes energy efficiency in a simultaneous heterogeneous computing environment and distributing workload.

또한 애플리케이션의 실행 시에 애플리케이션의 작업량에 대해 시스템 상태에 따른 에너지 효율을 파악하여 동적으로 최적의 시스템 상태를 결정할 수 있으므로, 애플리케이션별 특성을 파악하기 위해 미리 애플리케이션과 인풋 데이터마다 오프라인으로 정보를 수집할 필요가 없다. In addition, when the application is running, it can determine the energy efficiency of the system according to the workload of the application and dynamically determine the optimum system state. Therefore, offline information is gathered in advance for each application and input data no need.

도 1은 일 실시예에 따른 동적 시스템 상태 조절 장치를 포함하는 전체 시스템의 아키텍쳐를 나타낸 도면이다.
도 2는 일 실시예에 따른 동적 시스템 상태 조절 방법을 나타내는 흐름도이다.
도 3은 다른 실시예에 따른 동적 시스템 상태 조절 방법을 나타내는 흐름도이다.
도 4는 정적으로 애플리케이션의 최적 시스템 상태를 분석하는 프로그램과 도 2 및 도 3의 실시예를 이용한 결과를 나타낸 도면이다.
1 is a diagram of an overall system architecture including a dynamic system state adjuster in accordance with one embodiment.
FIG. 2 is a flowchart illustrating a dynamic system state adjustment method according to an embodiment.
3 is a flowchart illustrating a dynamic system state adjustment method according to another embodiment.
4 is a diagram showing a program for statically analyzing an optimum system state of an application and a result using the embodiment of FIGS. 2 and 3. FIG.

본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다.DETAILED DESCRIPTION OF THE EMBODIMENTS Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment according to the present invention will be described in detail with reference to the accompanying drawings.

본 명세서에서 개시되는 실시예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시예들로 한정되는 것을 의도하지 않는다.The embodiments disclosed herein should not be construed or interpreted as limiting the scope of the present invention. It will be apparent to those of ordinary skill in the art that the description including the embodiments of the present specification has various applications. Accordingly, any embodiment described in the Detailed Description of the Invention is illustrative for a better understanding of the invention and is not intended to limit the scope of the invention to embodiments.

도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.The functional blocks shown in the drawings and described below are merely examples of possible implementations. In other implementations, other functional blocks may be used without departing from the spirit and scope of the following detailed description. Also, although one or more functional blocks of the present invention are represented as discrete blocks, one or more of the functional blocks of the present invention may be a combination of various hardware and software configurations that perform the same function.

또한, 어떤 구성요소들을 포함한다는 표현은 개방형의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.In addition, the expression "including any element" is merely an expression of an open-ended expression, and is not to be construed as excluding the additional elements.

더하여 '제1, 제2' 등과 같은 표현은 복수의 구성들을 구분하기 위한 용도로만 사용된 표현으로써, 구성들 사이의 순서나 기타 특징들을 한정하지 않는다. In addition, the expressions such as 'first, second', etc. are used only to distinguish a plurality of configurations, and do not limit the order or other features between configurations.

이하에서는 도면들을 참조하여 본 발명의 실시예들에 대해 설명하도록 한다. Hereinafter, embodiments of the present invention will be described with reference to the drawings.

도 1은 일 실시예에 따른 동적 시스템 상태 조절 장치(200)를 포함하는 전체 시스템의 아키텍쳐를 나타낸 도면이다.1 is a diagram of an overall system architecture including a dynamic system conditioner 200 according to one embodiment.

도 1은 동시 이기종 컴퓨팅 시스템(300) 기반에서 타겟 애플리케이션(100)이 실행되는 경우, 타겟 애플리케이션(100)의 특성을 타겟 애플리케이션(100)이 실행되는 동안 동적으로 파악하여 타겟 애플리케이션(100)의 작업량(workload)에 대해 계산 장치의 유형별로 최적의 동작속도 및 작업량의 분배를 결정하는 동적 시스템 상태 조절 장치(200)를 포함하는 전체 시스템 아키텍쳐를 도시하고 있다. Figure 1 illustrates a method for dynamically grasping the characteristics of a target application 100 during execution of the target application 100 when the target application 100 is running on the basis of a simultaneous heterogeneous computing system 300, and a dynamic system state adjuster 200 for determining the optimal operating speed and the distribution of workloads for each type of computing device for workload.

동시 이기종 컴퓨팅 시스템(300)은 상이한 ISAs(instruction-set architectures)를 사용하는 계산 장치 및 동일한 ISAs를 사용하더라도 성능이 상이한 계산 장치로 구성될 수 있다. 예를 들면, GPU(Graphics Processing Unit)와 CPU(Central Processing Unit)는 서로 상이한 ISAs를 사용하는 계산 장치에 해당하고, CPU는 동일한 ISAs를 사용하지만 성능이 상이한 계산 장치들, 예를 들어 고성능 고전력의 빅코어 클러스터와 저성능 저전력의 리틀코어 클러스터로 구성될 수 있다. The simultaneous heterogeneous computing system 300 may be composed of computing devices using different ISAS (instruction-set architectures) and computing devices of different performance using the same ISAs. For example, a GPU (Graphics Processing Unit) and a CPU (Central Processing Unit) correspond to computing devices using different ISAs, and CPUs use the same ISAs, but different computing devices, such as high performance high power It can be composed of a big-core cluster and a low-performance, low-power little-core cluster.

이하, 발명을 실시하기 위한 구체적인 내용에서는 편의상 동시 이기종 시스템을 구성하는 계산 장치의 유형을 GPU, CPU의 빅코어 클러스터 및 CPU의 리틀코어 클러스터로 설명하지만, 계산 장치의 유형이 이에 한정되는 것은 아니며 그 외에도 상이한 ISAs를 사용하는 계산 장치 또는 동일한 ISAs를 사용하더라도 성능이 상이한 계산 장치를 포함하는 이기종 컴퓨팅 시스템에 있어서도 본 발명의 실시예를 적용할 수 있다. Hereinafter, for the sake of simplicity, the type of computing apparatus constituting the simultaneous heterogeneous system will be described as a GPU, a big core cluster of a CPU, and a little core cluster of a CPU. However, the type of computing apparatus is not limited thereto. The embodiment of the present invention can be applied to a heterogeneous computing system including a computing apparatus using different ISAs or a computing apparatus having different performance even if the same ISAs are used.

타겟 애플리케이션(100)은 동시 이기종 컴퓨팅 시스템(300) 기반에서 수행되기 위해 이기종 병렬 컴퓨팅 프레임워크로 제작될 수 있다. 예를 들어, 이기종 병렬 컴퓨팅 프레임워크는 OpenCL(Open Computing Language) 또는 NVDIA의 CUDA(Compute Unified Device Architecture) 등과 같은 프레임워크가 있다. 이기종 컴퓨팅이 활성화되려면 CPU 및 GPU와 같이 ISAs(instruction-set architectures)가 다른 계산 장치에 접근하는 방법을 통일해야 하기 때문에, 타겟 애플리케이션(100)은 이러한 개방형 범용 병렬 컴퓨팅 프레임워크로 작성되어 CPU, GPU, DSP 등의 프로세서로 이루어진 동시 이기종 컴퓨팅 시스템(300)을 활용할 수 있다. The target application 100 may be fabricated as a heterogeneous parallel computing framework to be executed on the basis of the simultaneous heterogeneous computing system 300. For example, the heterogeneous parallel computing framework has a framework such as Open Computing Language (OpenCL) or Compute Unified Device Architecture (CUDA) of NVDIA. To enable heterogeneous computing, the method of accessing other computing devices by instruction-set architectures (ISAs), such as a CPU and a GPU, must be unified so that the target application 100 is written as an open universal parallel computing framework, , A DSP, and the like can be utilized.

또한 타겟 애플리케이션(100)은 각 작업량(workload)의 각 작업 아이템(work item)은 서로 독립적일 수 있다. 이러한 경우 각 작업 아이템은 순서와 상관없이 계산 장치에 분배되어 처리될 수 있다.Also, the target application 100 may have each work item of each workload independent of each other. In this case, each work item can be distributed and processed to the computing device regardless of order.

동적 시스템 상태 조절 장치(200)는 타겟 애플리케이션(100)과 동시 이기종 컴퓨팅 시스템(300) 사이에서 동시 이기종 컴퓨팅 시스템(300)의 시스템 상태 즉, 작업량의 분배와 유형별 계산 장치의 동작 속도를 결정한다. 특히, 동적 시스템 상태 조절 장치(200)는 동시 이기종 컴퓨팅 환경에서 에너지 효율을 극대화 시킬 수 있는 시스템 상태를 결정하여 유형별 계산 장치에 작업량을 분배할 수 있다. The dynamic system state adjuster 200 determines the system state of the simultaneous heterogeneous computing system 300 between the target application 100 and the simultaneous heterogeneous computing system 300, that is, the distribution of the workload and the operating speed of the computing device by type. In particular, the dynamic system condition adjuster 200 may determine the system state that can maximize energy efficiency in a simultaneous heterogeneous computing environment and distribute the workload to the type-specific computing device.

이러한 동적 시스템 상태 조절 장치(200)는 예를 들면, 런타임 시스템을 포함할 수 있으며, 런타임 시스템은 사용자 응용 프로그램의 효율적인 실행을 지원하기 위하여 프로그램과 연결되어 실행되는 소프트웨어 혹은 하드웨어이다. 고성능 컴퓨팅 성능을 높이기 위한 런타임 시스템의 기능은 프로그램의 실행 기본 단위인 태스크의 병렬 제어, 병렬로 동작하는 태스크 간의 통신 및 동기화, 태스크 스케줄링, 메모리 관리, 사용자 제어 가능 정책 등의 자원관리 기능을 포함할 수 있다. The dynamic system state adjuster 200 may include, for example, a runtime system, and the runtime system is software or hardware executed in connection with a program to support efficient execution of a user application program. The functions of the runtime system for enhancing high-performance computing performance include resource management functions such as parallel control of tasks, the basic unit of execution of the program, communication and synchronization between tasks running in parallel, task scheduling, memory management and user controllable policy .

도 1을 참조하면, 본 발명의 일 실시예에 따른 동적 시스템 상태 조절 장치(200)는 성능 예측기(210), 전력 예측기(220) 및 시스템 상태 조절 관리자(230)를 포함한다. Referring to FIG. 1, a dynamic system state control apparatus 200 according to an exemplary embodiment of the present invention includes a performance predictor 210, a power predictor 220, and a system state control manager 230.

성능 예측기(210)는 타겟 애플리케이션(100)으로부터 애플리케이션 실행 시 처리되어야 할 작업량(workload)에 관한 정보를 획득하고 작업량 중 소정 부분(예: 전체 작업량의 1%)을 유형별 계산 장치에 분배하여, 유형별 계산 장치의 동작 속도별 작업 아이템(work item) 처리 시간을 측정한다. 여기서 작업량은 애플리케이션(100)에서 처리해야 할 작업 아이템들의 집합으로, 작업량은 여러 개의 작업 아이템으로 구성되어 있다The performance estimator 210 obtains information on a workload to be processed when the application is executed from the target application 100 and distributes a predetermined portion of the workload (e.g., 1% of the total workload) to the type- Measure the work item processing time by the operating speed of the calculation device. Here, the workload is a set of work items to be processed by the application 100, and the workload is composed of a plurality of work items

예를 들어 성능 예측기(210)는, 아래 수학식 1을 사용하여 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 구할 수 있다. For example, the performance predictor 210 can calculate the work item processing time per operation speed of the type-specific calculation device by using the following equation (1).

Figure 112016089436427-pat00001
Figure 112016089436427-pat00001

수학식 1에서

Figure 112016089436427-pat00002
Figure 112016089436427-pat00003
는 선형 모델(linear model)을 적용하여 구한 상수이고,
Figure 112016089436427-pat00004
는 계산 장치 d가 fd의 동작속도로 작동할 경우의 작업 아이템 처리 시간을 의미하며,
Figure 112016089436427-pat00005
는 계산 장치 d의 동작속도를 의미한다.In Equation (1)
Figure 112016089436427-pat00002
And
Figure 112016089436427-pat00003
Is a constant obtained by applying a linear model,
Figure 112016089436427-pat00004
Means the work item processing time when the calculation device d operates at the operating speed of f d ,
Figure 112016089436427-pat00005
Means the operating speed of the calculating device d.

계산 장치의 유형마다 동작 속도별 작업 아이템 처리 시간을 구하기 위해, 일 실시예에서는 처리해야 할 작업량 중 소정 부분을 유형별 계산 장치에 분배하여 유형별 계산 장치의 2가지 동작 속도에 대한 작업 아이템 처리 시간을 측정한 결과를 수학식 1에 대입하여 선형 모델(linear model)을 적용할 수 있다. 이때 2가지 동작 속도는 정확성을 기하기 위해 유형별 계산 장치의 동작 속도의 최대값과 최소값으로 설정할 수 있다. 이에 따라, 수학식 1을 통해 유형별 계산 장치의 모든 동작 속도별 작업 아이템 처리 시간을 산출할 수 있다. In order to obtain the work item processing time per operation speed for each type of calculation apparatus, in one embodiment, a predetermined portion of the work amount to be processed is distributed to the type-specific calculation apparatus, and the work item processing time for the two operation speeds of the type- A linear model can be applied by substituting a result into Equation (1). At this time, the two operation speeds can be set to the maximum value and the minimum value of the operation speed of the type-specific calculation device for accuracy. Accordingly, it is possible to calculate the work item processing time per every operation speed of the type-specific calculation apparatus through Equation (1).

전력 예측기(220)는 유형별 계산 장치의 동작 속도별 소비전력을 산출한다. 전력 예측기(220)는 유형별 계산 장치의 동작 속도별 이용률에 따라 소비되는 소비전력을 산출할 수 있다. 이때 소비전력은 미리 측정되어 테이블 형태로 저장되어 있을 수 있다. 이때 소비전력의 물리적 수치는 소비전력을 측정하는 하드웨어 센서 등으로부터 측정될 수 있다. The power predictor 220 calculates the power consumption per operation speed of the type-specific calculation device. The power predictor 220 can calculate the consumed power consumed according to the usage rate of each type of computing device at the operation speed. At this time, the power consumption may be measured in advance and stored in a table form. At this time, the physical value of the power consumption can be measured from a hardware sensor or the like which measures power consumption.

예를 들어, 전력 예측기(220)는 아래 수학식 2를 사용하여 유형별 계산 장치의 동작 속도별 이용률에 따른 소비 전력을 구할 수 있다. For example, the power predictor 220 can calculate the power consumption according to the usage rate of each type of computing device by the use of Equation (2) below.

Figure 112016089436427-pat00006
Figure 112016089436427-pat00006

수학식 2에서

Figure 112016089436427-pat00007
는 계산 장치 d에서 fd의 동작속도로 동작하고 있는 경우의 소비 전력,
Figure 112016089436427-pat00008
는 계산 장치 d의 이용률,
Figure 112016089436427-pat00009
Figure 112016089436427-pat00010
는 선형 회귀 모델(linear regression model)을 적용하여 구한 상수이다. 이에 따라, 수학식 2를 통해 유형별 계산 장치의 동작 속도별 소비 전력을 산출할 수 있다.In Equation 2,
Figure 112016089436427-pat00007
The power consumption when operating in a computing device d as the operating speed of f d,
Figure 112016089436427-pat00008
Is the utilization rate of the calculation device d,
Figure 112016089436427-pat00009
And
Figure 112016089436427-pat00010
Is a constant obtained by applying a linear regression model. Accordingly, it is possible to calculate the power consumption per operation speed of the type-specific calculation device through Equation (2).

한편, 동시 이기종 컴퓨팅 시스템(300)에서는 계산 장치가 작업량을 처리하는 경우 계산 장치의 이용률을 100%로 볼 수 있다. 타겟 애플리케이션(100)의 작업량의 각 작업 아이템이 독립적이기 때문에 계산 장치는 작업량이 분배되어 있는 한 계속해서 작업량을 처리할 수 있기 때문이다. Meanwhile, in the simultaneous heterogeneous computing system 300, when the computing device processes the workload, the utilization rate of the computing device can be regarded as 100%. Since each work item of the workload of the target application 100 is independent, the calculation apparatus can continue to process the workload as long as the workload is distributed.

다만, 작업량을 모두 처리하여 계산 장치가 사용되지 않는 경우에도 계산 장치에 설정된 동작속도에 따라 소비되는 전력이 다르기 때문에, 계산 장치가 사용되지 않는 경우 유형별 계산 장치의 동작속도마다의 소비전력은 아래 수학식 3과 같이 될 수 있다. However, even if the calculation device is not used due to all of the workloads being processed, the power consumed depends on the operation speed set in the calculation device. Therefore, when the calculation device is not used, Equation 3 can be obtained.

Figure 112016089436427-pat00011
Figure 112016089436427-pat00011

수학식 3에서

Figure 112016089436427-pat00012
는 계산 장치 d가 대기 상태에 있는 경우 fd의 동작속도 설정된 계산 장치 d에서의 소비 전력,
Figure 112016089436427-pat00013
는 계산 장치가 대기 상태인 경우 계산 장치에 설정된 동작속도마다의 소비 전력을 측정한 상수이다. In Equation 3,
Figure 112016089436427-pat00012
Is the power consumption in the calculation device d for which the operating speed of f d is set when the calculation device d is in the standby state,
Figure 112016089436427-pat00013
Is a constant that measures the power consumption per operation speed set in the calculation device when the calculation device is in the standby state.

시스템 상태 조절 관리자(230)는 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 유형별 계산 장치에 작업량을 분배할 수 있는 시스템 상태 중 타겟 애플리케이션(100) 실행시 처리 속도를 가장 빠르게 하는 제1 시스템 상태, 에너지 효율을 가장 좋게 하는 제2 시스템 상태 및 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태 중 적어도 하나를 판별하여, 제1, 제2 및 제3 시스템 상태 중 하나의 시스템 상태에 따라 작업량을 유형별 계산 장치에 분배한다. The system state adjustment manager 230 is a system state management manager that can distribute the workload to the type-specific calculation device based on the work item process time per operation speed of the type-specific calculation device, A system state, a second system state that maximizes energy efficiency, and a third system state that maximizes an EDP (Energy Delay Product) are discriminated, and one of the first, second, and third system states The workload is distributed to the type-specific calculation apparatuses.

이때 시스템 상태는 유형별 계산 장치의 동작 속도 및 유형별 계산 장치의 작업량 분배를 포함할 수 있다. At this time, the system state may include the operation speed of the type-specific calculation apparatus and the work amount distribution of the type-specific calculation apparatus.

한편 상술한 실시예가 포함하는 성능 예측기(210), 전력 예측기(220) 및 시스템 상태 조절 관리자(230)는 이들의 기능을 수행하도록 프로그램된 명령어를 포함하는 메모리, 및 이들 명령어를 수행하는 마이크로프로세서를 포함하는 연산 장치에 의해 구현될 수 있다. Meanwhile, the performance predictor 210, the power predictor 220, and the system state adjustment manager 230, which are included in the above-described embodiments, include a memory including instructions programmed to perform these functions, and a microprocessor May be implemented by an arithmetic and logic unit that includes a processor.

도 2는 일 실시예에 따른 동적 시스템 상태 조절 방법을 나타내는 흐름도이다. 도 2에 따른 동적 시스템 상태 조절 방법은 도 1을 통해 설명된 적어도 하나 이상의 프로세서를 통해 수행되는 동적 시스템 상태 조절 장치(200)에 의해 수행될 수 있으며, 각 단계의 순서가 시계열적 순서를 한정하는 것은 아니며, 발명의 목적을 이루기 위해 각 단계의 순서를 달리 수행할 수 있다. 각 단계를 설명하면 다음과 같다.FIG. 2 is a flowchart illustrating a dynamic system state adjustment method according to an embodiment. The dynamic system state control method according to FIG. 2 may be performed by the dynamic system state control apparatus 200 performed through the at least one processor described with reference to FIG. 1, wherein the order of each step defines a time series But the order of each step can be performed differently in order to achieve the object of the invention. Each step is described as follows.

우선, 타겟 애플리케이션(100) 실행 시, 타겟 애플리케이션(100)으로부터 처리되어야 할 작업량(workload)에 관한 정보를 획득한다(S210). 이때 작업량에 관한 정보는 작업량을 구성하는 작업 아이템의 수 등을 포함할 수 있다.First, when the target application 100 is executed, information on a workload to be processed is acquired from the target application 100 (S210). In this case, the information on the amount of work may include the number of work items constituting the work amount, and the like.

이후, 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 유형별 계산 장치의 동작 속도별 작업 아이템(work item) 처리 시간을 측정한다(S220). S220 단계는 도 1과 함께 상술한 성능 예측기(210)에 의해 수행될 수 있다. Then, a predetermined portion of the work amount is distributed to the type-specific calculation apparatuses, and a work item processing time for each operation speed of the type-specific calculation apparatus is measured (S220). Step S220 may be performed by the performance predictor 210 described above in conjunction with FIG.

다음으로, 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 유형별 계산 장치에 작업량을 분배할 수 있는 시스템 상태 중 타겟 애플리케이션(100) 실행시 처리 속도를 가장 빠르게 하는 제1 시스템 상태를 판별할 수 있다(S230). Next, a first system state that maximizes a processing speed when executing the target application 100 among the system states capable of distributing the workload to the type-specific calculation apparatuses based on the work item processing time for each operation speed of the type-specific calculation apparatus (S230).

시스템 상태란 작업량을 각 유형별 계산 장치에 분배할 수 있는 상태를 의미하며, 이때 시스템 상태는 유형별 계산 장치의 동작속도 및 유형별 계산 장치의 개수 및 유형별 계산 장치의 작업량 분배를 고려할 수 있다. The system state refers to a state in which the workload can be distributed to each type of computing device. The system state can take into account the operating speed of the computing device by type and the number of computing devices by type and the distribution of workload of the computing device by type.

예를 들어, 동시 이기종 컴퓨팅 시스템(300)이 GPU 및 CPU를 포함하고, CPU는 빅코어 클러스터 및 리틀코어 클러스터를 포함한다고 가정한다. 이때 시스템 상태는 (A, B, C, D, E, F) 의 6가지 원소에 따라 분배가 가능하다. For example, suppose the simultaneous heterogeneous computing system 300 includes a GPU and a CPU, and a CPU includes a big core cluster and a little core cluster. At this time, the system state can be distributed according to six elements (A, B, C, D, E, F).

이때 (A, B, C, D, E, F)에서 각 원소가 의미하는 것은,In this case, the elements (A, B, C, D, E, and F)

A: GPU의 동작속도, A: GPU operation speed,

B: CPU 빅코어 클러스터의 동작속도, B: Operation speed of CPU big core cluster,

C: CPU 리틀코어 클러스터의 동작속도,C: Operation speed of CPU little-core cluster,

D: GPU에 분배될 작업량D: Workload to be distributed to the GPU

E: CPU 빅코어 클러스터에 분배될 작업량E: Workload to be distributed to the CPU big-core cluster

F: CPU 리틀코어 클러스터에 분배될 작업량F: Workload to be distributed to CPU Little-Core Cluster

이다. 이때 D+E+F의 수는 전체 작업량 중 S220 단계에서 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 측정하기 위해 프로파일링된 작업량 부분을 제외한 개수일 수 있다. to be. In this case, the number of D + E + F may be a number excluding the profiling work amount portion for measuring the work item processing time per operation speed of the type-specific calculating device in S220 of the total work amount.

따라서 시스템 상태가 (1200, 1000, 350, 50, 20, 24)라 함은 GPU의 동작속도를 1200MHz로 설정하여 작업량을 50%, CPU 빅코어 클러스터의 동작속도를 1000Mhz로 설정하여 작업량을 20%, CPU 리틀코어 클러스터의 동작속도를 350MHz로 설정하여 작업량을 24% 분배하는 시스템 상태를 의미한다. Therefore, the system state (1200, 1000, 350, 50, 20, 24) means that the operation speed of the GPU is set to 1200 MHz, the workload is set to 50%, the operation speed of the CPU big core cluster is set to 1000 MHz, , And a system state in which the operation speed of the CPU little core cluster is set to 350 MHz and the work amount is distributed by 24%.

한편, 작업량의 작업 아이템 개수가 너무 많은 경우에는 조합 가능한 시스템 상태가 매우 커질 수 있으므로, 이러한 경우에는 전체 작업량을 k개의 작업 단위로 나누어 분배할 수 있다. 예를 들어, 작업량이 1000개일 경우, 10개의 작업 아이템을 1개의 작업 단위로 환산하여 전체 작업량을 100개의 작업 단위로 나눈 후 분배 가능한 경우의 수를 구할 수 있으며, 이를 통해 시스템 상태가 많아지는 것을 방지하여 효율적인 연산을 수행할 수 있다. On the other hand, if the number of work items in the workload is too large, the combinable system state can become very large. In this case, the total workload can be divided into k work units. For example, if the workload is 1000, 10 work items can be converted into one work unit, and the total work amount can be divided into 100 work units and then the number of cases where the work can be distributed can be obtained. So that efficient calculation can be performed.

제1 시스템 상태는 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 유형별 계산 장치의 작업량 분배를 곱한 유형별 계산 장치에 분배된 작업량의 처리 시간을 기초로 판별할 수 있다 The first system state can be determined on the basis of the processing time of the workload distributed to the type-specific calculation apparatuses obtained by multiplying the work item processing time of the type-specific calculation apparatus by the work item processing time of each type of the calculation apparatus of each type

예를 들어, 특정 시스템 상태에서 유형별 계산 장치의 동작속도별 작업 아이템 처리 시간에 유형별 계산 장치의 작업량 분배를 곱하면, 각 유형별 계산 장치에서 분배된 작업량의 처리 시간이 산출된다. 이때 각 유형별 계산 장치에서 분배된 작업량의 처리 시간 중 가장 긴 값 t1이 곧 그 시스템 상태의 전체 처리 시간에 해당한다. 따라서 전체 시스템 상태 중 t1이 가장 짧은 시스템 상태를 제1 시스템 상태로 판별할 수 있다. For example, when the work item processing time of each type of calculation device is multiplied by the work amount distribution of the type-specific calculation device in the specific system state, the processing time of the distributed work amount is calculated by each type of calculation device. In this case, the longest value t 1 of the processing time of the workload distributed by each type of computing apparatus corresponds to the total processing time of the system state. Therefore, the system state having the shortest t 1 of the entire system state can be determined as the first system state.

또한 유형별 계산 장치에 작업량을 분배할 수 있는 시스템 상태 중 타겟 애플리케이션(100) 실행 시 에너지 효율을 가장 좋게 하는 제2 시스템 상태를 판별할 수 있다(S240). In addition, the second system state that maximizes the energy efficiency when the target application 100 is executed among the system states capable of distributing the workload to the type-specific calculation apparatuses can be determined (S240).

제2 시스템 상태는 유형별 계산 장치에 분배된 작업량의 처리 시간에 유형별 계산 장치의 동작 속도별 소비전력을 곱한 유형별 계산 장치에서의 소비 전력량을 기초로 판별할 수 있다The second system state can be determined on the basis of the amount of power consumed in the type-specific calculation apparatus that is obtained by multiplying the processing time of the workload distributed to the type-specific calculation apparatuses by the power consumption amount per operation speed of the type-

예를 들어, 특정 시스템 상태에서 유형별 계산 장치에 분배된 작업량의 처리 시간에 유형별 계산 장치의 동작 속도별 소비전력을 곱하면 유형별 계산 장치에서의 소비전력량이 되고, 유형별 계산 장치의 소비전력량을 모두 합하면, 그 시스템 상태에서 소비되는 총 소비전력량이 산출된다. 따라서 전체 시스템 상태 중 총 소비전력량이 가장 낮은 시스템 상태를 제2 시스템 상태로 판별할 수 있다.For example, multiplying the processing time of the workload distributed to the type-specific calculation apparatuses in the specific system state by the power consumption by the operation speed of the type-specific calculation apparatus results in the amount of power consumption in the type-specific calculation apparatus, , The total amount of power consumption consumed in the system state is calculated. Therefore, the system state having the lowest total power consumption among the entire system state can be determined as the second system state.

더불어 유형별 계산 장치에 작업량을 분배할 수 있는 시스템 상태 중 타겟 애플리케이션(100) 실행 시 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태를 판별할 수 있다(S250). 이때 EDP는 타겟 애플리케이션(100) 실행 시 작업량 처리속도에 대한 총 소비전력량의 비율이다.In addition, it is possible to determine the third system state that maximizes the EDP (Energy Delay Product) at the time of executing the target application 100 among the system states capable of distributing the workload to the type-specific calculation apparatuses at step S250. Here, EDP is a ratio of the total power consumption to the workload processing speed when the target application 100 is executed.

제3 시스템 상태는 유형별 계산 장치에서의 소비전력량의 합을 유형별 계산 장치에 분배된 작업량의 처리 시간 중 가장 긴 값으로 나눈 EDP 값을 기초로 판별할 수 있다. The third system state can be determined based on the EDP value obtained by dividing the sum of the power consumption in the type-specific calculation apparatuses by the longest processing time of the workloads distributed to the type-specific calculation apparatuses.

예를 들면, S240 단계에서 구한 총 소비전력량을 S230 단계에서 구한 유형별 계산 장치에서 분배된 작업량의 처리 시간 중 가장 긴 값 t1으로 나누어 모든 시스템 상태에 대한 EDP를 구할 수 있다. 이때 EDP가 가장 낮은 시스템 상태를 제3 시스템 상태로 판별할 수 있다.For example, during the processing time of the workload allocation of the total power consumption calculated in step S240 on the type of computing device obtained in step S230 by dividing the value of the long t 1 can be obtained for all the EDP system state. At this time, the system state having the lowest EDP can be determined as the third system state.

이후, 제1, 제2 및 제3 시스템 상태 중 하나의 시스템 상태에 따라 유형별 계산 장치에 작업량을 분배하는 시스템 상태 조절한다(S260).Thereafter, a system state is adjusted to distribute the workload to the type-specific calculation apparatuses according to the system state of one of the first, second, and third system states (S260).

도 3은 다른 실시예에 따른 동적 시스템 상태 조절 방법을 나타내는 흐름도이다. 도 3의 실시예에 따르면, 유형별 계산 장치의 최적 동작속도를 먼저 결정하고, 이후 유형별 계산 장치의 작업량 분배를 결정하여 보다 효율적으로 최적의 시스템 상태를 결정할 수 있다. 3 is a flowchart illustrating a dynamic system state adjustment method according to another embodiment. According to the embodiment of FIG. 3, the optimum operation speed of the type-specific calculation device can be determined first, and then the workload distribution of the type-specific calculation device can be determined to determine the optimal system state more efficiently.

도 3에 따른 동적 시스템 상태 조절 방법은 도 1을 통해 설명된 적어도 하나 이상의 프로세서를 통해 수행되는 동적 시스템 상태 조절 장치(200)에 의해 수행될 수 있으며, 각 단계의 순서가 시계열적 순서를 한정하는 것은 아니며, 발명의 목적을 이루기 위해 각 단계의 순서를 달리 수행할 수 있다. 각 단계를 설명하면 다음과 같다.The dynamic system state adjustment method according to FIG. 3 may be performed by the dynamic system state adjustment apparatus 200 performed through at least one processor described with reference to FIG. 1, and the order of each step defines a time series But the order of each step can be performed differently in order to achieve the object of the invention. Each step is described as follows.

우선, 타겟 애플리케이션(100) 실행 시, 타겟 애플리케이션(100)으로부터 처리되어야 할 작업량에 관한 정보를 획득한다(S310). 이때 작업량에 관한 정보는 작업량을 구성하는 작업 아이템의 수 등을 포함할 수 있다.First, when the target application 100 is executed, information on the amount of work to be processed is acquired from the target application 100 (S310). In this case, the information on the amount of work may include the number of work items constituting the work amount, and the like.

이후, 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출한다(S320). S320 단계는 도 1과 함께 상술한 성능 예측기(210)에 의해 수행될 수 있다. Then, a predetermined portion of the work amount is distributed to the type-specific calculation apparatuses, and the work item processing time per operation speed of the type-specific calculation apparatus is calculated (S320). Step S320 may be performed by the performance predictor 210 described above in conjunction with FIG.

한편, S320 단계를 구현한 알고리즘의 예시는 아래 표 1과 같다. An example of the algorithm implementing step S320 is shown in Table 1 below.

Figure 112016089436427-pat00014
Figure 112016089436427-pat00014

다음으로, 성능 예측기(210)를 통해 구한 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간

Figure 112016089436427-pat00015
에, 전력 예측기(220)를 통해 구한 유형별 계산 장치의 동작 속도별 소비전력
Figure 112016089436427-pat00016
을 곱한 값이 최소가 되게 하는 유형별 계산 장치의 제1 동작 속도
Figure 112016089436427-pat00017
(
Figure 112016089436427-pat00018
)를 판별하여, 시스템 상태의 유형별 계산 장치의 동작속도를 먼저 결정한다. 이때
Figure 112016089436427-pat00019
는 계산 장치 d의 설정 가능한 모든 동작 속도를 의미한다. Next, the work item processing time per operation speed of the type-specific calculation device obtained through the performance predictor 210
Figure 112016089436427-pat00015
The power consumption per operation speed of the type-specific calculation device obtained through the power estimator 220
Figure 112016089436427-pat00016
The first operation speed < RTI ID = 0.0 >
Figure 112016089436427-pat00017
(
Figure 112016089436427-pat00018
), And determines the operating speed of the computing device according to the type of system state first. At this time
Figure 112016089436427-pat00019
Means all configurable operating speeds of the computing device d.

한편, 유형별 계산 장치의 제1 동작 속도를

Figure 112016089436427-pat00020
라 표기하였지만, 유형별 계산 장치가 동일한 동작속도를 가진다는 의미가 아니며,
Figure 112016089436427-pat00021
는 각 계산 장치당
Figure 112016089436427-pat00022
값이 최소가 되게 하는 동작 속도로 유형별 계산 장치마다 동작 속도가 상이할 수 있다. On the other hand, the first operating speed of the type-
Figure 112016089436427-pat00020
But it does not mean that the type-specific calculation device has the same operation speed,
Figure 112016089436427-pat00021
Per calculation unit
Figure 112016089436427-pat00022
The operation speed may be different for each type of calculation apparatus.

이후, 유형별 계산 장치가 제1 동작 속도

Figure 112016089436427-pat00023
일 때의 작업 아이템 처리 시간
Figure 112016089436427-pat00024
에 유형별 계산 장치의 작업량 분배를 곱한 유형별 계산 장치에 분배된 작업량의 처리 시간
Figure 112016089436427-pat00025
중 최대값인 제1 시간
Figure 112016089436427-pat00026
(
Figure 112016089436427-pat00027
)을 판별한다. 이때
Figure 112016089436427-pat00028
는 처리해야할 전체 작업량의 작업 아이템의 수,
Figure 112016089436427-pat00029
는 주어진 작업량 분배
Figure 112016089436427-pat00030
에서 계산 장치 d의 작업량 분배 비율을 의미한다. Thereafter, when the type-specific calculation apparatus calculates the first operating speed
Figure 112016089436427-pat00023
Work item processing time when
Figure 112016089436427-pat00024
The processing time of the workload distributed to the type-specific calculation apparatus multiplied by the workload distribution of the type-specific calculation apparatuses
Figure 112016089436427-pat00025
The first time
Figure 112016089436427-pat00026
(
Figure 112016089436427-pat00027
). At this time
Figure 112016089436427-pat00028
Is the total number of work items to be processed,
Figure 112016089436427-pat00029
Is a given workload distribution
Figure 112016089436427-pat00030
Is the workload distribution ratio of the computing device d.

이때

Figure 112016089436427-pat00031
는 성능 예측기(210)에 의해 구할 수 있으며, 유형별 계산 장치의 작업량 분배는 유형별 계산 장치의 동작속도가 결정된 채로 유형별 계산 장치의 작업량 분배가 다른 모든 시스템 상태에 대하여 구해진다. At this time
Figure 112016089436427-pat00031
Can be obtained by the performance predictor 210 and the workload distribution of the type-specific calculation apparatus is obtained for all the system states in which the workload distribution of the type-specific calculation apparatus is different while the operation speed of the type-specific calculation apparatus is determined.

다음으로, 작업량 분배가

Figure 112016089436427-pat00032
일 때 제1 시간
Figure 112016089436427-pat00033
및 유형별 계산 장치가 제1 동작 속도
Figure 112016089436427-pat00034
일 때의 작업 아이템 처리 시간
Figure 112016089436427-pat00035
을 기초로 유형별 계산 장치가 동작 중일 때의 소비 전력량
Figure 112016089436427-pat00036
및 유형별 계산 장치가 대기 중일 때의 소비 전력량
Figure 112016089436427-pat00037
의 합
Figure 112016089436427-pat00038
이 최소가 되게 하는 작업량 분배를 구할 수 있다. 이때 유형별 계산 장치는 최고 동작 속도(
Figure 112016089436427-pat00039
)로 대기할 수 있다. Next, the workload distribution
Figure 112016089436427-pat00032
1 < / RTI >
Figure 112016089436427-pat00033
And the type-specific calculating device calculates the first operating speed
Figure 112016089436427-pat00034
Work item processing time when
Figure 112016089436427-pat00035
The amount of power consumed when the type-specific computing device is operating
Figure 112016089436427-pat00036
And the amount of power consumption when the type-specific calculation device is in standby
Figure 112016089436427-pat00037
Sum of
Figure 112016089436427-pat00038
You can get the workload distribution to make this minimum. At this time,
Figure 112016089436427-pat00039
).

예를 들면, 아래 수학식 4를 통해

Figure 112016089436427-pat00040
를 구할 수 있다. For example, using Equation 4 below,
Figure 112016089436427-pat00040
Can be obtained.

Figure 112016089436427-pat00041
Figure 112016089436427-pat00041

수학식 4에서 D는 모든 계산 장치, d는 각 계산 장치,

Figure 112016089436427-pat00042
는 계산 장치 d가
Figure 112016089436427-pat00043
의 동작속도로 작동되는 경우 소비전력,
Figure 112016089436427-pat00044
는 계산 장치 d가 최고 동작 속도(
Figure 112016089436427-pat00045
로 설정되었으나 작동하지 않는 경우 소비전력을 의미한다.In Equation (4), D represents all calculation devices, d represents each calculation device,
Figure 112016089436427-pat00042
Lt; RTI ID = 0.0 > d
Figure 112016089436427-pat00043
When operated at the operating speed of the power consumption,
Figure 112016089436427-pat00044
(D) is the maximum operating speed < RTI ID = 0.0 >
Figure 112016089436427-pat00045
If it is set but it does not work, it means power consumption.

이때 가능한 작업량 분배의 모든 경우의 수 (W) 중에 따른 소비전력량

Figure 112016089436427-pat00046
을 최소로 하게 하는 유형별 계산 장치의 작업량 분배
Figure 112016089436427-pat00047
(
Figure 112016089436427-pat00048
) 을 판별하여, 이때의 유형별 계산 장치의 제1 동작속도
Figure 112016089436427-pat00049
및 유형별 계산 장치의 작업량 분배
Figure 112016089436427-pat00050
을 에너지 효율이 가장 높은 최적의 시스템 상태로 판별할 수 있다. At this time, the power consumption (W) in the number of all cases (W)
Figure 112016089436427-pat00046
Workload distribution of type-specific computing devices to minimize
Figure 112016089436427-pat00047
(
Figure 112016089436427-pat00048
), And the first operating speed of the type-specific calculating device at this time
Figure 112016089436427-pat00049
And workload distribution of type-specific calculation devices
Figure 112016089436427-pat00050
Can be determined as an optimal system state having the highest energy efficiency.

한편, S330 내지 S350 단계를 구현한 알고리즘의 예시는 아래 표 2와 같다. An example of the algorithm implementing steps S330 to S350 is shown in Table 2 below.

Figure 112016089436427-pat00051
Figure 112016089436427-pat00051

마지막으로, 판별된 유형별 계산 장치의 제1 동작 속도 및 판별된 작업량 분배로 설정된 시스템 상태에 따라 유형별 계산 장치에 작업량을 분배한다(S360).Finally, the workload is distributed to the type-specific calculation apparatuses according to the system state set by the determined first operation speed of the type-specific calculation apparatuses and the determined workload distribution (S360).

한편, S360 단계를 구현한 알고리즘의 예시는 아래 표 3과 같다. An example of the algorithm implementing step S360 is shown in Table 3 below.

Figure 112016089436427-pat00052
Figure 112016089436427-pat00052

이를 통해, 동시 이기종 컴퓨팅 환경에서 에너지 효율을 극대화 시킬 수 있는 시스템 상태를 결정하여 작업량을 분배함으로써 애플리케이션 수행 시 에너지 효율을 극대화 할 수 있다. This allows you to maximize energy efficiency in your applications by distributing workload by determining the system state that can maximize energy efficiency in a simultaneous heterogeneous computing environment.

도 4는 정적으로 애플리케이션의 최적 시스템 상태를 분석하는 프로그램과 도 2 및 도 3의 실시예를 이용한 결과를 비교한 도면이다. FIG. 4 is a diagram comparing a result of statically analyzing an optimal system state of an application with a result using the embodiment of FIG. 2 and FIG. 3. FIG.

도 4를 참조하면, Static Best는 정적으로 애플리케이션의 최적 시스템 상태를 분석하는 프로그램, RHCP-E는 도 2의 실시예, RHCP-P는 도 3의 실시예를 통한 최적 시스템 상태 공간 분석을 나타낸다. 또한 가로축은 사용된 애플리케이션의 종류를 나타내며, 세로축은 (a) 처리속도, (b) 소비전력량, (c) EDP 를 나타낸다. 이때 세로축은 GPU만 사용했을 때의 결과를 1.0을 기준으로 하여 나타내었다.Referring to FIG. 4, Static Best represents a program for statically analyzing an optimal system state of an application, RHCP-E represents an embodiment of FIG. 2, and RHCP-P represents an optimal system state space analysis through the embodiment of FIG. The abscissa represents the type of application used, and the ordinate represents (a) processing speed, (b) power consumption, and (c) EDP. In this case, the vertical axis represents the result of using only the GPU based on 1.0.

도 4에 따르면 도 2 및 도 3의 실시예는 정적으로 애플리케이션을 분석하는 프로그램과 유사한 수치를 나타냄을 확인할 수 있다. 정적으로 애플리케이션을 분석하는 프로그램은 오프라인으로 애플리케이션과 인풋 데이터마다 일일이 분석해야 한다. 그러나 모든 애플리케이션과 인풋 데이터마다 분석을 한 이후에 애플리케이션을 실행하는 것은 실질적으로 실용성이 없다. According to FIG. 4, it can be seen that the embodiment of FIG. 2 and FIG. 3 shows a numerical value similar to that of statically analyzing an application. A program that statically analyzes an application must analyze each application and input data offline. However, it is practically impractical to run the application after analyzing every application and input data.

이에, 본 발명의 실시예는 애플리케이션의 실행 시에 애플리케이션의 작업량에 대해 시스템 상태에 따른 에너지 효율을 파악하여 동적으로 최적의 시스템 상태 조절을 결정할 수 있으므로, 애플리케이션별 특성을 파악하기 위해 미리 애플리케이션과 인풋 데이터마다 오프라인으로 정보를 수집할 필요가 없으며, 정적으로 분석하는 애플리케이션과 효율이 비슷하여 실용성이 뛰어나다. Therefore, the embodiment of the present invention can determine the optimum system state control dynamically by grasping the energy efficiency according to the system state with respect to the workload of the application at the time of execution of the application. Therefore, There is no need to collect information offline with each data, and it is very practical because it is similar in efficiency to static analysis application.

상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
또한 본 발명의 실시예들은 상술한 각 단계를 프로세서가 수행하도록 하는 명령어를 포함하는 컴퓨터 프로그램 및 이러한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 통해 구현될 수 있다.
The above-described embodiments of the present invention can be implemented by various means. For example, embodiments of the present invention may be implemented by hardware, firmware, software, or a combination thereof.
Embodiments of the present invention may also be embodied through a computer program including instructions for causing a processor to perform each of the steps described above and a computer-readable recording medium including such a program.

하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.In the case of hardware implementation, the method according to embodiments of the present invention may be implemented in one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs) , FPGAs (Field Programmable Gate Arrays), processors, controllers, microcontrollers, microprocessors, and the like.

펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.In the case of an implementation by firmware or software, the method according to embodiments of the present invention may be implemented in the form of a module, a procedure or a function for performing the functions or operations described above. The software code can be stored in a memory unit and driven by the processor. The memory unit may be located inside or outside the processor, and may exchange data with the processor by various well-known means.

이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Thus, those skilled in the art will appreciate that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. It is therefore to be understood that the embodiments described above are to be considered in all respects only as illustrative and not restrictive. The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

100: 타겟 애플리케이션
200: 동적 시스템 상태 조절 장치
210: 성능 예측기
220: 전력 예측기
230: 시스템 상태 조절 관리자
300: 동시 이기종 컴퓨팅 시스템
100: Target application
200: Dynamic system conditioner
210: Performance Predictor
220: Power predictor
230: System Health Control Manager
300: Simultaneous heterogeneous computing systems

Claims (19)

타겟 애플리케이션 실행 시 처리되어야 할 작업량(workload)에 관한 정보를 획득하는 정보 수신 단계;
상기 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 상기 유형별 계산 장치의 동작 속도별 작업 아이템(work item) 처리 시간을 산출하는 프로파일 단계;
상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 상기 유형별 계산 장치에 상기 작업량을 분배할 수 있는 시스템 상태 중 상기 타겟 애플리케이션 실행시 처리 속도를 가장 빠르게 하는 제1 시스템 상태, 에너지 효율을 가장 좋게 하는 제2 시스템 상태 및 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태 중 적어도 하나를 판별하는 시스템 상태 공간 분석 단계 - 상기 시스템 상태는 상기 유형별 계산 장치의 동작 속도 및 상기 유형별 계산 장치의 작업량 분배를 포함함-; 및
상기 판별된 시스템 상태 중 하나의 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용하는 시스템 상태 적용 단계를 포함하고,
상기 시스템 상태 공간 분석 단계는,
상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간을 기초로 상기 제1 시스템 상태를 판별하는 단계를 포함하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
An information receiving step of obtaining information on a workload to be processed when a target application is executed;
A profile step of distributing a predetermined portion of the work amount to the type-specific calculation device and calculating a work item processing time per operation speed of the type-specific calculation device;
A first system state that maximizes a processing speed in executing the target application among system states that can distribute the workload to the type-specific calculation apparatus based on a work item processing time for each operation speed of the type-specific calculation apparatus, A system state space analysis step of discriminating at least one of a first system state that optimizes the first system state and a third system state that optimizes the Energy Delay Product (EDP), wherein the system state includes at least one of an operation speed of the type- Includes workload distribution; And
And applying the workload distribution to the type-specific computing device according to one of the determined system states,
The system state space analysis step includes:
Determining the first system state based on a processing time of the workload distributed to the type-specific calculation apparatus, which is obtained by multiplying the work item processing time of the type-specific calculation apparatus by the work-item distribution time of the type-
A Dynamic System State Control Method in Heterogeneous Computing Environments.
제1항에 있어서,
상기 유형별 계산 장치는,
CPU의 빅코어 클러스터, CPU의 리틀코어 클러스터 및 GPU를 포함하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
The method according to claim 1,
The type-
Including CPU's Big Core Cluster, CPU's Little Core Cluster and GPU
A Dynamic System State Control Method in Heterogeneous Computing Environments.
제1항에 있어서,
상기 프로파일 단계는,
상기 유형별 계산 장치의 2가지 동작 속도에 대한 작업 아이템 처리 시간을 측정한 결과에 선형 모델(linear model)을 적용하여 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출하는 단계를 포함하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
The method according to claim 1,
Wherein the profile step comprises:
And calculating a work item processing time per operation speed of the type-specific calculation apparatus by applying a linear model to the result of measuring the work item processing time with respect to the two operation speeds of the type-specific calculation apparatuses
A Dynamic System State Control Method in Heterogeneous Computing Environments.
제3항에 있어서,
상기 2가지 동작 속도는,
상기 유형별 계산 장치의 동작 속도의 최대값과 최소값인
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
The method of claim 3,
The two operating speeds,
The maximum value and the minimum value of the operating speed of the type-
A Dynamic System State Control Method in Heterogeneous Computing Environments.
삭제delete 제1항에 있어서,
상기 시스템 상태 공간 분석 단계는,
상기 유형별 계산 장치에 분배된 작업량의 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 상기 유형별 계산 장치에서의 소비 전력량을 기초로 상기 제2 시스템 상태를 판별하는 단계를 포함하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
The method according to claim 1,
The system state space analysis step includes:
And discriminating the second system state based on the amount of power consumed by the type-specific calculation apparatus that is obtained by multiplying the processing time of the workload distributed to the type-specific calculation apparatus by the power consumption by the operation speed of the type-specific calculation apparatus
A Dynamic System State Control Method in Heterogeneous Computing Environments.
제6항에 있어서,
상기 시스템 상태 공간 분석 단계는,
상기 유형별 계산 장치에서의 소비 전력량의 합을 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 가장 긴 값으로 나눈 EDP 값을 기초로 상기 제3 시스템 상태를 판별하는 단계를 포함하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
The method according to claim 6,
The system state space analysis step includes:
Determining the third system state based on an EDP value obtained by dividing the sum of the power consumption amounts in the type-specific calculation apparatuses by the longest processing time of the workloads distributed to the type-specific calculation apparatuses
A Dynamic System State Control Method in Heterogeneous Computing Environments.
제1항에 있어서,
상기 시스템 상태 공간 분석 단계는,
상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 값이 최소가 되게 하는 상기 유형별 계산 장치의 제1 동작 속도를 판별하는 단계;
상기 유형별 계산 장치가 제1 동작 속도일 때의 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 최대값인 제1 시간을 판별하는 단계; 및
상기 제1 시간 및 상기 유형별 계산 장치가 상기 제1 동작 속도일 때의 작업량 처리 시간을 기초로 상기 유형별 계산 장치가 동작 중일 때의 소비 전력량 및 상기 유형별 계산 장치가 대기 중일 때의 소비 전력량의 합이 최소가 되게 하는 작업량 분배를 판별하는 단계를 포함하고,
상기 시스템 상태 조절 단계는,
상기 판별된 유형별 계산 장치의 제1 동작 속도 및 상기 판별된 작업량 분배로 설정된 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용하는 단계를 포함하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
The method according to claim 1,
The system state space analysis step includes:
Determining a first operating speed of the type-specific computing device that minimizes a value obtained by multiplying a work item processing time per operating speed of the type-specific computing device by a power consumption per operating speed of the type-specific computing device;
Determining a first time which is a maximum value among a processing time of the workload distributed to the type-specific calculation apparatuses, which is obtained by multiplying the work item processing time when the type-specific calculation apparatus is at the first operation speed, by the work amount distribution of the type- And
The sum of the amount of power consumption when the type-specific calculation apparatus is in operation and the amount of power consumption when the type-specific calculation apparatus is in standby is calculated based on the work amount processing time when the first time and the type- Determining a workload distribution that causes the workload to be minimized,
Wherein the system state adjustment step comprises:
And applying the workload distribution to the type-specific computing device according to the determined first operating speed of the type-specific computing device and the system state set by the determined workload distribution
A Dynamic System State Control Method in Heterogeneous Computing Environments.
타겟 애플리케이션 실행 시 처리되어야 할 작업량(workload)에 관한 정보를 획득하고 상기 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 상기 유형별 계산 장치의 동작 속도별 작업 아이템(work item) 처리 시간을 산출하는 성능 예측기;
상기 유형별 계산 장치의 동작 속도별 소비전력을 산출하는 전력 예측기; 및
상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 상기 유형별 계산 장치에 상기 작업량을 분배할 수 있는 시스템 상태 중 상기 타겟 애플리케이션 실행시 처리 속도를 가장 빠르게 하는 제1 시스템 상태, 에너지 효율을 가장 좋게 하는 제2 시스템 상태 및 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태 중 적어도 하나를 판별하여, 상기 판별된 시스템 상태 중 하나의 시스템 상태에 따라 상기 작업량을 상기 유형별 계산 장치에 분배하는 시스템 상태 조절 관리자 - 상기 시스템 상태는 상기 유형별 계산 장치의 동작 속도 및 상기 유형별 계산 장치의 작업량 분배를 포함함-를 포함하고,
상기 시스템 상태 조절 관리자는,
상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간을 기초로 상기 제1 시스템 상태를 판별하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
A performance of calculating information on a workload to be processed when a target application is executed and distributing a predetermined portion of the amount of work to the type-specific calculation device to calculate a work item processing time for each type of calculation device Predictor;
A power predictor for calculating power consumption by operating speed of the type-specific calculation device; And
A first system state that maximizes a processing speed in executing the target application among system states that can distribute the workload to the type-specific calculation apparatus based on a work item processing time for each operation speed of the type-specific calculation apparatus, And a third system state that maximizes the EDP (Energy Delay Product), and distributes the amount of work to the type-specific calculation apparatus according to one of the determined system states A system state control manager, the system state including an operating speed of the type-specific computing device and a workload distribution of the type-specific computing device,
The system state management manager comprising:
The first system state is determined on the basis of the processing time of the workload distributed to the type-specific calculation apparatus, which is obtained by multiplying the work item processing time of the type-specific calculation apparatus by the work amount distribution of the type-specific calculation apparatus
Dynamic System State Controller in Heterogeneous Computing Environments.
제9항에 있어서,
상기 유형별 계산 장치는,
CPU의 빅코어 클러스터, CPU의 리틀코어 클러스터 및 GPU를 포함하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
10. The method of claim 9,
The type-
Including CPU's Big Core Cluster, CPU's Little Core Cluster and GPU
Dynamic System State Controller in Heterogeneous Computing Environments.
제9항에 있어서,
상기 성능 예측기는,
상기 유형별 계산 장치의 2가지 동작 속도에 대한 작업 아이템 처리 시간을 측정한 결과에 선형 모델(linear model)을 적용하여 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
10. The method of claim 9,
The performance predictor includes:
A linear model is applied to a result of measuring the work item processing time with respect to the two operation speeds of the type-specific calculation apparatus, and a work item processing time per operation speed of the type-specific calculation apparatus is calculated
Dynamic System State Controller in Heterogeneous Computing Environments.
제11항에 있어서,
상기 2가지 동작 속도는,
상기 유형별 계산 장치의 동작 속도의 최대값과 최소값인
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
12. The method of claim 11,
The two operating speeds,
The maximum value and the minimum value of the operating speed of the type-
Dynamic System State Controller in Heterogeneous Computing Environments.
제9항에 있어서,
상기 전력 예측기는,
상기 유형별 계산 장치의 동작 속도별 이용률에 따라 소비되는 전력을 산출하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
10. The method of claim 9,
The power predictor includes:
And calculates the power consumed according to the usage rate for each operating speed of the type-
Dynamic System State Controller in Heterogeneous Computing Environments.
삭제delete 제9항에 있어서,
상기 시스템 상태 조절 관리자는,
상기 유형별 계산 장치에 분배된 작업량의 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 상기 유형별 계산 장치에서의 소비 전력량을 기초로 상기 제2 시스템 상태를 판별하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
10. The method of claim 9,
The system state management manager comprising:
The second system state is determined on the basis of the amount of power consumed in the type-specific calculation apparatus, which is obtained by multiplying the processing time of the workload distributed to the type-specific calculation apparatuses by the power consumption per operation speed of the type-
Dynamic System State Controller in Heterogeneous Computing Environments.
제15항에 있어서,
상기 시스템 상태 조절 관리자는,
상기 유형별 계산 장치에서의 소비 전력량의 합을 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 가장 긴 값으로 나눈 EDP 값을 기초로 상기 제3 시스템 상태를 판별하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
16. The method of claim 15,
The system state management manager comprising:
The third system state is determined on the basis of the EDP value obtained by dividing the sum of the power consumption in the type-specific calculation apparatus by the longest processing time of the work amount distributed to the type-specific calculation apparatus
Dynamic System State Controller in Heterogeneous Computing Environments.
제9항에 있어서,
상기 시스템 상태 조절 관리자는,
상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 값이 최소가 되게 하는 상기 유형별 계산 장치의 제1 동작 속도를 판별하고, 상기 유형별 계산 장치가 상기 제1 동작 속도일 때의 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 최대값인 제1 시간을 판별하여, 상기 제1 시간 및 상기 유형별 계산 장치가 상기 제1 동작 속도일 때 작업량의 처리 시간을 기초로 상기 유형별 계산 장치가 동작 중일 때의 소비 전력량 및 상기 유형별 계산 장치가 대기 중일 때의 소비 전력량의 합이 최소가 되게 하는 작업량 분배를 판별하고, 상기 판별된 유형별 계산 장치의 제1 동작 속도 및 상기 판별된 작업량 분배로 설정된 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용하는
이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
10. The method of claim 9,
The system state management manager comprising:
Wherein the type-specific calculation device determines a first operation speed of the type-specific calculation device that causes a value obtained by multiplying a work item processing time by an operation speed of the type-specific calculation device by a power consumption by an operation speed of the type- Determining a first time which is the maximum value among the processing times of the workloads distributed to the type-specific calculation apparatuses obtained by multiplying the work item processing time when the first operation speed is multiplied by the work amount distribution of the type-specific calculation apparatus, A work amount distribution in which the sum of the amount of power consumption when the type-specific calculation apparatus is in operation and the amount of power consumption when the type-specific calculation apparatus is in standby is minimized based on the processing time of the work amount when the calculation apparatus is at the first operation speed The first operation speed of the type-specific computing device and the determined workload distribution Depending on the system status of applying the amount of work allocated to each type of the computing device
Dynamic System State Controller in Heterogeneous Computing Environments.
제1항 내지 제4항 및 제6항 내지 제8항 중 어느 한 항의 방법을 프로세서가 수행하도록 하는 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램.A computer program stored on a computer readable medium for causing a processor to perform the method of any one of claims 1 to 4 and 6 to 8. 제1항 내지 제4항 및 제6항 내지 제8항 중 어느 한 항의 방법을 프로세서가 수행하게 하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독 가능 기록매체.A computer-readable medium having recorded thereon a program for causing a processor to perform the method of any one of claims 1 to 4 and 6 to 8.
KR1020160117993A 2016-09-13 2016-09-13 Method and apparatus for dynamic controlling of system state in concurrent heterogeneous computing environment KR101814988B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160117993A KR101814988B1 (en) 2016-09-13 2016-09-13 Method and apparatus for dynamic controlling of system state in concurrent heterogeneous computing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160117993A KR101814988B1 (en) 2016-09-13 2016-09-13 Method and apparatus for dynamic controlling of system state in concurrent heterogeneous computing environment

Publications (1)

Publication Number Publication Date
KR101814988B1 true KR101814988B1 (en) 2018-01-04

Family

ID=60997880

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160117993A KR101814988B1 (en) 2016-09-13 2016-09-13 Method and apparatus for dynamic controlling of system state in concurrent heterogeneous computing environment

Country Status (1)

Country Link
KR (1) KR101814988B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101655027B1 (en) * 2015-04-22 2016-09-06 한양대학교 산학협력단 Method and apparatus for determining valid work load of electronic device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101655027B1 (en) * 2015-04-22 2016-09-06 한양대학교 산학협력단 Method and apparatus for determining valid work load of electronic device

Similar Documents

Publication Publication Date Title
JP6898496B2 (en) Computation graph processing
KR101629155B1 (en) Power-aware thread scheduling and dynamic use of processors
US9471375B2 (en) Resource bottleneck identification for multi-stage workflows processing
JP6241300B2 (en) Job scheduling apparatus, job scheduling method, and job scheduling program
CN110199241A (en) Optimal energy allocation loop
US9632836B2 (en) Scheduling applications in a clustered computer system
Stavrinides et al. Energy-aware scheduling of real-time workflow applications in clouds utilizing DVFS and approximate computations
ul Islam et al. Task aware hybrid DVFS for multi-core real-time systems using machine learning
Heirman et al. Undersubscribed threading on clustered cache architectures
Stavrinides et al. The impact of workload variability on the energy efficiency of large-scale heterogeneous distributed systems
US10983773B2 (en) Technologies for translation cache management in binary translation systems
KR20120066189A (en) Apparatus for dynamically self-adapting of software framework on many-core systems and method of the same
CN113407352A (en) Method, processor, device and readable storage medium for processing task
Garzón et al. An approach to optimise the energy efficiency of iterative computation on integrated GPU–CPU systems
Huang et al. Novel heuristic speculative execution strategies in heterogeneous distributed environments
Nishtala et al. Energy-aware thread co-location in heterogeneous multicore processors
Zhang et al. An energy and SLA-aware resource management strategy in cloud data centers
US20230350485A1 (en) Compiler directed fine grained power management
KR101814988B1 (en) Method and apparatus for dynamic controlling of system state in concurrent heterogeneous computing environment
Zidenberg et al. Optimal resource allocation with multiamdahl
Kim et al. GPGPU-Perf: efficient, interval-based DVFS algorithm for mobile GPGPU applications
Islam et al. Learning based power management for periodic real-time tasks
US11886224B2 (en) Core selection based on usage policy and core constraints
Thomas et al. Application aware scalable architecture for GPGPU
Lösch et al. A highly accurate energy model for task execution on heterogeneous compute nodes

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant