热优先计算应用调度的制作方法

文档序号:6498507阅读:186来源:国知局
热优先计算应用调度的制作方法
【专利摘要】本文公开的各实现方式涉及基于热的优先计算应用调度。例如,处理器可确定优先计算应用。所述处理器可根据与第二处理单元关联的热能量储备,调度所述优先计算应用,以将执行从第一处理单元转移到所述第二处理单元。
【专利说明】热优先计算应用调度

【背景技术】
[0001]多个计算应用可同时在计算系统中的多核处理器上执行,或同时在计算系统中的多个独立的处理器上执行。操作系统可根据系统资源调度各计算应用。

【专利附图】

【附图说明】
[0002]各图描述示例的实施例。下面的详细描述参照各图,其中:
[0003]图1是示出用于根据热能量储备调度优先计算应用的计算系统的一个示例的结构图。
[0004]图2是示出根据热能量储备调度优先计算应用的方法的一个示例的流程图。
[0005]图3是对与处理单元关联的热能量储备累积的速度进行建模化的方法的一个示例的流程图。
[0006]图4是示出随着时间变化的在计算系统内根据热能量储备调度优先计算应用的一个不例的图表。

【具体实施方式】
[0007]计算系统可包括多个处理单元,例如,多核处理器中的多个核或多个独立的处理器,且可根据与各处理单元关联的热能量储备水平,在各处理单元之间移动优先计算应用。优先计算应用可例如为:利用更多系统资源的计算应用、更高配置计算应用或对系统用户更重要的计算应用。与计算系统执行的其它计算应用相比,优先计算应用可从第一处理单元移动到第二处理单元来为优先计算应用提供额外的处理能力。
[0008]计算系统中的各处理单元可将热能量储备水平累积到处理单元的热设计功率之上。优先计算应用可在具有热能量储备的处理单元上执行,直至热能量储备消耗。这期间,其它处理单元可建立其各自的热能量储备的水平。例如,在由于较轻的负载而生成的低热功率的水平执行的处理单元可建立热能量储备。可分析其它处理单元的热能量储备水平,并且,可随后根据热能量储备水平的分析将优先计算应用移动到第二处理单元。之前执行优先计算应用的处理单元可建立其热能量储备,而在不同的处理单元上优先计算应用执行,使得优先计算应用可在之前的处理单元的热能量储备水平恢复时返回到之前的处理单元。可调度优先计算应用从一个处理单元移动到另一个处理单元,以提供比计算系统内执行的其它计算应用更大的性能。
[0009]图1是示出用于根据热能量储备调度优先计算应用的计算系统100的一个示例的结构图。计算系统100可在多个处理单元之间调度计算应用用于执行。计算系统100可包括多个处理单元,例如,调度处理单元101、第一处理单元105以及第二处理单元110。调度处理单元101可根据与各处理单元关联的热能量储备,在各处理单元之间调度优先计算应用106。可以与在计算系统100上执行的其它计算应用相比更高的性能执行优先计算应用106的方式,调度优先计算应用106,在一些情况下,允许优先计算应用106更快完成执行。
[0010]调度处理单元101可为处理器,例如,中央处理单元(CPU)、基于半导体的微处理器、或适用于检索并执行指令的任意其它设备。调度处理单元101可为例如处理核,且计算系统100可为多核处理器。在一个实现方式中,调度处理单元101除了处理器之外还包括逻辑,或者不包括处理器而包括逻辑。获取、解码以及执行指令之外或替代获取、解码以及执行指令,调度处理单元101可包括一个或多个集成电路(IC)或包括执行下面描述的功能的多个电子元件的其它电子电路。在一个实现方式中,调度处理单元101执行的功能可划分到多个处理器或处理核之间。
[0011]第一处理单元105和第二处理单元110可为例如多个独立的处理器或多核处理器中的多个独立的处理器核。计算系统100可包括多个多核处理器。调度处理单元101可为用于调度的独立的处理单元,或可为执行优先计算应用106的处理单元。计算系统100可包括两个处理单元,调度处理单元101的功能可包括在第一处理单元105中或第二处理单元110中。
[0012]调度处理单元101可例如直接或经由网络与机器可读存储媒介102通信。机器可读存储媒介102可为任意合适的机器可读媒介,例如,电子的、磁的、光的或存储可执行指令或其它数据的其它物理存储设备(例如,硬盘驱动、随机存取存储器、闪存,等等)。机器可读存储媒介102可为例如计算机可读非暂时性媒介。在一些实现方式中,第一处理单元105以及第二处理单元110还与机器可读存储媒介102通信。在一个实现方式中,与优先计算应用106有关的指令存储在机器可读存储媒介102中。
[0013]机器可读存储媒介102可包括可由调度处理单元101执行的指令。机器可读存储媒介102可包括优先计算应用确定指令103以及优先计算应用调度指令104。优先计算应用确定指令103可为用于识别在计算系统100内执行的优先计算应用106的指令。优先计算应用确定指令103可包括自动或根据用户输入识别优先计算应用106的指令。优先计算应用调度指令104包括用于根据与各处理单元关联的热能量储备水平在各处理单元之间移动优先计算应用106的指令。
[0014]计算系统100可包括有超过其额定功率的短期功率尖峰的多个处理单元。例如,以由于轻负载而生成较低的热功率的水平执行时,第一处理单元105可建立热能量储备107,且然后,第一处理单元105可以更高的热功率生成水平运行,直至储备被消耗。调度处理单元101可在第一处理单元105的热能量储备107被消耗时,将优先计算应用106从第一处理单元105移动到第二处理单元110。
[0015]调度处理单元101可例如通过执行优先计算应用调度指令104,确定将优先计算应用106移动到哪以及何时移动。调度处理单元101可根据与在各处理单元上执行的计算应用关联的指令,对热能量储备累积以及在计算系统100中的每个处理单元消耗的速度建模。例如,处理单元上执行的每个指令可与一定量的热能量消耗关联。在一些实现方式中,热能量消耗的量取决于特定的处理单元的特性、执行的指令的类型、或执行的计算应用的类型。
[0016]调度处理单元101可根据与各处理单元关联的热能量储备的评估,选择执行优先计算应用106的处理单元。例如,可将优先计算应用106移动到具有超过阈值的热能量储备的处理单元,或移动到具有与计算系统100中的其它处理单元相比的最大热能量储备的处理单元。在一些实现方式中,除了各处理单元的热能量储备之外,可考虑其它因素。
[0017]可根据第二处理单元110的热能量储备109来选择第二处理单元110用于优先计算应用106。调度处理单元101可在第二处理单元110的热能量储备109消耗之后,将在第二处理单元110上执行的优先计算应用106移动到不同的处理单元。调度处理单元101可继续在各处理单元之间移动优先计算应用106,直至优先计算应用106完成执行。在一个实现方式中,调度处理单元101可识别新的优先计算应用,且不再将优先计算应用106移动到具有更高的热能量储备的处理单元。
[0018]图2是示出根据热能量储备调度优先计算应用的方法的一个示例的流程图。像图1的调度处理单元101那样的处理器可确定如何调度优化计算应用。优化计算应用可为例如单线程应用或多线程应用中的优先主线程。可以允许优先计算应用接收比在计算系统内执行的其它计算应用更多的处理功率的方式,在多个处理单元之间,例如多个独立的处理器之间或多个处理器核之间调度优先计算应用。多个处理单元可为例如来自图1的处理单元 105 和 110。
[0019]在200开始,像调度处理单元101那样的调度处理单元确定在具有多个处理单元的计算系统中的第一处理单元上执行的优先计算应用。调度处理单元可与可用于执行优先计算应用的多个处理单元之一关联,或可独立于可用于执行优先计算应用的各处理单元。多个计算应用可在计算系统内执行,且优先计算应用可由处理器识别。
[0020]可根据用户输入或自动地确定优先计算应用。用户可识别优先计算应用,例如,用户喜欢为优先计算应用提供额外的计算资源,以获得更快的性能。在一个实现方式中,用户可提供关于计算应用的信息或关于在计算系统上执行的各计算应用有关的性能目标的信息,且处理器根据所提供的信息确定优先计算应用。可根据计算系统内执行的各计算应用的分析,自动确定优先信息。例如,可周期性查看计算应用的负载,并可将具有最高负载或最高平均负载的应用识别为优先计算应用。可自动确定优先计算应用,且用户可提供自动选择的计算应用应优先的确认。计算应用可为例如单线程应用或具有主线程的多线程应用。
[0021]继续到201,调度处理单元确定具有超过阈值的热能量储备的计算系统中的处理单元中的第二个。调度处理单元可将计算系统内的各处理单元的热能量储备作比较,并根据与各处理单元关联的热能量储备水平选择处理器。在一个实现方式中,处理器选择具有最高的热能量储备的处理单元。调度处理单元可确定具有超过阈值的热能量储备的多个处理单元,并选择所确定的处理单元中的一个。处理器可使用其它标准选择所确定的处理单元中的一个,例如,根据位置或其它因素。调度处理单元可确定与各处理单元关联的热能量储备,可接收来自另一个设备的信息,或可从存储器检索信息。在一些实现方式中,计算系统内的处理单元的子集能够累积热能量储备,且不是为其它处理单元而计算热能量储备。
[0022]确定处理单元时,可考虑除了热能量储备水平外的其它考虑因素。例如,可考虑各处理单元的位置,使得优先计算应用移动到距执行优先计算应用的当前处理单元的特定距离的处理单元。
[0023]调度处理单元或另一个处理器可以任意合适的方式确定计算系统中的各处理单元的热能量储备水平。例如,调度处理单元可对热能量储备累积的速度建模,并根据热能量生成和消耗的建模化速度确定热能量储备水平。在处理单元上执行的计算应用可使该处理单元执行多个指令,并且热能量使用的量可与每个指令关联。可确定热能量累积的速度,且可从一定时间段上累积的热能量中减去在各指令上的热能量消耗,用来确定热能量储备水平。
[0024]在一个实现方式中,调度处理单元对热能量储备累积的速度建模,并根据表示计算系统的热容量的可编程的时间常数使用。时间常数可为例如加权移动平均中的加权因子。在一个实现方式中,时间常数为指数加权移动平均(EWMA)中的加权因子。时间常数可设置为更小的水平,表示更小的系统热容量,使得更快地累积和消耗热能量储备。时间常数可设置到更高的值,使得更慢地累积和消耗热能量储备。更慢地消耗热能量储备可允许优先计算应用保留在具有热能量储备的处理单元更长时间,并且不经常在各处理单元之间移动。
[0025]调度处理单元或其它处理器可自动确定热容量时间常数的值。在一个实现方式中,根据应以什么样的频率移动优先计算应用或处理单元每隔多久累积超过阈值的热能量储备,来自动确定时间常数。热容量时间常数可由用户设置或可以不变的速度设置。例如,时间常数可为具有可由用户改变的默认值的基本输入输出系统(B1S)设置。
[0026]在一个实现方式中,计算系统为多核处理器,其中的处理单元是可获取热能量储备的多个单独的核。多核处理器可允许单独的核以更高的热功率生成水平运行一段时间,然后重建其热能量储备。多核处理器可具有获取及消耗热能量储备的速度的可编程变量。例如,可确定该速度并将其存储在机器专用寄存器中,使得各处理核可读取该值。在一个实现方式中,累积及消耗热能量储备的速度可取决于表示系统的热容量的时间常数。该时间热容量因子可设置为较高的值,且在一些情况下,设置为多核处理器的最高的可能值,使得更慢地消耗储备,引起不会经常在各处理单元之间移动优先计算应用。在一个实现方式中,计算系统涉及多个独立的处理器,且可以下面与图3关联讨论的方式对系统的容量以及热能量储备累积的速度建模。
[0027]在一个实现方式中,热能量储备的建模可进一步取决于与各处理单元关联的温度。例如,处理单元或处理单元组可具有关联的热量探测器。如果处理单元的温度超过特定水平,可根据来自温度探测器的信息修改建模的处理单元的热能量储备,且在一些情况下,修改到更低。
[0028]在一个实现方式中,调度处理单元可确定处理单元的热能量储备水平,并存储用于之后使用。例如,储备信息可存储在机器专用寄存器(MRS)中。调度处理单元可访问存储的信息,用来根据一定时间后累积的额外的热能量储备更新热能量储备水平,或根据执行计算应用消耗的热能量的量更新热能量储备水平。调度处理单元可访问存储的信息,用来将计算系统中的多个处理单元的热能量储备水平作比较。在一些实现方式中,可通过单独的处理单元或独立的处理单元存储该信息,而不是调度处理单元。
[0029]在一个实现方式中,优先计算应用可以确定的向具有足够的热能量储备的处理单元移动优先计算应用的方式,在计算系统中的多个处理单元之间以特别的顺序进行。该顺序可将优先计算应用从执行该优先计算应用的当前的处理单元移动特定的距离,以产生更多的热耗散。例如,调度处理单元不知道计算系统的布局的情况下,该顺序可为基于各处理单元或处理核的ID的。调度处理单元可根据处理单元建立其热能量储备的可能的时间量,以及处理单元执行优先计算应用消耗其热能量储备的可能的时间量,确定交换处理单元之间的顺序以及交换处理单元之间的时间量。
[0030]在一个实现方式中,调度处理单元确定是否移动优先计算应用。例如,如果计算系统上的负载超过阈值,各处理单元可能不能累积足够的热能量储备,以补偿因持续将优先计算应用移动到不同的处理单元所引起的性能降低。调度处理单元可移动优先计算应用一定时间,然后,允许优先计算应用正常执行,直至确定计算系统负载足够轻到允许建立充足的热能量储备。
[0031]继续到202,调度处理单元调度优先计算应用,以将执行转移到第二处理单元。如果计算应用在第二处理单元上执行,可将该计算应用移动到第一处理单元,使得可将优先计算应用移动到第二处理单元。在一个实现方式中,操作系统调度器将第二处理单元上执行的计算应用移动到另一个处理单元。操作系统调度器可在系统中移动多个计算应用,或与另一个处理单元交换计算应用。
[0032]可将与优先计算应用关联的缓存数据与优先计算应用一起移动到第二处理单元。可缓存该数据以为优先计算应用提供更好的性能。在一些情况下,处理器可评估移动缓存数据的时间量或缓存数据的大小,以确定以怎样的频率在各处理单元之间移动优先计算应用。例如,移动缓存数据的时间更大,使得其减小了将优先计算应用移动到具有更大的热能量储备的处理单元所实现的性能增益的情况下,处理器可能不经常移动优先计算应用。
[0033]图3是对与处理单元关联的热能量储备累积的速度进行建模化的方法的一个示例的流程图。可在计算系统中的多个独立的处理器之间移动优先计算应用。在一些情况下,计算系统可能不包括设置一些多核处理器中可用的热能量储备时间常数的特征。调度处理器单元可对计算系统内的多个独立的处理器的热能量储备水平建模。该模型可表示热能量储备在优先计算应用上是如何消耗的,以及之前执行优先计算应用的处理单元如何从消耗其热能量储备恢复,以执行优先计算应用。建模化的热能量储备水平可用于确定什么时候将优先计算应用移动到另一个处理单元,以及将其移动到哪个处理单元。该方法可由例如图1中的调度处理单元101实现。
[0034]在300开始,针对执行优先计算应用的第一处理单元,调度处理单元设置热能量储备累积的建模化速度。执行优先计算应用的处理单元的热能量储备累积的速度可设置到比计算系统中的其它处理单元更低的水平。更低的速度可建模在优先计算应用上慢慢消耗的热能量储备余量,使得不用经常移动优先计算应用。
[0035]热能量储备累积的速度可取决于与建模化热容量关联的时间常数。更高的建模化热容量可与热能量储备累积和消耗的更慢的建模化速度关联。对于执行优先计算应用的处理单元,建模化热容量生成速度可设置到更高的水平,使得更慢地消耗储备,并将优先计算应用保留在该处理单元上更长时间。可不用经常移动优先计算应用,以减少因将优先计算应用及其缓存数据移动到新的处理单元引起的性能降低。
[0036]继续到301,调度处理单元将优先计算应用转移到第二处理单元。例如,调度处理单元可确定第一处理单元消耗其累计的热能量储备。调度处理单元可根据第二处理单元热能量储备累积的速度以及一定时间内第二处理单元消耗热能量的量,确定第二处理单元的热能量储备的量。可根据与第二处理单元上执行的计算应用关联的指令,确定第二处理单元消耗热能量的量。
[0037]移动到302,调度处理单元将第二处理单元的热能量储备累积的建模化速度设置到与第一处理单元水平相同。例如,优先应用转移到第二处理单元时,与第一处理单元中相似的时间常数可用于对第二处理单元中的热能量储备累积建模。该时间常数可表示对应于更低的热能量储备累积的建模化速度的更高的热容量。热能量储备的建模化速度可更低,使得在优先计算应用上更慢地消耗热能量储备。
[0038]进行到303,调度处理单元减小第一处理单元热能量储备累积的建模化速度。优先计算应用移动到不同的处理单元时,第一处理单元的热能量储备累积的建模化速度可建模为与其它处理单元水平相同,可能比执行优先计算应用的处理单元更高。处理单元的模型的时间常数可设置为与未执行优先计算的其它处理单元一样,以对更低的热容量建模。在一个实现方式中,该模型涉及超过两个时间常数水平以及热能量储备累积速度。例如,可利用不同的时间常数以及不同的热能量储备累积速度对未执行优先计算应用的处理单元建模。
[0039]热能量储备累积的建模化速度以及第一处理单元上执行的指令可用于确定与第一处理单元关联的热能量储备的水平。优先计算应用可在随后确定第一处理单元具有超过阈值的热能量储备时,返回到第一处理单元。
[0040]图4是示出随着时间变化的在计算系统内根据热能量储备调度优先计算应用的一个示例400的图表。图4显示了正执行优先计算应用和应用A,B,C和D的五个处理单元。例如,最初,处理单元I执行优先计算应用,且处理单元2执行应用A。优先计算应用在处理单元I上执行时,其它处理单元能够执行其它应用,同时建立热容量储备。各处理单元可建立随时间变化的热容量储备,例如,在图表中从水平I移动到水平5。
[0041]处理单元I的热储备因执行优先计算应用而消耗时,可从处理单元I移除优先计算应用。在一些实现方式中,特定时间后或识别处理单元具有超过阈值的热能量储备或其可用时,从处理单元移动优先计算应用。
[0042]处理单元I上的热储备消耗时,处理单元2具有热储备水平1,处理单元3具有热储备水平3,处理单元4具有热储备水平5,且处理单元5具有热储备水平3。优先计算应用可移动到具有最高热储备水平的处理单元,或例如,移动到具有超过阈值4的热储备水平的处理单元。优先计算应用移动到处理单元4,且之前在处理单元4上执行的应用C移动到处理单元I。
[0043]处理单元4将其热储备消耗在执行优先计算应用上,其它四个处理单元获取额外的热储备能量。处理单元4完成其热储备能量的消耗时,其它处理单元的热能量储备作比较。优先计算应用可移动到具有热储备水平5的处理单元3,处理单元3上执行的应用B可移动到处理单元4。
【权利要求】
1.一种方法,包括: 确定在具有多个处理单元的计算系统中的第一处理单元上执行的优先计算应用; 确定具有超过阈值的热能量储备的所述计算系统中的所述处理单元中的第二个;以及 调度所述优先计算应用,以将执行转移到所述第二处理单元。
2.如权利要求1所述的方法,其中,所述处理单元包括独立的处理器或多核处理器中的处理核中的至少一个。
3.如权利要求1所述的方法,进一步包括: 根据时间常数对热能量储备累积的速度建模;以及 根据所述热能量储备累积的速度,并根据所述处理单元中的所述第二个消耗的热能量,确定所述处理单元中的所述第二个的热能量储备的水平。
4.如权利要求3所述的方法,其中,确定所述热能量储备累积的速度包括:根据加权移动平均确定所述速度。
5.如权利要求1所述的方法,进一步包括:根据所述优先计算应用的负载确定所述优先计算应用。
6.如权利要求1所述的方法,进一步包括: 设置第一处理单元的热能量储备累积的建模化速度; 将所述第二处理单元的热能量储备累积的建模化速度设置为与所述第一处理单元水平相同;以及 减小所述第一处理单元的热能量储备累积的所述建模化速度。
7.一种计算系统,包括: 多个处理单元,能够建立热能量储备;以及 机器可读非暂时性存储媒介,包括可在所述处理单元中的一个上执行的指令,用于: 识别在所述计算系统内执行的优先计算应用; 根据与所述处理单元关联的所述热能量储备调度所述处理单元上的所述优先计算应用,其中,将所述优先计算应用从第一处理单元转移到具有比所述第一处理单元更大的热能量储备的第二处理单元。
8.如权利要求8所述的计算系统,其中,确定所述优先计算应用包括:确定具有比在所述计算系统内执行的其它计算应用更高的负载的所述计算应用。
9.如权利要求8所述的计算系统,其中,所述第一处理单元和所述第二处理单元包括多核处理器内的处理核,并且其中所述处理单元进一步用于设置所述多核处理器的热能量储备累积的因子。
10.如权利要求8所述的计算系统,其中,所述处理单元进一步针对执行所述优先计算应用的所述第一处理单元,设置比所述第二处理单元的热容量因子更高的并且与模型热能量储备累积的速度关联的热容量因子。
11.如权利要求8所述的计算系统,其中,调度所述优先计算应用包括: 确定具有超过阈值的热能量储备的所述处理单元中的一个;以及 向所述确定的处理单元转移所述应用。
12.一种机器可读非暂时性存储媒介,包括可由处理器执行的指令,用于: 确定优先计算应用;以及 根据与第二处理单元关联的热能量储备,调度所述优先计算应用,以将执行从第一处理单元转移到所述第二处理单元。
13.如权利要求12所述的机器可读非暂时性存储媒介,其中,所述第一处理单元和所述第二处理单元包括独立的处理器,且进一步包括指令,以用于针对执行所述优先计算应用的所述第一处理单元,设置比所述第二处理单元的热容量因子更高的并且与模型热储备累积的速度关联的热容量因子。
14.如权利要求12所述的机器可读非暂时性存储媒介,其中,所述第一处理单元和所述第二处理单元包括多核处理器内的处理核,且进一步包括用于设置所述多核处理器的热能量储备累积的因子的指令。
15.如权利要求12所述的机器可读非暂时性存储媒介,其中,将执行从第一处理单元转移到第二处理单元的指令包括:将与所述优先计算应用关联的缓存数据从所述第一处理单元转移到所述第二处理单元的指令。
【文档编号】G06F9/46GK104246704SQ201280072461
【公开日】2014年12月24日 申请日期:2012年6月29日 优先权日:2012年6月29日
【发明者】基蒙·贝尔林, 汤姆·菲舍尔, 拉斐尔·盖 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1