CN103677999B - 计算环境内的资源的管理 - Google Patents

计算环境内的资源的管理 Download PDF

Info

Publication number
CN103677999B
CN103677999B CN201310403268.5A CN201310403268A CN103677999B CN 103677999 B CN103677999 B CN 103677999B CN 201310403268 A CN201310403268 A CN 201310403268A CN 103677999 B CN103677999 B CN 103677999B
Authority
CN
China
Prior art keywords
resource
resource pool
threshold value
pool
thread
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.)
Active
Application number
CN201310403268.5A
Other languages
English (en)
Other versions
CN103677999A (zh
Inventor
F.Y.布萨巴
S.R.卡洛
C.A.克雷戈夫斯基
B.R.普拉斯基
岑中龙
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103677999A publication Critical patent/CN103677999A/zh
Application granted granted Critical
Publication of CN103677999B publication Critical patent/CN103677999B/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/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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • 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/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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/507Low-level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • 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
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/30Systems integrating technologies related to power network operation and communication or information technologies for improving the carbon footprint of the management of residential or tertiary loads, i.e. smart grids as climate change mitigation technology in the buildings sector, including also the last stages of power distribution and the control, monitoring or operating management systems at local level
    • 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

Abstract

例如通过硬件控制器控制从要在线程的执行中使用的一个或多个资源池的资源分配来管理计算环境中的资源。所述控制包括:基于池中的资源的当前使用相对于关联的资源使用阈值而有条件地从所述池向计算环境的一个或多个低优先级线程分配资源。该管理还包括:监视从所述池向计算环境的一个或多个高优先级线程的资源分配,并且基于所述监视,动态地调整在从所述池向低优先级线程分配资源中使用的资源使用阈值。

Description

计算环境内的资源的管理
技术领域
本发明的方面一般涉及计算环境内的处理,并具体涉及促进对计算环境内要在线程的执行中使用的资源的管理。
背景技术
线程通常存在于进程内,并且进程可以具有共享资源(诸如存储器)的多个线程。线程被认为是操作系统可以调度的最小处理单位。一个线程可以在没有其它线程在处理器上执行的情况下在该处理器上执行,或者可以在具有其它线程的情况下在处理器上执行。在该线程仅是处理器上执行的唯一线程的情况下,处理器被称为在单线程模式中执行。然而,在该线程与其它线程一起执行的情况下,处理器被称为在同时多线程(SMT)模式中。
在同时多线程模式中,硬件资源在机器上执行的多个软件线程之间共享。每个线程表现为具有其自己的完整体系硬件集。此外,在超标量处理器中,具有多个执行管线是常见的,这些执行管线可以在正被分配到硬件中的线程之间共享。虽然SMT提供了硬件的高效性,从而允许多个线程快速共享可用的执行资源,但其存在单个线程的性能成本。处理器上唯一的线程比该线程与另一线程共享资源执行得更快是常见的。这是因为在SMT中线程间可能存在资源竞争问题。
发明内容
通过提供一种用于促进计算环境中的资源管理的计算机系统来克服现有技术的缺点并提供附加的优点。该计算机系统包括存储器和与该存储器通信的处理器,其中该计算机系统被配置为执行方法。该方法包括:例如通过硬件控制器,基于一个资源池中的资源使用相对于与该一个池关联的资源使用阈值的关系,控制从要在线程的执行中使用的至少一个资源池向计算环境的至少一个低优先级线程的有条件资源分配。
这里还描述和主张了与本发明的一个或多个方面相关的方法和计算机程序产品。此外,这里还描述并可以主张与本发明的一个或多个方面相关的服务。
通过本发明的一个或多个方面的技术实现附加特征和优点。本发明的其它实施例和方面在这里被详细描述,并被认为是所主张的发明的一部分。
附图说明
在说明书结尾处的权利要求中作为示例特别指出并主张了本发明的一个或多个方面。根据下面结合附图的详细说明,本发明的一个或多个方面的前述和其它目的、特征和优点将变得明显,其中:
图1A描述了计算环境的一个实施例,以并入和使用本发明的一个或多个方面;
图1B描述了根据本发明的方面的、图1A的中央处理器的进一步的细节;
图2描述了根据本发明的一个或多个方面的包括一个或多个处理器的计算环境的另一实施例,该一个或多个处理器使用一个或多个资源池中的资源执行多个线程,所述资源的分配被控制;
图3描述了根据本发明的一个或多个方面的、要在线程的执行中使用的多个资源池的一个实施例,并示出了与所述池关联的资源使用阈值,其用于在分别管理所述池中的资源的分配中使用;
图4A描述了根据本发明的一个或多个方面的、用于管理从在线程的执行中使用的一个或多个资源池的资源分配的逻辑的一个实施例;
图4B描述了根据本发明的一个或多个方面的、用于调整从一个或多个资源池中的一个池向计算环境的一个或多个低优先级线程的资源分配的逻辑的一个实施例;
图4C描述了根据本发明的一个方面的、用于动态调整在触发对向一个或多个低优先级线程的资源分配的调整中使用的资源使用阈值的逻辑的一个实施例;以及
图5描述了并入了本发明的一个或多个方面的计算机程序产品的一个实施例。
具体实施方式
注意,如这里所使用的,硬件资源的分配发生在用于特定线程的指令被分配(dispatch)时。因此,如下面所使用的,资源的分配与指令的分配被作为同义词而使用。所分配的资源的类型基于所分配的指令的类型,并且每种类型的资源被认为存在于该资源类型的资源池中。
参照图1描述了并入和使用本发明的一个或多个方面的计算环境的一个实施例。计算环境100例如基于纽约Armonk的国际商业机器公司提供的IBM的出版物“z/Architecture-Principles of Operation”出版No.SA22-7832-08,第9版,2010年8月)中描述了通过引用将其全文合并于此。在一个示例中,基于的计算环境包括纽约Armonk的国际商业机器公司提供的服务器。 以及下面提及的是纽约Armonk的国际商业机器公司的注册商标。这里使用的其它名称可能是国际商业机器公司或其它公司的注册商标、商标或产品名称。
作为一个示例,计算环境100包括中央处理器综合体(complex)(CPC)102,其连接到输入/输出(I/O)子系统120。中央处理器综合体102例如包括一个或多个分区104(例如,逻辑分区LP1-LPN)、一个或多个中央处理器106、系统管理器(hypervisor)108(例如,逻辑分区管理器)、以及系统控制器110,下面将对每个进行描述。
每个逻辑分区104能够作为独立系统而工作。即,每个逻辑分区可以被独立地重置(reset)、初始加载操作系统(如果需要)、以及以不同的程序操作。运行在逻辑分区中的操作系统或应用程序表现为能够访问全部或完整的系统,但实际上,仅可用其一部分。硬件和固件的组合使一个逻辑分区中的程序不与不同逻辑分区中的程序相干扰。这允许若干不同逻辑分区以分时方式在单个处理器或多个物理处理器上操作。
如这里所使用的,固件例如包括处理器的微代码、毫代码(millicode)、和/或宏代码。其例如包括硬件级的指令和/或在更高级的机器代码的实现中使用的数据结构。在一个实施例中,其例如包括私有代码,其通常作为包括专用于底层硬件的可信软件或微代码并控制操作系统对系统硬件的访问的微代码而递送。
在此特定示例中,每个逻辑分区具有常驻操作系统112,其对于一个或多个逻辑分区可以不同。在一个实施例中,操作系统112是由纽约Armonk的国际商业机器公司提供的操作系统。此外,在此示例中,每个逻辑分区被分配了系统主储存器(存储器)的一部分,其被称为区(zone)。
逻辑分区104包括一个或多个逻辑处理器。每个逻辑处理器可以具有永久分配给它的中央处理器106,或者可以存在中央处理器106的池,用于向任何一组逻辑处理器动态分配,该分配可以跨越多个逻辑分区104。
逻辑分区104由系统管理器108管理,系统管理器108例如可以由运行在处理器106上的固件实现。逻辑分区104和系统管理器108各自包括驻留在与中央处理器关联的主储存器的相应部分中的一个或多个程序。系统管理器108的一个示例是处理器资源/系统管理器TM(Processor Resource/System ManagerTM)(PR/SM),其由纽约Armonk的国际商业机器公司提供。
中央处理器106连接到系统控制器110,但与其分离。系统控制器110例如是硬件组件,其控制对存储器和中央处理器内的高速缓存(cache)的访问,并在中央处理器和输入/输出子系统120之间通信。系统控制器负责由中央处理器和I/O系统做出的请求的排队、串行化和执行。在一个示例中,其负责向特定中央处理器发送命令和/或向多个中央处理器广播命令。系统控制器可以是集中(centralized)组件或者其功能可以被分散。系统控制器不是处理器或核,例如其不执行用户应用。而是,其是I/O子系统和中央处理器之间的通信机构。
参照图1B描述关于中央处理器106的进一步细节。在一个示例中,中央处理器106包括一个或多个核或处理器150,它们是分配给一个或多个逻辑分区的物理处理器。中央处理器被认为是节点的一部分,并且每个节点包括一个或多个中央处理器。逻辑分区可以跨越多个节点,其中来自一个节点的一个或多个中央处理器以及来自另一节点的一个或多个中央处理器可以被分配给该逻辑分区。
此外,根据本发明的一个方面,中央处理器106的一个或多个处理器150各自包括控制器151(例如,硬件控制器),其用于监视处理器,尤其是监视执行在该处理器上的线程,并且,在一个实施例中,监视被线程访问的可用执行资源池152,诸如,可用硬件寄存器。控制器151控制来自相应资源池152的资源向线程(诸如低优先级线程)的分配。
在一个实施例中,可以利用乱序(out-of-order)处理器实施图1A和图1B的计算环境。乱序处理器将指令的执行分解为多个步骤,目的在于使处理器可以避免执行操作所需要的数据不可得时发生的一类挂起(stall)。乱序处理器利用准备好执行的指令填充这样的时隙,并接着在结束时对结果重新排序,以呈现按序执行指令的表象。
乱序处理器需要大量架构性硬件资源来实现高性能。在线程中执行的代码决定实现高性能所必须的系统资源量。实现高执行性能所需要的系统资源越多,称为处理器所具有的乱序窗口越大。换言之,在存在高度依赖性(例如,在指令B的计算中需要指令A的结果)的代码中,对于该处理器而言,在飞行中(in-flight)的指令越多,在执行期间被该线程消耗的硬件资源越多。此外,在处理器中执行的某些线程可能是需要高性能或低执行延迟的高优先级线程,而某些线程可能是低优先级线程(例如,可能仅需要在几周时间中完成特定工作的工资计算)。可以在软件中使用粗糙粒度的线程优先级来基于手头工作的优先级来调度线程,但一旦线程被发送到硬件上执行,则传统上各种线程被以同样的优先级分配到系统硬件资源,即,不考虑线程之间的相对优先级。
这里公开一种用于管理计算环境的资源的手段(facility),其各方面可被实施为计算机系统、方法或计算机程序产品,如这里将进一步说明的。管理手段包括由硬件控制器基于特定线程的优先级以及该线程在执行时所在的处理器中的可用资源来控制用于该线程的指令的分配。一旦用于特定线程的指令被分配到发射队列(issue queue)中,来自相应可用资源池(诸如,硬件寄存器池)的资源被分配用于该指令的执行,使得这些资源不可用于需要分配的其它指令。如果用于特定资源类型(诸如物理浮点寄存器)的资源池在该时刻是空的,并且指令已经准备好分配,则在分配时挂起该指令,直到使用该资源的执行指令完成执行而释放了该资源为止。在一个方面中,避免高优先级线程的分配挂起由这里呈现的管理协议解决。该控制包括基于低优先级线程上的指令所需要的资源以及相应资源池中可用资源的量,有条件地分配该低优先级线程上的指令。可以动态地调整用于每个资源池的可用资源的阈值,以最大化系统性能并最小化高优先级线程的分配挂起。
具体地,资源管理可以包括监视从一个资源池向计算环境的至少一个高优先级线程的资源分配,其中该至少一个高优先级线程具有比该至少一个低优先级线程高的优先级,并且基于该监视,动态地调整与该一个资源池关联的、且用于将来自该一个资源池的资源有条件地分配到该至少一个低优先级线程中的资源使用阈值。在一个实施方式中,在包括乱序处理器的计算环境中使用这样的管理手段。
更具体地,这里公开了一种管理手段,其中一个或多个可用硬件资源池由控制器硬件监视。一旦特定资源池的使用中的硬件资源上升到超过相应阈值,则修改向低优先级线程的资源分配,以便促进将池中的剩余资源保留用于一个或多个高优先级线程的执行中,其中该相应的阈值由处理器自动动态地配置,以最大化处理器吞吐量并同时避免高优先级线程的分配挂起。通过延迟或暂时挂起用于低优先级线程的指令的分配,帮助向低优先级线程的该修改的资源分配。通过允许高优先级线程使用本会由低优先级线程使用的分配周期(cycle),低优先级线程的分配挂起不减小且可能增加高优先级线程的分配率(dispatch rate)。低优先级线程挂起的期间使得针对高优先级线程最小化资源挂起,并且对于低优先级线程的执行资源的缺乏(starvation)不会导致该线程进行适当前进的失败。注意,如这里所使用的,分配是指令被分配到发射队列中以及硬件资源被分配给指令,并且这些指令被称为是在飞行中。当飞行中的指令完成并且硬件资源释放时,使用中的系统资源将下降到资源使用阈值之下,并且可以将低优先级资源的分配恢复到正常。在此构思的一个实施例中,当特定系统资源池中当前使用的资源上升到高于相应阈值时,控制器硬件可以临时停止低优先级线程的分配,或者替代地,控制器或分配硬件可以压制这些资源向低优先级线程的分配率,这具有不完全停止低优先级线程的分配从而避免这些线程的缺乏(这会导致低优先级线程上的前进进展的失败)的优点。
图2是计算环境200(诸如上文结合图1A和图1B所描述的计算环境)的一个实施例的进一步描述。在此描述中,多个线程212、214将在一个或多个处理器210上执行。为了执行,这些线程需要控制器216提供来自一个或多个资源池220的资源,用于在这些线程的执行中使用。在此实施例中,多个线程212、214包括一个或多个高优先级线程212以及一个或多个低优先级线程214。如这里所使用的,高优先级线程具有比低优先级线程高的优先级,并且其是指需要高性能或低执行延迟的线程。“低优先级线程”是指可接受低执行性能或高执行延迟的线程。线程优先级由操作系统、中间件(middleware)或内核(kernel)(取决于系统的类型)分配给线程,并且通常是用户和系统限定的。例如,用户可能希望指定何时一个线程是高优先级(诸如运行用于股票交易的算法的线程),而第二线程是低优先级(诸如用于工资处理的线程)。示例性地,内核继而可以增加甚至更高优先级的线程,例如用于关键器件驱动器的线程。
如图3中所示,可用系统资源池可以包括多个硬件资源池300,其包括浮点寄存器池310、通用寄存器池320、发射寄存器池330以及存储缓冲池340。每个可用资源池310、320、330和340分别具有关联的资源使用阈值311、321、331和341,其中每个都可以是可调整阈值,如这里所描述的。还应注意,如图3所示,每个池可以包括不同量的资源,并且与各池关联的资源使用阈值在不同池中可以初始是不同百分比的水平,或可通过这里公开的调整处理的操作而是不同百分比的水平。
在一个实施例中,可动态地调整各个资源池的相应资源使用阈值。这是因为任何给定资源池的最佳阈值水平取决于正在执行的高优先级线程的本性(nature),并且阈值本性在不同工作负荷之间可能非常不同。例如,如果高优先级阈值不执行浮点指令,则因为浮点寄存器池310(图3)已经达到资源使用阈值311而限制低优先级线程的分配,将会降低低优先级线程的性能而对高优先级线程没有益处。
动态可调整阈值方法的一个示例可以从例如90%的缺省阈值水平开始,意味着开始时每个资源池的90%可用于低优先级线程,从而低优先级线程初始不发生任何分配压制。使用例如计数器监视高优先级线程的分配率,该计数器计数每个周期用于该线程的分配的平均数目。如果高优先级线程对特定资源类型(例如浮点寄存器)使用得极少,则可以在一定数目(例如1024)的时钟周期的时段上将该阈值水平递增,例如每次递增一个或多个寄存器(或资源)。注意,阈值调整时段中的时钟周期数可以是可编程设置的,并且递增调整可以基于针对正在使用机器的工作负荷的类型的性能测试,或者基于实时测量。替代地,如果高优先级线程使用很多的特定资源,或者由于对给定资源的资源竞争而发生挂起,则可以递减用于该资源池的阈值水平,例如一次递减一个或多个寄存器(或资源)。在此情况中,低优先级线程在分配压制状态中,并且保持在该状态中,直到竞争资源池中的资源数掉回到经调整的资源使用阈值之下为止。如果高优先级线程在一可编程的时间段(例如1024个时钟周期)中继续经受资源竞争,则对该竞争资源的阈值可以继续下降,直到例如其达到可编程的最小水平,诸如资源池总大小的25%。可以在机器初始化时预先设立这些可编程设置,或者这些可编程设置可以作为更大的动态负载平衡系统或控制的一部分。
图4A-图4C描述了根据本发明的一个或多个方面的逻辑的一个实施例。
参照图4A,硬件控制器通过监视一个或多个可用资源池(诸如图3中所示的上述系统寄存器池)中的资源的当前使用(步骤405)而启动(步骤400)管理处理。基于对当前资源使用的监视,控制器确定是否动态地调整从一个或多个池向正被执行的低优先级线程的资源分配(步骤410)。图4B描述了这种处理的一个实施例。
参照图4B,控制器通过确定池中的当前资源使用是否高于该池的资源使用阈值(步骤435)而开始(步骤430)。如果“是”,则控制器开始或继续动态地压制从该池向一个或多个低优先级线程的资源分配率(步骤440),其完成分配的动态调整(步骤455)。如果池中的当前资源使用不高于该池的资源使用阈值,则在完成(步骤455)之前,处理停止对从该池向低优先级线程的资源分配的任何压制(步骤450)。注意,根据此处理,一旦分配率被压制,则低优先级线程保持在分配压制的状态,直到当前资源使用掉回到该池的资源使用阈值之下为止。
继续图4A的逻辑,处理监视高优先级线程对池中的资源使用(步骤415),并且基于对高优先级资源使用的监视,确定是否动态调整与资源池关联的一个或多个使用阈值水平(步骤420)。图4C描述了此逻辑的一个实施例。
参照图4C,处理通过确定高优先级线程是否已经遇到对特定池中的资源的资源竞争(步骤465)而开始(步骤460)。如果“否”,则可递增该池的关联资源使用阈值(步骤470),这完成动态调整处理(步骤475)。
如上所述,可以使用计数器监视高优先级线程的资源竞争或者更一般地分配率,计数器对每个周期线程分配的平均数目进行计数。如果虽然资源池已经达到给定资源使用阈值但高优先级线程未遇到资源竞争,则可以在一定数目的时钟周期(其中时钟周期是可编程的设置)的时段上递增该阈值,例如一次一或两个资源。期望的递增(其在另一实施例中可以是除了1或2之外的资源数目)可以基于正在使用机器的工作负荷的类型的性能测试,或者例如基于实时测量。注意,在此示例中,增加池的资源使用阈值可以取决于低优先级线程当前是否在分配压制状态中。即,如果低优先级线程当前未被压制,则可能不需要增加池的资源使用阈值。在另一实施例中,可以监视高优先级线程使用的资源的类型,以确定是否应该随着时间调整资源池中的资源线程。例如,如果特定线程非常多地使用浮点寄存器,而较少使用定点寄存器,则可以减小用于浮点寄存器池的资源阈值,并且可以增加用于定点寄存器池的阈值。
假设高优先级线程确实遇到了对来自该池的资源的资源竞争,则处理调查该池的资源使用阈值是否为预定的或编程的最小水平(步骤480),并且如果是,则当前不进行任何动作(步骤485)。否则,处理减小池的资源使用阈值,以提高压制来自该池的资源向低优先级线程的分配率的可能性(步骤490)。这完成对池的阈值水平调整处理(步骤475)。注意,在一个实施例中,对于多线程的执行中使用的系统资源(诸如硬件寄存器)的每个池,可以分别并行地进行图4A-图4C的处理。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
现在参考图5,在一个例子中,计算机程序产品500包括,例如,一个或多个计算机可读存储介质502,在其上存储有计算机可读的程序代码装置或逻辑504,以提供并方便本发明的一个或多个方面。
体现在计算机可读介质上的程序代码可以用任何适当的介质传输,所述介质包括但不限于:无线、有线、光缆、RF等,或上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本文中将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
除了上述,本发明的一个或多个方面可由服务提供商提供、许诺(offer)、部署、管理、服务等,该服务提供商提供用户环境的管理。例如,服务提供商可创建、维持、支持等计算机代码和/或计算机基础设施,其为一个或多个用户执行本发明的一个或多个方面。反过来,服务提供商可例如根据预订和/或费用协议从用户接受付费。额外地或可替换地,服务提供商可从向一个或多个第三方销售广告内容接受付费。
在本发明的一个方面,可部署用于执行本发明的一个或多个方面的应用。作为一个例子,部署应用包括提供计算机基础设施,其可操作以执行本发明的一个或多个方面。
作为本发明的又一个方面,可部署计算基础设施,其包括将计算机可读代码集成到计算机系统,其中与计算系统结合的代码能够执行本发明的一个或多个方面。
作为本发明的再一个方面,可提供用于集成计算基础设施包括将计算机可读码集成到计算机系统的过程。计算机系统包括计算机可读介质,其中计算机介质包括本发明的一个或多个方面。与计算机系统结合的代码能够执行本发明的一个或多个方面。
虽然上面描述了各种实施例,但它们仅是示例。例如,其它架构的计算环境可以并入和使用本发明的一个或多个方面。此外,中央处理器可以包括比这里描述的更多或更少的处理器。另外,处理器可以包括比这里描述的更多或更少的线程。再者,处理器不需要是中央处理器的一部分。还可以进行许多其它改变。
而且,其他类型的计算环境可受益于本发明的一个或多个方面。作为例子,环境可包括仿真器(例如,软件或其他仿真机制),其中特定架构(包括例如指令执行、诸如地址转换的架构功能、以及架构寄存器)或其子集被仿真(例如,在具有处理器和存储器的本机计算机系统中)。在这样的环境中,仿真器的一个或多个仿真功能可实施本发明的一个或多个方面,即使执行仿真器的计算机可具有与正被仿真的能力不同的架构。作为一个例子,在仿真模式中,解码正被仿真的特定指令或操作,且建立合适的仿真功能以实施单个指令或操作。
在仿真环境中,主计算机包括例如存储器以存储指令和数据;指令获取单元以从存储器获取指令,且可选地,提供用于获取的指令的本地缓冲;指令解码单元以接收获取的指令并确定已被获取的指令的类型;以及指令执行单元以执行该指令。执行可包括将数据从存储器加载到寄存器;从寄存器将数据存储回存储器;或执行如由解码单元确定的某些类型的算术或逻辑运算。在一个例子中,每个单元在软件中实现。例如,被所述单元执行的操作被实现为仿真器软件中的一个或多个子例程。
作为另一示例,适合用于存储和/或执行程序代码的、包括通过系统总线与存储元件直接或间接连接的至少一个处理器的数据处理系统是有用的。存储元件例如包括在程序代码的实际执行期间使用的本地存储器、块储存器、高速缓存存储器,高速缓存存储器提供至少一些程序代码的临时储存,以便减少在执行期间必须从块储存器检索代码的次数。
输入/输出或I/O装置(包括但不限于,键盘、显示器、指点装置、DASD、带子、CD、DVD、拇指(thumb)驱动器和其它存储介质,等)可以直接或通过介入的I/O控制器连接到系统。网络适配器也可以连接到系统,以使得数据处理系统能够通过介入的私有或共有网络而变得连接到其它数据处理系统或远程打印机或存储装置。调制解调器、线缆调制解调器和以太网卡仅是可用网络适配器的类型中的小部分。
这里使用的措辞仅是用于描述特定实施例的目的,而不意图限制本发明。如这里所使用的,单数形式意在也包括复数形式,除非上下文清楚地指示不是如此。还将理解,词语“包括”(以及任何形式的“包括”)、“具有”(以及任何形式的“具有”)和“包含”(以及任何形式的“包含”)是开放形式的动词。因此,“包括”、“具有”或“包含”一个或多个步骤或元件的方法或装置拥有所述一个或多个步骤或元件,但不限于仅拥有所述一个或多个步骤或元件。同样地,“包括”、“具有”或“包含”一个或多个特征的方法的步骤或装置的元件拥有所述一个或多个特征,但不限于仅拥有所述一个或多个特征。此外,以某种方式构造的装置或结构至少以该方式构造,但也可以以未列出的方式构造。
所附权利要求书中的所有装置或步骤加功能元件的相应结构、材料、操作以及等价物,如有的话,旨在包括用于结合如特别要求保护的其他所要求保护的元件来执行所述功能的任何结构、材料或操作。呈现本发明的说明是为了示出和描述的作用,但不是穷尽性的或将本发明限制于所公开的形式。许多修改和变化对本领域普通技术人员来说是明显的,且不脱离本发明的范围。选择和描述实施例是为了最佳地解释本发明的原理和实际应用,并使得本领域普通技术人员能针对适于考虑的特定用途的具有各种修改的各种实施例理解本发明。

