KR101814988B1 - 동시 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법 및 장치 - Google Patents

동시 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법 및 장치 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
English (en)
Inventor
백웅기
박진수
Original Assignee
울산과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 울산과학기술원 filed Critical 울산과학기술원
Priority to KR1020160117993A priority Critical patent/KR101814988B1/ko
Application granted granted Critical
Publication of KR101814988B1 publication Critical patent/KR101814988B1/ko

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

본 발명의 일 실시예에 따른 동시 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법은 타겟 애플리케이션 실행 시 처리되어야 할 작업량(workload)에 관한 정보를 획득하는 정보 수신 단계와, 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 유형별 계산 장치의 동작 속도별 작업 아이템(work item) 처리 시간을 산출하는 프로파일 단계와, 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 유형별 계산 장치에 작업량을 분배할 수 있는 시스템 상태 중 타겟 애플리케이션 실행시 처리 속도를 가장 빠르게 하는 제1 시스템 상태, 에너지 효율을 가장 좋게 하는 제2 시스템 상태 및 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태 중 적어도 하나를 판별하는 시스템 상태 공간 분석 단계와, 제1, 제2 및 제3 시스템 상태 중 하나의 시스템 상태에 따라 유형별 계산 장치에 작업량 분배를 적용하는 시스템 상태 적용 단계를 포함한다.

Description

동시 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법 및 장치{METHOD AND APPARATUS FOR DYNAMIC CONTROLLING OF SYSTEM STATE IN CONCURRENT HETEROGENEOUS COMPUTING ENVIRONMENT}
본 발명은 동시 이기종 컴퓨팅 환경(concurrent heterogeneous computing environment)에서의 동적 시스템 상태 조절 방법 및 장치에 관한 것으로서, 보다 자세하게는 동시 이기종 컴퓨팅 환경에서 실행되는 애플리케이션의 작업량(workload)에 대해 최적의 유형별 계산 장치의 동작속도 및 유형별 계산 장치의 작업량 분배를 결정하여 시스템 상태를 조절하는 방법 및 장치에 관한 것이다.
최근 중앙 처리 장치(CPU, Central Processing Unit)와 그래픽 처리 장치(GPU, Graphics Processing Unit)을 동시에 구동해 전력 소비량은 줄이면서도 시스템의 연산 속도를 높이는 이기종 컴퓨팅(heterogeneous computing) 기술이 활성화되고 있다.
기존의 컴퓨팅은 작업의 대부분을 CPU에 의존했다. 그러나 CPU는 복잡한 작업을 처리하는 데 최적화 돼 있어서 단순하고 반복적인 수학적 계산에서는 효율이 떨어진다. 반대로 GPU는 복잡한 연산에 대해서는 효율이 낮지만 특정한 공식에 의해 반복되는 수치 계산은 CPU보다 빠르게 계산할 수 있다.
이렇게 기능적 특성이 상이한 CPU와 GPU를 적절히 활용함으로써 시스템을 업그레이드 하지 않아도 연산 속도를 높일 수 있다. 그러나 CPU와 GPU의 동작 속도 및 CPU 및 GPU에 분배된 작업량(workload)의 분배량에 따라 성능 및 에너지 효율이 달라지기 때문에, 최적화하고자 하는 메트릭을 고려한 최적의 유형별 계산 장치의 동작속도 및 유형별 계산 장치의 작업량 분배를 결정하는 것이 중요하다.
한국 공개특허공보 제10-2016-0061422호: 소프트웨어 프로그램의 연산 블록을 멀티-프로세서 시스템의 코어에 할당하는 방법 및 시스템
본 발명의 실시예에서 해결하고자 하는 과제는 동시 이기종 컴퓨팅 환경에서 유형별 계산 장치의 에너지 효율을 최대화하기 위해, 동적으로 유형별 계산 장치의 동작속도 및 유형별 계산 장치의 작업량 분배를 결정하는 기술을 제공하는 것이다.
다만, 본 발명의 실시예가 이루고자 하는 기술적 과제는 이상에서 언급한 과제로 제한되지 않으며, 이하에서 설명할 내용으로부터 통상의 기술자에게 자명한 범위 내에서 다양한 기술적 과제가 도출될 수 있다.
일 실시예에 따른 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법은 타겟 애플리케이션 실행 시 처리되어야 할 작업량(workload)에 관한 정보를 획득하는 정보 수신 단계; 상기 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출하는 프로파일 단계; 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 상기 유형별 계산 장치에 상기 작업량을 분배할 수 있는 시스템 상태 중 상기 타겟 애플리케이션 실행 시 처리 속도를 가장 빠르게 하는 제1 시스템 상태, 에너지 효율을 가장 좋게 하는 제2 시스템 상태 및 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태 중 적어도 하나를 판별하는 시스템 상태 공간 분석 단계 - 상기 시스템 상태는 상기 유형별 계산 장치의 동작 속도 및 상기 유형별 계산 장치의 작업량 분배를 포함함-; 및 상기 제1, 제2 및 제3 시스템 상태 중 하나의 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용하는 시스템 상태 적용 단계를 포함한다.
이때 상기 유형별 계산 장치는, CPU의 빅코어 클러스터, CPU의 리틀코어 클러스터, GPU를 포함할 수 있다.
또한 상기 프로파일 단계는, 상기 유형별 계산 장치의 2가지 동작 속도에 대한 작업 아이템 처리 시간을 측정한 결과에 선형 모델(linear model)을 적용하여 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출하는 단계를 포함할 수 있다.
이때 상기 2가지 동작 속도는, 상기 유형별 계산 장치의 동작 속도의 최대값과 최소값일 수 있다.
또한 상기 시스템 상태 공간 분석 단계는, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간을 기초로 상기 제1 시스템 상태를 판별하는 단계를 포함할 수 있다.
더불어 상기 시스템 상태 공간 분석 단계는, 상기 유형별 계산 장치에 분배된 작업량의 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 상기 유형별 계산 장치에서의 소비 전력량을 기초로 상기 제2 시스템 상태를 판별하는 단계를 포함할 수 있다.
아울러 상기 시스템 상태 공간 분석 단계는, 상기 유형별 계산 장치에서의 소비 전력량의 합을 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 가장 긴 값으로 나눈 EDP 값을 기초로 상기 제3 시스템 상태를 판별하는 단계를 포함할 수 있다.
더하여 상기 시스템 상태 공간 분석 단계는, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 값이 최소가 되게 하는 상기 유형별 계산 장치의 제1 동작 속도를 판별하는 단계; 상기 유형별 계산 장치가 제1 동작 속도일 때의 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 최대값인 제1 시간을 판별하는 단계; 및 상기 제1 시간 및 상기 유형별 계산 장치가 상기 제1 동작 속도일 때의 작업량 처리 시간을 기초로 상기 유형별 계산 장치가 동작 중일 때의 소비 전력량 및 상기 유형별 계산 장치가 대기 중일 때의 소비 전력량의 합이 최소가 되게 하는 작업량 분배를 판별하는 단계를 포함하고, 상기 시스템 상태 조절 단계는, 상기 판별된 유형별 계산 장치의 제1 동작 속도 및 상기 판별된 작업량 분배로 설정된 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용하는 단계를 포함할 수 있다.
일 실시예에 따른 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치는 타겟 애플리케이션 실행 시 처리되어야 할 작업량(work item)에 관한 정보를 획득하고 상기 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출하는 성능 예측기; 상기 유형별 계산 장치의 동작 속도별 소비전력을 산출하는 전력 예측기; 및 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 상기 유형별 계산 장치에 상기 작업량을 분배할 수 있는 시스템 상태 중 상기 타겟 애플리케이션 실행시 처리 속도를 가장 빠르게 하는 제1 시스템 상태, 에너지 효율을 가장 좋게 하는 제2 시스템 상태 및 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태 중 적어도 하나를 판별하여, 상기 제1, 제2 및 제3 시스템 상태 중 하나의 시스템 상태에 따라 상기 작업량을 상기 유형별 계산 장치에 분배하는 시스템 상태 조절 관리자 - 상기 시스템 상태는 상기 유형별 계산 장치의 동작 속도 및 상기 유형별 계산 장치의 작업량 분배를 포함함-를 포함한다.
이때 상기 유형별 계산 장치는, CPU의 빅코어 클러스터, CPU의 리틀코어 클러스터 및 GPU를 포함할 수 있다.
또한 상기 성능 예측기는, 상기 유형별 계산 장치의 2가지 동작 속도에 대한 작업 아이템 처리 시간을 측정한 결과에 선형 모델(linear model)을 적용하여 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출할 수 있다.
이때 상기 2가지 동작 속도는, 상기 유형별 계산 장치의 동작 속도의 최대값과 최소값일 수 있다.
또한 상기 전력 예측기는, 상기 유형별 계산 장치의 동작 속도별 이용률에 따라 소비되는 전력을 산출할 수 있다.
더하여 상기 시스템 상태 조절 관리자는, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간을 기초로 상기 제1 시스템 상태를 판별할 수 있다.
더불어 상기 시스템 상태 조절 관리자는, 상기 유형별 계산 장치에 분배된 작업량의 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 상기 유형별 계산 장치에서의 소비 전력량을 기초로 상기 제2 시스템 상태를 판별할 수 있다.
아울러 상기 시스템 상태 조절 관리자는, 상기 유형별 계산 장치에서의 소비 전력량의 합을 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 가장 긴 값으로 나눈 EDP 값을 기초로 상기 제3 시스템 상태를 판별할 수 있다.
또한 상기 시스템 상태 조절 관리자는, 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 값이 최소가 되게 하는 상기 유형별 계산 장치의 제1 동작 속도를 판별하고, 상기 유형별 계산 장치가 상기 제1 동작 속도일 때의 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 최대값인 제1 시간을 판별하여, 상기 제1 시간 및 상기 유형별 계산 장치가 상기 제1 동작 속도일 때 작업량의 처리 시간을 기초로 상기 유형별 계산 장치가 동작 중일 때의 소비 전력량 및 상기 유형별 계산 장치가 대기 중일 때의 소비 전력량의 합이 최소가 되게 하는 작업량 분배를 판별하고, 상기 판별된 유형별 계산 장치의 제1 동작 속도 및 상기 판별된 작업량 분배로 설정된 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용할 수 있다.
본 발명의 실시예에 따르면, 동시 이기종 컴퓨팅 환경에서 에너지 효율을 극대화 시킬 수 있는 시스템 상태를 결정하여 작업량을 분배함으로써 애플리케이션 수행 시 에너지 효율을 극대화 할 수 있다.
또한 애플리케이션의 실행 시에 애플리케이션의 작업량에 대해 시스템 상태에 따른 에너지 효율을 파악하여 동적으로 최적의 시스템 상태를 결정할 수 있으므로, 애플리케이션별 특성을 파악하기 위해 미리 애플리케이션과 인풋 데이터마다 오프라인으로 정보를 수집할 필요가 없다.
도 1은 일 실시예에 따른 동적 시스템 상태 조절 장치를 포함하는 전체 시스템의 아키텍쳐를 나타낸 도면이다.
도 2는 일 실시예에 따른 동적 시스템 상태 조절 방법을 나타내는 흐름도이다.
도 3은 다른 실시예에 따른 동적 시스템 상태 조절 방법을 나타내는 흐름도이다.
도 4는 정적으로 애플리케이션의 최적 시스템 상태를 분석하는 프로그램과 도 2 및 도 3의 실시예를 이용한 결과를 나타낸 도면이다.
본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다.
본 명세서에서 개시되는 실시예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시예들로 한정되는 것을 의도하지 않는다.
도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.
또한, 어떤 구성요소들을 포함한다는 표현은 개방형의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.
더하여 '제1, 제2' 등과 같은 표현은 복수의 구성들을 구분하기 위한 용도로만 사용된 표현으로써, 구성들 사이의 순서나 기타 특징들을 한정하지 않는다.
이하에서는 도면들을 참조하여 본 발명의 실시예들에 대해 설명하도록 한다.
도 1은 일 실시예에 따른 동적 시스템 상태 조절 장치(200)를 포함하는 전체 시스템의 아키텍쳐를 나타낸 도면이다.
도 1은 동시 이기종 컴퓨팅 시스템(300) 기반에서 타겟 애플리케이션(100)이 실행되는 경우, 타겟 애플리케이션(100)의 특성을 타겟 애플리케이션(100)이 실행되는 동안 동적으로 파악하여 타겟 애플리케이션(100)의 작업량(workload)에 대해 계산 장치의 유형별로 최적의 동작속도 및 작업량의 분배를 결정하는 동적 시스템 상태 조절 장치(200)를 포함하는 전체 시스템 아키텍쳐를 도시하고 있다.
동시 이기종 컴퓨팅 시스템(300)은 상이한 ISAs(instruction-set architectures)를 사용하는 계산 장치 및 동일한 ISAs를 사용하더라도 성능이 상이한 계산 장치로 구성될 수 있다. 예를 들면, GPU(Graphics Processing Unit)와 CPU(Central Processing Unit)는 서로 상이한 ISAs를 사용하는 계산 장치에 해당하고, CPU는 동일한 ISAs를 사용하지만 성능이 상이한 계산 장치들, 예를 들어 고성능 고전력의 빅코어 클러스터와 저성능 저전력의 리틀코어 클러스터로 구성될 수 있다.
이하, 발명을 실시하기 위한 구체적인 내용에서는 편의상 동시 이기종 시스템을 구성하는 계산 장치의 유형을 GPU, CPU의 빅코어 클러스터 및 CPU의 리틀코어 클러스터로 설명하지만, 계산 장치의 유형이 이에 한정되는 것은 아니며 그 외에도 상이한 ISAs를 사용하는 계산 장치 또는 동일한 ISAs를 사용하더라도 성능이 상이한 계산 장치를 포함하는 이기종 컴퓨팅 시스템에 있어서도 본 발명의 실시예를 적용할 수 있다.
타겟 애플리케이션(100)은 동시 이기종 컴퓨팅 시스템(300) 기반에서 수행되기 위해 이기종 병렬 컴퓨팅 프레임워크로 제작될 수 있다. 예를 들어, 이기종 병렬 컴퓨팅 프레임워크는 OpenCL(Open Computing Language) 또는 NVDIA의 CUDA(Compute Unified Device Architecture) 등과 같은 프레임워크가 있다. 이기종 컴퓨팅이 활성화되려면 CPU 및 GPU와 같이 ISAs(instruction-set architectures)가 다른 계산 장치에 접근하는 방법을 통일해야 하기 때문에, 타겟 애플리케이션(100)은 이러한 개방형 범용 병렬 컴퓨팅 프레임워크로 작성되어 CPU, GPU, DSP 등의 프로세서로 이루어진 동시 이기종 컴퓨팅 시스템(300)을 활용할 수 있다.
또한 타겟 애플리케이션(100)은 각 작업량(workload)의 각 작업 아이템(work item)은 서로 독립적일 수 있다. 이러한 경우 각 작업 아이템은 순서와 상관없이 계산 장치에 분배되어 처리될 수 있다.
동적 시스템 상태 조절 장치(200)는 타겟 애플리케이션(100)과 동시 이기종 컴퓨팅 시스템(300) 사이에서 동시 이기종 컴퓨팅 시스템(300)의 시스템 상태 즉, 작업량의 분배와 유형별 계산 장치의 동작 속도를 결정한다. 특히, 동적 시스템 상태 조절 장치(200)는 동시 이기종 컴퓨팅 환경에서 에너지 효율을 극대화 시킬 수 있는 시스템 상태를 결정하여 유형별 계산 장치에 작업량을 분배할 수 있다.
이러한 동적 시스템 상태 조절 장치(200)는 예를 들면, 런타임 시스템을 포함할 수 있으며, 런타임 시스템은 사용자 응용 프로그램의 효율적인 실행을 지원하기 위하여 프로그램과 연결되어 실행되는 소프트웨어 혹은 하드웨어이다. 고성능 컴퓨팅 성능을 높이기 위한 런타임 시스템의 기능은 프로그램의 실행 기본 단위인 태스크의 병렬 제어, 병렬로 동작하는 태스크 간의 통신 및 동기화, 태스크 스케줄링, 메모리 관리, 사용자 제어 가능 정책 등의 자원관리 기능을 포함할 수 있다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 동적 시스템 상태 조절 장치(200)는 성능 예측기(210), 전력 예측기(220) 및 시스템 상태 조절 관리자(230)를 포함한다.
성능 예측기(210)는 타겟 애플리케이션(100)으로부터 애플리케이션 실행 시 처리되어야 할 작업량(workload)에 관한 정보를 획득하고 작업량 중 소정 부분(예: 전체 작업량의 1%)을 유형별 계산 장치에 분배하여, 유형별 계산 장치의 동작 속도별 작업 아이템(work item) 처리 시간을 측정한다. 여기서 작업량은 애플리케이션(100)에서 처리해야 할 작업 아이템들의 집합으로, 작업량은 여러 개의 작업 아이템으로 구성되어 있다
예를 들어 성능 예측기(210)는, 아래 수학식 1을 사용하여 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 구할 수 있다.
Figure 112016089436427-pat00001
수학식 1에서
Figure 112016089436427-pat00002
Figure 112016089436427-pat00003
는 선형 모델(linear model)을 적용하여 구한 상수이고,
Figure 112016089436427-pat00004
는 계산 장치 d가 fd의 동작속도로 작동할 경우의 작업 아이템 처리 시간을 의미하며,
Figure 112016089436427-pat00005
는 계산 장치 d의 동작속도를 의미한다.
계산 장치의 유형마다 동작 속도별 작업 아이템 처리 시간을 구하기 위해, 일 실시예에서는 처리해야 할 작업량 중 소정 부분을 유형별 계산 장치에 분배하여 유형별 계산 장치의 2가지 동작 속도에 대한 작업 아이템 처리 시간을 측정한 결과를 수학식 1에 대입하여 선형 모델(linear model)을 적용할 수 있다. 이때 2가지 동작 속도는 정확성을 기하기 위해 유형별 계산 장치의 동작 속도의 최대값과 최소값으로 설정할 수 있다. 이에 따라, 수학식 1을 통해 유형별 계산 장치의 모든 동작 속도별 작업 아이템 처리 시간을 산출할 수 있다.
전력 예측기(220)는 유형별 계산 장치의 동작 속도별 소비전력을 산출한다. 전력 예측기(220)는 유형별 계산 장치의 동작 속도별 이용률에 따라 소비되는 소비전력을 산출할 수 있다. 이때 소비전력은 미리 측정되어 테이블 형태로 저장되어 있을 수 있다. 이때 소비전력의 물리적 수치는 소비전력을 측정하는 하드웨어 센서 등으로부터 측정될 수 있다.
예를 들어, 전력 예측기(220)는 아래 수학식 2를 사용하여 유형별 계산 장치의 동작 속도별 이용률에 따른 소비 전력을 구할 수 있다.
Figure 112016089436427-pat00006
수학식 2에서
Figure 112016089436427-pat00007
는 계산 장치 d에서 fd의 동작속도로 동작하고 있는 경우의 소비 전력,
Figure 112016089436427-pat00008
는 계산 장치 d의 이용률,
Figure 112016089436427-pat00009
Figure 112016089436427-pat00010
는 선형 회귀 모델(linear regression model)을 적용하여 구한 상수이다. 이에 따라, 수학식 2를 통해 유형별 계산 장치의 동작 속도별 소비 전력을 산출할 수 있다.
한편, 동시 이기종 컴퓨팅 시스템(300)에서는 계산 장치가 작업량을 처리하는 경우 계산 장치의 이용률을 100%로 볼 수 있다. 타겟 애플리케이션(100)의 작업량의 각 작업 아이템이 독립적이기 때문에 계산 장치는 작업량이 분배되어 있는 한 계속해서 작업량을 처리할 수 있기 때문이다.
다만, 작업량을 모두 처리하여 계산 장치가 사용되지 않는 경우에도 계산 장치에 설정된 동작속도에 따라 소비되는 전력이 다르기 때문에, 계산 장치가 사용되지 않는 경우 유형별 계산 장치의 동작속도마다의 소비전력은 아래 수학식 3과 같이 될 수 있다.
Figure 112016089436427-pat00011
수학식 3에서
Figure 112016089436427-pat00012
는 계산 장치 d가 대기 상태에 있는 경우 fd의 동작속도 설정된 계산 장치 d에서의 소비 전력,
Figure 112016089436427-pat00013
는 계산 장치가 대기 상태인 경우 계산 장치에 설정된 동작속도마다의 소비 전력을 측정한 상수이다.
시스템 상태 조절 관리자(230)는 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 유형별 계산 장치에 작업량을 분배할 수 있는 시스템 상태 중 타겟 애플리케이션(100) 실행시 처리 속도를 가장 빠르게 하는 제1 시스템 상태, 에너지 효율을 가장 좋게 하는 제2 시스템 상태 및 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태 중 적어도 하나를 판별하여, 제1, 제2 및 제3 시스템 상태 중 하나의 시스템 상태에 따라 작업량을 유형별 계산 장치에 분배한다.
이때 시스템 상태는 유형별 계산 장치의 동작 속도 및 유형별 계산 장치의 작업량 분배를 포함할 수 있다.
한편 상술한 실시예가 포함하는 성능 예측기(210), 전력 예측기(220) 및 시스템 상태 조절 관리자(230)는 이들의 기능을 수행하도록 프로그램된 명령어를 포함하는 메모리, 및 이들 명령어를 수행하는 마이크로프로세서를 포함하는 연산 장치에 의해 구현될 수 있다.
도 2는 일 실시예에 따른 동적 시스템 상태 조절 방법을 나타내는 흐름도이다. 도 2에 따른 동적 시스템 상태 조절 방법은 도 1을 통해 설명된 적어도 하나 이상의 프로세서를 통해 수행되는 동적 시스템 상태 조절 장치(200)에 의해 수행될 수 있으며, 각 단계의 순서가 시계열적 순서를 한정하는 것은 아니며, 발명의 목적을 이루기 위해 각 단계의 순서를 달리 수행할 수 있다. 각 단계를 설명하면 다음과 같다.
우선, 타겟 애플리케이션(100) 실행 시, 타겟 애플리케이션(100)으로부터 처리되어야 할 작업량(workload)에 관한 정보를 획득한다(S210). 이때 작업량에 관한 정보는 작업량을 구성하는 작업 아이템의 수 등을 포함할 수 있다.
이후, 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 유형별 계산 장치의 동작 속도별 작업 아이템(work item) 처리 시간을 측정한다(S220). S220 단계는 도 1과 함께 상술한 성능 예측기(210)에 의해 수행될 수 있다.
다음으로, 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 유형별 계산 장치에 작업량을 분배할 수 있는 시스템 상태 중 타겟 애플리케이션(100) 실행시 처리 속도를 가장 빠르게 하는 제1 시스템 상태를 판별할 수 있다(S230).
시스템 상태란 작업량을 각 유형별 계산 장치에 분배할 수 있는 상태를 의미하며, 이때 시스템 상태는 유형별 계산 장치의 동작속도 및 유형별 계산 장치의 개수 및 유형별 계산 장치의 작업량 분배를 고려할 수 있다.
예를 들어, 동시 이기종 컴퓨팅 시스템(300)이 GPU 및 CPU를 포함하고, CPU는 빅코어 클러스터 및 리틀코어 클러스터를 포함한다고 가정한다. 이때 시스템 상태는 (A, B, C, D, E, F) 의 6가지 원소에 따라 분배가 가능하다.
이때 (A, B, C, D, E, F)에서 각 원소가 의미하는 것은,
A: GPU의 동작속도,
B: CPU 빅코어 클러스터의 동작속도,
C: CPU 리틀코어 클러스터의 동작속도,
D: GPU에 분배될 작업량
E: CPU 빅코어 클러스터에 분배될 작업량
F: CPU 리틀코어 클러스터에 분배될 작업량
이다. 이때 D+E+F의 수는 전체 작업량 중 S220 단계에서 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 측정하기 위해 프로파일링된 작업량 부분을 제외한 개수일 수 있다.
따라서 시스템 상태가 (1200, 1000, 350, 50, 20, 24)라 함은 GPU의 동작속도를 1200MHz로 설정하여 작업량을 50%, CPU 빅코어 클러스터의 동작속도를 1000Mhz로 설정하여 작업량을 20%, CPU 리틀코어 클러스터의 동작속도를 350MHz로 설정하여 작업량을 24% 분배하는 시스템 상태를 의미한다.
한편, 작업량의 작업 아이템 개수가 너무 많은 경우에는 조합 가능한 시스템 상태가 매우 커질 수 있으므로, 이러한 경우에는 전체 작업량을 k개의 작업 단위로 나누어 분배할 수 있다. 예를 들어, 작업량이 1000개일 경우, 10개의 작업 아이템을 1개의 작업 단위로 환산하여 전체 작업량을 100개의 작업 단위로 나눈 후 분배 가능한 경우의 수를 구할 수 있으며, 이를 통해 시스템 상태가 많아지는 것을 방지하여 효율적인 연산을 수행할 수 있다.
제1 시스템 상태는 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 유형별 계산 장치의 작업량 분배를 곱한 유형별 계산 장치에 분배된 작업량의 처리 시간을 기초로 판별할 수 있다
예를 들어, 특정 시스템 상태에서 유형별 계산 장치의 동작속도별 작업 아이템 처리 시간에 유형별 계산 장치의 작업량 분배를 곱하면, 각 유형별 계산 장치에서 분배된 작업량의 처리 시간이 산출된다. 이때 각 유형별 계산 장치에서 분배된 작업량의 처리 시간 중 가장 긴 값 t1이 곧 그 시스템 상태의 전체 처리 시간에 해당한다. 따라서 전체 시스템 상태 중 t1이 가장 짧은 시스템 상태를 제1 시스템 상태로 판별할 수 있다.
또한 유형별 계산 장치에 작업량을 분배할 수 있는 시스템 상태 중 타겟 애플리케이션(100) 실행 시 에너지 효율을 가장 좋게 하는 제2 시스템 상태를 판별할 수 있다(S240).
제2 시스템 상태는 유형별 계산 장치에 분배된 작업량의 처리 시간에 유형별 계산 장치의 동작 속도별 소비전력을 곱한 유형별 계산 장치에서의 소비 전력량을 기초로 판별할 수 있다
예를 들어, 특정 시스템 상태에서 유형별 계산 장치에 분배된 작업량의 처리 시간에 유형별 계산 장치의 동작 속도별 소비전력을 곱하면 유형별 계산 장치에서의 소비전력량이 되고, 유형별 계산 장치의 소비전력량을 모두 합하면, 그 시스템 상태에서 소비되는 총 소비전력량이 산출된다. 따라서 전체 시스템 상태 중 총 소비전력량이 가장 낮은 시스템 상태를 제2 시스템 상태로 판별할 수 있다.
더불어 유형별 계산 장치에 작업량을 분배할 수 있는 시스템 상태 중 타겟 애플리케이션(100) 실행 시 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태를 판별할 수 있다(S250). 이때 EDP는 타겟 애플리케이션(100) 실행 시 작업량 처리속도에 대한 총 소비전력량의 비율이다.
제3 시스템 상태는 유형별 계산 장치에서의 소비전력량의 합을 유형별 계산 장치에 분배된 작업량의 처리 시간 중 가장 긴 값으로 나눈 EDP 값을 기초로 판별할 수 있다.
예를 들면, S240 단계에서 구한 총 소비전력량을 S230 단계에서 구한 유형별 계산 장치에서 분배된 작업량의 처리 시간 중 가장 긴 값 t1으로 나누어 모든 시스템 상태에 대한 EDP를 구할 수 있다. 이때 EDP가 가장 낮은 시스템 상태를 제3 시스템 상태로 판별할 수 있다.
이후, 제1, 제2 및 제3 시스템 상태 중 하나의 시스템 상태에 따라 유형별 계산 장치에 작업량을 분배하는 시스템 상태 조절한다(S260).
도 3은 다른 실시예에 따른 동적 시스템 상태 조절 방법을 나타내는 흐름도이다. 도 3의 실시예에 따르면, 유형별 계산 장치의 최적 동작속도를 먼저 결정하고, 이후 유형별 계산 장치의 작업량 분배를 결정하여 보다 효율적으로 최적의 시스템 상태를 결정할 수 있다.
도 3에 따른 동적 시스템 상태 조절 방법은 도 1을 통해 설명된 적어도 하나 이상의 프로세서를 통해 수행되는 동적 시스템 상태 조절 장치(200)에 의해 수행될 수 있으며, 각 단계의 순서가 시계열적 순서를 한정하는 것은 아니며, 발명의 목적을 이루기 위해 각 단계의 순서를 달리 수행할 수 있다. 각 단계를 설명하면 다음과 같다.
우선, 타겟 애플리케이션(100) 실행 시, 타겟 애플리케이션(100)으로부터 처리되어야 할 작업량에 관한 정보를 획득한다(S310). 이때 작업량에 관한 정보는 작업량을 구성하는 작업 아이템의 수 등을 포함할 수 있다.
이후, 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출한다(S320). S320 단계는 도 1과 함께 상술한 성능 예측기(210)에 의해 수행될 수 있다.
한편, S320 단계를 구현한 알고리즘의 예시는 아래 표 1과 같다.
Figure 112016089436427-pat00014
다음으로, 성능 예측기(210)를 통해 구한 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간
Figure 112016089436427-pat00015
에, 전력 예측기(220)를 통해 구한 유형별 계산 장치의 동작 속도별 소비전력
Figure 112016089436427-pat00016
을 곱한 값이 최소가 되게 하는 유형별 계산 장치의 제1 동작 속도
Figure 112016089436427-pat00017
(
Figure 112016089436427-pat00018
)를 판별하여, 시스템 상태의 유형별 계산 장치의 동작속도를 먼저 결정한다. 이때
Figure 112016089436427-pat00019
는 계산 장치 d의 설정 가능한 모든 동작 속도를 의미한다.
한편, 유형별 계산 장치의 제1 동작 속도를
Figure 112016089436427-pat00020
라 표기하였지만, 유형별 계산 장치가 동일한 동작속도를 가진다는 의미가 아니며,
Figure 112016089436427-pat00021
는 각 계산 장치당
Figure 112016089436427-pat00022
값이 최소가 되게 하는 동작 속도로 유형별 계산 장치마다 동작 속도가 상이할 수 있다.
이후, 유형별 계산 장치가 제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의 작업량 분배 비율을 의미한다.
이때
Figure 112016089436427-pat00031
는 성능 예측기(210)에 의해 구할 수 있으며, 유형별 계산 장치의 작업량 분배는 유형별 계산 장치의 동작속도가 결정된 채로 유형별 계산 장치의 작업량 분배가 다른 모든 시스템 상태에 대하여 구해진다.
다음으로, 작업량 분배가
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
)로 대기할 수 있다.
예를 들면, 아래 수학식 4를 통해
Figure 112016089436427-pat00040
를 구할 수 있다.
Figure 112016089436427-pat00041
수학식 4에서 D는 모든 계산 장치, d는 각 계산 장치,
Figure 112016089436427-pat00042
는 계산 장치 d가
Figure 112016089436427-pat00043
의 동작속도로 작동되는 경우 소비전력,
Figure 112016089436427-pat00044
는 계산 장치 d가 최고 동작 속도(
Figure 112016089436427-pat00045
로 설정되었으나 작동하지 않는 경우 소비전력을 의미한다.
이때 가능한 작업량 분배의 모든 경우의 수 (W) 중에 따른 소비전력량
Figure 112016089436427-pat00046
을 최소로 하게 하는 유형별 계산 장치의 작업량 분배
Figure 112016089436427-pat00047
(
Figure 112016089436427-pat00048
) 을 판별하여, 이때의 유형별 계산 장치의 제1 동작속도
Figure 112016089436427-pat00049
및 유형별 계산 장치의 작업량 분배
Figure 112016089436427-pat00050
을 에너지 효율이 가장 높은 최적의 시스템 상태로 판별할 수 있다.
한편, S330 내지 S350 단계를 구현한 알고리즘의 예시는 아래 표 2와 같다.
Figure 112016089436427-pat00051
마지막으로, 판별된 유형별 계산 장치의 제1 동작 속도 및 판별된 작업량 분배로 설정된 시스템 상태에 따라 유형별 계산 장치에 작업량을 분배한다(S360).
한편, S360 단계를 구현한 알고리즘의 예시는 아래 표 3과 같다.
Figure 112016089436427-pat00052
이를 통해, 동시 이기종 컴퓨팅 환경에서 에너지 효율을 극대화 시킬 수 있는 시스템 상태를 결정하여 작업량을 분배함으로써 애플리케이션 수행 시 에너지 효율을 극대화 할 수 있다.
도 4는 정적으로 애플리케이션의 최적 시스템 상태를 분석하는 프로그램과 도 2 및 도 3의 실시예를 이용한 결과를 비교한 도면이다.
도 4를 참조하면, Static Best는 정적으로 애플리케이션의 최적 시스템 상태를 분석하는 프로그램, RHCP-E는 도 2의 실시예, RHCP-P는 도 3의 실시예를 통한 최적 시스템 상태 공간 분석을 나타낸다. 또한 가로축은 사용된 애플리케이션의 종류를 나타내며, 세로축은 (a) 처리속도, (b) 소비전력량, (c) EDP 를 나타낸다. 이때 세로축은 GPU만 사용했을 때의 결과를 1.0을 기준으로 하여 나타내었다.
도 4에 따르면 도 2 및 도 3의 실시예는 정적으로 애플리케이션을 분석하는 프로그램과 유사한 수치를 나타냄을 확인할 수 있다. 정적으로 애플리케이션을 분석하는 프로그램은 오프라인으로 애플리케이션과 인풋 데이터마다 일일이 분석해야 한다. 그러나 모든 애플리케이션과 인풋 데이터마다 분석을 한 이후에 애플리케이션을 실행하는 것은 실질적으로 실용성이 없다.
이에, 본 발명의 실시예는 애플리케이션의 실행 시에 애플리케이션의 작업량에 대해 시스템 상태에 따른 에너지 효율을 파악하여 동적으로 최적의 시스템 상태 조절을 결정할 수 있으므로, 애플리케이션별 특성을 파악하기 위해 미리 애플리케이션과 인풋 데이터마다 오프라인으로 정보를 수집할 필요가 없으며, 정적으로 분석하는 애플리케이션과 효율이 비슷하여 실용성이 뛰어나다.
상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
또한 본 발명의 실시예들은 상술한 각 단계를 프로세서가 수행하도록 하는 명령어를 포함하는 컴퓨터 프로그램 및 이러한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 통해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 타겟 애플리케이션
200: 동적 시스템 상태 조절 장치
210: 성능 예측기
220: 전력 예측기
230: 시스템 상태 조절 관리자
300: 동시 이기종 컴퓨팅 시스템

Claims (19)

  1. 타겟 애플리케이션 실행 시 처리되어야 할 작업량(workload)에 관한 정보를 획득하는 정보 수신 단계;
    상기 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 상기 유형별 계산 장치의 동작 속도별 작업 아이템(work item) 처리 시간을 산출하는 프로파일 단계;
    상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 상기 유형별 계산 장치에 상기 작업량을 분배할 수 있는 시스템 상태 중 상기 타겟 애플리케이션 실행시 처리 속도를 가장 빠르게 하는 제1 시스템 상태, 에너지 효율을 가장 좋게 하는 제2 시스템 상태 및 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태 중 적어도 하나를 판별하는 시스템 상태 공간 분석 단계 - 상기 시스템 상태는 상기 유형별 계산 장치의 동작 속도 및 상기 유형별 계산 장치의 작업량 분배를 포함함-; 및
    상기 판별된 시스템 상태 중 하나의 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용하는 시스템 상태 적용 단계를 포함하고,
    상기 시스템 상태 공간 분석 단계는,
    상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간을 기초로 상기 제1 시스템 상태를 판별하는 단계를 포함하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
  2. 제1항에 있어서,
    상기 유형별 계산 장치는,
    CPU의 빅코어 클러스터, CPU의 리틀코어 클러스터 및 GPU를 포함하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
  3. 제1항에 있어서,
    상기 프로파일 단계는,
    상기 유형별 계산 장치의 2가지 동작 속도에 대한 작업 아이템 처리 시간을 측정한 결과에 선형 모델(linear model)을 적용하여 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출하는 단계를 포함하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
  4. 제3항에 있어서,
    상기 2가지 동작 속도는,
    상기 유형별 계산 장치의 동작 속도의 최대값과 최소값인
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 시스템 상태 공간 분석 단계는,
    상기 유형별 계산 장치에 분배된 작업량의 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 상기 유형별 계산 장치에서의 소비 전력량을 기초로 상기 제2 시스템 상태를 판별하는 단계를 포함하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
  7. 제6항에 있어서,
    상기 시스템 상태 공간 분석 단계는,
    상기 유형별 계산 장치에서의 소비 전력량의 합을 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 가장 긴 값으로 나눈 EDP 값을 기초로 상기 제3 시스템 상태를 판별하는 단계를 포함하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
  8. 제1항에 있어서,
    상기 시스템 상태 공간 분석 단계는,
    상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 값이 최소가 되게 하는 상기 유형별 계산 장치의 제1 동작 속도를 판별하는 단계;
    상기 유형별 계산 장치가 제1 동작 속도일 때의 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 최대값인 제1 시간을 판별하는 단계; 및
    상기 제1 시간 및 상기 유형별 계산 장치가 상기 제1 동작 속도일 때의 작업량 처리 시간을 기초로 상기 유형별 계산 장치가 동작 중일 때의 소비 전력량 및 상기 유형별 계산 장치가 대기 중일 때의 소비 전력량의 합이 최소가 되게 하는 작업량 분배를 판별하는 단계를 포함하고,
    상기 시스템 상태 조절 단계는,
    상기 판별된 유형별 계산 장치의 제1 동작 속도 및 상기 판별된 작업량 분배로 설정된 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용하는 단계를 포함하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법.
  9. 타겟 애플리케이션 실행 시 처리되어야 할 작업량(workload)에 관한 정보를 획득하고 상기 작업량 중 소정 부분을 유형별 계산 장치에 분배하여, 상기 유형별 계산 장치의 동작 속도별 작업 아이템(work item) 처리 시간을 산출하는 성능 예측기;
    상기 유형별 계산 장치의 동작 속도별 소비전력을 산출하는 전력 예측기; 및
    상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 기초로 상기 유형별 계산 장치에 상기 작업량을 분배할 수 있는 시스템 상태 중 상기 타겟 애플리케이션 실행시 처리 속도를 가장 빠르게 하는 제1 시스템 상태, 에너지 효율을 가장 좋게 하는 제2 시스템 상태 및 EDP(Energy Delay Product)를 가장 좋게 하는 제3 시스템 상태 중 적어도 하나를 판별하여, 상기 판별된 시스템 상태 중 하나의 시스템 상태에 따라 상기 작업량을 상기 유형별 계산 장치에 분배하는 시스템 상태 조절 관리자 - 상기 시스템 상태는 상기 유형별 계산 장치의 동작 속도 및 상기 유형별 계산 장치의 작업량 분배를 포함함-를 포함하고,
    상기 시스템 상태 조절 관리자는,
    상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간을 기초로 상기 제1 시스템 상태를 판별하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
  10. 제9항에 있어서,
    상기 유형별 계산 장치는,
    CPU의 빅코어 클러스터, CPU의 리틀코어 클러스터 및 GPU를 포함하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
  11. 제9항에 있어서,
    상기 성능 예측기는,
    상기 유형별 계산 장치의 2가지 동작 속도에 대한 작업 아이템 처리 시간을 측정한 결과에 선형 모델(linear model)을 적용하여 상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간을 산출하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
  12. 제11항에 있어서,
    상기 2가지 동작 속도는,
    상기 유형별 계산 장치의 동작 속도의 최대값과 최소값인
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
  13. 제9항에 있어서,
    상기 전력 예측기는,
    상기 유형별 계산 장치의 동작 속도별 이용률에 따라 소비되는 전력을 산출하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
  14. 삭제
  15. 제9항에 있어서,
    상기 시스템 상태 조절 관리자는,
    상기 유형별 계산 장치에 분배된 작업량의 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 상기 유형별 계산 장치에서의 소비 전력량을 기초로 상기 제2 시스템 상태를 판별하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
  16. 제15항에 있어서,
    상기 시스템 상태 조절 관리자는,
    상기 유형별 계산 장치에서의 소비 전력량의 합을 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 가장 긴 값으로 나눈 EDP 값을 기초로 상기 제3 시스템 상태를 판별하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
  17. 제9항에 있어서,
    상기 시스템 상태 조절 관리자는,
    상기 유형별 계산 장치의 동작 속도별 작업 아이템 처리 시간에 상기 유형별 계산 장치의 동작 속도별 소비전력을 곱한 값이 최소가 되게 하는 상기 유형별 계산 장치의 제1 동작 속도를 판별하고, 상기 유형별 계산 장치가 상기 제1 동작 속도일 때의 작업 아이템 처리 시간에 상기 유형별 계산 장치의 작업량 분배를 곱한 상기 유형별 계산 장치에 분배된 작업량의 처리 시간 중 최대값인 제1 시간을 판별하여, 상기 제1 시간 및 상기 유형별 계산 장치가 상기 제1 동작 속도일 때 작업량의 처리 시간을 기초로 상기 유형별 계산 장치가 동작 중일 때의 소비 전력량 및 상기 유형별 계산 장치가 대기 중일 때의 소비 전력량의 합이 최소가 되게 하는 작업량 분배를 판별하고, 상기 판별된 유형별 계산 장치의 제1 동작 속도 및 상기 판별된 작업량 분배로 설정된 시스템 상태에 따라 상기 유형별 계산 장치에 상기 작업량 분배를 적용하는
    이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 장치.
  18. 제1항 내지 제4항 및 제6항 내지 제8항 중 어느 한 항의 방법을 프로세서가 수행하도록 하는 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램.
  19. 제1항 내지 제4항 및 제6항 내지 제8항 중 어느 한 항의 방법을 프로세서가 수행하게 하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독 가능 기록매체.
KR1020160117993A 2016-09-13 2016-09-13 동시 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법 및 장치 KR101814988B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160117993A KR101814988B1 (ko) 2016-09-13 2016-09-13 동시 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160117993A KR101814988B1 (ko) 2016-09-13 2016-09-13 동시 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법 및 장치

Publications (1)

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

Family

ID=60997880

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160117993A KR101814988B1 (ko) 2016-09-13 2016-09-13 동시 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101814988B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101655027B1 (ko) * 2015-04-22 2016-09-06 한양대학교 산학협력단 전자 기기의 유효 작업부하 결정 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101655027B1 (ko) * 2015-04-22 2016-09-06 한양대학교 산학협력단 전자 기기의 유효 작업부하 결정 방법 및 장치

Similar Documents

Publication Publication Date Title
JP6898496B2 (ja) 計算グラフの処理
KR101629155B1 (ko) 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용
JP6241300B2 (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
US9471375B2 (en) Resource bottleneck identification for multi-stage workflows processing
CN110199241A (zh) 自适应功率控制环路
US9632836B2 (en) Scheduling applications in a clustered computer system
ul Islam et al. Task aware hybrid DVFS for multi-core real-time systems using machine learning
Stavrinides et al. Energy-aware scheduling of real-time workflow applications in clouds utilizing DVFS and approximate computations
Jeon et al. TPC: Target-driven parallelism combining prediction and correction to reduce tail latency in interactive services
Heirman et al. Undersubscribed threading on clustered cache architectures
US9424212B2 (en) Operating system-managed interrupt steering in multiprocessor systems
US10983773B2 (en) Technologies for translation cache management in binary translation systems
KR20120066189A (ko) 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법
Stavrinides et al. The impact of workload variability on the energy efficiency of large-scale heterogeneous distributed systems
Alonso et al. DVFS-control techniques for dense linear algebra operations on multi-core processors
Huang et al. Novel heuristic speculative execution strategies in heterogeneous distributed environments
Garzón et al. An approach to optimise the energy efficiency of iterative computation on integrated GPU–CPU systems
Nishtala et al. Energy-aware thread co-location in heterogeneous multicore processors
Chen et al. JOSS: Joint Exploration of CPU-Memory DVFS and Task Scheduling for Energy Efficiency
US20230350485A1 (en) Compiler directed fine grained power management
CN117076083A (zh) 一种任务调度方法和装置
KR101814988B1 (ko) 동시 이기종 컴퓨팅 환경에서의 동적 시스템 상태 조절 방법 및 장치
Zidenberg et al. Optimal resource allocation with multiamdahl
Kim et al. GPGPU-Perf: efficient, interval-based DVFS algorithm for mobile GPGPU applications
Thomas et al. Application aware scalable architecture for GPGPU

Legal Events

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