CN102473110B - 基于内核和应用特性针对多处理器系统上运行的应用的内核选择 - Google Patents

基于内核和应用特性针对多处理器系统上运行的应用的内核选择 Download PDF

Info

Publication number
CN102473110B
CN102473110B CN201080033055.2A CN201080033055A CN102473110B CN 102473110 B CN102473110 B CN 102473110B CN 201080033055 A CN201080033055 A CN 201080033055A CN 102473110 B CN102473110 B CN 102473110B
Authority
CN
China
Prior art keywords
core component
core
component
technique change
nominal value
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.)
Expired - Fee Related
Application number
CN201080033055.2A
Other languages
English (en)
Other versions
CN102473110A (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.)
Empire Technology Development LLC
Original Assignee
Empire Technology Development LLC
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 Empire Technology Development LLC filed Critical Empire Technology Development LLC
Publication of CN102473110A publication Critical patent/CN102473110A/zh
Application granted granted Critical
Publication of CN102473110B publication Critical patent/CN102473110B/zh
Expired - Fee Related 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating 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
    • 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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

公开了对在多处理器计算机系统中运行的应用程序进行调度的技术。示例方法包括但不限于:针对任何管芯内工艺变化,分析第一、第二、第三和第四内核部件;确定第一、第二、第三和第四内核部件的工作状态;借助于布卢姆过滤器,针对每个部件类型选择最优内核部件;统计上确定应用程序使用哪些内核部件类型;以及调度应用程序,以在具有应用程序所使用的内核部件类型的最优内核部件的内核上运行。

Description

基于内核和应用特性针对多处理器系统上运行的应用的内核选择
相关申请的引用
本申请与下述共同待审申请相关:2009年7月23日提交的申请序列号12/507,952(代理案卷号BVF01-015-US),题为“ThreadThrottling”。
背景技术
随着集成电路技术持续规模化,在体系架构和系统级上工艺变化(工艺参数从其标称规格的偏离)正成为不可忽视的问题。确实,变化具有较大影响,例如芯片中泄漏功耗增加以及处理器频率提高受限[1]。
在芯片多处理器(CMP)系统或者CMP系统内部件的情况下,当前和不远的未来技术中管芯内工艺变化可能导致芯片上的各个单独内核在它们可以消耗的功率量以及它们可以支持的最大频率方面具有较大差异。这种影响(在其他地方[3]已经报道)暗示了将大CMP系统视为同质系统这一思想已不再准确。
发明内容
在第一方面,本公开总体上描述了一种对在具有多个内核的计算机系统中运行的应用程序进行调度的方法,包括:针对工艺变化,分析第一内核部件类型的多个第一内核部件;基于对所述多个第一内核部件的分析,从所述多个第一内核部件中选择第一最优内核部件;以及调度应用程序在所述第一最优内核部件上运行。
在第二方面,本公开总体上描述了一种计算机程序产品,具有在计算机可读介质中编码的软件,用于对在具有多个内核的计算机系统中运行的应用程序进行调度。软件包括指令,当被执行时,操作为:针对工艺变化,分析第一内核部件类型的多个第一内核部件;基于对所述多个第一内核部件的分析,从所述多个第一内核部件中选择第一最优内核部件;以及调度应用程序在所述第一最优内核部件上运行。
在第三方面,本公开总体上描述了一种计算机系统,具有多个内核、以及操作性耦接至所述多个内核的计算机可读介质。所述多个内核中每一个包括第一和第二内核部件类型的内核部件。计算机可读介质包括计算机可执行指令,当由计算机系统执行时,指令将计算机系统配置为:针对工艺变化,分析第一内核部件类型的多个第一内核部件;基于对所述多个第一内核部件的分析,从所述多个第一内核部件中选择第一最优内核部件;以及调度应用程序在所述第一最优内核部件上运行。
以上发明内容仅仅是说明性的,而绝不是限制性的。除了上述示例性的各方案、各实施例和各特征之外,参照附图和以下详细说明,将清楚其他方案、其他实施例和其他特征。
附图说明
在本说明书的总结部分特别指出并明确要求保护主题。根据以下说明和所附权利要求,结合附图,本公开的前述和其他特征将更加清楚。在认识到这些附图仅仅示出了根据本公开的一些示例且因此不应被认为是限制本公开范围的前提下,通过使用附图更加具体和详细地描述本公开,附图中:
图1示出了根据本公开至少一些实施例的计算机系统。
图2示出了根据本公开至少一些实施例的由操作系统执行的应用程序,包括图2A和图2B中多处理器的每个内核的详细视图。
图3示出了根据本公开至少一些实施例的将应用程序划分成线程的示意表示,其中线程发布发送给存储器控制器的请求。
图4示出了根据本公开至少一些实施例布置的流程图。
具体实施方式
下面描述给出了多种示例以及具体细节,以提供对所要求保护的主题的充分理解。然而,本领域技术人员将理解,可以在没有本文公开的一些或更多具体细节的情况下实施要求保护的主题。此外,在一些情况下,不详细描述已知的方法、过程、系统、部件和/或电路,以避免不必要地模糊要求保护的主题。在以下详细说明中,参考了作为详细说明的一部分的附图。在附图中,类似符号通常表示类似部件,除非上下文另行指明。具体实施方式部分、附图和权利要求书中记载的示例性实施例并不是限制性的。在不脱离在此所呈现主题的精神或范围的情况下,可以利用其他实施例,且可以进行其他改变。应当理解,在此一般性记载以及附图中图示的本公开的各方案可以多种不同配置来设置、替换、组合和设计,它们全部都在本公开中明确考虑并形成本公开一部分。
有益的是在考虑片内工艺变化的同时智能化地调度线程。然而,随着片上内核数量的增长,确定哪个内核实际上执行给定线程成为了复杂的任务。
如本文所考虑到的,管芯内工艺变化可能导致CMP系统中各个单独内核在消耗的静态功率和支持的最大频率两方面都不同。类似地,管芯内工艺变化可能导致CMP系统中各个单独内核中的部件在消耗的静态功率和支持的最大频率两方面都不同。在这种环境下,在调度应用程序或调度来自应用程序的线程时忽视变化影响可能是次优的。
管芯内工艺变化可能导致各个单独内核中的部件(称为内核部件)失灵或者提供次优性能。内核部件可以包括例如分支预测器、高速缓存、浮点单元、特定类型的总线(例如存储器总线)、以及在流水线设计、寄存器文件或指令队列中使用的转发电路。如果内核部件失灵或者提供次优性能,则可能降低CMP系统的性能。
在这些环境下,忽视管芯内工艺变化的影响可能导致整个CMP系统的次优性能。一些硬件部件可以是可用的,可以用于确定特定内核内管芯内工艺变化的影响。的确,可以使用成熟的片上功率监视器和控制器(例如Intel的Foxton技术中的那些[4])来测量和管理内核的功率异质性。此外,可以使用支持多个片上频率域和独立地改变每个内核的频率(如AMD的Quad-Core Opteron[2]中那样)的能力来利用内核的频率异质性。
因此,本公开认识到,有利的是意识到CMP系统内或CMP系统内的多个内核部件中的管芯内工艺变化,并调度应用程序或应用程序内的线程,以节省功率或提高吞吐量。通过考虑到每个单独内核的不同功率和频率特性,以变化意识方式调度应用程序,或者通过考虑到针对特定内核中内核组件的管芯内工艺变化,可以获得显著的功率节省或吞吐量的显著增加。
图1示出了根据本公开至少一些实施例布置的计算机系统。图1示出了计算机100包括处理器110、存储器120和一个或多个驱动130。驱动130及其关联的计算机存储介质可以提供为计算机100提供对计算机可读指令、数据结构、程序模块和其他数据的存储。驱动130可以包括操作系统140、应用程序150、程序模块160和数据库180。操作系统140和/或应用程序150例如可以包括使计算机100执行图4所示的功能和/或操作的程序指令。计算机100可以包括用户输入设备190,通过用户输入设备190,用户可以输入命令和数据。输入设备可以包括电子数字化仪、麦克风、键盘和指定设备(指定设备通常称为鼠标、轨迹球或触摸板)。其他输入设备可以包括操纵杆、游戏板、圆盘卫星天线、扫描仪等。
上述和其他输入设备可以通过用户输入接口耦接至处理器110,用户输入接口可以耦接至系统总线,或者可以通过其他接口或总线结构(例如并行端口、游戏端口或通用串行总线(USB)等)连接。计算机100可以包括外围输出设备,例如扬声器、打印机或显示器202,外围输出设备可以通过输出外围接口194等连接。
计算机100可以配置为在使用至一个或多个计算机(例如连接至网络接口196的远程计算机)的逻辑连接的联网环境中操作。远程计算机可以是个人计算机(PC)、服务器、路由器、网络PC、对等设备或其他常见网络节点,并且可以包括上述相对于计算机100所述的元件中的许多或者全部。
联网环境可以包括办公室、企业广域网(WAN)、局域网(LAN)、内联网和互联网。在一个示例中,计算机100可以是数据从其迁移的源机器,而远程计算机可以包括目的地机器,反之亦然。源和目的地机器可以不通过网络108或任何其他手段连接,而是数据可以经由任何能够由源平台写入并由目的地平台读取的介质来迁移。在LAN或WLAN联网环境中,计算机100可以通过网络接口196或适配器连接至LAN或WAN。在WAN联网环境中,计算机100可以包括调制解调器或用于通过例如互联网或网络108等WAN建立通信的其他手段。可以使用在计算机之间建立通信链接的其他手段。
计算机外围设备可以包括通过系统总线耦接至计算机100的处理器110和存储器120的任何设备。计算机外围设备可以包括与输出外围接口连接的任何设备,包括显示器202、打印机、扬声器、驱动130、用户输入设备190以及网络接口196,用户输入设备190例如包括键盘、鼠标和麦克风。计算机外围设备的部件可以包括计算机外围设备内的任何设备,该设备可以使用电能并且可以是任何设备,例如扬声器、照明元件(例如发光二极管或用于为显示器提供照明的背光)、显示元件(例如LCD、LED、OLED、CRT或等离子体显示器)、或者半导体芯片(例如中央处理单元(CPU)、图像处理单元(GPU)、存储器)。根据实施例,计算机100可以连接在联网环境中,使得处理器110和/或程序模块160可以执行功率减少和节省,而对用户体验的劣化最小。
在一些示例中,描述了对计算机系统中运行的应用程序进行调度的方法。计算机系统可以包括具有第一和第二内核的多处理器、以及运行应用程序的操作系统。第一内核可以具有分别是第一和第二内核部件类型的第一和第二内核部件。第二内核可以具有分别是第一和第二内核部件类型的第三和第四内核部件。该方法可以包括:针对任何管芯内工艺变化,分析第一、第二、第三和第四内核部件;以及确定第一、第二、第三和第四内核部件的工作状态。该方法可以包括针对每个部件类型选择最优内核部件,并确定应用程序使用哪些内核部件类型。该方法可以包括调度应用程序,以在具有应用程序所使用的内核部件类型的最优内核部件的内核上运行。
在一些其他示例中,描述了对计算机系统中运行的多个应用程序进行调度的方法。计算机系统可以包括具有第一和第二内核的多处理器、以及运行应用程序的操作系统。第一内核可以具有分别是第一和第二内核部件类型的第一和第二内核部件。第二内核可以具有分别是第一和第二内核部件类型的第三和第四内核部件。该方法可以包括确定第一、第二、第三和第四内核部件的工作状态,并针对每个部件类型选择最优内核部件。该方法可以包括确定每个应用程序使用哪些内核部件类型,并调度每个应用程序,以在具有每个应用程序所使用的内核部件类型的最优内核部件的内核上运行。
在其他示例中,描述了对计算机系统中运行的应用程序进行调度的方法。计算机系统可以包括具有第一和第二内核的多处理器、以及运行应用程序的操作系统。第一内核可以具有分别是第一和第二内核部件类型的第一和第二内核部件。第二内核可以具有分别是第一和第二内核部件类型的第三和第四内核部件。该方法可以包括确定第一、第二、第三和第四内核部件的工作状态,并确定每个应用程序使用哪些内核部件类型。该方法可以包括调度每个应用程序,以在具有应用程序所使用的内核部件类型的最优内核部件的内核上运行。
图2示出了根据本公开至少一些实施例布置的由操作系统执行应用程序。如图2所示,操作系统140可以执行来自驱动130的应用程序150。操作系统140和/或应用程序150可以例如包括用于使计算机100执行图4所指定的功能和/或操作的程序指令。应用程序150可以是可由多处理器111中的操作系统140执行的任何应用、程序、程序部分或线程。应用程序150可以使用存储器控制器210将数据230加载到存储器120中以及从存储器120存取数据。应用程序150可以运行多个子应用调用的线程220,以完成任务,例如使用一个或多个请求226向存储器120的存储器组122加载数据230和从存储器120的存储器组122存取数据230。线程220可以由应用程序150执行。应用程序150可以按照应用程序的需求将任务的执行划分成多个线程220来完成该任务。例如,如果应用程序150是针对具有多页的文档的word处理程序,并且应用程序150配置为完成每页文档的拼写检查任务,则应用程序150可以将文档拼写检查任务划分成多个线程220,使得每个线程220可以对文档的一部分进行拼写检查。可以将每个线程220发送给多处理器111以便执行。当在多处理器111内执行时,每个线程220可以产生对存储器120内数据230的请求226。可以将请求226发送至存储器控制器210,存储器控制器210可以对请求226进行组织,使得多处理器111可以高效操作。
在一些实施例中,如图2所示,多处理器111可以包括可以同时执行多于一个线程220的处理器。多处理器111可以包括称作内核412和512的多个处理器,或者包括称为多线程处理器的可以同时运行多个线程220的单个处理器(只有412和512之一)。图2示出了包括两个内核412和512的示例多处理器111,但是不限于任何具体的内核数目。术语“内核”可以用在本文中指可以处理单个线程的任何装置,并且可以指可以处理单个线程的处理器或处理器内的一部分。多线程处理器可以指具有多个内核的处理器。包括多个处理器的计算机100在本文中可以称为具有多个内核的计算机100。
图2A和图2B包括多处理器111的详细视图,分别示出了内核412和512的细节。如图所示,每个内核412或512可以包括内核部件413或513,内核部件413或513可以是每个内核内执行该内核的一组功能或操作的元件。可以存在不同类型的内核部件413或513,也称为内核部件类型,其可以包括例如分支预测器(415或515)、高速缓存(417或517)、浮点单元(419或519)、特定类型的总线(421或521)(例如存储器总线)、或者流水线设计、寄存器(425或525)或指令队列(427或527)中使用的转发电路(423或523)。如果内核部件413或513失灵或提供次优性能,则可能降低内核性能,并最终降低多处理器111的性能。此外,内核412可以具有例如分支预测器415,其执行速度可以比内核512的分支预测器515快。在这种示例中,相比于在第二内核512上执行,需要更多地使用分支预测器的应用程序150可以更好地在第一内核412上执行。
图3示出了根据本公开至少一些实施例的将应用程序划分成线程的示意表示,其中线程可以发布发送给存储器控制器的请求。如图3所示,应用150可以划分成多个线程220a-220n,其中n可以表示线程220的数目,并且每个线程可以执行应用150的任务,并可以在例如图2的多处理器111上执行每个线程。多处理器可以配置为从应用程序150单独地或同时接收并执行多个线程220a-220n。在多处理器上执行的每个线程220可以与每个其他线程220相独立地执行,并且可以发布对于存储器120中存储的数据230的多个请求220a1-220no,其中第一索引(a...n)表示与请求226关联的线程220,第二索引(1...o)表示与具体线程220关联的请求226的数目。
图2A和图2B示出的每个内核部件413或513在制造时可能遭受到一定程度的工艺变化,工艺变化可能导致内核部件失灵或提供次优性能。工艺变化可以指半导体工艺有关的参数超出其标称值(例如,与掺杂浓度、迁移率、电阻、电容、电感、增益、速度、带宽、阈值电压、寄生效应、泄漏等有关的参数)的变化,并可能由例如小特征尺寸的制造困难造成。为建模和分析目的,可以将变化分解成管芯间(D2D)变化(或内核间变化)以及管芯内(WID)变化(或内核内变化)。WID工艺变化可以进一步划分成系统效应和随机效应。WID工艺变化可以对计算机内功率和频率方面的内核间变化具有直接影响。
可能受到WID工艺变化的示例半导体工艺参数包括例如阈值电压(Vth)和有效栅极长度(Leff)。这些示例参数可以影响晶体管的开关速度和泄漏功率。较高的Vth和Leff变化可以对应于整个芯片上较高的晶体管速度(带宽)变化。这可以导致较慢的处理器(或多处理器)或较慢的内核部件,因为处理器或内核部件内的较慢晶体管可以确定处理器的频率或处理器内内核部件的性能。在多处理器111中,不同内核可以支持不同频率,内核中的内核部件可以具有不同的性能。此外,随着Vth变化,在整个处理器或多处理器上晶体管泄漏可以改变。低Vth晶体管可以比高Vth晶体管消耗更多功率。结果,由于变化,处理器和多处理器可以消耗实质上更多的泄漏功率。在多处理器中,不同内核可以具有不同量的晶体管泄漏。
为了对系统变化建模,可以将处理器或多处理器、或者处理器或多处理器内的各个单独内核部件划分成网格。每个网格点可以被给定参数的系统分量的一个值,可以假设该系统分量具有正态分布,μ=0且具有标准偏差σsys。系统变化可以由空间相关性来表征,使得芯片上的相邻区域可以具有大致相同的系统分量值。
随机变化可以出现在各个单独晶体管的级别上,并且可以用μ=0且标准偏差为σran的正态分布解析地进行建模。由于随机和系统分量可以是正态分布的并且可以是独立的,所以它们的效应可以是加性的。
在具有工艺变化的环境中,多处理器中的每个处理器内核可以消耗不同量的功率并支持不同的最大频率,造成内核之间性能不同。此外,处理器(或多处理器)内核中的每个内核部件可以消耗不同量的功率,并指出不同的最大频率,造成内核之间性能不同。此外,特定内核部件可以完全失灵或者以次优方式运行。结果,内核部件失灵或提供次优性能的那些内核执行特定应用程序的效率可能不如执行更多依赖于这些内核部件的其他应用程序的效率。
在所述多个实施例中,可以使用例如图4所示的应用程序调度算法来调度应用程序,以最大化多处理器的性能或者最小化多处理器的功率使用,实质上如同受到变化影响的多处理器是异质系统一样。在这种环境下,可以存在两个高级设计问题。第一个问题可以是多处理器的不同内核必须是否必须以相同频率还是不相同频率(是统一频率还是非统一频率)进行循环操作。第二个问题可以是是否可以动态(DVFS)还是非动态(非DVFS)地改变多处理器内核的频率和电压。对于这些配置,操作系统或应用程序可以包括用于应用调度的变化意识应用调度算法以及功率管理,以最小化功率或最大化性能。应用调度算法可以对操作系统使用的其他调度准则(例如优先级、公平性或饥饿避免)进行补充。可以在Radu Teodorescu和Joseph Torrellas的“Variation-Aware Application Scheduling and Power Management forChip Multiprocessors”,2008 International Symposium on ComputerArchitecture(ISCA),第363-374页,2008中找到有关应用调度算法的更多信息,该文献的所有内容合并在此作为参考,除了其中与本申请不一致的内容之外。
图4示出了根据本公开至少一些实施例布置的流程图。参照图4,为提高每个单独内核的性能或最小化每个单独内核的功率使用特性,可以由操作系统使用应用调度算法600调度应用程序,以变化意识方式在特定内核或内核部件上运行。应用调度算法600可以为特定内核中内核部件考虑到工艺变化,并可以在运行应用程序时允许显著的功率节省或显著的吞吐量增加。
在使用中,操作系统和/或应用程序可以在框601激活应用调度算法600,应用调度算法600可以布置为在框602针对工艺变化分析多处理器的每个内核中的内核部件。当针对工艺变化分析内核部件时,应用调度算法600可以配置为在框604确定内核部件是否在进行功能操作的。如果确定内核部件在进行功能操作,则应用调度算法600可以配置为检查管芯内工艺变化和/或管芯间工艺变化,并确定相比于相同类型的其他内核部件,该内核部件功能操作的良好程度。在示例中,如果应用调度算法600确定具体的分支预测器在进行功能操作,则应用调度算法600可以将该分支预测器的性能与其他分支预测器的性能相比较,或者与预定的一系列测量值(例如类似分支预测器的平均工作电压和/或平均工作频率)相比较。当比较了内核部件的性能与相同类型的其他内核部件的性能时,应用调度算法600可以配置为标注(例如,记录或存储)内核部件的工作状态为进行功能操作还是未进行功能操作,并且如果在进行功能操作,则应用调度算法600可以配置为在框606对于例如性能或功率效率,对内核部件功能操作的良好程度进行评估(例如,评级或评分)。对内核部件功能操作的良好程度的评估可以在衡量尺度上,例如从1.0到10.0的衡量尺度上,或者其他任何合理的衡量尺度。
当标注或评估每个内核部件时,应用调度算法600可以配置为在框608确定操作系统上运行的每个应用程序可以使用哪些内核部件类型,或者哪些内核部件类型对于每个应用程序而言是重要的;这可以在应用程序的编译期间进行。编译器可以产生对每个应用程序或线程使用哪些部件进行描述的信息。算法600可以在框610调度每个应用程序在具有应用程序所使用的内核部件类型的至少一个最优内核部件的内核上运行。最优内核部件可以在进行功能操作的并具有进行功能操作的工作状态的内核部件。在示例中,最优内核部件可以是具有最高等级的工作状态的内核部件。在另一示例中,最优内核部件可以是等级高于平均等级的内核部件。在实施例中,应用调度算法600可以调度应用程序运行在具有应用程序所使用的内核部件类型的最最优内核部件的内核上。
应用调度算法600可以确定将哪个应用程序调度到哪个内核上运行。例如,可以标记每个内核部件,例如可以分支预测器可以标记为1,浮点乘法器可以标记为2,整数乘法器可以标记为3等等。对于每个内核,可以存在分立的布卢姆过滤器(Bloom filter),每个布卢姆过滤器存储相关联的内核上失灵的内核部件的标签。例如,如果特定内核的分支预测器失灵,则关联的布卢姆过滤器可以包括元素1,因为1是分支预测器的标签。当要调度应用程序(或线程)时,应用调度算法600可以检查应用需求和特定内核的能力之间是否匹配。例如,如果应用程序需要浮点乘法器,则可以检查各个内核的布卢姆过滤器并查看是否包含元素2(对应于浮点乘法器标签)。如果布卢姆过滤器表包含该元素,则可以将应用程序调度到另一内核上。如果不包含该元素,则可以将该内核用于应用程序。
在多个实施例中,公开的方法可以实现为与计算机系统一起使用的计算机程序产品。这些实施方式可以包括固定在有形介质上的计算机指令序列,例如在计算机可读介质(例如,软盘、CD-ROM、ROM或硬盘)上,或者是经由调制解调器或其他接口设备(例如通过介质连接至网络的通信适配器)可传输至计算机系统。介质可以是有形介质(例如光或模拟通信线路),或者以无线技术(例如,微波、红外线或其他传输技术)实现的介质。计算机指令序列具体体现了在前相对于系统描述的全部功能性或其中一部分。本领域技术人员应该理解,这种计算机程序可以多种编程语言来编写,以与许多计算机架构或操作系统一起使用。此外,这种指令可以存储在任何存储器设备中,例如半导体、磁、光或其他存储器设备,并且可以使用任何通信技术来传输,例如光、红外线、微波或其他传输技术。预期的是这种计算机程序产品可以作为可移除介质连同印刷或电子的文档(例如,收缩包装的软件)一起分发,预加载到计算机系统(例如,系统上ROM或硬盘),或者通过网络(例如,互联网或万维网)从服务器或电子公告板分发。当然,所公开主题内容的一些实施例可以实现为软件(例如计算机程序产品)和硬件的组合。所公开主题内容的另一些实施例可以完全实现为硬件或完全实现为软件(例如计算机程序产品)。
本公开所述的主题有时说明不同部件包含在不同的其他部件内或者不同部件与不同的其他部件相连。应当理解,这样描述的架构只是示例,事实上可以实现许多能够实现相同功能的其他架构。在概念上,有效地“关联”用以实现相同功能的部件的任意设置,从而实现所需功能。因此,这里组合实现具体功能的任意两个部件可以被视为彼此“关联”从而实现所需功能,而无论架构或中间部件如何。同样,任意两个如此关联的部件也可以看作是彼此“可操作地连接”或“可操作地耦合”以实现所需功能,且能够如此关联的任意两个部件也可以被视为彼此“能可操作地耦合”以实现所需功能。能可操作地耦合的具体示例包括但不限于物理上可配对和/或物理上交互的部件,和/或无线交互和/或可无线交互的部件,和/或逻辑交互和/或可逻辑交互的部件。
至于本文中任何关于多数和/或单数术语的使用,本领域技术人员可以从多数形式转换为单数形式,和/或从单数形式转换为多数形式,以适合具体环境和/或应用。为清楚起见,在此明确声明单数形式/多数形式可互换。
本领域技术人员应当理解,一般而言,所使用的术语,特别是所附权利要求中(例如,在所附权利要求的主体部分中)使用的术语,一般地应理解为“开放”术语(例如,术语“包括”应解释为“包括但不限于”,术语“具有”应解释为“至少具有”等)。本领域技术人员还应理解,如果意在所引入的权利要求中标明具体数目,则这种意图将在该权利要求中明确指出,而在没有这种明确标明的情况下,则不存在这种意图。例如,为帮助理解,所附权利要求可能使用了引导短语“至少一个”和“一个或多个”来引入权利要求中的特征。然而,这种短语的使用不应被解释为暗示着由不定冠词“一”或“一个”引入的权利要求特征将包含该特征的任意特定权利要求限制为仅包含一个该特征的实施例,即便是该权利要求既包括引导短语“一个或多个”或“至少一个”又包括不定冠词如“一”或“一个”(例如,“一”和/或“一个”应当被解释为意指“至少一个”或“一个或多个”);在使用定冠词来引入权利要求中的特征时,同样如此。另外,即使明确指出了所引入权利要求特征的具体数目,本领域技术人员应认识到,这种列举应解释为意指至少是所列数目(例如,不存在其他修饰语的短语“两个特征”意指至少两个该特征,或者两个或更多该特征)。另外,在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
尽管已经描述了所公开主题内容的多个实施例,但是本领域普通技术人员应当明白在本公开的范围内可以存在其他实施例和实施方式。因此,除依据所附权利要求及其等同物之外,所公开主题内容不受限。
参考文献
[1]S.Borkar,T.Karnik,S.Narendra,J.Tschanz,A.Keshavarzi和V.De,“Parameter variations and impact on circuits and microarchitecture”,in Design Automation Conference,June 2003.
[2]J.Dorsey,S.Searles,M.Ciraula,S.Johnson,N.Bujanos,D.Wu,M.Braganza,S.Meyers,E.Fang和R.Kumar,″An integrated quadcoreOpteron processor,″in International Solid State Circuits Conference,February 2007.
[3]E.Humenay,D.Tarjan和K.Skadron,″The impact of systematicprocess variations on symmetrical performance in chip multiprocessors,″in Design,Automation and Test in Europe,April 2007.
[4]R.McGowen,C.A.Poirier,C.Bostak,J.Ignowski,M.Millican,W.H.Parks和S.Naffziger,″Power and temperature control on a 90-nmItanium family processor,″Journal of Solid-State Circuits,January 2006.

Claims (12)

1.一种对在具有两个或更多个内核的计算机系统中运行的应用程序进行调度的方法,包括:
根据工艺变化分析第一内核部件以产生第一评级,其中所述第一内核部件是第一部件类型且所述第一内核部件具有标称值,所述工艺变化使第一内核部件以与所述标称值不同的第一性能值进行功能操作,所述第一部件类型选自包括如下的组:分支预测器,高速缓存,浮点单元,总线,转发电路,寄存器文件,以及指令队列,所述工艺变化是内核内工艺变化;
根据所述工艺变化分析第二内核部件以产生第二评级,其中所述第二内核部件是所述第一部件类型且所述第二内核部件具有所述标称值,所述工艺变化使第二内核部件以与所述标称值不同的第二性能值进行功能操作;
如果第一评级大于第二评级,则选择所述第一内核部件作为最优内核部件;以及
调度应用程序在选定的第一内核部件上运行,
其中分析第一内核部件和第二内核部件包括:
确定第一内核部件和第二内核部件中每一个的工作状态;以及
在布卢姆过滤器中存储第一内核部件和第二内核部件中每一个的工作状态。
2.根据权利要求1所述的方法,还包括:确定由应用程序使用的应用内核部件类型,其中应用内核部件类型是第一部件类型。
3.根据权利要求1所述的方法,其中分析第一内核部件和第二内核部件包括:基于所述第一性能值和所述第二性能值,对第一内核部件和第二内核部件中的每一个进行评级。
4.根据权利要求1所述的方法,其中,所述标称值是第一值,所述工艺变化是第一工艺变化,所述方法还包括:
根据第二工艺变化分析第三内核部件以产生第三评级,其中所述第三内核部件是第二部件类型且所述第三内核部件具有第二标称值,所述第二工艺变化使第三内核部件以与所述第二标称值不同的第三性能值进行功能操作;
根据第二工艺变化分析第四内核部件以产生第四评级,其中所述第四内核部件是第二部件类型且所述第四内核部件具有所述第二标称值,所述第二工艺变化使第四内核部件以与所述第二标称值不同的第四性能值进行功能操作;
如果第三评级大于第四评级,则选择所述第三内核部件作为最优内核部件;以及
调度应用程序在选定的第三内核部件上运行。
5.根据权利要求4所述的方法,还包括:确定由应用程序使用的第一和第二应用内核部件类型,其中第一和第二应用内核部件类型是第一和第二部件类型。
6.根据权利要求4所述的方法,其中第二部件类型独立地选自包括如下的组:分支预测器,高速缓存,浮点单元,总线,转发电路,寄存器文件,以及指令队列。
7.根据权利要求4所述的方法,其中分析第三内核部件和第四内核部件包括:
确定所述第三内核部件和所述第四内核部件中每一个内核部件的工作状态;以及
在布卢姆过滤器中存储所述第三内核部件和所述第四内核部件中每一个内核部件的工作状态。
8.根据权利要求4所述的方法,其中分析第三内核部件和第四内核部件包括:基于所述第三性能值和所述第四性能值,对所述第三内核部件和所述第四内核部件中的每一个进行评级。
9.根据权利要求4所述的方法,其中第一内核部件和第三内核部件在不同的内核上。
10.根据权利要求1所述的方法,其中分析第一内核部件和第二内核部件包括:基于第一内核部件和第二内核部件的功率效率,对第一内核部件和第二内核部件进行评级。
11.一种对在具有两个或更多个内核的计算机系统中运行的应用程序进行调度的设备,包括:
根据工艺变化分析第一内核部件以产生第一评级的装置,其中所述第一内核部件是第一部件类型且所述第一内核部件具有标称值,所述工艺变化使第一内核部件以与所述标称值不同的第一性能值进行功能操作,所述第一部件类型选自包括如下的组:分支预测器,高速缓存,浮点单元,总线,转发电路,寄存器文件,以及指令队列,所述工艺变化是内核内工艺变化;
根据所述工艺变化分析第二内核部件以产生第二评级的装置,其中所述第二内核部件是所述第一部件类型且所述第二内核部件具有所述标称值,所述工艺变化使第二内核部件以与所述标称值不同的第二性能值进行功能操作;
如果第一评级大于第二评级则选择所述第一内核部件作为最优内核部件的装置;以及
调度应用程序在选定的第一内核部件上运行的装置,
其中分析第一内核部件和第二内核部件的装置包括:
用于确定第一内核部件和第二内核部件中每一个的工作状态的装置;以及
用于在布卢姆过滤器中存储第一内核部件和第二内核部件中每一个的工作状态的装置。
12.根据权利要求11所述的设备,其中,所述标称值是第一值,所述工艺变化是第一工艺变化,所述设备还包括:
根据第二工艺变化分析第三内核部件以产生第三评级的装置,其中所述第三内核部件是第二部件类型且所述第三内核部件具有第二标称值,所述第二工艺变化使第三内核部件以与所述第二标称值不同的第三性能值进行功能操作;
根据第二工艺变化分析第四内核部件以产生第四评级的装置,其中所述第四内核部件是第二部件类型且所述第四内核部件具有所述第二标称值,所述第二工艺变化使第四内核部件以与所述第二标称值不同的第四性能值进行功能操作;
如果第三评级大于第四评级则选择所述第三内核部件作为最优内核部件的装置;以及
调度应用程序在选定的第三内核部件上运行的装置。
CN201080033055.2A 2009-07-23 2010-06-25 基于内核和应用特性针对多处理器系统上运行的应用的内核选择 Expired - Fee Related CN102473110B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/508,552 2009-07-23
US12/508,552 US8924975B2 (en) 2009-07-23 2009-07-23 Core selection for applications running on multiprocessor systems based on core and application characteristics
PCT/US2010/039933 WO2011011155A1 (en) 2009-07-23 2010-06-25 Core selection for applications running on multiprocessor systems based on core and application characteristics

Publications (2)

Publication Number Publication Date
CN102473110A CN102473110A (zh) 2012-05-23
CN102473110B true CN102473110B (zh) 2015-09-30

Family

ID=43498407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080033055.2A Expired - Fee Related CN102473110B (zh) 2009-07-23 2010-06-25 基于内核和应用特性针对多处理器系统上运行的应用的内核选择

Country Status (5)

Country Link
US (1) US8924975B2 (zh)
JP (1) JP5526420B2 (zh)
KR (1) KR101457262B1 (zh)
CN (1) CN102473110B (zh)
WO (1) WO2011011155A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8689037B2 (en) * 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8909962B2 (en) * 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9128705B2 (en) * 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US9563250B2 (en) 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US8775830B2 (en) * 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US20110145559A1 (en) * 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US8650426B2 (en) * 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US8559307B2 (en) * 2009-12-28 2013-10-15 Empire Technology Development Llc Routing packets in on-chip networks
US9268611B2 (en) * 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US9063730B2 (en) * 2010-12-20 2015-06-23 Intel Corporation Performing variation-aware profiling and dynamic core allocation for a many-core processor
US9158592B2 (en) 2011-05-02 2015-10-13 Green Hills Software, Inc. System and method for time variant scheduling of affinity groups comprising processor core and address spaces on a synchronized multicore processor
KR20130074401A (ko) * 2011-12-26 2013-07-04 삼성전자주식회사 계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법
US9575806B2 (en) * 2012-06-29 2017-02-21 Intel Corporation Monitoring accesses of a thread to multiple memory controllers and selecting a thread processor for the thread based on the monitoring
US9081625B2 (en) * 2012-10-16 2015-07-14 Dell Products, L.P. Method for reducing execution jitter in multi-core processors within an information handling system
US9599977B1 (en) * 2013-03-14 2017-03-21 Cirrus Logic, Inc. Programmable system architecture for power controllers including thread execution responsive to power train event
US9027029B2 (en) * 2013-03-28 2015-05-05 International Business Machines Corporation Method for activating processor cores within a computer system
US9852000B2 (en) * 2013-08-27 2017-12-26 Empire Technology Development Llc Consolidating operations associated with a plurality of host devices
US9076775B2 (en) * 2013-09-04 2015-07-07 Qualcomm Incorporated System and method of varying gate lengths of multiple cores
WO2015163506A1 (ko) * 2014-04-25 2015-10-29 전자부품연구원 그래픽 처리 장치의 동작을 위한 작업 할당 시스템 및 방법
US9557797B2 (en) 2014-05-20 2017-01-31 Qualcomm Incorporated Algorithm for preferred core sequencing to maximize performance and reduce chip temperature and power
US11016742B2 (en) 2015-06-24 2021-05-25 Altera Corporation Channel sizing for inter-kernel communication
US9489205B1 (en) * 2015-07-03 2016-11-08 Yong-Kyu Jung Compiler-assisted look-ahead instruction-fetch and branch-prediction system apparatus and method for microprocessors
US10372493B2 (en) * 2015-12-22 2019-08-06 Intel Corporation Thread and/or virtual machine scheduling for cores with diverse capabilities
US10146286B2 (en) * 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
US10725834B2 (en) 2017-11-30 2020-07-28 International Business Machines Corporation Job scheduling based on node and application characteristics
US11568236B2 (en) 2018-01-25 2023-01-31 The Research Foundation For The State University Of New York Framework and methods of diverse exploration for fast and safe policy improvement
JP2021089601A (ja) 2019-12-04 2021-06-10 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US11886224B2 (en) * 2020-06-26 2024-01-30 Advanced Micro Devices, Inc. Core selection based on usage policy and core constraints

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298370B1 (en) * 1997-04-04 2001-10-02 Texas Instruments Incorporated Computer operating process allocating tasks between first and second processors at run time based upon current processor load
CN101278264A (zh) * 2005-09-28 2008-10-01 英特尔公司 众核处理器的可靠计算

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2272085A (en) * 1992-10-30 1994-05-04 Tao Systems Ltd Data processing system and operating system.
JPH09167141A (ja) * 1995-12-18 1997-06-24 Hitachi Ltd 負荷分散制御方法
US6021076A (en) * 1998-07-16 2000-02-01 Rambus Inc Apparatus and method for thermal regulation in memory subsystems
US6772352B1 (en) 2000-09-29 2004-08-03 Intel Corporation Method and apparatus for reducing the rate of commands being issued if the rate exceeds a threshold which is based upon a temperature curve
US7140016B2 (en) * 2000-11-29 2006-11-21 Texas Instruments Incorporated Media accelerator quality of service
JP3817449B2 (ja) * 2001-07-30 2006-09-06 株式会社ルネサステクノロジ データ処理装置
DE10313605B4 (de) * 2003-03-26 2009-03-19 Qimonda Ag Vorrichtung und Verfahren zum Steuern mehrerer Speicherbausteine
JP2004355435A (ja) 2003-05-30 2004-12-16 Canon Inc アクセス調停装置
JP4213572B2 (ja) 2003-11-28 2009-01-21 株式会社東芝 電子機器およびプロセッサ速度制御方法
JP3870189B2 (ja) 2003-12-15 2007-01-17 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリアクセスに関する設定を行うデータ転送レート制御装置、情報処理装置、制御方法、プログラム、及び記録媒体
US7984442B2 (en) * 2004-01-29 2011-07-19 Klingman Edwin E Intelligent memory device multilevel ASCII interpreter
JP3862715B2 (ja) * 2004-06-01 2006-12-27 株式会社ソニー・コンピュータエンタテインメント タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム
US8122187B2 (en) 2004-07-02 2012-02-21 Qualcomm Incorporated Refreshing dynamic volatile memory
JP4197672B2 (ja) * 2004-09-30 2008-12-17 株式会社東芝 マルチプロセッサ計算機及びプログラム
JP2006209525A (ja) 2005-01-28 2006-08-10 Matsushita Electric Ind Co Ltd メモリシステム
JP4367856B2 (ja) * 2005-07-07 2009-11-18 レノボ シンガポール プライヴェート リミテッド プロセス制御システム及びその制御方法
US7590473B2 (en) 2006-02-16 2009-09-15 Intel Corporation Thermal management using an on-die thermal sensor
US8180977B2 (en) * 2006-03-30 2012-05-15 Intel Corporation Transactional memory in out-of-order processors
US7596430B2 (en) * 2006-05-03 2009-09-29 International Business Machines Corporation Selection of processor cores for optimal thermal performance
US7406407B2 (en) * 2006-06-01 2008-07-29 Microsoft Corporation Virtual machine for operating N-core application on M-core processor
US20070294693A1 (en) * 2006-06-16 2007-12-20 Microsoft Corporation Scheduling thread execution among a plurality of processors based on evaluation of memory access data
US7493477B2 (en) * 2006-06-30 2009-02-17 Intel Corporation Method and apparatus for disabling a processor core based on a number of executions of an application exceeding a threshold
US7830690B2 (en) 2006-10-30 2010-11-09 Intel Corporation Memory module thermal management
US7596714B2 (en) * 2006-11-20 2009-09-29 Intel Corporation Methods and apparatus to manage throttling in computing environments
US20080234953A1 (en) 2007-03-22 2008-09-25 Ignowski James S Power estimation for a semiconductor device
US8001338B2 (en) * 2007-08-21 2011-08-16 Microsoft Corporation Multi-level DRAM controller to manage access to DRAM
US8055822B2 (en) * 2007-08-21 2011-11-08 International Business Machines Corporation Multicore processor having storage for core-specific operational data
US8332865B2 (en) * 2008-02-21 2012-12-11 International Business Machines Corporation Adjunct processor load balancing
US9032223B2 (en) * 2008-09-05 2015-05-12 Intel Corporation Techniques to manage operational parameters for a processor
US8161304B2 (en) * 2009-01-20 2012-04-17 Microsoft Corporation Power management for large memory subsystems
US8055805B2 (en) * 2009-03-31 2011-11-08 Intel Corporation Opportunistic improvement of MMIO request handling based on target reporting of space requirements

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298370B1 (en) * 1997-04-04 2001-10-02 Texas Instruments Incorporated Computer operating process allocating tasks between first and second processors at run time based upon current processor load
CN101278264A (zh) * 2005-09-28 2008-10-01 英特尔公司 众核处理器的可靠计算

Also Published As

Publication number Publication date
KR101457262B1 (ko) 2014-10-31
KR20120031020A (ko) 2012-03-29
JP2012533827A (ja) 2012-12-27
US20110023047A1 (en) 2011-01-27
US8924975B2 (en) 2014-12-30
WO2011011155A1 (en) 2011-01-27
JP5526420B2 (ja) 2014-06-18
CN102473110A (zh) 2012-05-23

Similar Documents

Publication Publication Date Title
CN102473110B (zh) 基于内核和应用特性针对多处理器系统上运行的应用的内核选择
Kutzner et al. Best bang for your buck: GPU nodes for GROMACS biomolecular simulations
CN102473137B (zh) 线程节流
US7739530B2 (en) Method and program for generating execution code for performing parallel processing
CN104081315A (zh) 包括线程合并的用于能效和节能的方法、装置和系统
US20160248125A1 (en) Heterogeneous Battery Cell Switching
CN105718024A (zh) 提供每内核电压和频率控制
US8838576B2 (en) Posting list intersection parallelism in query processing
Tang et al. Acceleration of xml parsing through prefetching
Kline Jr et al. Greenchip: A tool for evaluating holistic sustainability of modern computing systems
Lee et al. Analyzing potential throughput improvement of power-and thermal-constrained multicore processors by exploiting DVFS and PCPG
Kim et al. Understanding energy aspects of processing-near-memory for HPC workloads
John Green computing strategies for improving energy efficiency in it systems
Tavana et al. Elasticcore: A dynamic heterogeneous platform with joint core and voltage/frequency scaling
CN107636636B (zh) 调节处理器核操作
Herzog et al. Bridging the gap: Energy-efficient execution of software workloads on heterogeneous hardware components
Pruitt et al. Preliminary investigation of mobile system features potentially relevant to HPC
Pagani Power, energy, and thermal management for clustered manycores
Cao et al. Power saving experiments for large-scale global optimisation
Andro-Vasko et al. A heuristic for state power down systems with few states
Gupta et al. Constrained energy optimizationin heterogeneous platforms usinggeneralized scaling models
Long et al. Iso-power-efficiency: An approach to scaling application codes with a power budget
Rotem et al. Energy management of highly dynamic server workloads in an heterogeneous data center
US20150220132A1 (en) Power/energy management apparatus based on time information of policy enforcement and method thereof
Rauber et al. Tuning energy effort and execution time of application software

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150930

Termination date: 20200625