CN103971316A - 计算机系统及其绘图处理方法 - Google Patents

计算机系统及其绘图处理方法 Download PDF

Info

Publication number
CN103971316A
CN103971316A CN201310053177.3A CN201310053177A CN103971316A CN 103971316 A CN103971316 A CN 103971316A CN 201310053177 A CN201310053177 A CN 201310053177A CN 103971316 A CN103971316 A CN 103971316A
Authority
CN
China
Prior art keywords
servomechanism
virtual machine
processing
request
graphics processing
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201310053177.3A
Other languages
English (en)
Other versions
CN103971316B (zh
Inventor
郭芳甄
陈志明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wistron Corp
Original Assignee
Wistron Corp
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 Wistron Corp filed Critical Wistron Corp
Publication of CN103971316A publication Critical patent/CN103971316A/zh
Application granted granted Critical
Publication of CN103971316B publication Critical patent/CN103971316B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Numerical Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明披露了一种计算机系统及其绘图处理方法。该计算机系统包括实体机器以及绘图处理丛集。实体机器包括至少一个虚拟机器以及虚拟机器管理器。绘图处理丛集包括多个绘图处理伺服器,各个绘图处理伺服器包括多个绘图处理单元。其中,多个绘图处理伺服器的其中一个主要绘图处理伺服器接收从虚拟机器管理器以及虚拟机器所提供的绘图处理请求,分配此绘图处理请求至多个绘图处理伺服器的次要绘图处理伺服器。次要绘图处理伺服器依据绘图处理请求产生绘图处理结果,并通过虚拟机器管理器将绘图处理结果传送至虚拟机器。

Description

计算机系统及其绘图处理方法
技术领域
本发明涉及一种计算机网络技术,特别是涉及一种具备绘图处理丛集的计算机系统及其绘图处理方法。
背景技术
随着移动网络的普及以及各种网络应用的多样化发展,各种云端网络、数据中心所使用的伺服器群组无可避免地必须要提高其效能,才能消化使用者的大量需求。网络应用的服务种类大致上可划分为处理运算服务、数据存取服务以及各种常用服务。
为避免硬件设备建设过多而造成的成本浪费及无谓地电能消耗,云端网络的硬件设备厂商希望能够按照用户的云端计算量来动态地调整各个硬件资源的供给,让这些伺服器可自行分散服务的负载。但是,由于用户对于云端服务的画面品质以及绘图处理的需求逐渐增加,且每台实体机器(physicalmachine;PM)中的绘图运算程序只能够通过实体机器内建的绘图处理单元(graphics processing unit;GPU)进行存取与运算,使得与绘图处理相关的负载无法传递给其他伺服器执行负载平衡。
因此,若要将每台实体机器的绘图处理功能进行提升,仅能持续添购新的机器硬件,并利用高效能、多颗并行运算的GPU来实现。并且,并非每种服务皆需要高效能GPU,使得闲置GPU所耗费的电能耗损十分可观,因此在绘图运算的服务上便会耗去厂商很大的营运成本。
因此,如何通过网络来分担各个实体机器中GPU的运算负载,便是许多厂商希望解决的问题。
发明内容
本发明提供一种计算机系统及其绘图处理方法,此计算机系统让虚拟机器的绘图处理服务不再受限于本地实体机器的硬件设备,因此可降低实体机器的硬件限制,也不需要修改虚拟机器的程序编码,即可针对计算机系统的绘图处理服务需求来扩充硬件设备而使成本降低。
本发明提出一种计算机系统,其包括至少一实体机器以及绘图处理丛集。至少一个实体机器包括至少一个虚拟机器以及虚拟机器管理器。绘图处理丛集则包括多个绘图处理伺服器,各个绘图处理伺服器包括多个绘图处理单元。其中,这些绘图处理伺服器当中的其中一个主要绘图处理伺服器接收从所述虚拟机器管理器以及所述虚拟机器所提供的绘图处理请求,分配所述绘图处理请求至这些绘图处理伺服器的其中一个次要绘图处理伺服器。所述次要绘图处理伺服器依据所述绘图处理请求而产生绘图处理结果,并通过所述虚拟机器管理器以将所述绘图处理结果传送至所述虚拟机器。
在本发明的一实施例中,上述的主要绘图处理伺服器包括丛集负载平衡器。丛集负载平衡器持续更新负载度量表,并依据所述负载度量表来分配所述绘图程序请求至所述绘图处理伺服器中的绘图处理单元。
在本发明的一实施例中,上述的每个绘图处理伺服器分别包括代理器,所述代理器接收来自所述丛集负载平衡器的绘图处理请求,并分派所述绘图处理请求至对应的绘图处理单元。当产生所述绘图处理结果时,所述代理器通过所述虚拟机器管理器将所述绘图处理结果传送至所述虚拟机器。
在本发明的一实施例中,上述的绘图处理伺服器分别包括多个虚拟绘图处理程序。每个虚拟绘图处理程序分别对应每个绘图处理单元。每个虚拟绘图处理程序接收并记录来自所述代理器的绘图处理请求,并通过薄型管理程序传递给对应的绘图处理单元以执行运算,从而产生所述绘图处理结果。
从另一角度来看,本发明提出一种计算机系统的绘图处理方法。计算机系统包括具有至少一虚拟机器以及虚拟机器管理器的至少一实体机器以及绘图处理丛集。所述绘图处理方法包括下列步骤。接收从虚拟机器管理器以及所述虚拟机器所提供的绘图处理请求。分配所述绘图处理请求至绘图处理丛集中多个绘图处理伺服器的其中一个绘图处理伺服器。次要绘图处理伺服器依据所述绘图处理请求而产生绘图处理结果。以及,通过所述虚拟机器管理器将所述绘图处理结果传送至所述虚拟机器。
基于上述,本发明实施例揭示的计算机系统将会修改实体机器中虚拟机器管理器的程序流程,让虚拟机器的绘图处理请求不会直接利用本地实体机器的GPU,而是可以选择性地通过网络上的绘图处理丛集来执行此绘图处理请求。藉此,可让虚拟机器的绘图处理服务不再受限于本地实体机器的硬件设备,降低实体机器的硬件限制,虚拟机器的程序编码也不需要修改,即可针对计算机系统的绘图处理服务需求来扩充硬件设备而使成本降低。
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并结合附图详细说明如下。
附图说明
图1是一种实体机器的示意图。
图2是依照本发明实施例说明一种计算机系统200的示意图。
图3是图2的各个绘图处理伺服器250-1~250-3的示意图。
图4是依照本发明实施例说明一种计算机系统200的绘图处理方法的流程图。
附图符号说明
100、210:实体机器/PM
110、230:虚拟机器/VM
120、240:虚拟机器管理器/VMM
130、320:操作系统
140、330:绘图驱动程序
150:绘图处理单元/GPU
200:计算机系统
220:绘图处理丛集
250-1~250-3、250-i:绘图处理伺服器
260-1~260-3、260-i:绘图处理单元/GPU
310-i:虚拟绘图处理程序/VGPU
340:代理器
S410~S440:步骤
具体实施方式
现今用来提供网络用户服务的计算机系统皆是以实体机器(physicalmachine;PM)以及虚拟机器(virtual machine;VM)作为单位来进行建构,每个网络用户的软件应用皆会与其中一个虚拟机器相互通讯并执行相关服务。图1是一种实体机器100的示意图。实体机器100可利用桌上型计算机或伺服器来实现。实体机器100也可称为虚拟机器伺服器,每个实体机器100中可以执行一个以上的虚拟机器110。实体机器PM还包括虚拟机器管理器(VMM)120、操作系统130、绘图驱动程序140以及多个绘图处理单元(graphics processing unit;GPU)150。部分实施例的虚拟机器管理器120可以是一种软件程序而执行在操作系统130中。另外,部分实施例的虚拟机器管理器120可从硬件中直接存取。
一般而言,虚拟机器110若需要硬件资源来进行运算或数据存取时,便会告知虚拟机器管理器120。虚拟机器管理器120也可称为管理程序(hypervisor)。虚拟机器管理器120将管理本地实体机器100中的硬件资源适度分配给所需的虚拟机器110。例如,通过操作系统130(或硬件直接存取)以及绘图驱动程序140而将本地实体机器100中的一个至多个实体GPU150分配给所需的虚拟机器110,使虚拟机器110能够直接利用所分配到的实体GPU150进行绘图处理服务。但如此一来,每个实体机器100便需配置足够的实体GPU150才能执行需要绘图处理服务的虚拟机器110。
于此,本发明实施例的虚拟机器110可通过网络及调整后的虚拟机器管理器而将绘图处理请求发送到绘图处理丛集来集中处理,此绘图处理丛集可分配运作较佳的绘图处理伺服器来执行虚拟机器110所提供的绘图处理请求及相关指令,并在执行完后回传绘图处理结果给对应的虚拟机器110,以完成绘图处理。因此,便不需要在每个实体机器100中皆设置多个高效能的GPU150。集中处理绘图运算服务的绘图处理丛集还可以通过各种方式来节省电源,从而达到分散伺服器的负载、节省电能消耗、降低实体机器在执行虚拟机器的硬件限制,并可让专门进行处理绘图处理的硬件设备能达到最佳效能。以下列举符合本发明精神的实施例以作为本发明的佐证。
图2是依照本发明实施例说明一种计算机系统200的示意图。计算机系统200包括至少一个实体机器210以及绘图处理丛集220。每个实体机器210包括至少一个虚拟机器230以及虚拟机器管理器240。虚拟机器管理器240用来管理位在相同实体机器210中的一个至多个虚拟机器230。
一般而言,虚拟机器230的硬件资源会由虚拟机器管理器240提供,虚拟机器管理器240内的应用程序界面(application programming interface;API)预设会去寻找本地实体机器的GPU来执行运算。本实施例则会修改实体机器的虚拟机器管理器240并在虚拟机器230内增加一个段落虚拟感知驱动程序(para virtualization aware graphics driver)以使API不会直接去寻找本地实体机器的GPU,而是会将绘图处理请求给予虚拟机器管理器240,让虚拟机器管理器240决定采用本地实体机器的GPU还是远端的绘图处理丛集220来执行上述请求。换句话说,本实施例的虚拟机器管理器240还可通过网络与绘图处理丛集220进行通讯及传递绘图处理请求。
绘图处理丛集220包括多个绘图处理伺服器250-1~250-3。各个绘图处理伺服器250-1~250-3分别包括多个绘图处理单元260-1~260-3。本发明实施例的每个绘图处理伺服器250-1~250-3例如可具备最大值为16个的绘图处理单元,而图2中的绘图处理单元260-1~260-3数量仅供举例示意之用。绘图处理丛集220是这些绘图处理伺服器250-1~250-3的集合,本实施例的绘图处理伺服器250-1~250-3的操作系统(或由硬件直接存取)会执行一种称为负载平衡器(load balancer)的程序。这些负载平衡器可以自行相互通讯,可采用多种判断方法来选择其中一个绘图处理伺服器(例如是绘图处理伺服器250-1)作为主要绘图处理伺服器,且其中的负载平衡器称为丛集负载平衡器,或者可以是执行于主要绘图处理伺服器的操作系统中的负载平衡程序。其他并未被选择的绘图处理伺服器(例如是绘图处理伺服器250-2、250-3)则做为次要绘图处理伺服器,且其中的负载平衡器称为次要负载平衡器。上述的判断方法可以基于各个绘图处理伺服器250-1~250-3的处理效能、网络地址…等讯息来判断何者为主要绘图处理伺服器。于部分实施例中,也可以预设其中一个绘图处理伺服器作为主要绘图处理伺服器,并执行丛集负载平衡器的功能,其他的绘图处理伺服器则为次要绘图处理伺服器,并执行次要负载平衡器的功能。
在此举出一适例以详细说明本发明实施例。当某个虚拟机器230需要进行绘图处理时,便会将绘图处理请求传送给本地实体机器的虚拟机器管理器240以希望获得硬件资源。虚拟机器管理器240在接收虚拟机器230的绘图处理请求时,便会计算本地实体机器210中对于绘图处理资源的第一负载程度,并且会通过网络从主要绘图处理伺服器250-1取得绘图处理丛集220中所有绘图处理伺服器250-1~250-3的平均负载程度,藉以判断是否直接在本地实体机器210中执行此绘图处理请求、或是通过远端网络的绘图处理丛集220来执行此绘图处理请求较佳。
若本地实体装置210具备足够的绘图处理资源,或是远端绘图处理丛集220的平均负载程度过高而无法承受其他的请求的话,VMM240便可直接采用实体装置210的资源来执行此绘图处理请求即可。然而,若本地实体装置210并不具备绘图处理资源时,VMM240便需要通过网络来利用绘图处理丛集220进行绘图处理。于部分实施例中,VMM240也可以在接收绘图处理请求后便直接发送给绘图处理丛集220,不应仅限制于上述揭示流程。
绘图处理丛集220对于外部网络设备而言具备统一的网络地址,使得每个虚拟机器230以及虚拟机器管理器240能够将其绘图处理请求统一发送给绘图处理丛集220中的主要绘图处理伺服器250-1。当虚拟机器管理器240判断由绘图处理丛集220执行绘图处理请求后,便将绘图处理请求通过网络传输至绘图处理丛集220中统一的网络地址。此网络地址主要由主要绘图处理伺服器250-1所掌管。主要绘图处理伺服器250-1的丛集负载平衡器在接收到绘图处理请求后,便会依照绘图处理丛集220内各个绘图处理伺服器250-1~250-3的负载程度来将此绘图处理请求分配给能够处理此请求的绘图处理伺服器,例如负载较轻的伺服器、或是具备特定规格的伺服器。虚拟机器管理器240还可通过网络得知主要绘图处理伺服器的分配情况,并利用转址设定的方式来记录正在执行该绘图处理请求的绘图处理伺服器的网络地址及实际执行此绘图处理请求的绘图处理单元的编号,使得虚拟机器230及VMM240能够通过网络与此绘图处理伺服器直接取得绘图处理后的结果,而不需要再次通过主要绘图处理伺服器250-1。也就是说,处理此请求的次要绘图处理伺服器可依据绘图处理请求来产生绘图处理结果,并通过虚拟机器管理器240将绘图处理结果传送至发出此请求的虚拟机器230中。
于本实施例中,主要绘图处理伺服器250-1的丛集负载平衡器将会持续更新其内建的负载度量表,从而持续得知各个绘图处理伺服器250-1~250-3的负载程度变化。例如,丛集负载平衡器会持续发送心跳信号给各个绘图处理伺服器250-1~250-3中的负载平衡器(或称为负载平衡程序),以监控这个绘图处理伺服器250-1~250-3的运作情况,各个绘图处理伺服器250-1~250-3的GPU260-1~260-3也会藉此回报所在的绘图处理伺服器250-1~250-3的接受绘图处理请求(或称为工作请求)、完成工作请求、负载程度…等情况的回报,让丛集负载平衡器能够藉以更新其负载度量表。藉此,丛集负载平衡器便可依据此负载度量表来分配绘图程序请求至绘图处理伺服器250-1~250-3中的多个绘图处理单元260-1~260-3。详细来说,负载度量表可以包括下述字段的数据:绘图处理伺服器250-1~250-3的设定数据、绘图处理伺服器250-1~250-3中多个绘图处理单元260-1~260-3各自的数量及规格、绘图处理伺服器250-1~250-3以及其中多个绘图处理单元260-1~260-3的状态和/或这些绘图处理单元260-1~260-3的权重值,但并不仅限于此。
另一方面,次要绘图处理伺服器250-2~250-3的次要负载平衡器则会持续监听主要绘图处理伺服器250-1的丛集负载平衡器是否运作,部分的次要负载平衡器还会备份位于丛集负载平衡器中的负载度量表。当丛集负载平衡器停止运作时,次要负载平衡器与其他次要负载平衡器便会相互通讯,并藉由上述的判断方法来选择其中之一以取代作为丛集负载平衡器。藉此可避免当主要绘图处理伺服器250-1的丛集负载平衡器无法运作时,整个绘图处理丛集220将因此而失效的情况。于本实施例中,也可设置相同品牌、规格的多个绘图处理单元在特定的绘图处理伺服器250-1~250-3当中,使得虚拟机器230在进行绘图处理请求时,可以通过希望采用的GPU品牌(如,Nvidia公司、AMD公司、Intel公司…等)、规格来调整执行绘图处理请求的绘图处理伺服器250-1~250-3,也就是,当虚拟机器230所发出的绘图处理程序已经设定所需执行的GPU的特定规格时,丛集负载平衡器便会依据绘图处理伺服器250-1~250-3以及绘图处理单元260-1~260-3的规格来指定对应的绘图处理伺服器以及绘图处理单元来执行此绘图处理程序。部分规格的绘图处理单元可以针对特定的绘图处理程序(例如,针对某些三维影像处理引擎设计的GPU)或是应用软件进行优化时,虚拟机器230便可藉由输入希望使用的GPU品牌、型号来使上述特定的绘图处理伺服器250-1~250-3能够专门对此虚拟机器230提供特定的绘图处理服务。此种依照品牌、规格来选择特定的伺服器进行服务的作法也就是所谓的服务层级协议(service levelagreement)。
主要绘图处理伺服器250-1的丛集负载平衡器可以依照虚拟机器230的实际使用需求来进行电源管理。若虚拟机器230的使用需求较低时,丛集负载平衡器可以先将部分绘图处理伺服器250-1~250-3中未使用的GPU260-1~260-3进行降频或直接禁能,从而节省各个绘图处理伺服器250-1~250-3的电能消耗。相对地,当虚拟机器230的使用需求提高而使正在运作的GPU260-1~260-3皆位于高负载状态时,便对被禁能或是被降频的GPU260-1~260-3执行致能以及升频等动作,从而维持绘图处理丛集220的运作。
如果虚拟机器230的实际使用需求或是其连线数过低或过高而需要将绘图处理丛集内整台绘图处理伺服器250-1~250-3关闭/开启时,则可以采用级距式的作法来将进行关闭/开启。也就是说,丛集负载平衡器的负载度量表中可以预先设定一个级距值,为目前可以提供绘图处理服务的虚拟机器230的用户连线数量。当每次减少了虚拟机器230的用户连线数(也就是用户减少数量)已经大于所述的级距值时,便可将其中一个绘图处理伺服器250-1~250-3整台关闭以节省电能;相对地,每次增加了虚拟机器230的用户连线数(也就是用户增加数量)已经大于所述的级距值时,便可将已被关闭的绘图处理伺服器250-1~250-3整台启动。
图3是图2的各个绘图处理伺服器250-1~250-3的示意图。在此详述各个绘图处理伺服器250-1~250-3中的其他细节元件。图3的绘图处理伺服器250-i可以是绘图处理伺服器250-1~250-3的任一个。绘图处理伺服器250-i除了多个GPU260-i以外,还包括代理器(proxy)340、操作系统320、绘图驱动程序330以及相对于多个实体GPU260-i的多个虚拟绘图处理程序310-i。本实施例的虚拟绘图处理程序310-i也可以称为是虚拟绘图处理单元(virtual GPU;VGPU)310-i。本实施例的代理器340可以是执行在绘图处理伺服器250-i中的应用程序,而VGPU310-i则用来管理及记录对应的实体GPU260-i的运作情况。换句话说,每个VGPU310-i分别对应每个GPU260-i。
代理器340接收来自主要绘图处理单元260-1的丛集负载平衡器所分配的绘图处理请求,并分派此绘图处理请求至多个本地绘图处理单元260-i所对应的VGPU310-i。每个VGPU310-i接收并记录来自代理器340的绘图处理请求,并通过操作系统所执行的薄型管理程序(thin hypervisor)以及绘图处理单元330以传递给对应的绘图处理单元来执行运算,从而产生绘图处理结果。当被分派的本地绘图处理单元260-i产生绘图处理结果时,VGPU310-i将绘图处理结果传送给代理器340,代理器340则通过远端的虚拟机器管理器240而将绘图处理结果传送至虚拟机器230。此外,产生绘图处理结果后,VGPU310-i便可以传递工作请求的完成状态给主要绘图处理伺服器250-1的丛集负载平衡器,丛集负载平衡器便会自行更新负载度量表。此外,特别提出的是,即使实体GPU260-i因关闭而没有运作时,VGPU310-i仍然会运作,藉以标示实体GPU260-i的目前状态及相关讯息。
薄型管理程序则是用来进行绘图处理单元的即时任务转移(live taskmigration)。详细来说,由于VGPU310-i在接收工作请求以及将工作请求执行完毕后皆会通知主要绘图处理伺服器的丛集负载平衡器以增新负载度量表,因此丛集负载平衡器可以即时掌握绘图处理丛集220的情况,并计算其平均负载程度。
计算各个绘图处理伺服器250-1~250-3的负载程度(例如上述的第一负载程度)的运算式(1)如下所述:
C X U X × VG X = LB X . . . ( 1 )
其中CX表示第X个绘图处理伺服器目前已连线服务的虚拟机器230的连线数,UX表示第X个绘图处理伺服器中对于GPU的权重值,VGX表示第X个绘图处理伺服器中目前空闲的虚拟GPU的数量,而LBX则表示目前第X个绘图处理伺服器的负载程度。
计算绘图处理丛集220中的平均负载程度的运算式(2)如下所述:
( C 1 ~ N ) ( U 1 ~ N ) × ( VG 1 ~ N ) = LB 1 ~ N . . . ( 2 )
其中N为在绘图处理丛集220中绘图处理伺服器250-1~250-3的总数,C1~N表示全部绘图处理伺服器250-1~250-3目前已连线服务的虚拟机器230的连线数加总,U1~N表示所有绘图处理伺服器250-1~250-3中对于GPU的权重值平均,VG1~N表示全部绘图处理伺服器250-1~250-3中目前空闲的VGPU310-i的数量,而LB1~N则表示目前绘图处理丛集220中的平均负载程度。LB1~N的数值越小时,其负载程度越小。
当平均负载程度过小时(例如,小于0.4),丛集负载平衡器将会逐一审查每个绘图处理伺服器250-i的负载程度,然后将负载程度最低的绘图处理伺服器250-i的工作请求指派给其他可以负荷此负载的其他绘图处理伺服器,并利用薄型管理程序将已暂停运作的目前相关信息(如,执行状态、计算三数、虚拟机器的指令来源…等)进行快照(snap shot),并依照丛集负载平衡器的指示通过网络将这些目前相关信息传送给其他绘图处理伺服器内部的GPU。当其他绘图处理伺服器已将目前相关信息接收完毕后,负载程度最低的绘图处理伺服器250-i便会进行关闭,并回传信息给丛集负载平衡器以更新负载度量表。
于另一个观点而言,本发明实施例另外提出一种计算机系统的绘图处理方法。图4是依照本发明实施例说明一种计算机系统200的绘图处理方法的流程图。请同时参考图2及图4,计算机系统200包括具有至少一个虚拟机器230以及虚拟机器管理器240的至少一个实体机器210以及绘图处理丛集220。于步骤S410中,主要绘图处理伺服器250-1中的丛集负载平衡器接收从虚拟机器管理器240以及虚拟机器230所提供的绘图处理请求。于步骤S220中,分配所述绘图处理请求至绘图处理丛集220中多个绘图处理伺服器的其中一个次要绘图处理伺服器。于步骤S230中,次要绘图处理伺服器依据所述绘图处理请求产生绘图处理结果。以及,于步骤S240中,绘图处理结果通过次要绘图处理伺服器以及虚拟机器管理器240而传送至对应的虚拟机器230。计算机系统200的绘图处理方法的其他详细步骤流程及硬件结构请参考上述实施例,在此不予赘述。
综上所述,本发明实施例揭示的计算机系统将会修改实体机器中虚拟机器管理器的程序流程,让虚拟机器的绘图处理请求不会直接利用本地实体机器的GPU,而是可以选择性地通过网络上的绘图处理丛集来执行此绘图处理请求。藉此,可让虚拟机器的绘图处理服务不再受限于本地实体机器的硬件设备,降低实体机器的硬件限制,虚拟机器的程序编码也不需要修改,即可针对计算机系统的绘图处理服务需求来扩充硬件设备而使成本降低。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围的前提下,可作若干的更动与润饰,故本发明的保护范围是以本发明的权利要求为准。

Claims (15)

1.一种计算机系统,包括:
至少一实体机器,各该至少一实体机器包括至少一虚拟机器以及一虚拟机器管理器;以及
绘图处理丛集,包括多个绘图处理伺服器,各该绘图处理伺服器包括多个绘图处理单元;
其中该多个绘图处理伺服器的其中一个主要绘图处理伺服器接收从该虚拟机器管理器以及该至少一虚拟机器所提供的绘图处理请求,分配该绘图处理请求至该多个绘图处理伺服器的其中一个次要绘图处理伺服器,该次要绘图处理伺服器依据该绘图处理请求产生绘图处理结果,并通过该虚拟机器管理器将该绘图处理结果传送至该至少一虚拟机器。
2.如权利要求1所述的计算机系统,其中该虚拟机器管理器在接收该至少一虚拟机器的该绘图处理请求时,计算该至少一实体机器的第一负载程度,并从该主要绘图处理伺服器取得该绘图处理丛集的平均负载程度以判断是在该至少一实体机器或是该绘图处理丛集执行该绘图处理请求。
3.如权利要求2所述的计算机系统,其中该虚拟机器管理器判断由该绘图处理丛集执行该绘图处理请求后,将该绘图处理请求通过网络传输至该主要绘图处理伺服器,通过该主要绘图处理伺服器的分配以记录正在执行该绘图处理请求的该次要绘图处理伺服器的网络地址及该多个绘图处理单元的编号,藉以获得该绘图处理结果。
4.如权利要求1所述的计算机系统,其中该主要绘图处理伺服器包括丛集负载平衡器,该丛集负载平衡器持续更新负载度量表,并依据该负载度量表来分配该绘图程序请求至该多个绘图处理伺服器中的该多个绘图处理单元。
5.如权利要求4所述的计算机系统,其中该负载度量表包括该多个绘图处理伺服器的设定数据、该多个绘图处理伺服器中该多个绘图处理单元的数量及规格、该多个绘图处理伺服器以及其中该多个绘图处理单元的状态和/或该多个绘图处理单元的权重值。
6.如权利要求4所述的计算机系统,其中该多个绘图处理伺服器分别包括代理器,该代理器接收来自该丛集负载平衡器的该绘图处理请求,并分派该绘图处理请求至对应的该多个绘图处理单元,且当产生该绘图处理结果时,该代理器通过该虚拟机器管理器将该绘图处理结果传送至该至少一虚拟机器。
7.如权利要求6所述的计算机系统,其中该多个绘图处理伺服器分别包括多个虚拟绘图处理程序,每一虚拟绘图处理程序分别对应每一绘图处理单元,每一虚拟绘图处理程序接收并记录来自该代理器的该绘图处理请求,并通过薄型管理程序传递给对应的该绘图处理单元以执行运算,从而产生该绘图处理结果。
8.如权利要求4所述的计算机系统,其中当该虚拟机器所发出的该绘图处理程序已经设定所需执行的绘图处理单元的特定规格时,该丛集负载平衡器依据该多个绘图处理伺服器以及该多个绘图处理单元的规格来指定对应的该多个绘图处理伺服器以及该多个绘图处理单元,以执行该绘图处理程序。
9.如权利要求4所述的计算机系统,其中该次要绘图处理伺服器包括次要负载平衡器,该次要负载平衡器持续监听该丛集负载平衡器是否运作,且在该丛集负载平衡器停止运作时,该次要负载平衡器与其他次要负载平衡器相互通讯并选择其中之一作为该丛集负载平衡器。
10.如权利要求4所述的计算机系统,其中该丛集负载平衡器包括一级距值,并计算该绘图处理丛集中正在执行的该绘图处理请求的用户连线数,当该用户连线数量的用户减少数量大于该级距值时,关闭其中一个绘图处理伺服器;当该用户连线数量的用户增加数量大于该级距值时,将被关闭的其中一个绘图处理伺服器启动。
11.一种计算机系统的绘图处理方法,计算机系统包括具有至少一虚拟机器以及一虚拟机器管理器的至少一实体机器以及绘图处理丛集,该绘图处理方法包括:
接收从该虚拟机器管理器以及该至少一虚拟机器所提供的绘图处理请求;
分配该绘图处理请求至该绘图处理丛集中多个绘图处理伺服器的其中一个次要绘图处理伺服器;
该次要绘图处理伺服器依据该绘图处理请求产生绘图处理结果;以及
通过该虚拟机器管理器将该绘图处理结果传送至该至少一虚拟机器。
12.如权利要求11所述的绘图处理方法,还包括:
该虚拟机器管理器在接收该至少一虚拟机器的该绘图处理请求时,计算该至少一实体机器的第一负载程度,并从该主要绘图处理伺服器取得该绘图处理丛集的平均负载程度;以及
依据该第一负载程度及该平均负载程度以判断是在该至少一实体机器或是该绘图处理丛集执行该绘图处理请求。
13.如权利要求12所述的绘图处理方法,还包括:
当判断由该绘图处理丛集执行该绘图处理请求后,将该绘图处理请求通过网络传输至该绘图处理丛集中的主要绘图处理伺服器;以及
该虚拟机器管理器通过该主要绘图处理伺服器的分配以记录正在执行该绘图处理请求的该次要绘图处理伺服器的网络地址及该多个绘图处理单元的编号,藉以获得该绘图处理结果。
14.如权利要求13所述的绘图处理方法,其中该主要绘图处理伺服器包括丛集负载平衡器,该主要绘图处理伺服器该丛集负载平衡器持续更新负载度量表,并依据该负载度量表来分配该绘图程序请求至该多个绘图处理伺服器中的该多个绘图处理单元。
15.如权利要求12所述的绘图处理方法,其中该多个绘图处理伺服器分别包括多个虚拟绘图处理程序,每一虚拟绘图处理程序分别对应每一绘图处理单元,每一虚拟绘图处理程序接收并记录来自该代理器的该绘图处理请求,并通过薄型管理程序传递给对应的该绘图处理单元以执行运算,从而产生该绘图处理结果。
CN201310053177.3A 2013-01-25 2013-02-19 计算机系统及其绘图处理方法 Active CN103971316B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW102103011 2013-01-25
TW102103011A TWI479422B (zh) 2013-01-25 2013-01-25 電腦系統及其繪圖處理方法

Publications (2)

Publication Number Publication Date
CN103971316A true CN103971316A (zh) 2014-08-06
CN103971316B CN103971316B (zh) 2017-03-22

Family

ID=51224514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310053177.3A Active CN103971316B (zh) 2013-01-25 2013-02-19 计算机系统及其绘图处理方法

Country Status (3)

Country Link
US (1) US9183024B2 (zh)
CN (1) CN103971316B (zh)
TW (1) TWI479422B (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9781801B2 (en) * 2014-01-06 2017-10-03 Dell Products, Lp Performance lighting and control method
JP2015132887A (ja) * 2014-01-09 2015-07-23 富士通株式会社 要求分散プログラム、要求分散方法および情報処理装置
US9576332B1 (en) * 2014-06-02 2017-02-21 VCE IP Holding Company LLC Systems and methods for remote graphics processing unit service
US9898794B2 (en) * 2014-06-19 2018-02-20 Vmware, Inc. Host-based GPU resource scheduling
US9898795B2 (en) * 2014-06-19 2018-02-20 Vmware, Inc. Host-based heterogeneous multi-GPU assignment
US9690928B2 (en) * 2014-10-25 2017-06-27 Mcafee, Inc. Computing platform security methods and apparatus
WO2016145632A1 (en) * 2015-03-18 2016-09-22 Intel Corporation Apparatus and method for software-agnostic multi-gpu processing
CN105100717B (zh) * 2015-07-29 2018-04-03 英业达科技有限公司 影像处理装置
US11145271B2 (en) 2015-08-10 2021-10-12 Amazon Technologies, Inc. Virtualizing graphics processing in a provider network
US9904973B2 (en) * 2015-11-11 2018-02-27 Amazon Technologies, Inc. Application-specific virtualized graphics processing
US9904975B2 (en) 2015-11-11 2018-02-27 Amazon Technologies, Inc. Scaling for virtualized graphics processing
CN115526770A (zh) * 2015-11-11 2022-12-27 亚马逊科技公司 用于虚拟化图形处理的缩放
US9904974B2 (en) 2015-11-11 2018-02-27 Amazon Technologies, Inc. Placement optimization for virtualized graphics processing
US9886737B2 (en) * 2015-11-11 2018-02-06 Amazon Technologies, Inc. Local-to-remote migration for virtualized graphics processing
US10181172B1 (en) 2016-06-08 2019-01-15 Amazon Technologies, Inc. Disaggregated graphics asset delivery for virtualized graphics
US10181173B1 (en) 2016-06-08 2019-01-15 Amazon Technologies, Inc. Disaggregated graphics asset management for virtualized graphics
US10423463B1 (en) 2016-06-09 2019-09-24 Amazon Technologies, Inc. Computational task offloading for virtualized graphics
US10102605B1 (en) 2016-08-26 2018-10-16 Amazon Technologies, Inc. Graphics library virtualization for virtualized graphics processing
US10304153B2 (en) * 2016-11-07 2019-05-28 Vmware, Inc. Virtual machine graphic resource usage
US10200249B1 (en) 2016-12-09 2019-02-05 Amazon Technologies, Inc. Network traffic management for virtualized graphics devices
US10373284B2 (en) 2016-12-12 2019-08-06 Amazon Technologies, Inc. Capacity reservation for virtualized graphics processing
US10430911B1 (en) 2016-12-16 2019-10-01 Amazon Technologies, Inc. Graphics overlays with virtualized graphics processing
US10482561B1 (en) 2017-01-11 2019-11-19 Amazon Technologies, Inc. Interaction monitoring for virtualized graphics processing
US10255652B2 (en) 2017-01-18 2019-04-09 Amazon Technologies, Inc. Dynamic and application-specific virtualized graphics processing
US10692168B1 (en) 2017-01-26 2020-06-23 Amazon Technologies, Inc. Availability modes for virtualized graphics processing
US10593009B1 (en) 2017-02-22 2020-03-17 Amazon Technologies, Inc. Session coordination for auto-scaled virtualized graphics processing
US10169841B1 (en) 2017-03-27 2019-01-01 Amazon Technologies, Inc. Dynamic interface synchronization for virtualized graphics processing
US10338847B1 (en) 2017-08-28 2019-07-02 Amazon Technologies, Inc. Coherent buffer mapping for virtualized graphics processing
US10908940B1 (en) 2018-02-26 2021-02-02 Amazon Technologies, Inc. Dynamically managed virtual server system
CN109656714B (zh) * 2018-12-04 2022-10-28 成都雨云科技有限公司 一种虚拟化显卡的gpu资源调度方法
US11748130B2 (en) * 2019-06-28 2023-09-05 Intel Corporation Virtualization and multi-tenancy support in graphics processors
CN113256481A (zh) * 2021-06-21 2021-08-13 腾讯科技(深圳)有限公司 图形处理器中的任务处理方法、装置、电子设备及存储介质
US11651470B2 (en) * 2021-06-28 2023-05-16 Hewlett Packard Enterprise Development Lp Scheduling jobs on graphical processing units
CN113407353B (zh) * 2021-08-18 2021-12-10 北京壁仞科技开发有限公司 图形处理器资源的使用方法及装置、电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138475A1 (en) * 2008-11-30 2010-06-03 Shahar Frank Dynamic loading between a server and a client
CN102446114A (zh) * 2010-09-17 2012-05-09 国际商业机器公司 优化虚拟图形处理单元利用的方法和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US8266232B2 (en) * 2005-10-15 2012-09-11 International Business Machines Corporation Hardware processing of commands within virtual client computing environment
US7868897B2 (en) * 2006-06-30 2011-01-11 Intel Corporation Apparatus and method for memory address re-mapping of graphics data
US7624118B2 (en) 2006-07-26 2009-11-24 Microsoft Corporation Data processing over very large databases
US8751654B2 (en) * 2008-11-30 2014-06-10 Red Hat Israel, Ltd. Determining the graphic load of a virtual desktop
US8629878B2 (en) * 2009-08-26 2014-01-14 Red Hat, Inc. Extension to a hypervisor that utilizes graphics hardware on a host
US9142004B2 (en) * 2012-12-20 2015-09-22 Vmware, Inc. Dynamic allocation of physical graphics processing units to virtual machines

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138475A1 (en) * 2008-11-30 2010-06-03 Shahar Frank Dynamic loading between a server and a client
CN102446114A (zh) * 2010-09-17 2012-05-09 国际商业机器公司 优化虚拟图形处理单元利用的方法和系统

Also Published As

Publication number Publication date
TWI479422B (zh) 2015-04-01
CN103971316B (zh) 2017-03-22
US9183024B2 (en) 2015-11-10
US20140215462A1 (en) 2014-07-31
TW201430706A (zh) 2014-08-01

Similar Documents

Publication Publication Date Title
CN103971316A (zh) 计算机系统及其绘图处理方法
Liu et al. FogWorkflowSim: An automated simulation toolkit for workflow performance evaluation in fog computing
US20180314425A1 (en) Non-uniform memory access (numa) resource assignment and re-evaluation
JP2017520853A (ja) 仮想上位機器に基づく数値制御システム
CN106557369A (zh) 一种多线程的管理方法及系统
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
CA2486103A1 (en) System and method for autonomic optimization of physical and virtual resource use in a data center
CN111209077A (zh) 深度学习框架设计方法
CN103810015A (zh) 虚拟机创建方法和设备
CN114356587B (zh) 算力任务跨区域调度方法、系统及设备
CN109960579B (zh) 一种调整业务容器的方法及装置
CN113032102A (zh) 资源重调度方法、装置、设备和介质
CN115562878A (zh) Gpu计算资源的管理方法、装置、电子设备及可读存储介质
CN114756390A (zh) 消息队列消费方法及系统、电子设备和可读介质、产品
CN105933136B (zh) 一种资源调度方法及系统
CN110727511B (zh) 应用程序的控制方法、网络侧设备和计算机可读存储介质
CN116450290A (zh) 计算机资源的管理方法、装置、云服务器及存储介质
US10248459B2 (en) Operating system support for game mode
US20130185448A1 (en) Systems and Methods for Managing Emulation Sessions
US11868805B2 (en) Scheduling workloads on partitioned resources of a host system in a container-orchestration system
CN109462663A (zh) 一种限制系统资源占用的方法、语音交互系统及存储介质
CN101980170A (zh) 一种微内核系统中软件模块的通信方法、系统及装置
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法
CN115051997A (zh) 分布式资源调度的方法及装置、存储介质、电子设备
CN114490015A (zh) 配置计算模式的方法、装置及计算设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant