CN102483703B - 计算机线程至异构资源的映射 - Google Patents

计算机线程至异构资源的映射 Download PDF

Info

Publication number
CN102483703B
CN102483703B CN201080035177.5A CN201080035177A CN102483703B CN 102483703 B CN102483703 B CN 102483703B CN 201080035177 A CN201080035177 A CN 201080035177A CN 102483703 B CN102483703 B CN 102483703B
Authority
CN
China
Prior art keywords
thread
core
processor core
metadata
processor
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
CN201080035177.5A
Other languages
English (en)
Other versions
CN102483703A (zh
Inventor
安德鲁·乌尔夫
托马斯·M·康特
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 CN102483703A publication Critical patent/CN102483703A/zh
Application granted granted Critical
Publication of CN102483703B publication Critical patent/CN102483703B/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/5044Allocation 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请一般地描述了将线程映射到异构处理器核的技术。示例技术可以包括将线程与一个或多个预定义执行特性相关联;基于一个或多个预定义执行特性,将线程分配给一个或多个异构处理器核;以及/或者由分配的相应的异构处理器核执行线程。

Description

计算机线程至异构资源的映射
相关申请的交叉参考
本申请要求2009年9月11日提交的题为“MAPPING OFCOMPUTER THREADS ONTO HETEROGENEOUS RESOURCES”的美国专利申请No.12/557,985的优先权,其全部内容一并在此作为参考。
本申请可以与如下的美国专利申请有关:Wolfe等在2009年4月21日提交的题为“THREAD MAPPING IN MULTI-CORE PROCESSORS”的共同待审的美国专利申请No.12/427,602;Wolfe等在2009年9月11日提交的题为“THREAD SHIFT:ALLOCATING THREADS TO CORES”的美国专利申请No.12/557,971;和/或Wolfe等在2009年9月11日提交的题为“CACHE PREFILL ON THREADMIGRATION”的共同待审的美国专利申请No.12/557,864,其全部内容一并在此作为参考。
背景技术
本公开一般涉及具有异构硬件的多核计算机系统,更具体地,涉及至少部分地基于在多核计算机系统上执行的软件应用的执行特性,将线程高效地映射到异构硬件上。
发明内容
本公开一般涉及多核计算机处理。具体地,本公开涉及将线程映射到多核计算机系统的异构硬件上。
本公开的第一方面一般描述了将线程映射到异构处理器核的方法。这些方法可以包括:将线程与预定义执行特性相关联;以及至少部分地基于预定义执行特性,将线程分配给一个或多个异构处理器核。
在第一方面的一些示例中,该方法还可以包括:由分配的相应的异构处理器核执行线程。在一些示例中,该方法可以包括:将元数据与线程相关联,其中元数据识别如何配置与线程相关联的软件应用以进行操作。一些示例可以提供:元数据可以嵌入在线程中和/或与线程分离。在一些示例中,元数据可以包括在线程中。
在第一方面的一些示例中,该方法还可以包括:向线程映射软件工具发送元数据,该线程映射软件工具被配置为将线程分配给预定的异构处理器核。在一些示例中,元数据可以识别能够执行该线程的异构处理器核。一些示例可以提供:至少部分地基于元数据,将线程分配给异构处理器核。
在第一方面的一些示例中,软件应用可以按照不同阶段操作,其中每一阶段跟与该阶段有关的特定任务的操作需求相关联。线程可以包括至少部分地识别阶段的预定义执行特性。
在第一方面的一些示例中,该方法可以包括:动态地将线程分配给异构处理器核。可以不知道元数据的情况下执行线程分配。在一些示例中,线程可以包括进程和/或任务。
在第一方面的一些示例中,该方法可以包括:使用用于产生性能计数的性能计数器,收集与线程关联的信息。在这些示例中,分配线程可以包括:至少部分地基于性能计数以及使用与异构处理器核关联的性能计数器收集的信息,识别异构处理器核。
在第一方面的一些示例中,该方法还可以包括:将来自性能计数器的性能计数与线程相关联。在这些示例中,分配线程可以包括:至少部分地基于性能计数以及使用与异构处理器核关联的性能计数器收集的信息,识别异构处理器核。
第一方面的一些示例还可以包括:将多个线程中的每一个与线程相关联。多个线程可以与预定义执行特性相关联。
本公开的第二方面一般描述了将与软件应用关联的进程映射到一个或多个异构处理器核上的方法。这些方法可以包括:将进程与预定义执行特性相关联,其中每个预定义执行特性与软件应用的阶段对应。该方法还可以包括:识别软件应用的当前阶段。当前阶段可以跟与该阶段有关的特定任务的操作需求相关联。该方法还可以包括:至少部分地基于软件应用的当前阶段,将进程分配给异构处理器核。
在第二方面的一些示例中,该方法还可以包括:由分配的相应的异构处理器核执行进程。在一些示例中,预定义执行特性可以至少部分地基于软件应用的当前阶段而变化。在一些示例中,软件应用的每个阶段可以由软件应用中的预定断点和/或软件应用从第一任务切换到第二任务时的预定点来识别。
在第二方面的一些示例中,该方法还可以包括:至少部分地基于与该阶段有关的特定任务的操作需求,(在软件应用的每个阶段期间)将进程分配给异构处理器核。这些示例还可以包括:由分配的相应的异构处理器核执行进程。
第二方面的一些示例还可以包括:将来自性能计数器的性能计数与进程相关联。这些示例可以包括:至少部分地基于预定义执行特性、来自与异构处理器核关联的性能计数器的性能计数、以及使用性能计数器收集的信息,将进程分配给异构处理器核。
在第二方面的一些示例中,该方法还包括:使用与历史元数据关联的基于执行的优化简档来管理软件应用,其中历史元数据与过去异构处理器核执行软件应用有关。
本公开的第三方面一般描述了产品,例如其上存储有机器可读指令的存储介质。当由处理单元执行时,这种机器可读指令可以使得计算平台至少部分地基于预定义执行特性,将具有该预定义执行特性的线程分配给异构处理器核,并且向分配给线程的每个异构处理器核发送线程以执行。
在一些示例中,线程可以包括与该线程关联的性能计数器。一些示例可以包括:至少部分地基于预定义执行特性、性能计数和/或使用与异构处理器核关联的性能计数器收集的信息,将线程分配给异构处理器核。
本公开的第四方面一般描述了多核处理器。这种多核处理器可以包括第一和第二处理器核。该多核处理器可以配置为至少部分地基于预定义执行特性,将具有该预定义执行特性的线程分配给第一处理器核或第二处理器核,并且向分配给线程的处理器核发送线程以执行。
在一些示例中,第一处理器核可以具有第一能力,第二处理器核可以具有第二能力,第二能力不同于第一能力,使得多核处理器包括异构硬件。在一些示例中,第一能力和第二能力各自对应于图形资源、数学计算资源、指令集、加速器、SSE、高速缓存大小和/或分支预测器。
以上发明内容仅仅是说明性的,而绝不是限制性的。除了上述示例性的各方面、各实施例和各特征之外,参照附图和以下详细说明,将清楚其他方面、其他实施例和其他特征。
附图说明
根据以下说明和所附权利要求,结合附图,本公开的前述和其他特征将更加清楚。应当认识到,这些附图仅仅示出了根据本公开的一些实施例,因此不应被认为是限制本公开范围,通过使用附图以额外的特征和细节来详细描述本公开。
在附图中:
图1是示出了具有多个异构核的示例多核系统的框图;
图2是示出了用于将线程映射到多个异构处理器核中的至少一个的示例方法的流程图;
图3是示出了将与软件应用关联的进程映射到多个异构处理器核中的至少一个的示例方法的流程图;
图4是示出了包括具有机器可读指令的存储介质的示例产品的示意图;以及
图5是示出了全部根据本公开的至少一些实施例配置的、可以布置用于线程映射实施方式的示例计算设备的框图。
具体实施方式
在以下详细说明中,参考作为详细说明的一部分的附图。在附图中,类似符号通常表示类似部件,除非上下文另行指明。在具体实施方式部分、附图和权利要求书中记载的示例性实施例并不是限制性的。在不脱离在此给出的主题的精神或范围的情况下,可以利用其他实施例,且可以进行其他改变。应当理解,在此一般性记载以及附图中图示的本公开的各方面可以按照在此明确和隐含公开的多种不同配置来设置、替换、组合和设计。
本公开尤其涉及与具有异构硬件的多核计算机系统有关的方法、系统、设备和/或装置,更具体地,涉及至少部分地基于在多核计算机系统上执行的软件应用的执行特性,高效地将线程映射到异构硬件上。
本公开考虑到一些计算机系统可以包括多个处理器核。在具有异构硬件的多核系统中,一些核可以具有另一些核不可用的某些硬件能力。在一些示例计算机系统中,可以将至少一个线程(可以是指令序列,并且可以与其他线程并行执行)分配给适当的核。线程/核映射可以用来将线程与适当核关联。在一些示例计算机系统中,可以在线程执行完成之前,将线程从一个核重新分配给另一个核。虽然本公开一般涉及线程,但是在本公开的范围内包括进程、任务等的映射。
图1是示出了根据本公开至少一些实施例布置的具有多个异构核的示例多核系统的框图。该示例多核系统100可以包括多个处理器核102、104和/或106。在示例实施例中,多核系统100可以包括一个或多个核102、104和/或106,每个核具有不同能力。换言之,多核系统100可以包括异构硬件。例如,一个核102可以包括增强图形资源,另一核104可以包括增强数学计算资源,另一核106可以包括大容量高速缓存。
如图1所示,软件应用108可以包括多个线程(或进程和/或任务)。为了高效地将线程映射到适当核,可以由操作性连接至软件应用108的线程映射系统112来实施此处描述的线程映射方法。在一些实施例中,性能计数器110也可以操作性耦合至线程映射系统112,以辅助高效地映射线程114、116和/或118到一个或多个核102、104和/或106,下面将更加详细地进行描述。
在图1的示例实施例中,线程映射系统112可以将线程映射到适当核。具体地,线程映射系统112可以将第一线程(线程#1)114映射到核102,可以将第二线程(线程#2)116映射到核104,并且可以将第三线程(线程#3)118映射到核106。
在一些示例实施例中,可以在具有增强图形资源的核上初始地执行可以初始受益于增强图形能力的线程。至少部分地基于线程可能稍后受益于增强数学计算能力的预期,可以向具有增强数学计算能力的核发送与该线程有关的数据,以完成线程的执行。
在一些示例实施例中,核可以包括不同指令集、不同加速器(例如,DSP(数字信号处理器)和/或不同SSE(流式SIMD(单指令多数据)扩展))、大和/或小高速缓存(例如L1和L2高速缓存)、不同分支预测器(处理器的用于确定程序的指令流中条件分支是否可能被采用的那些部分)等等。至少部分地基于核之间的这些和/或其他不同之处,不同核可以提供针对某些任务的不同能力。
在一些示例实施例中,一些线程可以与一个或多个执行特性相关联,执行特性可以由例如一个或多个性能计数器收集的信息来表达或者基于该信息。在一些示例实施例中,线程映射可以至少部分地基于一个或多个执行特性。
在一些示例实施例中,可以至少部分地基于各个核的硬件能力,将线程映射(例如使用线程映射系统112)到各个核。例如,可以将与大L1(高速缓存存储器)需求关联的线程映射到具有大L1硬件的核。类似地,可以将与大SSE(指令集)需求关联的线程映射到包括本地SSE硬件实现的核。这些示例是非限制性的,将理解可以至少部分地基于任何硬件特性、指令集、以及/或者核和/或线程的其他特性来映射线程。此外,本公开考虑到如果不基于硬件能力将线程映射到核,则可以使用软件模拟来处理线程,这可能增加该线程的处理时间。
在一些示例实施例中,线程执行特性可以基于该线程中运行的程序阶段而随时间变化。例如,线程可以原始地具有大L1需求,但是可以稍后具有最小L1需求。可以在线程执行期间,在不同时间将线程映射到不同核,以提高性能。例如,可以在L1需求较高时将线程映射到包括相对较大L1高速缓存的核,以及/或者可以在L1需求较低时将线程映射到具有较小L1高速缓存的核。
在一些示例实施例中,确定是否将线程映射到不同核和/或何时执行这种映射可以包括:对执行简档的至少一部分进行评估,该执行简档可以包括与该线程的先前执行有关的数据。在一些示例实施例中,可以使用如美国专利申请公开No.2007/0050605(其作为参考合并在此)中公开的冻干幽灵页面(freeze-dried ghost page)执行简档产生方法来产生执行简档。该方法可以使用影子处理器(shadow processor),或者在一些实施例中可以使用影子核(shadow core),来预先对线程的至少一部分的执行进行仿真,并产生与该执行有关的性能统计和测量。
在一些示例实施例中,处理器和/或高速缓存可以配置为在程序执行时收集信息。例如,这种信息可以包括程序参照哪些高速缓存行。在一些示例实施例中,可以评估有关高速缓存使用的数据,以确定应该替换哪些线程(例如,通过对线程处理剩余的行数进行计数)。在一些示例实施例中,性能计数器可以配置为跟踪运行线程的行收回,和/或可以使用该信息来决定可以清空哪些任务以开始优先级更高的任务。性能计数器还可以配置为跟踪自任务开始的行收回。
示例多核系统可以包括根据本公开配置使用的性能计数器。多种核可以操作性耦合至性能计数器。性能计数器可以配置为存储计数值(或性能计数),该计数值(或性能计数)指示了例如计算机系统内硬件有关的活动的数目。可以使用性能计数器收集的数据来至少部分地确定线程映射(例如从一个核到另一个核)。
一些示例实施例可以考虑到针对具体任务的高速缓存占用面积的大小。在一些示例实施例中,可以使用布卢姆滤波器(Bloom filter)来表征针对线程的高速缓存占用面积有多大。示例的布卢姆滤波器可以是空间高效的概率数据结构,该数据结构可以用于测试元素是否是集合的成员。当使用一些示例布卢姆滤波器时,假阳性(false positive)是可能的,但是不会存在假阴性(false negative)。在一些示例布卢姆滤波器中,元素可以添加到集合,但是不可以去除(尽管可以利用计数滤波器来处理该问题)。在一些示例布卢姆滤波器中,添加到集合的元素越多,假阳性的概率就越大。空布卢姆滤波器可以是全部设定为0的m个比特的比特数组。此外,可以定义k个不同散列函数,每一个散列函数可以按照均匀随机分布将某个集合元素映射或散列计算到m个数组位置之一。为了添加元素,可以将该元素馈送到k个散列函数中的每一个,以得到k个数组位置。这些位置上的比特可以设定为1。为了查询元素(例如,测试该元素是否在集合中),可以将该元素馈送到k个散列函数中的每一个,以得到k个数组位置。在一些示例布卢姆滤波器中,如果这些位置中任何位置上的比特为0,则该元素不在集合中;如果元素在集合中,则在插入该元素时k个数组位置处的所有比特应该已设定为1。在一些示例布卢姆滤波器中,如果k个数组位置处的所有比特是1,则该元素在集合中,或者在插入其他元素期间这些比特被设定为1。
在一些示例实施例中,可以使用布卢姆滤波器来跟踪当前线程正在使用高速缓存的哪些部分。例如,可以在线程首次被调度到核上时,清空滤波器。每次线程使用高速缓存行时,可以将其添加到滤波器集合。可以使用查询序列来估计线程占用面积,以评估高速缓存数据迁移的成本。在一些示例实施例中,可以使用滤波器中比特“1”的数目的简单群体计数(population count),来估计线程的高速缓存占用面积。在一些示例实施例中,可以使用计数布卢姆滤波器。在计数布卢姆滤波器中,每个滤波器元素可以是计数器,当线程使用高速缓存行时,该计数器递增,当高速缓存行无效时,该计数器递减。
在一些示例实施例中,可以由多核系统评估与线程关联的数据,以确定线程何时应该迁移到另一核,和/或线程应该迁移到哪个核。例如,系统可以使用与线程有关的实时计算(RTC)数据,以确定该线程是否落在目标截止期限之后。如果线程落在目标截止期限之后,则例如可以将线程迁移到更快的核。
在一些示例实施例中,可以预取用于线程迁移的高速缓存数据。可以由现有技术已知的硬件预取器来执行该预取。一个这种预取器公开在美国专利No.7,318,125中,其作为参考合并在此。即,当系统准备将线程发送给新核时,可以将来自当前核的参考发送给该新核,以准备迁移。因此,可以在准备迁移时对该新核进行“热身”。在一些示例实施例中,可以由该新核预取与要迁移的线程有关的基本上所有的数据。在一些示例实施例中,可以由该新核预取与要迁移的线程有关的数据的一部分。例如,可以预取高速缓存未命中、命中和/或行收回。在一些示例实施例中,不是将数据高速缓存在新核中(并且从而采用最终可能不需要的数据填充了新核),而是例如可以将数据预取到辅助/流缓冲器。
如本文使用的,“高速缓存命中”可以指引用已经高速缓存的数据的成功尝试,以及对应的数据。如本文使用的,“高速缓存未命中”可以指引用高速缓存中未找到的数据的尝试,以及对应的数据。如本文使用的,“行收回”可以指从高速缓存中移除高速缓存的行,以便在高速缓存中为不同数据腾出空间。行收回也可以包括回写操作,从而在从高速缓存中移除经修改的数据之前,将经修改的数据写入主存储器或更高的高速缓存级。
图2是示出了根据本公开至少一些实施例布置的用于将线程映射到多个异构处理器核中的至少一个上的示例方法200的流程图。示例方法200可以包括处理操作202和/或204中的一个或多个。
该处理可以开始于操作202,其可以包括将线程与一个或多个预定义执行特性相关联。处理可以从操作202流向操作204。操作204可以包括至少部分地基于一个或多个预定义执行特性,将线程分配给异构处理器核中的至少一个。
在一些实施例中,每个线程可以包括识别如何配置与线程关联的软件应用以进行操作的元数据。在一些实施例中,该方法还可以包括将元数据与线程关联。元数据可以识别如何配置与线程关联的软件应用以进行操作。在一个示例中,元数据可以嵌入在线程中或者与线程分离。在另一实施例中,该方法可以包括将元数据发送至线程映射软件工具(例如如线程映射系统112实现的)。线程映射软件工具可以配置为评估线程并将线程分配给预定的异构处理器核。此外,元数据可以识别具有适当能力以执行线程和/或具有针对线程执行的可用性的异构处理器核。在另一实施例中,分配操作可以包括至少部分地基于元数据,将线程分配给一个或多个异构处理器核。
在示例实施例中,软件应用可以按照不同阶段操作,其中每个阶段可以跟与该阶段有关的特定任务的操作需求相关联。以这种方式,该方法可以配置为基于特定阶段期间可能需要的处理是什么类型,来确定用于处理该线程的适当核。在一个示例中,软件应用可以包括多个阶段,包括软件应用开始期间的第一阶段、界面显示时段期间的第二阶段、文本输入时段期间的第三阶段、拼写检查任务期间的第四阶段和/或其他类似阶段。
在另一实施例中,分配操作可以包括将线程动态地分配给异构处理器核。以这种方式,可以在不知道元数据和/或元数据的内容的情况下,执行分配操作。
在又一实施例中,线程可以包括性能计数。在该实施例中,分配操作可以包括至少部分地基于性能计数和/或使用与一个或多个异构处理器核关联的性能计数器收集的信息,识别异构处理器核。在另一实施例中,分配操作可以至少部分地基于预定义执行特性、来自性能计数器的性能计数、和/或使用与一个或多个异构处理器核关联的性能计数器收集的信息,来分配线程。
图3是示出了根据本公开至少一些实施例的用于将与软件应用关联的进程映射到多个异构处理器核中的至少一个的示例方法300的流程图。该示例方法300可以包括处理操作302、304和/或306中的一个或多个。
方法300的处理可以开始于操作302,其可以包括将进程与一个或多个预定义执行特性关联,其中每个预定义执行特性可以对应于软件应用的阶段。处理可以从操作302继续到操作304,操作304可以包括识别软件应用的当前阶段。当前阶段可以跟与该阶段有关的特定任务的操作需求相关联。然后,处理可以从操作304继续到操作306,操作306可以包括至少部分地基于软件应用的当前阶段,将进程分配给异构处理器核中的至少一个。
在示例实施例中,每个阶段可以由软件应用中的预定断点和/或软件应用可以从第一任务切换到第二任务的预定点来识别。在另一实施例中,该方法还可以包括将来自性能计数器的性能计数与进程关联。在这种实施例中,分配进程可以包括至少部分地基于预定义执行特性、来自与异构处理器核关联的性能计数器的性能计数、和/或使用性能计数器收集的信息,将进程分配给异构处理器核。
在又一实施例中,可以由与历史元数据关联的基于执行的优化简档120(例如冻干幽灵页面)来管理软件应用,该历史元数据与过去异构处理器核执行软件应用有关。
图4是根据本公开至少一些实施例布置的包括具有机器可读指令的存储介质400的示例产品的示意图。当由一个或多个处理单元执行时,机器可读指令在操作时可以使得计算平台至少部分地基于一个或多个预定义执行特性,将具有该一个或多个预定义执行特性的线程分配给多个异构处理器核中的至少一个(操作402);以及向相应的分配的异构处理器核发送线程以执行(操作404)。
图5是示出了根据本公开至少一些实施例的布置用于线程映射的示例计算设备900的框图。在非常基本的配置901中,计算设备900可以典型地包括一个或多个处理器910、以及系统存储器920。存储器总线930可以用于处理器910与系统存储器920之间的通信。
在另一示例实施例中,多核处理器可以包括第一处理器核和第二处理器核。在该实施例中,多核处理器可以配置为至少部分地基于预定义执行特性,将具有该预定义执行特性的线程分配给第一处理器核或第二处理器核。该多核处理器还可以配置为将线程发送给分配给该线程的第一处理器核或第二处理器核,以执行该线程。在一个示例中,第一处理器核可以是核102,第二处理器核可以是核106。
根据所期望的配置,处理器910可以是任何类型的,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任何组合。处理器910可以包括一级或多级缓存(例如,一级高速缓存911和二级高速缓存912)、处理器核913、以及寄存器914。处理器核913可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任何组合。存储器控制器915也可以与处理器910一起使用,或者在一些实施方式中,存储器控制器915可以是处理器910的内部部件。
根据所期望的配置,系统存储器920可以是任何类型的,包括但不限于易失性存储器(如RAM)、非易失性存储器(如ROM、闪存等)或其任何组合。系统存储器920可以包括操作系统921、一个或多个应用程序922和程序数据924。应用程序922可以包括线程映射算法923,其可以布置为将线程与一个或多个执行特性关联,并将线程分配给至少一个异构硬件部件。程序数据924可以包括线程映射数据925,该数据可以用于将线程映射到适当的异构硬件部件。在一些示例中,应用程序922可以布置为根据本文所述的多种方法,在操作系统921上利用程序数据924操作,使得可以高效地将线程映射到适当的处理器核。这里所描述的基本配置在图5中由虚线901内的那些部件来图示。
计算设备900可以具有额外特征或功能以及额外接口,以便于基本配置901与任何所需设备和接口之间进行通信。例如,总线/接口控制器940可以便于基本配置901与一个或多个数据存储设备950之间经由存储接口总线941进行通信。数据存储设备950可以是可移除存储设备951、不可移除存储设备952或其组合。可移除存储设备和不可移除存储设备的示例包括磁盘设备(如软盘驱动器和硬盘驱动器(HDD))、光盘驱动器(如紧凑型光盘(CD)驱动器或数字通用光盘(DVD)驱动器)、固态驱动器(SSD)以及磁带驱动器,这仅仅是极多例子中的一小部分。示例计算机存储介质可以包括以用于信息存储的任何方法和技术实现的易失性和非易失性、可移除和不可移除介质,如计算机可读指令、数据结构、程序模块或其他数据。
系统存储器920、可移除存储设备951和不可移除存储设备952均是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用光盘(DVD)或其他光存储设备,磁盒、磁带、磁盘存储设备或其他磁存储设备,或可以用于存储所需信息并可以由计算设备900访问的任何其他介质。任何这种计算机存储介质可以是设备900的一部分。
计算设备900还可以包括接口总线942,以便于各种接口设备(例如,输出接口、外围设备接口和通信接口)经由总线/接口控制器940与基本配置901进行通信。示例输出设备960包括图形处理单元961和音频处理单元962,其可被配置为经由一个或多个A/V端口963与多种外部设备(如显示器或扬声器)进行通信。示例外围设备接口970包括串行接口控制器971或并行接口控制器972,它们可被配置为经由一个或多个I/O端口973与外部设备(如输入设备,例如键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描仪等)进行通信。示例通信设备980包括网络控制器981,其可以被设置为便于经由一个或多个通信端口982与一个或多个其他计算设备990通过网络通信进行通信。该通信连接可以是通信介质的一个示例。通信介质典型地可以由调制数据信号(如载波或其他传输机制)中的计算机可读指令、数据结构、程序模块或其他数据来体现,并可以包括任何信息传送介质。“调制数据信号”可以是设置或改变信号的一个或多个特性而在该信号中实现信息编码的信号。例如,但并非限制性地,通信介质可以包括有线介质(如有线网络或直接有线连接)、以及无线介质(例如声、射频(RF)、红外(IR)和其他无线介质)。这里所使用的术语计算机可读介质可以包括存储介质和通信介质。
计算设备900可以实现为小型便携式(或移动)电子设备的一部分,如蜂窝电话、个人数据助理(PDA)、个人媒体播放设备、无线web浏览设备、个人头戴式耳机设备、专用设备或包括任何上述功能的混合设备。计算设备900也可以实现为个人计算机,包括膝上型计算机和非膝上型计算机配置。
本公开所述的主题有时说明不同部件包含在不同的其他部件内或者与不同的其他部件相连。应当理解,这样描述的架构只是示例,事实上可以实现许多能够实现相同功能的其他架构。在概念上,有效地“关联”用以实现相同功能的部件的任何设置,从而实现所需功能。因此,这里组合任何两个部件以实现特定功能可以被视为彼此“关联”从而实现所需功能,而无论架构或中间部件如何。同样,任何两个如此关联的部件也可以看作是彼此“操作性连接”或“操作性耦合”以实现所需功能,且能够如此关联的任何两个部件也可以被视为彼此“可操作性耦合”以实现所需功能。可操作性耦合的具体示例包括但不限于物理上可配对和/或物理上交互的部件,和/或无线交互和/或可无线交互的部件,和/或逻辑交互和/或可逻辑交互的部件。
至于本文中任何关于复数和/或单数术语的使用,本领域技术人员可以从复数形式转换为单数形式,和/或从单数形式转换为复数形式,以适合具体环境和/或应用。为清楚起见,在此明确提出各种单数形式/复数形式的互换。
本领域技术人员应当理解,一般而言,所使用的术语,特别是所附权利要求中(例如,在所附权利要求的主体部分中)使用的术语,一般地应理解为“开放”术语(例如,术语“包括”应解释为“包括但不限于”,术语“具有”应解释为“至少具有”等)。本领域技术人员还应理解,如果意在所引入的权利要求中标明具体数目,则这种意图将在该权利要求中明确指出,而在没有这种明确标明的情况下,则不存在这种意图。例如,为帮助理解,所附权利要求可能使用了引导短语“至少一个”和“一个或多个”来引入权利要求中的详述。然而,这种短语的使用不应被解释为暗示着由不定冠词“一”或“一个”引入的权利要求特征将包含该特征的任何特定权利要求限制为仅包含一个该特征的实施例,即便是该权利要求既包括引导短语“一个或多个”或“至少一个”又包括不定冠词如“一”或“一个”(例如,“一”和/或“一个”应当被解释为意指“至少一个”或“一个或多个”);在使用定冠词来引入权利要求中的特征时,同样如此。另外,即使明确指出了所引入权利要求特征的具体数目,本领域技术人员应认识到,这种列举应解释为意指至少是所列数目(例如,不存在其他修饰语的短语“两个特征”意指至少两个该特征,或者两个或更多该特征)。另外,在使用类似于“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”的可能性。
尽管已经在此公开了多个方案和实施例,但是本领域技术人员应当明白其他方案和实施例。本文公开的多个方案和实施例是出于说明性的目的,而不是限制性的,本公开的真实范围和精神由所附权利要求指出。

Claims (6)

1.一种将线程分配到多个异构处理器核中的至少一个的方法,所述线程包括第一阶段、断点和第二阶段,所述方法包括:
利用处理器将所述线程的所述第一阶段与第一执行特性相关联;
利用所述处理器将所述线程的所述第二阶段与第二执行特性相关联;
至少部分地基于所述第一执行特性,利用所述处理器在第一处理器核上执行所述线程的所述第一阶段;
利用所述处理器确定所述线程达到所述断点;以及
响应于所述确定,利用所述处理器在不同于所述第一处理器核的至少第二处理器核上执行所述线程的所述第二阶段。
2.根据权利要求1所述的方法,还包括:将元数据与线程相关联,其中元数据识别如何配置与线程相关联的软件应用以进行操作,并且其中,所述元数据标识将要执行所述线程的所述第一阶段的所述第一处理器核。
3.根据权利要求2所述的方法,其中,与线程相关联的元数据嵌入在线程中或者与线程分离。
4.根据权利要求1所述的方法,其中,线程包括元数据,其中元数据识别如何配置与线程相关联的软件应用以进行操作。
5.根据权利要求2所述的方法,还包括:
向线程映射软件工具发送元数据,该线程映射软件工具被配置为将线程分配给所述第一处理器核。
6.根据权利要求2所述的方法,其中,元数据识别能够执行该线程的一个或多个异构处理器核。
CN201080035177.5A 2009-09-11 2010-06-04 计算机线程至异构资源的映射 Active CN102483703B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/557,985 2009-09-11
US12/557,985 US9569270B2 (en) 2009-04-21 2009-09-11 Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
PCT/US2010/037498 WO2011031357A1 (en) 2009-09-11 2010-06-04 Mapping of computer threads onto heterogeneous resources

Publications (2)

Publication Number Publication Date
CN102483703A CN102483703A (zh) 2012-05-30
CN102483703B true CN102483703B (zh) 2015-10-14

Family

ID=43731608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080035177.5A Active CN102483703B (zh) 2009-09-11 2010-06-04 计算机线程至异构资源的映射

Country Status (6)

Country Link
US (1) US9569270B2 (zh)
JP (1) JP5487307B2 (zh)
KR (1) KR101361945B1 (zh)
CN (1) CN102483703B (zh)
GB (1) GB2485682B (zh)
WO (1) WO2011031357A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110320766A1 (en) * 2010-06-29 2011-12-29 Youfeng Wu Apparatus, method, and system for improving power, performance efficiency by coupling a first core type with a second core type
US8527970B1 (en) * 2010-09-09 2013-09-03 The Boeing Company Methods and systems for mapping threads to processor cores
US8788871B2 (en) 2011-06-28 2014-07-22 International Business Machines Corporation Unified, workload-optimized, adaptive RAS for hybrid systems
US9069553B2 (en) * 2011-09-06 2015-06-30 Marvell World Trade Ltd. Switching tasks between heterogeneous cores
WO2013177765A1 (en) 2012-05-30 2013-12-05 Intel Corporation Runtime dispatching among heterogeneous group of processors
US20130339978A1 (en) * 2012-06-13 2013-12-19 Advanced Micro Devices, Inc. Load balancing for heterogeneous systems
KR101893796B1 (ko) 2012-08-16 2018-10-04 삼성전자주식회사 동적 데이터 구성을 위한 방법 및 장치
CN104756078B (zh) * 2012-08-20 2018-07-13 唐纳德·凯文·卡梅伦 处理资源分配的装置和方法
CN103729248B (zh) * 2012-10-16 2017-12-15 华为技术有限公司 一种基于缓存感知的确定待迁移任务的方法和装置
GB2514956B (en) * 2013-01-21 2015-04-01 Imagination Tech Ltd Allocating resources to threads based on speculation metric
US9619298B2 (en) 2013-04-17 2017-04-11 Empire Technology Development Llc Scheduling computing tasks for multi-processor systems based on resource requirements
US9235395B2 (en) * 2013-05-30 2016-01-12 National Instruments Corporation Graphical development and deployment of parallel floating-point math functionality on a system with heterogeneous hardware components
US9842040B2 (en) * 2013-06-18 2017-12-12 Empire Technology Development Llc Tracking core-level instruction set capabilities in a chip multiprocessor
US9600346B2 (en) 2013-07-10 2017-03-21 International Business Machines Corporation Thread scheduling across heterogeneous processing elements with resource mapping
US9274967B2 (en) * 2013-08-07 2016-03-01 Nimble Storage, Inc. FIFO cache simulation using a bloom filter ring
US9442696B1 (en) * 2014-01-16 2016-09-13 The Math Works, Inc. Interactive partitioning and mapping of an application across multiple heterogeneous computational devices from a co-simulation design environment
US9910683B2 (en) * 2014-03-28 2018-03-06 Lenovo (Singapore) Pte. Ltd. Dynamic application optimization
KR102197874B1 (ko) 2014-09-01 2021-01-05 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 쓰레드 스케줄링 방법
US9424092B2 (en) * 2014-09-26 2016-08-23 Microsoft Technology Licensing, Llc Heterogeneous thread scheduling
US9898348B2 (en) 2014-10-22 2018-02-20 International Business Machines Corporation Resource mapping in multi-threaded central processor units
JP2016091137A (ja) * 2014-10-31 2016-05-23 コニカミノルタ株式会社 画像形成装置、特定処理実行方法、およびコンピュータプログラム
WO2016078556A1 (en) * 2014-11-17 2016-05-26 Mediatek Inc. Energy efficient multi-cluster system and its operations
US10509677B2 (en) 2015-09-30 2019-12-17 Lenova (Singapore) Pte. Ltd. Granular quality of service for computing resources
US10521271B2 (en) 2017-04-01 2019-12-31 Intel Corporation Hybrid low power homogenous grapics processing units
US10628223B2 (en) * 2017-08-22 2020-04-21 Amrita Vishwa Vidyapeetham Optimized allocation of tasks in heterogeneous computing systems
JP7100154B6 (ja) * 2018-04-20 2022-09-30 オッポ広東移動通信有限公司 プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体
CN109918084B (zh) * 2019-03-12 2022-03-15 浪潮通用软件有限公司 一种业务管理系统的数据映射方法
US20230024130A1 (en) * 2021-07-23 2023-01-26 Advanced Micro Devices, Inc. Workload aware virtual processing units

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101233489A (zh) * 2005-08-04 2008-07-30 国际商业机器公司 具有多个处理器的计算机系统中的自适应进程分派

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628323A (ja) 1992-07-06 1994-02-04 Nippon Telegr & Teleph Corp <Ntt> プロセス実行制御方法
US5394548A (en) * 1992-10-09 1995-02-28 Fujitsu Limited Multi-media scheduling system
JPH0721045A (ja) 1993-06-15 1995-01-24 Sony Corp 情報処理システム
US5649136A (en) * 1995-02-14 1997-07-15 Hal Computer Systems, Inc. Processor structure and method for maintaining and restoring precise state at any instruction boundary
JP3266029B2 (ja) 1997-01-23 2002-03-18 日本電気株式会社 マルチプロセッサシステムにおけるディスパッチング方式、ディスパッチング方法およびディスパッチングプログラムを記録した記録媒体
US5968115A (en) * 1997-02-03 1999-10-19 Complementary Systems, Inc. Complementary concurrent cooperative multi-processing multi-tasking processing system (C3M2)
JPH1131134A (ja) 1997-07-14 1999-02-02 Toshiba Corp コンピュータシステム及び同システムに適用するスケジューリング方法
US6243788B1 (en) * 1998-06-17 2001-06-05 International Business Machines Corporation Cache architecture to enable accurate cache sensitivity
US6434594B1 (en) 1999-03-09 2002-08-13 Talk2 Technology, Inc. Virtual processing network enabler
GB0015276D0 (en) * 2000-06-23 2000-08-16 Smith Neale B Coherence free cache
GB2372847B (en) * 2001-02-19 2004-12-29 Imagination Tech Ltd Control of priority and instruction rates on a multithreaded processor
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
JP2003006175A (ja) 2001-06-26 2003-01-10 Hitachi Ltd プロセス実行時のプログラム動作特性に基づくプロセススケジューリング方法及びこれを用いたプログラム及びデータ処理装置
US7222343B2 (en) 2003-01-16 2007-05-22 International Business Machines Corporation Dynamic allocation of computer resources based on thread type
JP3964821B2 (ja) 2003-04-21 2007-08-22 株式会社東芝 プロセッサ、キャッシュシステム及びキャッシュメモリ
US7093147B2 (en) * 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
JP2005031771A (ja) 2003-07-08 2005-02-03 Hitachi Ltd ジョブスケジューリング管理方法及びシステム並びにプログラム
US7353516B2 (en) * 2003-08-14 2008-04-01 Nvidia Corporation Data flow control for adaptive integrated circuitry
US7614056B1 (en) * 2003-09-12 2009-11-03 Sun Microsystems, Inc. Processor specific dispatching in a heterogeneous configuration
US7360218B2 (en) * 2003-09-25 2008-04-15 International Business Machines Corporation System and method for scheduling compatible threads in a simultaneous multi-threading processor using cycle per instruction value occurred during identified time interval
US7461376B2 (en) * 2003-11-18 2008-12-02 Unisys Corporation Dynamic resource management system and method for multiprocessor systems
US7360102B2 (en) * 2004-03-29 2008-04-15 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processor manipulation
GB2415060B (en) 2004-04-16 2007-02-14 Imagination Tech Ltd Dynamic load balancing
US7318125B2 (en) * 2004-05-20 2008-01-08 International Business Machines Corporation Runtime selective control of hardware prefetch mechanism
US20060037017A1 (en) * 2004-08-12 2006-02-16 International Business Machines Corporation System, apparatus and method of reducing adverse performance impact due to migration of processes from one CPU to another
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7526661B2 (en) * 2004-12-02 2009-04-28 Intel Corporation Performance state-based thread management
US20060168571A1 (en) * 2005-01-27 2006-07-27 International Business Machines Corporation System and method for optimized task scheduling in a heterogeneous data processing system
JP4445410B2 (ja) 2005-02-24 2010-04-07 株式会社ルネサステクノロジ 情報処理装置
US20070050605A1 (en) * 2005-08-29 2007-03-01 Bran Ferren Freeze-dried ghost pages
US7412353B2 (en) * 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor
JP2007108944A (ja) 2005-10-12 2007-04-26 Renesas Technology Corp 半導体集積回路装置
JP4523921B2 (ja) 2006-02-24 2010-08-11 三菱電機株式会社 計算機リソース動的制御装置
US7434002B1 (en) * 2006-04-24 2008-10-07 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
JP4936517B2 (ja) 2006-06-06 2012-05-23 学校法人早稲田大学 ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
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
US8468532B2 (en) 2006-06-21 2013-06-18 International Business Machines Corporation Adjusting CPU time allocated to next thread based on gathered data in heterogeneous processor system having plurality of different instruction set architectures
JP2008090546A (ja) 2006-09-29 2008-04-17 Toshiba Corp マルチプロセッサシステム
JP4308241B2 (ja) 2006-11-10 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
US8006077B2 (en) * 2007-03-29 2011-08-23 Intel Corporation Thread migration control based on prediction of migration overhead
US8230425B2 (en) * 2007-07-30 2012-07-24 International Business Machines Corporation Assigning tasks to processors in heterogeneous multiprocessors
US20090089792A1 (en) * 2007-09-27 2009-04-02 Sun Microsystems, Inc. Method and system for managing thermal asymmetries in a multi-core processor
US7930574B2 (en) * 2007-12-31 2011-04-19 Intel Corporation Thread migration to improve power efficiency in a parallel processing environment
US8219993B2 (en) * 2008-02-27 2012-07-10 Oracle America, Inc. Frequency scaling of processing unit based on aggregate thread CPI metric
US8615647B2 (en) * 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US7890298B2 (en) * 2008-06-12 2011-02-15 Oracle America, Inc. Managing the performance of a computer system
US8561073B2 (en) * 2008-09-19 2013-10-15 Microsoft Corporation Managing thread affinity on multi-core processors
US9189282B2 (en) * 2009-04-21 2015-11-17 Empire Technology Development Llc Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter
US8683476B2 (en) * 2009-06-30 2014-03-25 Oracle America, Inc. Method and system for event-based management of hardware resources using a power state of the hardware resources

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101233489A (zh) * 2005-08-04 2008-07-30 国际商业机器公司 具有多个处理器的计算机系统中的自适应进程分派

Also Published As

Publication number Publication date
WO2011031357A1 (en) 2011-03-17
GB2485682A (en) 2012-05-23
KR20120025612A (ko) 2012-03-15
US9569270B2 (en) 2017-02-14
WO2011031357A8 (en) 2012-03-22
GB201121568D0 (en) 2012-01-25
JP5487307B2 (ja) 2014-05-07
JP2013501298A (ja) 2013-01-10
GB2485682B (en) 2016-09-28
US20110066828A1 (en) 2011-03-17
CN102483703A (zh) 2012-05-30
KR101361945B1 (ko) 2014-02-12

Similar Documents

Publication Publication Date Title
CN102483703B (zh) 计算机线程至异构资源的映射
CN102473113B (zh) 多核处理器和将线程分配至异构处理器核的方法
CN102473112B (zh) 关于线程迁移的高速缓存预填充方法、产品与系统
US10782910B2 (en) Methods for internal data movements of a flash memory device and apparatuses using the same
CN103098014B (zh) 存储系统
US9304898B2 (en) Hardware-based array compression
CN103999056B (zh) 管理工作负载存储器分配的方法、设备和系统
JP5422614B2 (ja) 低ポート数メモリーを用いたマルチポートメモリーのシミュレート
US7971026B2 (en) Information processing apparatus and access control method
Bae et al. {FlashNeuron}:{SSD-Enabled}{Large-Batch} Training of Very Deep Neural Networks
CN105493053A (zh) 多核处理器中的高速缓存划分
CN101611380A (zh) 推测性吞吐量计算
CN106575220B (zh) 多个经集群极长指令字处理核心
CN102859504B (zh) 复制数据的方法和系统以及获得数据副本的方法
CN109284233B (zh) 一种存储系统的垃圾回收方法及相关装置
CN105094691B (zh) 一种数据操作的方法、设备和系统
KR20130034450A (ko) 저장 장치 및 그 구동 방법
CN102968395B (zh) 用于微处理器的内存拷贝加速方法及装置
Shi et al. A case study of tuning MapReduce for efficient Bioinformatics in the cloud
CN103473185A (zh) 缓存写入的方法、缓存装置和存储系统
JP2014164667A (ja) リストベクトル処理装置、リストベクトル処理方法、プログラム、コンパイラ、及び、情報処理装置
CN105378652A (zh) 线程共享资源分配方法及装置
CN103049395A (zh) 缓存存储设备数据的方法及其系统
CN102103490B (zh) 一种利用流水处理提高内存效率的方法
Ke et al. Analyzing the Interplay Between Random Shuffling and Storage Devices for Efficient Machine Learning

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