CN107924327A - 用于多线程处理的系统和方法 - Google Patents
用于多线程处理的系统和方法 Download PDFInfo
- Publication number
- CN107924327A CN107924327A CN201680032001.1A CN201680032001A CN107924327A CN 107924327 A CN107924327 A CN 107924327A CN 201680032001 A CN201680032001 A CN 201680032001A CN 107924327 A CN107924327 A CN 107924327A
- Authority
- CN
- China
- Prior art keywords
- time
- data
- processing system
- thread
- controller
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5055—Allocation 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 software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
Abstract
提供了一种用于操作多线程处理系统的方法,包括:控制器在时间N期间将多个任务的子集分配给多个线程,所述控制器在所述时间N期间收集与所述多个线程的操作有关的数据,所述控制器分析所述数据以确定与所述时间N期间所述多个线程的所述操作有关的至少一个条件,以及所述控制器根据所述至少一个条件调整在时间N+1内可用的所述多个线程的数量。
Description
相关申请案交叉申请
本申请要求2015年7月27日递交的发明名称为“用于多线程处理的系统和方法(System and Method for Multithreaded Processing)”的第14/810,205号美国非临时专利申请的在先申请优先权和权益,该在先申请的内容以引用的方式并入本文本中。
技术领域
本发明涉及用于管理微处理器计算系统的操作的系统和方法,在具体实施例中,涉及用于多核微处理器的系统和方法。
背景技术
当前的硬件技术已研制出具有多核的片上系统(System-on-Chip,SOC)设备。目前,存在具有12至64个硬件线程的SOC,并且对于具有多于50个内核的芯片也有计划(因特尔公布了用于高性能计算的新产品计划,http://www.intel.com/pressroom/archive/releases/2010/20100531comp.htm)。此外,已开发了多处理计算系统,这些系统使用2个至数千个处理器(1976年12月IEEE计算机汇刊第C-25卷第12期,多处理系统,http://63.84.220.100/csdl/trans/tc/1976/12/01674594.pdf)。为了利用这些多处理器或多线程系统,操作系统将应用划分为可以单独处理的离散任务。
然而,所用线程的数量与多个线程的开销之间存在权衡。当单独线程上的任务完成后,结果通常必须与在其它线程上运行的任务进行协调。这产生了难以处理的时间问题,因为完成任务所需的时间经常不同。此外,后续任务可能也需要当前任务的结果。这样产生了棘手的同步问题。另一个问题是耗电量。如果所有硬件线程均满负荷运行,那么芯片的电源系统可能负担过重,并且可能产生较多的热量以至于无法安全耗散。并行运行时系统的关键挑战之一是如何有效地使用硬件线程并提供最佳性能。
发明内容
提供了一种用于操作多线程处理系统的方法,包括:控制器在时间N期间将多个任务的子集分配给多个线程,所述控制器在所述时间N期间收集与所述多个线程的操作有关的数据,所述控制器分析所述数据以确定与所述时间N期间所述多个线程的所述操作有关的至少一个条件,以及所述控制器根据所述至少一个条件调整在时间N+1内可用的所述多个线程的数量。
提供了一种多线程处理系统控制器。所述多线程处理系统控制器包括存储程序的存储系统以及耦合到所述存储系统并执行所述程序的处理器。所述程序配置所述多线程处理系统控制器执行以下操作:在时间N期间将多个任务的子集分配给多个线程,在所述时间N期间收集与所述多个线程的操作有关的数据,分析所述数据以确定在所述时间N期间与所述多个线程的所述操作有关的至少一个条件,以及根据所述至少一个条件调整在时间N+1内可用的所述多个线程的数量。
附图说明
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
图1示出了在多线程处理系统中使用的操作系统的操作;
图2示出了一项实施例的操作;
图3是根据一实施例的节流决策过程的流程图;
图4是图3所示过程中的决策过程的流程图;
图5是显示图2的实施例所执行的节流操作的示意图。
具体实施方式
下文将详细论述当前优选实施例的制作和使用。然而,应了解,本发明提供可在各种具体上下文中体现的许多适用的发明性概念。所论述的具体实施例仅仅说明用以实施和使用本发明的具体方式,而不限制本发明的范围。
图1是显示包含多个处理器的多线程处理系统的基本操作的方框图。这种系统的一个示例是具有多核处理器的智能手机。另一个示例是虚拟化环境,在虚拟化环境中,多个虚拟机(virtual machine,VM)可以实例化并用于处理至少部分处理作业或应用。但是也可以设想其它系统和设备,这些系统和设备在具体描述和权利要求的范围内。来自操作系统12的调用启动一个或多个应用。操作系统12被设计用于利用多线程系统(一个线程是一个离散处理单元,例如多处理器系统中的单个处理器或多核系统中的单核)。为了执行此操作,操作系统12将待进行的工作分解成相对离散的任务14。这些任务可以针对应用或针对操作系统本身执行。目标是尽可能有效地处理任务。
为了实现此目标,操作系统创建任务,这些任务向并发运行的线程要求尽可能少的数据。同样也希望两个线程不会同时需要来自存储器的相同数据。操作线程的这一和许多其它特征会产生问题,例如,在一个线程等待另一线程完成时出现卡顿,或者在所有线程并发运行耗电量大的进程时超过用电量。
图2是在多线程系统的操作系统内运行的软件中实施的实施例的方框图。任务14被提供给任务容器20。存储器22连接到任务容器20。任务容器20接收、存储任务并缓存该任务所需的存储器。任务随后等待控制器24的指令,控制器24将任务分配给线程26-1至26-N中的一个。在一些实施例中,线程26-1至26-N包括单独的处理器;在一些实施例中,线程26-1至26-N包括多核处理器中的核;在一些实施例中,包括这两者的组合。术语“线程”在本文中用于指示离散处理实体。但是各个线程可能不完全离散。每个线程都可以访问存储器,利用其它资源。本文中使用的术语“离散”只是指以下事实:每个线程可以相对自主地处理来自其它线程的任务。线程可以访问独立的资源或者可以访问共享资源。
控制器24包括数据收集模块28。数据收集模块28收集与在线程26-1至26-N上运行的任务有关的统计数据。例如,数据收集模块28可收集任务运行时的对象、存储器或寄存器锁的数量;在任务组内执行的同步的等待时间;存储器相关特征,例如缓存未命中率,等等。这些数据可以近实时收集,数据被收集用于确定是否希望或需要在后续处理周期中对处理器节流。节流包括禁用或去激活一个或多个线程,以促进更有序的处理、降低耗电量,或者改善系统性能。数据收集模块28所收集的数据可以反映实时资源和系统状态,并且包括用于节流决策的准确输入。
在一示例实施例中,多线程系统包括:分配模块,其在时间N期间将多个任务的子集分配给多个线程;收集模块,其在时间N期间收集与多个线程的操作有关的数据;分析模块,其分析数据以确定与时间N期间多个线程的操作有关的至少一个条件;以及调整模块,其根据至少一个条件调整在时间N+1内可用的多个线程的数量。在一些实施例中,多线程系统可包括其它或额外的模块,用于执行实施例中所描述的步骤中的任一步骤或步骤组合。
图3是根据一实施例的节流决策过程的流程图。在步骤101中,运行加载的线程。在步骤103中,收集有关线程操作的数据。随后在步骤105中分析数据。该分析基于经验和先前的实验结果,即该分析是启发式的。如果分析结果超过预设阈值,那么在步骤107中,决策模块将输出正步长值k,该值指示还有k个硬件线程将在下一处理时间间隔内启用。如果决策模块不满足预设阈值,那么该模块将输出负步长值k,该值意味着硬件线程的数量将在下一处理时间间隔内减少k。在步骤109中,基于在步骤107中确定的k发布节流命令。在其它实施例中,当启发式分析低于阈值时,k可增加;反之亦然。在又一实施例中,k的整数量可基于启发式分析动态确定。
节流是暂时减少可用于处理的线程的数量。实验表明,在某些情况下,过多的线程会妨碍整个处理系统的操作。例如,如果数据收集模块28检测到大量的缓存未命中,那么暂时减少操作线程的数量实际上可以加速整体的处理吞吐量。相关数据的其它示例是从不同线程(一个线程需要另一个线程的结果)同步任务所需的时间、对象锁(其中只有一个线程可以访问被锁定的对象)的数量和缓存未命中的数量。在其它情况下,在特定模式下操作的过多线程可能消耗过多的电量。这对于智能手机等便携式设备尤为重要。
图4进一步示出了决策过程105。在步骤201中,假设线程在时隙N内操作。在步骤203中,聚集来自数据收集模块28的数据。在步骤205中,使用启发式过程分析收集到的数据,该过程使用输入数据的线性编程或加权和等方法。在步骤207中,将分析结果与一个或多个预设阈值进行比较。例如,预设阈值可启发式确定。在步骤209中,如果数据分析的结果大于预设阈值,则决策为yes;如果数据分析的结果小于预设阈值,则决策为no。在一项实施例中,yes输出会触发正k值,意味着操作线程的数量减少k。no输出会触发负k值,线程数量会增加k。在其它启发法中,阈值高于结果会触发负k值,同时低于正值。如果结果低于第一阈值,则其它类型的启发法提供负值k;如果结果在第一阈值与第二阈值之间,则提供零值k;如果结果高于第二阈值,则提供正值k。k的节流值在时间N+1期间应用于线程。本实施例的操作不限于将线程数量减少或增加k。出于简单性和操作速度,选择了该方法。此外,本实施例不限于所用启发法类型。不同系统配置可能反应不同,因此,不同的启发式分析可以确定不同数据适用于分析。响应于决策分析而增加或减少操作线程的数量的任何方法都视为在本实施例的范围内。
图5示出了当步骤207中的数据分析阈值高于阈值时图2的实施例的操作。在图5中,假设在时间N期间没有线程被节流,且k=3。在这种情况下,例如,控制器24在时间N+1期间不会将任何任务分配给线程26-1、26-2和26-3,如图5所示。在一些实施例中,可能存在其它临时关闭线程的方法。例如,在节电比速度更重要的设备中,被节流的线程可能被断电。但是这会降低设备的整体速度,因为在重新通电时需要上电时间。
尽管进行了详细的描述,但应理解,可在不脱离由所附权利要求书界定的本发明的精神和范围的情况下,对本文做出各种改变、替代和更改。此外,本发明的范围不希望限于本文中所描述的特定实施例,所属领域的一般技术人员将从本发明中容易了解到,过程、机器、制造工艺、物质成分、构件、方法或步骤(包括目前存在的或以后将开发的)可执行与本文所述对应实施例大致相同的功能或实现与本文所述对应实施例大致相同的效果。相应地,所附权利要求范围包括这些流程、机器、制造、物质组分、构件、方法及步骤。
Claims (14)
1.一种用于操作多线程处理系统的方法,其特征在于,包括:
控制器在时间N期间将多个任务的子集分配给多个线程;
所述控制器在所述时间N期间收集与所述多个线程的操作有关的数据;
所述控制器分析所述数据以确定与所述时间N期间所述多个线程的所述操作有关的至少一个条件;以及
所述控制器根据所述至少一个条件调整在时间N+1内可用的所述多个线程的数量。
2.根据权利要求1所述的方法,其特征在于,所述数据是发布的对象锁的数量。
3.根据权利要求1或2所述的方法,其特征在于,所述数据是缓存未命中的数量。
4.根据权利要求1至3中的任一权利要求所述的方法,其特征在于,所述数据是任务同步等待时间。
5.根据权利要求1至4中的任一权利要求所述的方法,其特征在于,所述多线程系统包括多核处理器。
6.根据权利要求1至5中的任一权利要求所述的方法,其特征在于,所述多线程系统包括多处理器系统。
7.根据权利要求1至6中的任一权利要求所述的方法,其特征在于,对在时间N+1内可用的所述多个线程的数量的所述调整是固定整数,所述固定整数可以是正数或负数。
8.一种多线程处理系统控制器,其特征在于,包括:
存储程序的存储系统;以及
耦合到所述存储系统并执行所述程序的处理器,其中所述程序配置所述多线程处理系统控制器执行以下操作:
在时间N期间将多个任务的子集分配给多个线程;
在所述时间N期间收集与所述多个线程的操作有关的数据;
分析所述数据以确定与所述时间N期间所述多个线程的所述操作有关的至少一个条件;以及
根据所述至少一个条件调整在时间N+1内可用的所述多个线程的数量。
9.根据权利要求8所述的多线程处理系统,其特征在于,所述数据是发布的对象锁的数量。
10.根据权利要求8或9所述的多线程处理系统,其特征在于,所述数据是缓存未命中的数量。
11.根据权利要求8至10中的任一权利要求所述的多线程处理系统,其特征在于,所述数据是任务同步等待时间。
12.根据权利要求8至11中的任一权利要求所述的多线程处理系统,其特征在于,所述多线程系统包括多核处理器。
13.根据权利要求8至12中的任一权利要求所述的多线程处理系统,其特征在于,所述多线程系统包括多处理器系统。
14.根据权利要求8至13中的任一权利要求所述的多线程处理系统,其特征在于,对在时间N+1内可用的所述多个线程的数量的所述调整是固定整数,所述固定整数可以是正数或负数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/810,205 US10176014B2 (en) | 2015-07-27 | 2015-07-27 | System and method for multithreaded processing |
US14/810,205 | 2015-07-27 | ||
PCT/CN2016/091893 WO2017016480A1 (en) | 2015-07-27 | 2016-07-27 | System and method for multithreaded processing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107924327A true CN107924327A (zh) | 2018-04-17 |
Family
ID=57886002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680032001.1A Pending CN107924327A (zh) | 2015-07-27 | 2016-07-27 | 用于多线程处理的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10176014B2 (zh) |
EP (1) | EP3320434A4 (zh) |
CN (1) | CN107924327A (zh) |
CA (1) | CA2993895A1 (zh) |
WO (1) | WO2017016480A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059024A (zh) * | 2019-04-19 | 2019-07-26 | 中国科学院微电子研究所 | 一种内存空间数据缓存方法及装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210042100A1 (en) | 2018-02-02 | 2021-02-11 | Dover Microsystems, Inc. | System and method for translating mapping policy into code |
JP7052396B2 (ja) * | 2018-02-13 | 2022-04-12 | 日本電気株式会社 | 資料採取サーバ、資料採取システム、資料採取方法および資料採取プログラム |
WO2019213061A1 (en) | 2018-04-30 | 2019-11-07 | Dover Microsystems, Inc. | Systems and methods for checking safety properties |
WO2020097177A1 (en) * | 2018-11-06 | 2020-05-14 | Dover Microsystems, Inc. | Systems and methods for stalling host processor |
US11841956B2 (en) | 2018-12-18 | 2023-12-12 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
US11321123B2 (en) * | 2019-11-21 | 2022-05-03 | International Business Machines Corporation | Determining an optimum number of threads to make available per core in a multi-core processor complex to executive tasks |
US11508124B2 (en) * | 2020-12-15 | 2022-11-22 | Advanced Micro Devices, Inc. | Throttling hull shaders based on tessellation factors in a graphics pipeline |
US11776085B2 (en) | 2020-12-16 | 2023-10-03 | Advanced Micro Devices, Inc. | Throttling shaders based on resource usage in a graphics pipeline |
US11710207B2 (en) | 2021-03-30 | 2023-07-25 | Advanced Micro Devices, Inc. | Wave throttling based on a parameter buffer |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286138A (zh) * | 2008-06-03 | 2008-10-15 | 浙江大学 | 基于数据划分的多线程共享多核处理器二级缓存的方法 |
US20100011360A1 (en) * | 2008-07-09 | 2010-01-14 | International Business Machines Corporation | Lock Windows for Reducing Contention |
US20120089991A1 (en) * | 2010-10-11 | 2012-04-12 | Sap Ag | System and method for identifying contention of shared resources in a runtime system |
US20120284720A1 (en) * | 2011-05-06 | 2012-11-08 | International Business Machines Corporation | Hardware assisted scheduling in computer system |
US20140019984A1 (en) * | 2012-07-11 | 2014-01-16 | Sap Ag | Feedback-driven tuning for efficient parallel execution |
US9069564B1 (en) * | 2012-02-14 | 2015-06-30 | Netlogic Microsystems, Inc. | Weighted instruction count scheduling |
WO2015096031A1 (zh) * | 2013-12-24 | 2015-07-02 | 华为技术有限公司 | 线程共享资源分配方法及装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6898617B2 (en) | 1999-11-18 | 2005-05-24 | International Business Machines Corporation | Method, system and program products for managing thread pools of a computing environment to avoid deadlock situations by dynamically altering eligible thread pools |
US7512606B2 (en) | 2005-03-31 | 2009-03-31 | International Business Machines Corporation | Database contention and deadlock detection and reduction within application servers |
US8108863B2 (en) | 2005-12-30 | 2012-01-31 | Intel Corporation | Load balancing for multi-threaded applications via asymmetric power throttling |
US8402463B2 (en) * | 2006-10-30 | 2013-03-19 | Hewlett-Packard Development Company, L.P. | Hardware threads processor core utilization |
US8356284B2 (en) * | 2006-12-28 | 2013-01-15 | International Business Machines Corporation | Threading model analysis system and method |
US8132172B2 (en) | 2007-03-26 | 2012-03-06 | Intel Corporation | Thread scheduling on multiprocessor systems |
US7853950B2 (en) * | 2007-04-05 | 2010-12-14 | International Business Machines Corporarion | Executing multiple threads in a processor |
US20090007108A1 (en) * | 2007-06-29 | 2009-01-01 | Hanebutte Ulf R | Arrangements for hardware and software resource monitoring |
KR100962531B1 (ko) | 2007-12-11 | 2010-06-15 | 한국전자통신연구원 | 동적 로드 밸런싱을 지원하는 멀티 쓰레딩 프레임워크를 수행하는 장치 및 이를 이용한 프로세싱 방법 |
US20090165007A1 (en) * | 2007-12-19 | 2009-06-25 | Microsoft Corporation | Task-level thread scheduling and resource allocation |
US8656396B2 (en) * | 2009-08-11 | 2014-02-18 | International Business Machines Corporation | Performance optimization based on threshold performance measure by resuming suspended threads if present or by creating threads within elastic and data parallel operators |
US8683470B2 (en) * | 2009-11-24 | 2014-03-25 | Microsoft Corporation | Scalable thread locking with customizable spinning |
US8880381B2 (en) * | 2010-10-01 | 2014-11-04 | The Boeing Company | Optimization of processor characteristics and large scale system optimization through domain decomposition |
US20120254822A1 (en) * | 2011-03-28 | 2012-10-04 | Microsoft Corporation | Processing optimization load adjustment |
CN102629220A (zh) | 2012-03-08 | 2012-08-08 | 北京神州数码思特奇信息技术股份有限公司 | 一种动态任务分配管理方法 |
US9158651B2 (en) * | 2012-07-27 | 2015-10-13 | Hewlett-Packard Development Company, L.P. | Monitoring thread starvation using stack trace sampling and based on a total elapsed time |
US9921870B2 (en) * | 2014-09-25 | 2018-03-20 | Oracle International Corporation | System and method for supporting a scalable thread pool in a distributed data grid |
US9588823B2 (en) * | 2014-12-24 | 2017-03-07 | Intel Corporation | Adjustment of execution of tasks |
-
2015
- 2015-07-27 US US14/810,205 patent/US10176014B2/en active Active
-
2016
- 2016-07-27 CN CN201680032001.1A patent/CN107924327A/zh active Pending
- 2016-07-27 EP EP16829845.3A patent/EP3320434A4/en not_active Withdrawn
- 2016-07-27 WO PCT/CN2016/091893 patent/WO2017016480A1/en active Application Filing
- 2016-07-27 CA CA2993895A patent/CA2993895A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286138A (zh) * | 2008-06-03 | 2008-10-15 | 浙江大学 | 基于数据划分的多线程共享多核处理器二级缓存的方法 |
US20100011360A1 (en) * | 2008-07-09 | 2010-01-14 | International Business Machines Corporation | Lock Windows for Reducing Contention |
US20120089991A1 (en) * | 2010-10-11 | 2012-04-12 | Sap Ag | System and method for identifying contention of shared resources in a runtime system |
US20120284720A1 (en) * | 2011-05-06 | 2012-11-08 | International Business Machines Corporation | Hardware assisted scheduling in computer system |
US9069564B1 (en) * | 2012-02-14 | 2015-06-30 | Netlogic Microsystems, Inc. | Weighted instruction count scheduling |
US20140019984A1 (en) * | 2012-07-11 | 2014-01-16 | Sap Ag | Feedback-driven tuning for efficient parallel execution |
WO2015096031A1 (zh) * | 2013-12-24 | 2015-07-02 | 华为技术有限公司 | 线程共享资源分配方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059024A (zh) * | 2019-04-19 | 2019-07-26 | 中国科学院微电子研究所 | 一种内存空间数据缓存方法及装置 |
CN110059024B (zh) * | 2019-04-19 | 2021-09-21 | 中国科学院微电子研究所 | 一种内存空间数据缓存方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US10176014B2 (en) | 2019-01-08 |
US20170031708A1 (en) | 2017-02-02 |
EP3320434A4 (en) | 2018-07-18 |
EP3320434A1 (en) | 2018-05-16 |
WO2017016480A1 (en) | 2017-02-02 |
CA2993895A1 (en) | 2017-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107924327A (zh) | 用于多线程处理的系统和方法 | |
Bai et al. | {PipeSwitch}: Fast pipelined context switching for deep learning applications | |
TWI575370B (zh) | 在多核心處理器中執行電源管理 | |
CN102184125B (zh) | 异构多核环境下基于程序行为在线分析的负载均衡方法 | |
Fedorova et al. | Maximizing power efficiency with asymmetric multicore systems | |
US10169105B2 (en) | Method for simplified task-based runtime for efficient parallel computing | |
CN103119580A (zh) | 异构多处理器计算平台中的应用调度 | |
CN101788920A (zh) | 一种基于处理器分区技术的cpu虚拟化方法 | |
CN103678003A (zh) | 一种实时性增强的虚拟cpu调度方法 | |
Li et al. | Energy-aware task scheduling optimization with deep reinforcement learning for large-scale heterogeneous systems | |
Markovic et al. | Hardware round-robin scheduler for single-isa asymmetric multi-core | |
Gupta et al. | Kinship: efficient resource management for performance and functionally asymmetric platforms | |
Leonenkov et al. | Supercomputer efficiency: Complex approach inspired by Lomonosov-2 history evaluation | |
Tchamgoue et al. | Power-aware scheduling of compositional real-time frameworks | |
Huang et al. | GPU Energy optimization based on task balance scheduling | |
CN104699520B (zh) | 一种基于虚拟机迁移调度的节能方法 | |
Mahmood et al. | Power-efficient scheduling of parallel real-time tasks on performance asymmetric multicore processors | |
Boyer | Improving Resource Utilization in Heterogeneous CPU-GPU Systems | |
Dai et al. | Q-learning based dvfs for multi-core real-time systems | |
Shieh et al. | Energy-efficient tasks scheduling algorithm for dual-core real-time systems | |
CN104391929A (zh) | 一种etl中数据流的传递方法 | |
Lifa et al. | On-the-fly energy minimization for multi-mode real-time systems on heterogeneous platforms | |
US11886224B2 (en) | Core selection based on usage policy and core constraints | |
Alonso et al. | Runtime scheduling of the LU factorization: performance and energy | |
Gottschlag | AVX Overhead Mitigation: OS Support for Power-Limited Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180417 |