Claims (16)

1.一种用于促进对计算环境中的资源进行管理的计算机系统,所述计算机系统包括:
存储器;以及
处理器,其与所述存储器通信,其中所述计算机系统被配置为执行方法,所述方法包括:
由硬件控制器控制从要在线程的执行中使用的至少一个资源池的资源分配,所述控制包括基于所述至少一个资源池中的一个资源池中的资源使用相对于与其关联的资源使用阈值的关系,有条件地从所述一个资源池向所述计算环境的至少一个低优先级线程分配资源,所述计算环境包括要在所述线程的执行中使用的多个资源池,其中所述方法还包括:
监视从所述一个资源池向所述计算环境的至少一个高优先级线程的资源分配,其中所述至少一个高优先级线程具有比所述至少一个低优先级线程高的优先级;以及
基于所述监视,动态地调整与所述一个资源池关联的、并在所述有条件地从所述一个资源池向所述计算环境的至少一个低优先级线程分配资源中使用的资源使用阈值,其中所述有条件地分配资源包括:基于所述多个资源池中的每个资源池相对于与其关联的相应资源使用阈值,分别动态地调整从每个资源池向所述至少一个低优先级线程的资源分配率。
2.如权利要求1所述的计算机系统,其中所述动态地调整与所述一个资源池关联的资源使用阈值包括:基于所述至少一个高优先级线程所使用的资源类型动态地调整所述资源使用阈值。
3.如权利要求1所述的计算机系统,其中所述动态地调整与所述一个资源池关联的资源使用阈值包括:基于所述至少一个高优先级线程是否遇到对所述一个资源池的一个或多个资源的资源竞争而动态地调整所述资源使用阈值。
4.如权利要求3所述的计算机系统,其中所述动态地调整与所述一个资源池关联的资源使用阈值包括:基于所述至少一个高优先级线程未遇到对所述一个资源池的一个或多个资源的资源竞争而递增与所述一个资源池关联的资源使用阈值。
5.如权利要求3所述的计算机系统,其中所述动态地调整与所述一个资源池关联的资源使用阈值还包括:基于所述至少一个高优先级线程遇到对所述一个资源池的一个或多个资源的资源竞争,确定与所述一个资源池关联的资源使用阈值是否为编程的最小水平,并且基于所述资源使用阈值是所述编程的最小水平,不采取进一步调整所述资源使用阈值的动作,否则递减与所述一个资源池关联的资源使用阈值。
6.如权利要求1所述的计算机系统,其中有条件地从所述一个资源池分配资源包括:基于所述一个资源池中的资源使用相对于与其关联的资源使用阈值的关系,动态地调整从所述一个资源池向所述至少一个低优先级线程的资源分配率。
7.如权利要求1所述的计算机系统,其中有条件地从所述一个资源池分配资源包括:基于所述一个资源池中的资源使用超过与所述一个资源池关联的资源使用阈值,动态地压制从所述一个资源池向所述至少一个低优先级线程的资源分配率。
8.如权利要求7所述的计算机系统,其中有条件地从所述一个资源池分配资源还包括:基于所述一个资源池中的资源使用下降到低于与所述一个资源池关联的资源使用阈值,停止压制向所述至少一个低优先级线程的资源分配率。
9.如权利要求1所述的计算机系统,其中所述一个资源池是所述多个资源池中的一个池,并且每个资源池包括各自的可调整资源使用阈值。
10.如权利要求9所述的计算机系统,其中所述监视包括监视从所述多个资源池中的每个资源池向所述至少一个高优先级线程的资源分配,并且所述方法还包括:基于对从所述多个资源池向所述至少一个高优先级线程的资源分配的监视,分别动态地调整与所述多个资源池关联的一个或多个相应资源使用阈值。
11.一种用于管理计算环境中的资源的方法,所述方法包括:
由硬件控制器控制从要在线程的执行中使用的至少一个资源池的资源分配,所述控制包括:基于所述至少一个资源池中的一个资源池中的资源使用相对于与其关联的资源使用阈值的关系,有条件地从所述一个资源池向所述计算环境的至少一个低优先级线程分配资源,所述计算环境包括要在所述线程的执行中使用的多个资源池,还包括:
监视从所述一个资源池向所述计算环境的至少一个高优先级线程的资源分配,其中所述至少一个高优先级线程具有比所述至少一个低优先级线程高的优先级;以及
基于所述监视,动态地调整与所述一个资源池关联的、并在所述有条件地从所述一个资源池向所述计算环境的至少一个低优先级线程分配资源中使用的资源使用阈值,其中所述有条件地分配资源包括:基于所述多个资源池中的每个资源池相对于与其关联的相应资源使用阈值,分别动态地调整从每个资源池向所述至少一个低优先级线程的资源分配率。
12.如权利要求11所述的方法,其中所述动态地调整与所述一个资源池关联的资源使用阈值包括:基于所述至少一个高优先级线程所使用的资源类型,动态地调整所述资源使用阈值。
13.如权利要求11所述的方法,其中所述动态地调整与所述一个资源池关联的资源使用阈值包括:基于所述至少一个高优先级线程是否遇到对所述一个资源池的一个或多个资源的资源竞争而动态地调整所述资源使用阈值。
14.如权利要求13所述的方法,其中所述动态地调整与所述一个资源池关联的资源使用阈值包括:基于所述至少一个高优先级线程未遇到对所述一个资源池的一个或多个资源的资源竞争,递增与所述一个资源池关联的资源使用阈值。
15.如权利要求11所述的方法,其中有条件地从所述一个资源池分配资源包括:基于所述一个资源池中当前使用的资源相对于与其关联的资源使用阈值的关系,动态地调整从所述一个资源池向所述至少一个低优先级线程的资源分配率。
16.如权利要求11所述的方法,其中有条件地从所述一个资源池分配资源包括:基于所述一个资源池中的资源使用超过与所述一个资源池关联的资源使用阈值,动态地压制从所述一个资源池向所述至少一个低优先级线程的资源分配率。
CN201310403268.5A 2012-09-14 2013-09-06 计算环境内的资源的管理 Active CN103677999B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/615,704 US9021493B2 (en) 2012-09-14 2012-09-14 Management of resources within a computing environment
US13/615,704 2012-09-14

Publications (2)

Publication Number Publication Date
CN103677999A CN103677999A (zh) 2014-03-26
CN103677999B true CN103677999B (zh) 2017-07-28

Family

ID=50275882

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310403268.5A Active CN103677999B (zh) 2012-09-14 2013-09-06 计算环境内的资源的管理

Country Status (2)

Country Link
US (5) US9021493B2 (zh)
CN (1) CN103677999B (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140068621A1 (en) * 2012-08-30 2014-03-06 Sriram Sitaraman Dynamic storage-aware job scheduling
US9021493B2 (en) 2012-09-14 2015-04-28 International Business Machines Corporation Management of resources within a computing environment
US9183016B2 (en) * 2013-02-27 2015-11-10 Vmware, Inc. Adaptive task scheduling of Hadoop in a virtualized environment
US9900252B2 (en) * 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
GB2522910B (en) * 2014-02-10 2021-04-07 Advanced Risc Mach Ltd Thread issue control
US10963304B1 (en) * 2014-02-10 2021-03-30 Google Llc Omega resource model: returned-resources
US9703611B1 (en) 2014-03-21 2017-07-11 Amazon Technologies, Inc. Isolating resources for utilization by tenants executing in multi-tenant software containers
US10423456B2 (en) 2014-07-31 2019-09-24 Hewlett Packard Enterprise Development Lp Dynamic adjustment of resource utilization thresholds
US9348644B2 (en) * 2014-10-08 2016-05-24 International Business Machines Corporation Application-level dispatcher control of application-level pseudo threads and operating system threads
US20160157254A1 (en) * 2014-11-26 2016-06-02 Samsung Electronics Co., Ltd. Methods and apparatus for control information resource allocation for d2d communications
US10320892B2 (en) * 2015-01-02 2019-06-11 Microsoft Technology Licensing, Llc Rolling capacity upgrade control
US9904580B2 (en) 2015-05-29 2018-02-27 International Business Machines Corporation Efficient critical thread scheduling for non-privileged thread requests
US10102031B2 (en) * 2015-05-29 2018-10-16 Qualcomm Incorporated Bandwidth/resource management for multithreaded processors
US10235219B2 (en) 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US11403099B2 (en) * 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US10191771B2 (en) * 2015-09-18 2019-01-29 Huawei Technologies Co., Ltd. System and method for resource management
US9928117B2 (en) 2015-12-11 2018-03-27 Vivante Corporation Hardware access counters and event generation for coordinating multithreaded processing
CN106959889A (zh) * 2016-01-11 2017-07-18 阿里巴巴集团控股有限公司 一种服务器资源调整的方法和装置
US10275239B2 (en) 2016-03-30 2019-04-30 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
US10915333B2 (en) 2016-03-30 2021-02-09 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
US10303488B2 (en) 2016-03-30 2019-05-28 Sony Interactive Entertainment Inc. Real-time adjustment of application-specific operating parameters for backwards compatibility
US10387210B2 (en) * 2016-04-04 2019-08-20 International Business Machines Corporation Resource schedule optimization
US11003922B2 (en) * 2016-04-20 2021-05-11 Mitsubishi Electric Corporation Peripheral recognition device, peripheral recognition method, and computer readable medium
US10860373B2 (en) * 2016-10-11 2020-12-08 Microsoft Technology Licensing, Llc Enhanced governance for asynchronous compute jobs
US10574585B2 (en) 2017-01-07 2020-02-25 International Business Machines Corporation Resource usage management in a stream computing environment
US10489189B2 (en) * 2017-02-17 2019-11-26 International Business Machines Corporation Selection of maintenance tasks
CN109308220B (zh) * 2017-07-26 2021-12-14 华为技术有限公司 共享资源分配方法及装置
US11138037B2 (en) * 2017-11-02 2021-10-05 Mediatek Inc. Switch policy for hybrid scheduling in multi-processor systems
US10700954B2 (en) * 2017-12-20 2020-06-30 Advanced Micro Devices, Inc. Scheduling memory bandwidth based on quality of service floorbackground
CN110019313B (zh) * 2017-12-30 2021-09-28 中国移动通信集团四川有限公司 资源优化方法、装置、设备及介质
JP7031630B2 (ja) * 2019-03-20 2022-03-08 オムロン株式会社 パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法
US11204802B2 (en) * 2020-04-27 2021-12-21 International Business Machines Corporation Adjusting a dispatch ratio for multiple queues
US11327766B2 (en) 2020-07-31 2022-05-10 International Business Machines Corporation Instruction dispatch routing
US20230153161A1 (en) * 2021-11-18 2023-05-18 Cisco Technology, Inc. Observability based workload placement
US11829187B2 (en) 2022-01-30 2023-11-28 Simplex Micro, Inc. Microprocessor with time counter for statically dispatching instructions
US11829762B2 (en) * 2022-01-30 2023-11-28 Simplex Micro, Inc. Time-resource matrix for a microprocessor with time counter for statically dispatching instructions
US11954491B2 (en) 2022-01-30 2024-04-09 Simplex Micro, Inc. Multi-threading microprocessor with a time counter for statically dispatching instructions
US11829767B2 (en) 2022-01-30 2023-11-28 Simplex Micro, Inc. Register scoreboard for a microprocessor with a time counter for statically dispatching instructions

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339413A (en) * 1992-08-21 1994-08-16 International Business Machines Corporation Data stream protocol for multimedia data streaming data processing system
ATE193607T1 (de) 1993-11-26 2000-06-15 Siemens Ag Recheneinheit mit mehreren ausführbaren tasks
US6223204B1 (en) 1996-12-18 2001-04-24 Sun Microsystems, Inc. User level adaptive thread blocking
KR100280460B1 (ko) 1998-04-08 2001-02-01 김영환 데이터 처리 장치 및 이의 복수의 스레드 처리 방법
US6862635B1 (en) 1998-11-13 2005-03-01 Cray Inc. Synchronization techniques in a multithreaded environment
US6718533B1 (en) * 1999-02-26 2004-04-06 Real-Time Innovations, Inc. Method for building a real-time control system with mode and logical rate
US8041754B1 (en) * 2000-01-22 2011-10-18 Intel Corporation Establishing thread priority in a processor or the like
US7093253B2 (en) 2001-11-06 2006-08-15 International Business Machines Corporation Method, computer program product, and system for a self-throttled computing task
CA2474477C (en) 2002-01-30 2011-04-12 Real Enterprise Solutions Development B.V. Method of setting priority levels in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program therefor
US7487504B2 (en) 2002-02-06 2009-02-03 International Business Machines Corporation Thread dispatch for multiprocessor computer systems
US7155716B2 (en) 2002-03-08 2006-12-26 Intel Corporation Weighted and prioritized task scheduler
US7657893B2 (en) * 2003-04-23 2010-02-02 International Business Machines Corporation Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor
US7496915B2 (en) 2003-04-24 2009-02-24 International Business Machines Corporation Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes
US7155600B2 (en) 2003-04-24 2006-12-26 International Business Machines Corporation Method and logical apparatus for switching between single-threaded and multi-threaded execution states in a simultaneous multi-threaded (SMT) processor
US7137019B2 (en) 2003-04-30 2006-11-14 International Business Machines Corporation Adaptive throttling system for data processing systems
US20050071841A1 (en) * 2003-09-30 2005-03-31 Hoflehner Gerolf F. Methods and apparatuses for thread management of mult-threading
US7421592B1 (en) * 2004-02-13 2008-09-02 Microsoft Corporation High performance counter for realistic measurement of computer system load
US20060037018A1 (en) 2004-08-16 2006-02-16 Dell Products L.P. System, method and software providing an adaptive job dispatch algorithm for large distributed jobs
US7254697B2 (en) * 2005-02-11 2007-08-07 International Business Machines Corporation Method and apparatus for dynamic modification of microprocessor instruction group at dispatch
US7313673B2 (en) 2005-06-16 2007-12-25 International Business Machines Corporation Fine grained multi-thread dispatch block mechanism
US8082545B2 (en) 2005-09-09 2011-12-20 Oracle America, Inc. Task dispatch monitoring for dynamic adaptation to system conditions
US7987160B2 (en) * 2006-01-30 2011-07-26 Microsoft Corporation Status tool to expose metadata read and write queues
US7797468B2 (en) 2006-10-31 2010-09-14 Hewlett-Packard Development Company Method and system for achieving fair command processing in storage systems that implement command-associated priority queuing
US7698540B2 (en) 2006-10-31 2010-04-13 Hewlett-Packard Development Company, L.P. Dynamic hardware multithreading and partitioned hardware multithreading
US8108659B1 (en) * 2006-11-03 2012-01-31 Nvidia Corporation Controlling access to memory resources shared among parallel synchronizable threads
US20080163230A1 (en) * 2006-12-29 2008-07-03 Fernando Latorre Method and apparatus for selection among multiple execution threads
GB2449455B (en) * 2007-05-22 2011-08-03 Advanced Risc Mach Ltd A data processing apparatus and method for managing multiple program threads executed by processing circuitry
US7698504B2 (en) 2007-07-03 2010-04-13 Oracle America, Inc. Cache line marking with shared timestamps
US8095932B2 (en) * 2007-08-14 2012-01-10 Intel Corporation Providing quality of service via thread priority in a hyper-threaded microprocessor
US8255631B2 (en) 2008-02-01 2012-08-28 International Business Machines Corporation Priority-based prefetch requests scheduling and throttling
US20090260013A1 (en) * 2008-04-14 2009-10-15 International Business Machines Corporation Computer Processors With Plural, Pipelined Hardware Threads Of Execution
US9875141B2 (en) * 2008-10-01 2018-01-23 Microsoft Technology Licensing, Llc Managing pools of dynamic resources
US20100211948A1 (en) * 2009-02-16 2010-08-19 Sun Microsystems, Inc. Method and system for allocating a resource to an execution entity
US8276142B2 (en) 2009-10-09 2012-09-25 Intel Corporation Hardware support for thread scheduling on multi-core processors
JP2011180894A (ja) * 2010-03-02 2011-09-15 Fujitsu Ltd ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法
CN102566974B (zh) * 2012-01-14 2014-03-26 哈尔滨工程大学 基于同时多线程的取指控制方法
US8930950B2 (en) 2012-01-19 2015-01-06 International Business Machines Corporation Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors
US9021493B2 (en) 2012-09-14 2015-04-28 International Business Machines Corporation Management of resources within a computing environment

Also Published As

Publication number Publication date
US10489209B2 (en) 2019-11-26
CN103677999A (zh) 2014-03-26
US9021495B2 (en) 2015-04-28
US20140082626A1 (en) 2014-03-20
US9864639B2 (en) 2018-01-09
US20170068573A1 (en) 2017-03-09
US20150212858A1 (en) 2015-07-30
US20140082625A1 (en) 2014-03-20
US20180101410A1 (en) 2018-04-12
US9021493B2 (en) 2015-04-28
US9501323B2 (en) 2016-11-22

Similar Documents

Publication Publication Date Title
CN103677999B (zh) 计算环境内的资源的管理
Qiao et al. Litz: Elastic framework for {High-Performance} distributed machine learning
US8984519B2 (en) Scheduler and resource manager for coprocessor-based heterogeneous clusters
US10649806B2 (en) Elastic management of machine learning computing
US8516461B2 (en) Method to dynamically distribute a multi-dimensional work set across a multi-core system
DE112013000486B4 (de) Anweisungsausgleich durch Anweisungsunsicherheit für Prozessoren mit mehreren Threads
KR101332840B1 (ko) 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법
JP2018190454A (ja) 動的仮想マシンサイジング
CN104598426B (zh) 用于异构多核处理器系统的任务调度方法
CN104094235B (zh) 多线程计算
CN107168779A (zh) 一种任务管理方法及系统
DE102012220029A1 (de) Spekulative Ausführung und Zurücksetzen
CN108027751A (zh) 对多版本任务的高效调度
CN107851039A (zh) 用于资源管理的系统和方法
CN107515786A (zh) 资源分配方法、主装置、从装置和分布式计算系统
CN109416647A (zh) 用于闭环控制系统的调度任务和管理计算资源分配的系统和方法
CN109240825A (zh) 弹性任务调度方法、装置、设备及计算机可读存储介质
CN105874433A (zh) 用于支持分布式数据网格中的异步调用的系统和方法
CN109240795A (zh) 一种适用于超融合it基础设施的云计算资源池模型的资源调度方法
CN115543615A (zh) 一种资源分配方法、装置、电子设备及存储介质
Visheratin et al. Hybrid scheduling algorithm in early warning systems
CN115586961A (zh) 一种ai平台计算资源任务调度方法、装置及介质
EP2840513B1 (en) Dynamic task prioritization for in-memory databases
Hufnagel et al. The CMS tierO goes cloud and grid for LHC run 2
DE112012004468B4 (de) Anwendungs-Level-Spekulative-Verarbeitung

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant