KR20120124386A - 가속기를 이용한 워크로드의 목표 지향 퍼포먼스 관리 - Google Patents

가속기를 이용한 워크로드의 목표 지향 퍼포먼스 관리 Download PDF

Info

Publication number
KR20120124386A
KR20120124386A KR1020127010728A KR20127010728A KR20120124386A KR 20120124386 A KR20120124386 A KR 20120124386A KR 1020127010728 A KR1020127010728 A KR 1020127010728A KR 20127010728 A KR20127010728 A KR 20127010728A KR 20120124386 A KR20120124386 A KR 20120124386A
Authority
KR
South Korea
Prior art keywords
information processing
processing system
hardware accelerator
tasks
accelerator resources
Prior art date
Application number
KR1020127010728A
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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20120124386A publication Critical patent/KR20120124386A/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • 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)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

가속기 자원들을 동적으로 관리하기 위한 방법, 정보 처리 시스템, 및 컴퓨터 판독가능 기억장치 매체가 제공된다. 제1 세트의 하드웨어 가속기 자원들 (122)이 초기에 제1 정보 처리 시스템 (104)에 할당되고, 제2 세트의 하드웨어 가속기 자원들 (124)는 초기에 제2 정보 처리 시스템 (106)에 할당된다. 제1 및 제2 정보 처리 시스템들 상에서 실행중인 작업들 (116, 118)이 모니터 (132) 된다. 상기 작업들 중 하나가 목표 충족에 실패하면, 제2 세트의 하드웨어 가속기 자원들 내의 적어도 하나의 하드웨어 가속기 자원이 제2 정보 처리 시스템으로부터 제1 정보 처리 시스템에 동적 재할당 (138) 된다.

Description

가속기를 이용한 워크로드의 목표 지향 퍼포먼스 관리{GOAL ORIENTED PERFORMANCE MANAGEMENT OF WORKLOAD UTILIZING ACCELERATORS}
본 발명은 일반적으로 워크로드 관리(workload management) 분야에 관한 것이고, 더 자세하게는 하드웨어 가속기(hardware accelerator)들을 이용한 워크로드 관리에 관한 것이다.
Intel®, AMD®, 및 IBM POWER®과 같은 범용 프로세서들은 넓은 범위의 워크로드들(workloads)을 지원하도록 설계되어 있다. 기존 성능(existing capabilities)을 벗어난 처리능력(processing power)이 요구되면, 특정한 애플리케이션의 요건(requirements)을 충족시키기 위해 하드웨어 가속기들이 컴퓨터 시스템에 부착될 수 있다. 하드웨어 가속기들은 또한 퍼포먼스 병목현상(performance bottlenecks)을 해소하는데 사용될 수도 있다. 이 가속기들은 상기 시스템에 의해서 사용될 수 있는 컴퓨팅 자원들(computing resources)로 간주된다. 하드웨어 가속기들의 예로는 필드 프로그래머블 어레이 (FPGA)들, IBM 셀 브로드밴드 엔진 프로세서 (the IBM Broadband Engine processor), 및 그래픽스 처리 장치 (GPU)들이 포함된다. 가속기들은 특정한 태스크들(specific tasks)에 대해서 상기 시스템의 범용 프로세서보다 더 나은 가격/퍼포먼스 포인트(price/performance point)를 갖는다. 하드웨어 가속기들은 PCI-익스프레스 I/O 슬롯들을 통하거나 이더넷(Ethernet)과 인피니밴드(Infiniband®) 같은 고속 네트워크들을 이용하여 프로세서 복합체 또는 네스트(processor complex or nest)에 직접 부착(attached directly)될 수 있다.
종래의 워크로드 관리 시스템들은 특정한 호스트 시스템에 할당된 가속기 자원들을 상기 호스트 상에서 실행중인 작업들(jobs) 사이로 분배한다. 그러나, 이 종래의 워크로드 관리 시스템들은 일반적으로 다수의 시스템들에 할당된 이용 가능한 가속기 자원들을 효과적으로 그리고 효율적으로 이용하지 않는다.
따라서 본 발명의 제1 목적은 가속기 자원들을 동적으로 관리하는 방법을 제공하는 것이며, 상기 컴퓨터 구현 방법(the computer-implemented method)은 초기에 제1 세트의 하드웨어 가속기 자원들을 제1 정보 처리 시스템에 그리고 제2 세트의 하드웨어 가속기 자원들을 제2 정보 처리 시스템에 할당하는 단계; 제1 및 제2 정보 처리 시스템들 상에서 실행중인 복수의 작업들을, 적어도 하나의 프로세서에 의해서, 모니터하는 단계; 및 상기 작업들 중 하나가 목표 충족에 실패할 경우, 제2 세트의 하드웨어 가속기 자원들 내의 적어도 하나의 하드웨어 가속기 자원을 제2 정보 처리 시스템에서 제1 정보 처리 시스템으로 동적 재할당을 하는 단계를 포함한다.
상기 모니터하는 단계는 상기 작업들과 관련된 런타임 통계 정보(runtime statistical information)를 분석하는 것을 포함한다. 상기 동적 재할당을 하는 단계는 상기 하나의 작업과 관련된 우선순위 수준(priority level)이 임계치(threshold)보다 높을(above) 때 수행된다. 상기 모니터하는 단계는 상기 작업들과 관련된 런타임 통계 정보를 분석하는 하부 단계; 및 하나 또는 그 이상의 하드웨어 가속기 자원들을 제1 정보 처리 시스템에 재할당을 하는 것이 상기 하나의 작업이 목표를 충족시킬 가능성(likelihood)을 높일 것인지를 결정하는 하부 단계를 포함한다. 상기 동적 재할당을 하는 단계는 상기 가능성이 임계치보다 높으면 수행된다. 상기 모니터하는 단계는 하나 또는 그 이상의 하드웨어 가속기 자원들이 제1 정보 처리 시스템에 재할당되면 제1 정보 처리 시스템에 의해서 얻어질 가치(value)와, 상기 하나 또는 그 이상의 하드웨어 가속기 자원들이 제1 정보 처리 시스템에 재할당되면 제2 정보 처리 시스템에 의해서 잃게 될 가치를 비교하는 하부 단계를 포함하되; 상기 동적 재할당 단계는 상기 제1 정보 처리 시스템에 의해서 얻어질 가치가 제2 정보 처리 시스템에 의해서 잃게 될 가치보다 크면 수행된다. 상기 동적 재할당 단계는: 상기 적어도 하나의 하드웨어 가속기 자원에 새로운 작업들을 발행(issue)하는 것을 중단하도록 제2 정보 처리 시스템에 명령(instruct)하는 하부 단계; 및 제2 정보 처리 시스템에 의해서 상기 적어도 하나의 하드웨어 가속기 자원들에 발행된 모든 작업들이 완료된 때를 결정하는 하부 단계를 포함한다.
본 발명의 두 번째 목적은 가속기 자원들을 동적으로 관리하기 위한 정보 처리 시스템을 제공하는 것이며, 상기 정보 처리 시스템은: 메모리; 상기 메모리에 통신 가능하도록(communicatively) 결합된 프로세서; 및 상기 메모리와 프로세서에 통신 가능하도록 결합된 할당 매니저(assignment manager)를 포함하되, 상기 할당 매니저는: 초기에 제1 세트의 하드웨어 가속기 자원들을 제1 정보 처리 시스템에 그리고 제2 세트의 하드웨어 가속기 자원들을 제2 정보 처리 시스템에 할당하고; 상기 제1 및 제2 정보 처리 시스템들 상에서 실행중인 복수의 작업들을 모니터하며; 상기 작업들 중 하나가 목표 충족에 실패할 경우, 상기 제2 세트의 하드웨어 가속기 자원들 내의 적어도 하나의 하드웨어 가속기 자원을 상기 제2 정보 처리 시스템에서 상기 제1 정보 처리 시스템으로 동적 재할당을 하도록 구성된다.
상기 복수의 작업들을 모니터하는 것은 상기 작업들과 관련된 런타임 통계 정보를 분석하는 것을 포함한다. 상기 동적 재할당을 하는 것은 상기 하나의 작업과 관련된 우선 순위 수준(level)이 임계치보다 높을 때 수행된다. 상기 복수의 작업들을 모니터하는 것은: 상기 작업들과 관련된 런타임 통계 정보를 분석하는 것; 및 하나 또는 그 이상의 하드웨어 가속기 자원들을 상기 제1 정보 처리 시스템에 재할당을 하는 것이 상기 하나의 작업이 목표를 충족시킬 가능성을 증가시킬 것인지를 결정하는 것을 포함한다. 상기 동적 재할당을 하는 것은 상기 가능성이 임계치보다 높을 때 수행된다. 상기 복수의 작업들을 모니터하는 것은 하나 또는 그 이상의 하드웨어 가속기 자원들이 상기 제1 정보 처리 시스템에 재할당되면 상기 제1 정보 처리 시스템에 의해서 얻어질 가치를 상기 하나 또는 그 이상의 하드웨어 가속기 자원들이 상기 제1 정보 처리 시스템에 재할당되면 상기 제2 정보 처리 시스템에 의해서 잃게 될 가치와 비교하는 것을 포함하되, 상기 동적 재할당을 하는 것은 제1 정보 처리 시스템에 의해서 얻어질 가치가 제2 정보 처리 시스템에 의해서 잃게 될 가치보다 높으면 수행된다. 상기 동적 재할당을 하는 것은 상기 적어도 하나의 하드웨어 가속기 자원에 새로운 작업들을 발행하는 것을 중단하도록 제2 정보 처리 시스템에 명령하는 것; 및 제2 정보 처리 시스템에 의해서 상기 적어도 하나의 하드웨어 가속기 자원들에 발행된 모든 작업들이 완료된 때를 결정하는 것을 포함한다.
본 발명의 제 3 목적은, 컴퓨터 판독가능 기억장치 매체(a computer readable storage medium) 상에 저장되는 컴퓨터 프로그램을 제공하는 것이며, 상기 매체는, 컴퓨터 시스템에 로드되어 실행될 때, 상기 컴퓨터 시스템이 본 발명의 제1 목적인 상기 방법의 모든 단계들을 수행하게 하는 컴퓨터 프로그램 코드를 포함한다. 상기 제1 목적의 방법의 바람직한 특징들은 대응하는 바람직한 컴퓨터 프로그램 코드의 특징들을 갖는다.
본 발명의 일 실시 예는 가속기 자원들을 동적으로 관리하기 위한 컴퓨터 구현 방법을 제공한다. 상기 방법에 따라서, 제1 세트의 하드웨어 가속기 자원들은 초기에 제1 정보 처리 시스템에 그리고 제2 세트의 하드웨어 가속기 자원들은 초기에 제2 정보 처리 시스템에 할당된다. 상기 제1 및 제2 정보 처리 시스템들 상에서 실행중인 작업들은 적어도 하나의 프로세서에 의해서 모니터된다. 상기 작업들 중 하나가 목표 충족에 실패할 경우, 상기 제2 세트의 하드웨어 가속기 자원들 내의 적어도 하나의 하드웨어 가속기 자원이 상기 제2 정보 처리 시스템으로부터 상기 제1 정보 처리 시스템으로 동적 재할당이 된다.
본 발명의 다른 실시 예는 가속기 자원들을 동적으로 관리하기 위한 정보 처리 시스템을 제공한다. 상기 정보 처리 시스템은 메모리와 상기 메모리에 통신 가능하도록 결합된 프로세서를 포함한다. 상기 정보 처리 시스템은 또한 상기 메모리와 상기 프로세서에 통신 가능하도록 결합된 할당 매니저를 포함한다. 상기 할당 매니저는 초기에 제1 세트의 하드웨어 가속기 자원들을 제1 정보 처리 시스템에 그리고 제2 세트의 하드웨어 가속기 자원들을 제2 정보 처리 시스템에 할당하도록 구성된다. 상기 제1 및 제2 정보 처리 시스템들 상에서 실행중인 작업들은 모니터된다. 상기 작업들 중 하나가 목표 충족에 실패하면, 상기 제2 세트의 하드웨어 가속기 자원들 내의 적어도 하나의 하드웨어 가속기 자원이 상기 제2 정보 처리 시스템으로부터 상기 제1 정보 처리 시스템으로 동적 재할당이 된다.
이제 본 발명의 바람직한 일 실시 예를 첨부하는 도면들을 참조하여 단지 예시의 방식으로 설명할 것이다.
도 1은 본 발명의 일 실시 예에 따라서 운영 환경(operating environment)을 예시하는 블록 다이어그램이다.
도 2는 본 발명의 일 실시 예에 따라서 초기에 호스트 시스템들에 가속기 자원들을 할당하는 것을 예시하는 블록 다이어그램이다.
도 3은 본 발명의 일 실시 예에 따라서 호스트 시스템에 가속기 자원들을 동적 재할당을 하는 것을 예시하는 블록 다이어그램이다.
도 4 내지 6은 본 발명의 일 실시 예에 따라서 가속기 자원들을 동적으로 관리하기 위한 프로세스를 예시하는 운영 흐름 다이어그램들이다.
도 7은 본 발명의 일 실시 예에 따라서 정보 처리 시스템을 예시하는 블록 다이어그램이다.
도 8은 본 발명의 일 실시 예에 따라서 서비스 등급 내의 작업들이 가속기를 사용하기 위해 얼마나 기다릴 것인가와 호스트 시스템에 할당되는 가속기들의 수와의 관계를 예시한다.
운영 환경(OPERATING ENVIRONMENT)
도 1은 본 발명의 실시 예들에 응용 가능한 모범적인 운영 환경을 도시한다. 도 1의 모범 환경 (100)은 SMP 컴퓨팅 환경에서 작동하는 병렬 분산 처리 시스템이다. SMP 컴퓨팅 환경에서, 병렬 애플리케이션들은 동일한 처리 노드(the same processing node) 상의 다수의 프로세서들에서 실행되는 여러 작업들 (프로세스들)을 가질 수 있다. 상기 도 1의 모범 환경은 SMP 환경이지만, 본 발명은 여기에만 제한되지는 않는다. 다른 아키텍처들도 응용 가능하며, 본 발명의 일부 실시 예들은 단일 시스템 내에서 작동한다.
도 1은 복수의 호스트 시스템들 (102), (104) 및 (106)을 도시한다. 각각의 호스트 시스템 (102), (104), 및 (106)은 하나 또는 그 이상의 워크로드들(workloads) (108), (110), 및 (112)를 가지며, 각각은 하나 또는 그 이상의 수행할 작업들(jobs) (114), (116), 및 (118)을 갖는다. 각각의 호스트 시스템 (102), (104), 및 (106)은 또한 가속기 할당 정보 (119)를 가지며 이는 상기 호스트 시스템에 현재 할당된 하드웨어 가속기들을 식별한다. 호스트 시스템들 (102), (104), 및 (106)의 각각은 또한 이더넷 네트워크 또는 인피니밴드(Infiniband®)와 같은 상호접속 패브릭(interconnect fabric) (120)에 통신 가능하도록 결합된다. 다수의 하드웨어 가속기들 (122), (124), 및 (126) 또한 상기 상호접속 패브릭 (120)에 결합된다. 각각의 하드웨어 가속기 (122), (124), 및 (126)은 특별 목적의 하드웨어 컴포넌트 또는 기기(appliance)이며, 이 컴포넌트 또는 기기는 (범용 프로세서와 비교해서) 최적화된 퍼포먼스로 한정된 세트의 특정 기능들(specific functions)을 수행할 수 있다. 하나 또는 그 이상의 호스트 시스템들 (102), (104), 및 (106)은 적어도 자신의 워크로드 일부를 수행하기 위해 하나 또는 그 이상의 가속기들 (122), (124), 및 (126)을 이용한다.
도 1은 또한 할당 매니저 (130)을 가지는 정보 처리 시스템 (128)을 도시한다. 할당 매니저 (130)은 하나 또는 그 이상의 가속기들 (122), (124), 및 (126)을 호스트 시스템 (102), (104), 및 (106)에 동적 할당을 한다. 가속기들의 이러한 동적 재할당은 가속기들이 호스트들 각각에서 실행중인 서비스 등급과/작업의 퍼포먼스와 중요도에 근거해서 여러 호스트들로 할당될 수 있게 해준다. 한 호스트가 퍼포먼스 목표(performance goal)를 충족시키지 못하고 있는 높은 우선순위의 작업을 실행하고 있다면, 상기 할당 매니저는 더 낮은 우선순위의 작업들 또는 동적 재할당에 의해 영향(impact)을 받지 않는 작업들을 실행중인 다른 호스트들로부터 가속기 자원들을 동적으로 재할당해 줄 수 있다. 워크로드들에 근거하여 가속기 자원들의 균형을 맞출 수 있는 이 능력은 더 높은 총 이용도(overall utilization)를 달성할 수 있게 해준다. 또한, 가속기 자원들이 제한된(constrained) 상황들에서는 가장 중요한 작업들부터 우선 수행될 수 있다.
할당 매니저 (130)은 작업 모니터 (132), 작업 분류기 (134), 호스트 질의 모듈 (136), 가속기 할당기 (138), 및 초기 할당 구성 데이터 (140)를 포함한다. 정보 처리 시스템 (128)은 또한 작업 통계 (142), 작업 분류 정보 (144), 및 서비스 등급 정보 (146)을 포함한다. 또 다른 실시 예들에서, 할당 매니저 (130)은 하나 또는 그 이상의 호스트 시스템들 상에 상주(reside)할 수 있다.
가속기 자원들의 동적 재할당(DYNAMIC REASSIGNMENT OF ACCELERATOR RESOURCES)
상기 예시된 실시 예에서, 할당 매니저 (130)의 작업 분류기 (134)는 호스트 시스템들 (102), (104), 및 (106)에 상주하는 작업들 (114), (116), 및 (118)의 각각을 분석하고 각각의 작업을 일의 특정한 유형(a particular type of work)으로 분류하는데, 이를 그 작업의 “서비스 등급(service class)”이라 한다.
각각의 서비스 등급은 관련된 목표(goal)와 우선순위(priority)를 가진다. 예를 들면, 목표는 “5초 안에 완료하라”와 같은 목표(target)를 갖는 응답 시간(response time)일 수 있다. 이 실시 예에서, 서비스 등급의 목표와 중요도는 관리자(administrator)에 의해서 설정된다. 이 정보는 서비스 등급 정보 (146) 내에 저장된다. 작업 분류기 (134)는 (작업 이름, 이 작업을 제출한 사용자의 사용자 아이디 등과 같은) 작업의 속성들(attributes)을 분석하고 그 작업의 속성들과 서비스 등급 정보 (146)에 근거해서 그 작업이 어떤 서비스 등급에 해당하는 지를 식별한다. 또 다른 실시 예에서, 작업 분류기 (134)는 어떤 작업과 어느 서비스 등급이 관련되는 지를 결정하기 위해 그 작업과 관련된 통계 정보 (142)를 이용한다. 작업들은 또한 다른 관련 속성들에 근거해서도 서비스 등급이 분류될 수 있다.
상기 예시된 실시 예에서, 상기 할당 매니저는 초기 할당 구성 데이터 (140)에 근거해서 초기에 가속기들 (122), (124), 및 (126)을 호스트 시스템들 (102), (104), 및 (106)에 할당한다. 이 실시 예에서, 초기 할당 구성 데이터 (140)은 특정한 시스템에 어떤 가속기들이 할당되었는지(allocated)를 호스트 시스템에 통지하는 기 정의된 가속기 할당정보(accelerator allocations)이다. 도 2의 예에 도시된 바와 같이, 가속기 W (122)는 초기에 호스트 시스템 A (102)에 할당되고, 가속기 X (124)는 초기에 호스트 시스템 B (104)에 할당되며, 가속기 Y는 호스트 시스템 N (106)에 할당된다.
가속기가 할당 매니저 (130)에 의해 호스트 시스템에 할당되고 나서, 그 호스트 시스템은 자신의 워크로드 중 일부를 그 할당된 가속기에 보낼 수 있다. 이 실시 예에서, 할당 매니저의 작업 모니터 (132)는 작업 통계 (142)를 결정하기 위해 워크로드들 (108), (110), (112)의 각각에 있는 작업들 (114), (116), 및 (118)의 각각을 모니터한다. 작업 모니터 (132)는 가속기에서의 작업의 실행 시간(execution time), 작업에 의해서 사용중인 가속기의 수, 작업이 가속기에 의해서 수행되기 전에 얼마 동안 가속기의 대기행렬(queue)에 보유되고 있었는지 등과 같은 통계를 모니터한다. 이 정보는 작업 통계 정보 (142)로 저장된다. 작업 분류기 (134)가 작업을 서비스 등급으로 할당하기 위해 통계 정보를 사용하는 일 실시 예에서, 작업 분류기 (134)는 작업 통계 정보 (142)를 사용하여 서비스 등급을 작업과 연관 짓는다. 일 예에서, 작업을 완료하는데 5초가 걸리고 두 개의 가속기를 사용한다면, 작업 분류기 (134)는 이 통계와 실질적으로(substantially) 일치하는 작업과 서비스 등급을 연관 짓고 이 분류를 작업 분류 정보 (144)에 저장한다.
서비스 등급들의 우선순위는 미리 정의될 수 있으나, 반드시 미리 정의될 필요는 없다. 일 예에서, 작업 모니터 (132)는 각각의 작업이 가속기 대기행렬(accelerator queue)내에서 수행되기를 기다리며 머무르는 시간, 작업이 완료되는데 가속기에 의해 걸리는 시간, 작업이 사용하는 가속기의 수 등과 같은 파라미터들을 모니터한다. 그 다음 작업 모니터 (132)는 이 통계 정보에 근거하여 상기 작업들과 관련된 서비스 등급들에 대한 평균들을 결정한다. 그 다음 할당 매니저는 주어진 서비스 등급의 작업들과 관련된 평균들에 근거하여 그 주어진 서비스 등급에 대해서 완료 목표(completion goal), 대기시간평균(queue time average) 등을 결정할 수 있다. 일 예에서, 가속기들에 의해서 완료되어야 할 주어진 서비스 등급의 모든 작업들에 대한 평균 시간이 5초라고 하면, 이것은 그 서비스 등급의 퍼포먼스 목표로서 설정될 수 있다. 또 다른 실시 예에서, 호스트 시스템들의 각각은 할당 매니저 (130)가 연산들을 수행하도록 하는 대신에 자신의 작업들을 모니터하고 통계 정보를 기록한다. 그 다음 이 정보는 필요 시에 할당 매니저 (130)으로 보내진다. 할당 매니저 (130)은 서비스 등급과 관련된 정보 (예를 들면, 목표들과 우선순위들)를 사용하여 가속기들을 호스트 시스템들에 어떻게 동적으로 할당할 것인가를 결정한다.
상기 작업들이 서비스 등급으로 할당되고 나서 각각의 호스트 시스템이 작업들을 할당된 가속기(들)에 보내면, 작업 모니터 (132)는 상기 서비스 등급들이 자신의 목표들을 충족시키도록 각각의 작업을 모니터한다. 예를 들면, 실행중인 작업들로부터 그 서비스 등급의 각각의 작업에 대해서 통계 데이터 (예를 들면, 작업 통계 정보 (142))가 수집되고 함께 모아진다. 이 모아진 퍼포먼스 데이터(performance data)로, 상기 서비스 등급의 퍼포먼스는 그 서비스 등급에 할당된 모든 작업들의 평균으로 결정될 수 있다. 작업 모니터 (132)는 서비스 등급의 목표(들)을 식별한다. 일 예에서, 이 목표들은 가속기 대기시간, 실행시간 등과 관련된다. 모아진 통계 정보에 근거해서, 할당 매니저 (130)은 그 서비스 등급이 자신의 목표(들)를 달성하지 못하는지 여부를 결정한다. 예를 들면, 어떤 서비스 등급은 그 서비스 등급 내의 작업들이 평균 10초의 응답 시간을 가져야 한다고 명시하는 목표를 갖는다. 서비스 등급 내에 5초, 10초, 및 30초의 응답 시간을 갖는 3 개의 작업들이 있다고 한다면, 평균 응답 시간은 15초이고 그 서비스 등급은 자신의 목표를 총족시키지 못하고 있는 것이다.
이러한 정보에 근거해서, 할당 매니저 (130)은 자신의 목표 달성에 실패한 서비스 등급의 작업을 발행한 호스트 시스템에 대한 가속기 할당 구성을 동적으로 변경할 것인지 아닌지를 결정한다.
이 실시 예에서, 할당 매니저 (130)은 추가의 가속기 자원들(additional accelerator resources)이 추가될 것인지를 결정할 때 서비스 등급의 우선순위를 결정한다. 예를 들면, 각각의 서비스 등급(과 그 작업들)은 우선순위 수준(priority level)을 갖고 있으며, 서비스 등급의 우선순위 수준이 임계치보다 높으면, 할당 매니저 (130)은 가속기 자원들의 동적 재할당을 하기로 결정할 수 있다. 만일 우선순위 수준이 주어진 임계치보다 낮으면, 할당 매니저 (130)은 가속기 자원들의 동적 할당이 필요하지 않다고 결정한다. 어떤 실시 예들에서, 서비스 등급들은 우선수위 수준을 갖고 있지 않다.
추가의 가속기들을 주어진 호스트에 동적 재할당할 것인지 아닌지를 결정할 때, 할당 매니저 (130)은 이 재할당이 그 호스트에 미치는 영향을 결정한다. 할당 매니저 (130)은 서비스 등급의 작업(들)과 관련된 통계 정보 (142)를 사용하여 추가의 가속기들을 추가하는 것이 그 서비스 등급과 관련된 목표가 달성되게 할 수 있는 지를 결정한다. 일 예에서, 할당 매니저 (130)은 호스트 시스템의 하나 또는 그 이상의 서비스 등급들의 작업들을 모니터하여 서비스 등급 내의 각각의 작업에 대한 대기 시간들, 실행 시간들, 평균 시간들 등을 식별하고 이 정보를 그 작업들의 서비스 등급에 모은다(aggregate). 이 정보는 이들 통계들에 근거하여 추가의 가속기들을 추가하는 것의 영향을 평가하는데 사용된다.
예를 들면, 할당 매니저 (130)은 서비스 등급에 대해서 수집된 데이터 (즉, 가속기에 관한 작업의 사용(a job’s use of an accelerator)을 나타내는 상기 서비스 등급에서 각 작업에 대한 대기 시간들, 실행 시간들, 평균 시간들 등과 같은 작업 통계 정보 (142))를 사용하여 도 8에 도시된 모범 그래프 (800)과 같은 각각의 서비스 등급에 대한 그래프를 생성한다. 이 그래프의 x축은 호스트 시스템에 할당된 가속기들의 수를 도시하고 y축은 대기행렬에서 서비스 등급 내의 작업들이 가속기를 기다리는 시간을 나타낸다. 이 정보로, 할당 매니저 (130)은 서비스 등급에 대한 작업들이 가속기를 사용하기 위해 얼마나 대기하는 지와 호스트 시스템에 할당된 가속기들의 수와의 관계를 알 수 있다. 도 8에 도시된 바와 같은 대기 모델로부터, 할당 매니저 (130)은 가속기들의 동적 할당이 수행될 경우 서비스 등급의 평균 응답 시간에 대한 영향을 예측할 수 있다. 호스트 시스템들에 가속기들이 더 추가되면, 작업들이 대기행렬에서 기다리는 시간은 감소한다. 가속기들이 호스트 시스템에서 감소되면, 작업들이 대기행렬에서 기다리는 시간은 증가한다. 한 서비스 등급 내의 작업들이 평균적으로 대기행렬에서 기다리는 시간의 변화는 그 서비스 등급의 평균 응답 시간에 직접적으로 영향을 미친다.
또 다른 실시 예에서, 호스트 시스템은 할당 매니저 (130) 대신에 스스로 이 평가를 수행한다. 이러한 실시 예에서, 호스트 시스템이 추가의 가속기들을 할당받는 것이 이득이라고 결정하면, 호스트 시스템은 할당 매니저 (130)으로부터 추가의 가속기 자원들을 요청한다.
하나 또는 그 이상의 추가의 가속기들을 주어진 호스트 시스템에 할당하는 것이 이득이라고 상기 할당 매니저가 결정하면 (또는 상기 할당 매니저가 호스트 시스템으로부터 추가의 가속기 자원들에 대한 요청을 받으면), 할당 매니저 (130)은 추가의 가속기 자원들을 상기 주어진 호스트 시스템에 동적 재할당하는 것이 다른 호스트 시스템들에 미치는 영향을 결정한다. 일 예에서, 할당 매니저 (130) (또는 상기 주어진 호스트 시스템)이 (완료 시간을 빠르게 하기 위해서) 하나 또는 그 이상의 가속기 자원들을 동적 재할당함으로써 자신의 목표를 달성하지 못하고 있는 서비스 등급에 대한 평균 대기 시간이 감소되어야 한다고 결정하면, 할당 매니저 (130)은 이 가속기 할당이 다른 호스트 시스템들에 미치는 영향을 결정한다. 상기 주어진 호스트 시스템에 대한 추가의 가속기 자원의 재할당은 현재 다른 호스트 시스템들에 할당된 가속기 자원들이 상기 주어진 호스트 시스템으로 동적 재할당되는 결과를 가져오기 때문에, 다른 호스트 시스템들에 영향을 준다. 이 실시 예에서 할당 매니저 (130)은, 다른 시스템들로부터 하나 또는 그 이상의 가속기 자원들을 할당해제(de-allocation)하는 것이 이들의 워크로드들에 어떻게 영향을 미치는지를 하나 또는 그 이상의 서비스 등급들/호스트 시스템들과 관련된 그래프들 (800)을 분석함으로써 평가한다. 할당 매니저 (130)은 상기 그래프들을 분석하여 호스트 시스템으로부터 가속기를 할당해제하여 그 자원을 또 다른 시스템에 할당하는 것이 이 호스트 시스템들 모두에게 어떻게 영향을 미칠지를 결정한다.
호스트 시스템들이 자신들의 작업들/서비스 등급들에 대한 통계 정보를 유지하는 실시 예에서, 할당 매니저 (130)은, 호스트 질의 모듈 (136)을 통해서 다른 호스트 시스템들에 질의한다. 이 질의(query)는 다른 호스트 시스템들 각각으로부터 영향 평가(an impact estimate)를 요청한다. 호스트 시스템이 상기 할당 매니저로부터 이 질의를 받으면, 상기 호스트 시스템은 영향 평가를 수행한다. 일 예에서, 호스트 시스템들의 각각은 자신의 작업들과 관련된 자신의 통계 정보 (142)를 분석하여 하나 또는 그 이상의 가속기 자원들의 할당해제가 자신의 워크로드에 얼마나 영향을 주는지를 결정한다. 상기 통계 정보는 대기행렬 대기 시간들, 실행 시간들, 사용중인 가속기들의 수 등등을 포함한다. 각각의 호스트 시스템은 자신의 서비스 등급들의 각각과 관련된 상기 통계 정보 또는 상기 그래프를 분석하여 하나 또는 그 이상의 가속기 자원들의 할당해제가 자신의 워크로드에 어떻게 영향을 미칠 것인가를 평가할 수 있다. 그 다음 다른 호스트 시스템들은 자신들의 평가결과(estimations)를 상기 할당 매니저에게 전송한다.
각각의 평가는 상기 할당해제와 재할당이 상기 시스템에 부정적인 영향을 줄 것인가 아니면 중립적인 영향을 미칠 것인가를 표시하며, 또한 그 영향을 수량화할 수 있다. 일 예에서, 호스트 시스템에 대한 영향 평가는 대기행렬 대기 시간이 5% 또는 5초 정도만큼 증가 되고; 완료 시간은 동일하거나 혹은 주어진 양만큼 증가하며; 작업이 자신의 목표 충족에 실패할 확률이 주어진 양만큼 증가한다는 것을 나타낸다.
그 다음 할당 매니저 (130)은 추가의 가속기 자원들을 상기 주어진 호스트 시스템에 추가해서 받는 영향과 다른 호스트 시스템들로부터 가속기 자원들을 할당해제해서 받는 영향을 비교한다. 주어진 시스템에 미치는 긍정적인 영향(positive impact)이 다른 시스템들에 미치는 부정적인 영향(negative impact)보다 크면, 할당 매니저 (130)은 현재 다른 호스트 시스템들에 할당되어 있는 하나 또는 그 이상의 가속기 자원들을 주어진 호스트 시스템에 동적 재할당한다.
이 실시 예에서, 이 비교 프로세스는 여러 가지 할당 임계치들을 사용한다. 일 예에서, 할당 매니저 (130)이 주어진 호스트 시스템과 관련된 긍정적인 영향이 제1 임계치보다 높다고 (대기행렬 대기 시간이 3초보다 더 감소한다거나 작업 목표가 충족될 확률이 80%보다 높다 등과 같이) 결정하고 다른 시스템들에 미치는 부정적인 영향은 제2 임계치보다 낮다고 (대기행렬 대기 시간이 3초 증가한다와 같이) 결정하면, 할당 매니저 (130)은 상기 가속기 자원들을 주어진 호스트 시스템에 동적 재할당한다.
또한, 할당 매니저 (130)은 다른 호스트 시스템들의 영향 평가결과들을 비교하여 상기 가속기 자원들을 어느 호스트 시스템에서 가져올지를 결정한다. 일 예에서, 두 개의 다른 호스트 시스템들이 있고 제1 호스트 시스템에 대한 할당해제 영향이 제2 호스트 시스템에 대한 것보다 크면, 할당 매니저 (130)은 제2 호스트 시스템과 관련된 가속기 자원들을 선택하여 주어진 호스트 시스템에 재할당되도록 한다. 이것은 다른 호스트 시스템들에 미치는 재할당의 부정적인 영향을 감소시킨다.
일 실시 예에서, 동적 재할당할 가속기 자원들을 식별한 후에, 할당 매니저 (130)은 현재 가속기 자원들에 할당된 호스트 시스템에, 새로운 작업들을 가속기 자원들에 전송하는 것을 중지하라고 통지한다. 기존의 모든 작업들이 완료된 후에, 할당 매니저 (130)은 현재 호스트 시스템으로부터 상기 가속기 자원들을 할당해제하고, 상기 호스트 시스템은 이 할당해제를 반영하기 위해 자신의 할당 정보를 업데이트한다. 그 다음 할당 매니저 (130)은 이 가속기 자원들을 주어진 호스트 시스템에 할당하며, 이어서 이 주어진 호스트 시스템은 이 할당을 반영하기 위해 자신의 할당 정보를 업데이트한다. 그 다음 주어진 호스트 시스템은 자신의 워크로드로부터 새로 할당된 가속기 자원들에게 작업들을 발행하기 시작한다.
도 3은, 도 2에 도시된 바와 같이 원래 호스트 시스템 B (104)에 할당되었던, 가속기 X (124)가 호스트 시스템 A (102)에 동적 재할당되는 예를 도시한다. 호스트 시스템 A (102)는 이제 자신의 워크로드에서 자신의 초기 가속기인 가속기 W (122)뿐만 아니라 새로 할당된 가속기인 가속기 X (124)에도 작업들을 발행할 수 있다.
따라서, 본 발명은 가속기 자원들의 풀(pool)을 효율적이면서 효과적으로 관리한다. 이 가속기 자원들은 초기에 여러 호스트 시스템들에 할당된다. 그 다음, 퍼포먼스와 이 시스템들 각각에서 실행중인 작업들의 우선순위와 같은 요인들(factors)에 근거해서, 이 가속기 자원들은 다른 호스트 시스템들에 재할당될 수 있다.
운영 흐름 다이어그램(OPERATIONAL FLOW DIAGRAMS)
도 4, 5, 6은 본 발명의 일 실시 예에 따라서 가속기 자원들을 동적으로 관리하기 위한 프로세스를 예시하는 운영 흐름 다이어그램들이다. 도 4의 운영 흐름 다이어그램은 단계 (402)에서 시작해서 단계 (404)로 바로 넘어간다. 단계 (404)에서 할당 매니저 (130)은 초기에 가속기 자원들을 다수의 호스트 시스템들 (102), (104), 및 (106)에 할당한다. 단계 (406)에서, 할당 매니저는 각각의 호스트 시스템 (102), (104), 및 (106)의 각각의 작업 (114), (116), 및 (118)에 서비스 등급을 할당한다.
단계 (408)에서, 할당 매니저는 제1 호스트 시스템 상의 각각의 작업 (114)에 관련된 통계 정보 (142)를 수집하고 이 정보를 각각의 작업의 서비스 등급에 모은다. 단계 (410)에서, 각각의 서비스 등급에 모아진 통계 정보에 근거해서, 할당 매니저 (130)은 각각의 서비스 등급이 제1 호스트 시스템 상에서 자신의 목표를 어떻게 잘 달성하고 있는지를 결정한다. 단계 (412)에서, 할당 매니저 (130)은 최근에 가속기 자원들의 추가를 통해서 도움을 받지 않은 서비스 등급이 자신의 목표를 달성하지 못하고 있는지를 결정한다. 상기 결정이 부정적이면, 단계 (414)에서, 할당 매니저 (130)은 다음 모니터 구간 (monitoring interval)을 기다린다. 다음 모니터 구간이 시작되면, 할당 매니저 (130)은 단계 (408)로 돌아간다. 단계 (412)에서의 결정 결과가 긍정적이면, 단계 (416)에서, 할당 매니저 (130)은 자신의 목표를 달성하지 못하고 있는 가장 중요한 서비스 등급을 선택한다. 상기 논의한 바와 같이, “중요도(importance)”는 우선순위 수준과, 추가의 가속기 자원들을 추가함으로써 가장 이득을 많이 얻을 수 있는 서비스 등급 등에 의해서 측정될 수 있다. 상기 선택된 서비스 등급은 수신기 서비스 등급(receiver service class)으로 불린다. 이 지점에서, 제어흐름도(the control)는 도 5의 엔트리 포인트 A (502)로 간다.
단계 (504)에서, 할당 매니저 (130)은 상기 수신기 서비스 등급에 대한 통계 정보를 분석한다. 단계 (506)에서, 할당 매니저 (130)은, 이 분석에 근거하여, 제1 호스트 시스템에 하나 또는 그 이상의 가속기 자원들을 추가하는 것이 수신기 서비스 등급의 퍼포먼스에 미치는 영향을 결정한다. 단계 (508)에서, 할당 매니저 (130)은 이 영향이 자원들의 재할당을 정당화해줄 수 있는 충분한 가치(sufficient value)를 제공하는지 (예를 들면, 주어진 호스트 시스템의 이득이 상기 자원들이 할당해제된 시스템에 대한 손실보다 큰지)를 결정한다. 공유재산이며 본 문서에서 전체를 참조하여 포함하고 있는 미국 특허 5,473,773호는 수신기 등급 값에 대해 아주 자세하게 다룬다. 이 결정의 결과가 부정적이면, 단계 (509)에서, 할당 매니저 (130)은 자원들을 재할당하지 않는 것으로 결정하고 제어흐름도는 엔트리 포인트 B의 단계 (412)로 돌아가서 서비스 등급들 중에 자신들의 목표를 달성하지 못하고 있는 것이 있는지 결정한다.
단계 (506)의 결정 결과가 긍정적이면, 단계 (510)에서, 할당 매니저 (130)은 제2 호스트 시스템과 관련된 통계 정보 (142)를 분석한다. 단계 (512)에서, 할당 매니저 (130)은, 이 통계 정보 (142)에 근거하여, 하나 또는 그 이상의 가속기 자원들을 제2 호스트 시스템으로부터 할당해제하는 것이 제2 호스트 시스템 상의 작업들을 가진 서비스 등급들에 미치는 영향을 결정한다. 단계 (514)에서, 할당 매니저 (130)은 이 자원들을 제1 호스트 시스템에 추가해서 얻는 가치와 이 자원들을 재할당해서 제2 호스트 시스템으로부터 잃는 가치를 비교한다.
단계 (516)에서, 할당 매니저 (130)은 얻는 가치가 잃는 가치보다 큰지를 결정한다. 이 결정의 결과가 부정적이면, 제어흐름도(the control flow)는 엔트리 포인트 B의 단계 (412)로 돌아가서 다른 서비스 등급들 중에 자신들의 목표를 달성하지 못하고 있는 서비스 등급이 있는지 결정한다. 이 결정의 결과가 긍정적이면, 제어흐름도는 도 6의 엔트리 포인트 C (602)로 간다. 단계 (602)에서, 할당 매니저 (130)은 초기에 제2 호스트 시스템에 할당된 하나 또는 그 이상의 가속기 자원들에 작업들이 새로운 요청들을 발행하는 것을 중단하도록 제2 호스트 시스템에 명령한다. 단계 (606)에서, 할당 매니저 (130)은 이 가속기 자원들의 현재 일이 완료되었는지를 결정한다. 이 결정의 결과가 부정적이면, 할당 매니저 (130)은 계속해서 상기 일이 완료되었는지를 결정한다. 이 결정의 결과가 긍정적이면, 단계 (608)에서 할당 매니저는 상기 하나 또는 그 이상의 가속기 자원들을 제1 호스트 시스템에 동적 재할당한다. 단계 (610)에서, 제1 호스트 시스템 상의 작업들은 초기에 할당된 가속기 자원들과 새로 할당된 가속기 자원들을 둘 다 사용한다. 제어흐름도는 엔트리 포인트 D의 단계 (414)로 돌아가서 다음 모니터 구간을 기다린다.
정보 처리 시스템(INFORMATION PROCESSING SYSTEM)
도 7은 본 발명의 실시 예들에서 사용할 모범적인 정보 처리 시스템을 예시하는 블록 다이어그램이다. 적합하게 구성된 처리 시스템은 어느 것이든 본 발명의 또 다른 실시 예들의 정보 처리 시스템으로서 (예를 들면, 퍼스널 컴퓨터, 워크스테이션 등등) 유사하게 사용될 수 있다. 상기 정보 처리 시스템은 컴퓨터 (702)를 포함한다.
컴퓨터 (702)는 주 메모리 (706)에 시스템 버스 (712)를 통해서 통신 가능하도록 결합된 하나 또는 그 이상의 프로세서들 (704)를 포함한다.
컴퓨터 (702)는 또한 대용량 기억장치 인터페이스 (708)과 네트워크 어댑터 하드웨어 (710)을 포함한다. 대용량 기억장치 인터페이스 (708)은 대용량 기억장치들 (714)를 정보 처리 시스템에 연결하는데 사용된다. 데이터 기억장치의 한 구체적인 유형은 광학 드라이브 디스크이며, 이는 CD (716) 또는 DVD와 같은 컴퓨터 판독가능 기억장치 매체에 데이터를 저장하고 그곳에서 데이터를 읽어오는데 사용된다. 데이터 기억장치의 또 다른 유형은 예를 들어, JFS 유형의 파일 시스템 운영을 지원하도록 구성된 하드 디스크이다. 이 실시 예에서, 주 메모리 (706)은 랜덤 액세스 메모리 (“RAM”)와 같은 휘발성 메모리이다. 이 실시 예의 주 메모리 (706)은 할당 매니저, 할당 매니저의 컴포넌트들, 작업 통계, 작업 분류 정보, 및 서비스 등급 정보를 포함한다.
네트워크 어댑터 하드웨어 (710)은 상호접속 패브릭 구현 데이터 통신(interconnect fabric implementing data communications)에 대한 인터페이스를 다른 컴퓨터들에 제공한다. 본 발명의 실시 예들은 오늘날의 아날로그 및/또는 디지털 기술들을 포함하는 어떤 데이터 통신 접속과도 또는 미래의 네트워킹 메커니즘을 통해서도 일하도록 구성될 수 있다.
본 발명의 모범적인 실시 예들이 완전히 기능적인 컴퓨터 시스템의 맥락에서 설명되었지만, 또 다른 실시 예들도 CD와 그 균등물들, 플로피 디스크, 또는 다른 형태의 기록가능 매체를 통해서, 또는 어느 유형이든 전자 전송 메커니즘(electronic transmission mechanism)을 통해서도 프로그램 제품으로서 보급될 수 있다.
본 발명의 바람직한 실시 예들로서 현재 고려되는 것들에 대해서 예시하고 설명하였지만, 이 기술 분야에서 통상의 지식을 가진 자는, 본 발명의 진정한 범위를 벗어나지 않고 여러 가지 다른 수정들이 이루어질 수 있으며, 균등물들로 대체될 수 있다는 것을 이해할 수 있을 것이다.

Claims (15)

  1. 가속기 자원들을 동적으로 관리하기 위한 방법에 있어서, 상기 컴퓨터 구현 방법은:
    초기에 제1 세트의 하드웨어 가속기 자원들을 제1 정보 처리 시스템에 그리고 제2 세트의 하드웨어 가속기 자원들을 제2 정보 처리 시스템에 할당하는 단계;
    적어도 하나의 프로세서에 의해서 상기 제1 및 제2 정보 처리 시스템들 상에서 실행중인 복수의 작업들을 모니터하는 단계; 및
    상기 작업들 중 하나가 목표 충족에 실패할 경우, 상기 제2 세트의 하드웨어 가속기 자원들 내의 적어도 하나의 하드웨어 가속기 자원을 상기 제2 정보 처리 시스템으로부터 상기 제1 정보 처리 시스템으로 동적 재할당을 하는 단계를 포함하는
    방법.
  2. 제1항에 있어서, 상기 모니터하는 단계는 상기 작업들과 관련된 런타임 통계 정보를 분석하는 단계를 포함하는
    방법.
  3. 제1항 또는 제2항에 있어서, 상기 동적 재할당을 하는 단계는 상기 하나의 작업과 관련된 우선순위 수준이 임계치보다 높을 때 수행되는
    방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 모니터하는 단계는:
    상기 작업들과 관련된 런타임 통계 정보를 분석하는 하부 단계(sub-step); 및
    하나 또는 그 이상의 하드웨어 가속기 자원들을 제1 정보 처리 시스템에 재할당을 하는 것이 상기 하나의 작업이 상기 목표를 충족시킬 가능성을 높일 것인지를 결정하는 하부 단계를 포함하는
    방법.
  5. 제4항에 있어서, 상기 동적 재할당을 하는 단계는 상기 가능성이 임계치보다 높으면 수행되는
    방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 모니터하는 단계는:
    하나 또는 그 이상의 하드웨어 가속기 자원들이 상기 제1 정보 처리 시스템에 재할당되면 상기 제1 정보 처리 시스템에 의해서 얻어질 가치(value)와 상기 하나 또는 그 이상의 하드웨어 가속기 자원들이 상기 제1 정보 처리 시스템에 재할당되면 상기 제2 정보 처리 시스템에 의해서 잃게 될 가치를 비교하는 하부 단계를 포함하되;
    상기 동적 재할당을 하는 단계는 상기 제1 정보 처리 시스템에 의해서 얻어질 가치가 제2 정보 처리 시스템에 의해서 잃게 될 가치보다 높으면 수행되는
    방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 동적 재할당을 하는 단계는:
    상기 적어도 하나의 하드웨어 가속기 자원에 새로운 작업들을 발행하는 것(issuing)을 중단하도록 상기 제2 정보 처리 시스템에 명령하는 하부 단계; 및
    상기 제2 정보 처리 시스템에 의해서 상기 적어도 하나의 하드웨어 가속기 자원들에 발행된 모든 작업들이 완료된 때를 결정하는 하부 단계를 포함하는 방법.
  8. 가속기 자원들을 동적으로 관리하기 위한 정보 처리 시스템에 있어서, 상기 정보 처리 시스템은:
    메모리;
    상기 메모리에 통신 가능하도록 결합된 프로세서; 및
    상기 메모리와 프로세서에 통신 가능하도록 결합된 할당 매니저를 포함하되,
    상기 할당 매니저는:
    초기에 제1 세트의 하드웨어 가속기 자원들은 제1 정보 처리 시스템에 그리고 제2 세트의 하드웨어 가속기 자원들을 제2 정보 처리 시스템에 할당하고;
    상기 제1 및 제2 정보 처리 시스템들 상에서 실행중인 복수의 작업들을 모니터하며; 그리고
    상기 작업들 중 하나가 목표 충족에 실패할 경우, 상기 제1 세트의 하드웨어 가속기 자원들 내의 적어도 하나의 하드웨어 가속기 자원을 상기 제2 정보 처리 시스템으로부터 상기 제1 정보 처리 시스템에 동적 재할당을 하도록 구성된
    정보 처리 시스템.
  9. 제8항에 있어서, 상기 복수의 작업들을 모니터하는 것은 상기 작업들과 관련된 런타임 통계 정보를 분석하는 것을 포함하는
    정보 처리 시스템.
  10. 제8항 또는 제9항에 있어서, 상기 동적 재할당을 하는 것은 상기 하나의 작업과 관련된 우선순위 수준이 임계치보다 높을 때 수행되는
    정보 처리 시스템.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서, 상기 복수의 작업들을 모니터하는 것은:
    상기 작업들과 관련된 런타임 통계 정보를 분석하는 것; 및
    하나 또는 그 이상의 하드웨어 가속기 자원들을 상기 제1 정보 처리 시스템에 재할당을 하는 것이 상기 하나의 작업이 상기 목표를 충족시킬 가능성을 높이는지를 결정하는 것을 포함하는
    정보 처리 시스템.
  12. 제11항에 있어서, 상기 동적 재할당을 하는 것은 상기 가능성이 임계치보다 높으면 수행되는
    정보 처리 시스템.
  13. 제8항 내지 제12항 중 어느 한 항에 있어서, 상기 복수의 작업들을 모니터하는 것은:
    하나 또는 그 이상의 하드웨어 가속기 자원들이 상기 제1 정보 처리 시스템에 재할당되면 상기 제1 정보 처리 시스템에 의해서 얻어질 가치와 상기 하나 또는 그 이상의 하드웨어 가속기 자원들이 상기 제1 정보 처리 시스템에 재할당되면 상기 제2 정보 처리 시스템에 의해서 잃게 될 가치를 비교하는 것을 포함하되,
    상기 동적 재할당을 하는 것은 상기 제1 정보 처리 시스템에 의해서 얻어질 가치가 상기 제2 정보 처리 시스템에 의해서 잃게 될 가치보다 높으면 수행되는
    정보 처리 시스템.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서, 상기 동적 재할당을 하는 것은:
    새로운 작업들을 상기 적어도 하나의 하드웨어 가속기 자원에 발행하는 것을 중단하도록 상기 제2 정보 처리 시스템에 명령하는 것; 및
    상기 제2 정보 처리 시스템에 의해서 상기 적어도 하나의 하드웨어 가속기 자원들에 발행된 모든 작업들이 완료된 때를 결정하는 것을 포함하는
    정보 처리 시스템.
  15. 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램은 컴퓨터 판독가능 기억장치 매체(a computer readable storage medium) 상에 저장되며, 상기 매체는 컴퓨터 시스템에 로드되어 실행될 때 상기 컴퓨터 시스템이 제1항 내지 제7항 중 어느 한 항의 방법의 모든 단계들을 수행하게 하는 프로그램 코드를 포함하는
    컴퓨터 프로그램.
KR1020127010728A 2009-12-24 2010-12-14 가속기를 이용한 워크로드의 목표 지향 퍼포먼스 관리 KR20120124386A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/647,272 US8869160B2 (en) 2009-12-24 2009-12-24 Goal oriented performance management of workload utilizing accelerators
US12/647,272 2009-12-24
PCT/EP2010/069559 WO2011076608A2 (en) 2009-12-24 2010-12-14 Goal oriented performance management of workload utilizing accelerators

Publications (1)

Publication Number Publication Date
KR20120124386A true KR20120124386A (ko) 2012-11-13

Family

ID=44189095

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127010728A KR20120124386A (ko) 2009-12-24 2010-12-14 가속기를 이용한 워크로드의 목표 지향 퍼포먼스 관리

Country Status (7)

Country Link
US (1) US8869160B2 (ko)
JP (1) JP5744909B2 (ko)
KR (1) KR20120124386A (ko)
CN (1) CN102667724B (ko)
CA (1) CA2780231C (ko)
TW (1) TW201140451A (ko)
WO (1) WO2011076608A2 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2442228A1 (en) * 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
WO2012124125A1 (ja) * 2011-03-17 2012-09-20 富士通株式会社 システムおよびスケジューリング方法
US9448846B2 (en) 2011-12-13 2016-09-20 International Business Machines Corporation Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US9626216B2 (en) * 2012-05-09 2017-04-18 Nvidia Corporation Graphics processing unit sharing between many applications
US20130339978A1 (en) * 2012-06-13 2013-12-19 Advanced Micro Devices, Inc. Load balancing for heterogeneous systems
US9632822B2 (en) * 2012-09-21 2017-04-25 Htc Corporation Multi-core device and multi-thread scheduling method thereof
CN103888279A (zh) * 2012-12-20 2014-06-25 阿里巴巴集团控股有限公司 基于反馈控制循环的资源池动态管理的方法和系统
US9424159B2 (en) * 2013-10-10 2016-08-23 International Business Machines Corporation Performance measurement of hardware accelerators
US20170300359A1 (en) * 2014-10-30 2017-10-19 Hewlett Packard Enterprise Development Lp Policy based workload scaler
US9876713B2 (en) 2014-12-31 2018-01-23 International Business Machines Corporation Cross-domain service request placement in a software defined environment (SDE)
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US10019270B2 (en) * 2015-08-19 2018-07-10 International Business Machines Corporation Enhanced computer performance based on selectable device capabilities
CN105159753B (zh) 2015-09-25 2018-09-28 华为技术有限公司 加速器虚拟化的方法、装置及集中资源管理器
CN105824706B (zh) * 2015-12-31 2020-11-06 华为技术有限公司 一种配置加速器的方法和装置
US20210004658A1 (en) * 2016-03-31 2021-01-07 SolidRun Ltd. System and method for provisioning of artificial intelligence accelerator (aia) resources
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10355945B2 (en) 2016-09-21 2019-07-16 International Business Machines Corporation Service level management of a workload defined environment
US10248466B2 (en) * 2016-09-21 2019-04-02 International Business Machines Corporation Managing workload distribution among processing systems based on field programmable devices
US10572310B2 (en) 2016-09-21 2020-02-25 International Business Machines Corporation Deploying and utilizing a software library and corresponding field programmable device binary
US10599479B2 (en) 2016-09-21 2020-03-24 International Business Machines Corporation Resource sharing management of a field programmable device
US10417012B2 (en) * 2016-09-21 2019-09-17 International Business Machines Corporation Reprogramming a field programmable device on-demand
EP3523723B8 (en) * 2016-10-05 2021-07-28 ParTec AG High performance computing system and method
US11487585B1 (en) * 2016-12-14 2022-11-01 Xilinx, Inc. Dynamic load balancing and configuration management for heterogeneous compute accelerators in a data center
WO2018232746A1 (zh) * 2017-06-23 2018-12-27 上海诺基亚贝尔股份有限公司 用于边缘云中的资源管理的方法和装置
US10585717B2 (en) * 2017-08-24 2020-03-10 International Business Machines Corporation Hybrid acceleration in a processing environment
CN111656323A (zh) * 2018-01-23 2020-09-11 派泰克集群能力中心有限公司 应用运行时确定的异构计算资源的动态分配
US11275991B2 (en) * 2018-04-04 2022-03-15 Nokia Technologies Oy Coordinated heterogeneous processing of training data for deep neural networks
US11144357B2 (en) * 2018-05-25 2021-10-12 International Business Machines Corporation Selecting hardware accelerators based on score
US10977098B2 (en) 2018-08-14 2021-04-13 International Business Machines Corporation Automatically deploying hardware accelerators based on requests from users
JP7139819B2 (ja) * 2018-09-20 2022-09-21 富士フイルムビジネスイノベーション株式会社 情報処理装置、画像形成装置及びプログラム
US11030012B2 (en) * 2018-09-28 2021-06-08 Intel Corporation Methods and apparatus for allocating a workload to an accelerator using machine learning
WO2020086053A1 (en) * 2018-10-22 2020-04-30 Mentor Graphics Corporation Dynamic allocation of computing resources for electronic design automation operations
US11216314B2 (en) * 2018-11-02 2022-01-04 EMC IP Holding Company LLC Dynamic reallocation of resources in accelerator-as-a-service computing environment
US10892944B2 (en) 2018-11-29 2021-01-12 International Business Machines Corporation Selecting and using a cloud-based hardware accelerator
US11275622B2 (en) * 2018-11-29 2022-03-15 International Business Machines Corporation Utilizing accelerators to accelerate data analytic workloads in disaggregated systems
CN111459650B (zh) * 2019-01-21 2023-08-18 伊姆西Ip控股有限责任公司 管理专用处理资源的存储器的方法、设备和介质
US11681598B2 (en) * 2020-04-16 2023-06-20 Texas Instruments Incorporated Method and apparatus to facilitate low latency fault mitigation, QoS management and debug of a processing pipeline
CN114585057A (zh) * 2022-04-15 2022-06-03 南京星思半导体有限公司 小区搜索方法、装置、设备、存储介质、程序产品及终端

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473773A (en) * 1994-04-04 1995-12-05 International Business Machines Corporation Apparatus and method for managing a data processing system workload according to two or more distinct processing goals
US5675739A (en) * 1995-02-03 1997-10-07 International Business Machines Corporation Apparatus and method for managing a distributed data processing system workload according to a plurality of distinct processing goal types
US5974462A (en) * 1997-03-28 1999-10-26 International Business Machines Corporation Method and apparatus for controlling the number of servers in a client/server system
US6192389B1 (en) * 1997-03-28 2001-02-20 International Business Machines Corporation Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system
US6230183B1 (en) * 1998-03-11 2001-05-08 International Business Machines Corporation Method and apparatus for controlling the number of servers in a multisystem cluster
US6470478B1 (en) * 1999-06-29 2002-10-22 International Business Machines Corporation Method and system for counting events within a simulation model
KR100727901B1 (ko) * 1999-07-10 2007-06-14 삼성전자주식회사 마이크로 스케듈링 방법 및 운영체제 커널 장치
US7051188B1 (en) * 1999-09-28 2006-05-23 International Business Machines Corporation Dynamically redistributing shareable resources of a computing environment to manage the workload of that environment
ATE283512T1 (de) * 1999-09-28 2004-12-15 Ibm Arbeitsbelastungsverwaltung in einer rechnerumgebung
WO2001037079A2 (en) 1999-11-18 2001-05-25 Quikcat.Com, Inc. Method and apparatus for controlling server networks
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US7451070B2 (en) * 2005-04-08 2008-11-11 International Business Machines Optimal bus operation performance in a logic simulation environment
US20070055771A1 (en) * 2005-07-25 2007-03-08 International Business Machines Corporation Controlling workload of a computer system through only external monitoring
JP2007108944A (ja) * 2005-10-12 2007-04-26 Renesas Technology Corp 半導体集積回路装置
US7490223B2 (en) * 2005-10-31 2009-02-10 Sun Microsystems, Inc. Dynamic resource allocation among master processors that require service from a coprocessor
US8713574B2 (en) * 2006-06-05 2014-04-29 International Business Machines Corporation Soft co-processors to provide a software service function off-load architecture in a multi-core processing environment
JP4936517B2 (ja) * 2006-06-06 2012-05-23 学校法人早稲田大学 ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
JP5243822B2 (ja) * 2007-03-28 2013-07-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想化されたデータ処理環境におけるワークロード管理
WO2009029496A1 (en) * 2007-08-24 2009-03-05 Yiping Ding Virtualization planning system
JP2011529210A (ja) * 2008-12-03 2011-12-01 株式会社日立製作所 複数のオペレーティングシステムを実行するマルチプロセッササーバのプロセッサリソースを管理する技術

Also Published As

Publication number Publication date
CN102667724B (zh) 2016-07-06
CA2780231A1 (en) 2011-06-30
CA2780231C (en) 2018-05-29
WO2011076608A3 (en) 2011-09-22
US20110161972A1 (en) 2011-06-30
WO2011076608A2 (en) 2011-06-30
TW201140451A (en) 2011-11-16
JP5744909B2 (ja) 2015-07-08
CN102667724A (zh) 2012-09-12
JP2013515991A (ja) 2013-05-09
US8869160B2 (en) 2014-10-21

Similar Documents

Publication Publication Date Title
CA2780231C (en) Goal oriented performance management of workload utilizing accelerators
US10733026B2 (en) Automated workflow selection
EP3507692B1 (en) Resource oversubscription based on utilization patterns in computing systems
JP3823098B2 (ja) グリッド計算ワークロードをネットワーク・ワークステーションに割り当てるためのシステムおよび方法
US8881165B2 (en) Methods, computer systems, and physical computer storage media for managing resources of a storage server
JP5068099B2 (ja) 個々のユーザの資源使用量およびその使用量の追跡に基づいた公平な共用分のスケジューリングを行う方法およびシステム
US7979857B2 (en) Method and apparatus for dynamic memory resource management
US10191771B2 (en) System and method for resource management
JP5853624B2 (ja) ワークロード・メタデータの生成、分析、及び利用のための方法、プログラム、及びシステム
JP6241300B2 (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
US10241836B2 (en) Resource management in a virtualized computing environment
US7778275B2 (en) Method for dynamically allocating network adapters to communication channels for a multi-partition computer system
US10884468B2 (en) Power allocation among computing devices
US10048987B1 (en) Methods and apparatus for a resource sharing platform having resource quality estimation
US7752623B1 (en) System and method for allocating resources by examining a system characteristic
WO2012127641A1 (ja) 情報処理システム
US8819239B2 (en) Distributed resource management systems and methods for resource management thereof
US8458719B2 (en) Storage management in a data processing system
US11074111B2 (en) Quality of service scheduling with workload profiles
Yao et al. OpERA: opportunistic and efficient resource allocation in Hadoop YARN by harnessing idle resources
Divya et al. Workload characteristics and resource aware Hadoop scheduler
CN111338782A (zh) 面向共享式突发数据缓存的基于竞争感知的节点分配方法
WO2023039711A1 (en) Efficiency engine in a cloud computing architecture
Yang et al. New YARN Non-Exclusive Resource Management Scheme through Opportunistic Idle Resource Assignment
JP2019071026A (ja) 計算機およびcpuコア割当方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid