CN104216683A - 利用同步多线程进行数据处理的方法及其系统 - Google Patents

利用同步多线程进行数据处理的方法及其系统 Download PDF

Info

Publication number
CN104216683A
CN104216683A CN201310209952.XA CN201310209952A CN104216683A CN 104216683 A CN104216683 A CN 104216683A CN 201310209952 A CN201310209952 A CN 201310209952A CN 104216683 A CN104216683 A CN 104216683A
Authority
CN
China
Prior art keywords
smt
compute node
initial value
performance index
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310209952.XA
Other languages
English (en)
Inventor
陈冠诚
郭崎
李严
李欣
李剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Priority to CN201310209952.XA priority Critical patent/CN104216683A/zh
Priority to US14/288,612 priority patent/US10083066B2/en
Publication of CN104216683A publication Critical patent/CN104216683A/zh
Pending legal-status Critical Current

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/5083Techniques for rebalancing the load in a distributed system
    • 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

Abstract

本发明的实施方式涉及利用同步多线程SMT进行数据处理的方法及系统。本发明的发明人创造性的提出了根据运行的性能指标自动确定SMT值的方案,也就是说对性能指标起到优化作用的SMT值将被自动选出从而应用于后续的数据处理。具体而言本发明提供了一种数据处理方法,包括:a.为至少一个运算节点设置至少一个同步多线程SMT初始值;b.监测所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标;以及c.基于所述性能指标自动确定SMT修订值。

Description

利用同步多线程进行数据处理的方法及其系统
技术领域
本发明的实施方式总体上涉及数据处理,进一步本发明的实施方式涉及利用同步多线程SMT进行数据处理的方法及系统。
背景技术
传统的CPU在某一时间只能处理一个指令序列,通常我们把它称为一个线程。在线程处理的过程中CPU的处理单元需要不断调入指令与数据进行处理。随着CPU技术的发展,CPU的主频与性能不断提高,需要调入指令和数据的速度不断提高。但不幸的是内存技术的发展并没有跟上CPU发展的速度,内存通常无法提供足够的指令和数据给CPU进行处理。于是同步多线程(Simultaneous multithreading,即SMT)技术应运而生。同步多线程是一种在一个CPU的时钟周期内能够执行来自多个线程的指令的硬件多线程技术。本质上,同步多线程是一种将线程级并行处理(多CPU)转化为指令级并行处理(同一CPU)的方法。同步多线程是单个物理处理器从多个硬件线程上下文同时分派指令的能力。同步多线程使得同一处理器可以同时调度多个应用程序,从而利用处理器的超标量结构性质。SMT对于处理商业事务处理负载可能带来性能优化。在更加注重系统的整体吞吐量而非单独线程的吞吐量时,SMT是一个很好地选择。但是并非所有的应用都能通过SMT取得性能优化。那些性能受到执行单元限制的应用,或者那些耗尽所有处理器的内存带宽的应用,其性能都不会通过在同一个处理器上执行两个线程而得到提高。目前一些高端处理器已经能够支持同步多线程。
发明内容
本发明的发明人注意到尽管目前的一些高端处理器已经能够支持同步多线程SMT,但是同步多线程的设置并非自动的,也就是说程序员需要手动确定合适的SMT值,即在一个处理器内核上同时执行的硬件线程的数量。然而随着程序的运行、工作任务的变化、程序与硬件的相互作用也是在不断变化的,因此最优的SMT值实际上是在不断变化的。实际上,最优的SMT值是由很多因素所决定的,包括任务本身的特点,比如IO密集性任务、CPU密集型任务等,也包括软件和硬件的配置,以及软件与硬件的相互作用等。因此很难总结出一些简单的规则来判断SMT值的最优值。
鉴于所述问题,本发明的发明人创造性地提出了根据性能指标自动确定SMT值的方案,也就是说对性能指标起到优化作用的SMT值将被自动确定从而应用于后续的数据处理。
具体而言本发明提供了一种数据处理方法,包括:a.为至少一个运算节点设置至少一个同步多线程SMT初始值;b.监测所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标;以及c.基于所述性能指标自动确定SMT修订值。
本发明还提供了一种数据处理系统,包括:设置装置,被配置为为至少一个运算节点设置至少一个同步多线程SMT初始值;监测装置,被配置为监测所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标;以及确定装置,被配置为基于所述性能指标自动确定SMT修订值。
按照本发明的一个实施例,可以根据运行的性能指标自动确定SMT值,从而使得SMT值动态适应系统的运行变化,并且无需人工对SMT值进行设置。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的所述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。
图2示出了按照本发明的一个实施例的利用同步多线程SMT进行数据处理的方法流程图。
图3A示出了以中心决策方式设置SMT初始值的一个实施例的示意图。
图3B示出了以中心决策方式设置SMT初始值的另一个实施例的示意图。
图3C示出了以中心决策方式设置SMT初始值的又一个实施例的示意图。
图3D示出了以中心决策方式设置SMT初始值的还一个实施例的示意图。
图4A示出了以本地决策方式设置SMT初始值的一个实施例的示意图。
图4B示出了以本地决策方式设置SMT初始值的另一个实施例的示意图。
图5示出了以中心决策和地方决策相结合的方式设置SMT初始值的一个实施例的示意图。
图6示出了按照本发明的一个实施例的在MapReduce架构下的不同阶段适用本发明的示意图。
图7示出了按照本发明的一个实施例的利用同步多线程SMT进行数据处理的系统框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的所述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(DPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者所述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或所述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者所述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VDSA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
按照本发明的一个实施例,可以对SMT值进行自适应调整,也就是说哪个SMT值更利于系统的整体性能,就按照哪个SMT值进行数据处理。这样既无需人为对SMT值进行手动修改,并且保证所采用的SMT值适合当前所执行的任务以及硬件、软件安排。本实施例无需对当前执行的任务类型、硬件安排以及软件安排进行复杂的分析,而是通过训练的方式寻找对系统运行性能最佳的SMT值,从而使用该SMT值。基本上,本实施例可以分为两个阶段、训练阶段与执行阶段,在训练阶段将会设置SMT初始值,监测在SMT初始值下的系统运行性能指标,并根据所述性能指标确定SMT修订值,而在执行阶段则将使用SMT修订值进行数据处理。
图2示出了按照本发明的一个实施例的利用同步多线程SMT进行数据处理的方法流程图。具体而言,图2描述了一种数据处理方法,其中步骤a为至少一个运算节点设置至少一个同步多线程SMT初始值。其中SMT初始值表示处理器内核所并行执行的硬件线程的初始数量。通常将SMT1表示仅在处理器内核上执行单一线程、SMT2表示在处理器内核上执行两个硬件线程,SMT4表示在处理器内核上执行四个硬件线程,以此类推。本实施例既可以应用于一个运算节点也可以应用于多个运算节点,后文对此将有更详细的举例说明。所述设置SMT初始值可以是人为指定的、随机自动设定的、或者还可以是根据预定规则设定的。
步骤b监测所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标。在训练阶段,系统并不知道哪个SMT初始值是最合适当前的系统运行的,所以需要经过一定的监测过程,从而判断出哪个SMT初始值是最合适的。所述性能指标可以是任何用以衡量一个或多个运算节点的运行性能的度量,比如每指令周期(Cycles Per Instruction,CPI)、缓存失效率(Cache Miss Ratio)、分支预测失误(branch mispredictions)、浮点指令比例(fraction of floating pointoperations)等或其结合。根据所述性能指标可以确定运算节点在当前SMT初始值下是否可以带来性能优化,从而确定应该使用哪个SMT值可以实现整体性能优化。
步骤c基于所述性能指标自动确定SMT修订值。按照本发明的一个实施例,哪个SMT初始值下所监测的性能指标最优,就选择哪个SMT初始值作为SMT修订值。按照本发明的另一个实施例,如果某个SMT初始值下所监测的性能指标达到预定标准,就确定该SMT初始值为SMT修订值,并且在后续的实施阶段都使运算节点在该SMT修订值下进行数据处理,比如如果SMT1下运行的性能指标已经达到预定标准就采用SMT1作为SMT修订值,而不去比较是否SMT2下运行的性能指标可能更优。
可选的,图2所示的数据处理方法还包含步骤d使所述至少一个运算节点在所述SMT修订值下运行(图中用虚线示出)。使所述至少一个运算节点在SMT修订值下进行数据处理,从而对其性能进行优化。
可以理解,尽管图2以顺序的方式描述步骤a-d,但是并非一定要步骤b结束后才能执行步骤c以及步骤d。也就是说,按照本发明的一个实施例,在完成对性能指标的监测后,再进行SMT修订值的自动确定;而按照本发明的另一个实施例,在性能指标的监测尚未完成的时候就可以进行SMT修订值的自动确定,也就是说性能指标的监测是一个持续的过程,即便在步骤c与步骤d的进行过程中依然可以持续的对性能指标进行监测,所述持续的监测可以进一步被用于确定是否需要重新进行SMT值的确定,即是否需要重新执行步骤a-c。因此按照本发明的一个实施例,所述数据处理方法进一步包括响应于监测到所述性能指标变劣,重复执行步骤a-c(图中未画出)。因为性能指标变劣可能意味着当前的SMT值设置已经不适合当前的运算情况,当前的SMT值对性能改善起到了负面效果,因此需要重新选择适合的SMT值。值得说明的是,重复执行步骤a-c并不意味着必然排除重复执行其他的步骤。比如在一个实施例中,还可以重复执行步骤a-d。
按照本发明的一个实施例,所述步骤a-c是仅在运行时(runtime)执行的,因此SMT修订值的确定过程并不会影响到运算节点的正常工作,在训练阶段a-c所获得的运算结果并不会被浪费,从而保证了运算阶段的效率。值得说明的是,所述步骤a-c是仅在运行时执行的并不意味着别的步骤不能在运行时执行。比如在一个实施例中,步骤a-d都是在运行时执行的。
按照本发明的另一个实施例,步骤a-c是在建立时(buildtime)执行的,而步骤d是在运行时执行的,这样buildtime的运算就是为了确定runtime应当适用的SMT修订值,而buildtime的运算结果将被丢弃,而在runtime按照SMT修订值进行重新运算。
本发明可以适用于MapReduce架构下,也可以用于通用程序架构(比如一般的多线程程序)的SMT动态调优。为了方便起见,下文中用MapReduce架构进行举例说明。但是应当理解,除非特别说明,下文中的实施例既可以适用于MapReduce架构,也可以适用于通用程序的其他架构。
图3A示出了按照以中心决策方式设置SMT初始值的一个实施例的示意图。图中示意性的示出了在MapReduce架构下的节点,其中JT(JobTracker)相当于主节点(master),TT(TaskTracker)相当于从节点(slave),也是本发明中的运算节点。JT负责将MapReduce计算任务分配到不同节点的TT上去执行,并实时收集和监控TT上面运行的任务的情况,如果某些TT上运行任务失败,JT还要负责将失败的任务重新分配到其他节点的TT上去运行。TT负责执行MapReduce任务,并将任务的状态定期传给JT。
图3A中示出了一个JT和三个TT配合工作的示意图。图2中的步骤a被进一步实现为为多个运算节点设置多个SMT初始值,包括为每个运算节点设置一个SMT初始值,例如,JT将TT1的SMT初始值设置为SMT1,将TT2的SMT初始值设置为SMT2,将TT3的SMT初始值设置为SMT4。在后续的步骤中步骤b被进一步实现为监测所述多个运算节点在所述多个SMT初始值下运行的性能指标,也就是监测TT1、TT2、TT3在SMT1、SMT2、SMT4下运行的性能指标。TT1、TT2、TT3可以将其上测量到的性能指标返回JT以供JT进行后续比较。步骤c被进一步被实现为选择所述性能指标最优的运算节点的SMT初始值作为SMT修订值,在训练过程中发现TT2上的性能指标最优,因此确定将TT2上适用的SMT2作为SMT修订值。可选的,步骤d被进一步实现为使所述多个运算节点在相同的SMT修订值下运行,也就是使得TT1、TT2、TT3在执行阶段都采用SMT2进行数据处理,因为SMT2将会带来最优的性能。
图3B示出了以中心决策方式设置SMT初始值的另一个实施例的示意图。如果TT的数量大于SMT初始值的数量,比如一共有10个TT,而只有三个SMT初始值可以分配,则可以在这些TT间尽量平均分配SMT初始值(如将SMT1分配给TT1-TT3,将SMT2分配给TT4-TT6,将SMT3分配给TT7-TT10),而后将多个TT返回的同一SMT初始值下的被监测的性能指标的平均作为该SMT初始值下的性能指标,并且通过比较多个SMT初始值下的性能指标可以确定应当将哪个SMT初始值确定为SMT修订值。
图3C示出了以中心决策方式设置SMT初始值的又一个实施例的示意图。在该例子中,JT不是一个单独的节点,而是由TT中的一个兼任,比如由TT1兼任JT的角色,从而承担设置SMT初始值,并且根据监测到的各个节点的性能指标确定SMT修订值,并且使各个运算节点在SMT修订值下运行的任务。
图3D示出了以中心决策方式设置SMT初始值的还一个实施例的示意图。在该例子中,JT也不是一个单独的节点,JT的工作由TT中的多个兼任,比如由TT1兼任JT的角色,负责设置SMT初始值;TT2也兼任JT的角色,负责根据监测到的各个节点的性能指标确定SMT修订值,并且使各个运算节点在SMT修订值下运行。可见,JT的管理工作也可以由多个TT分担。
对于各个TT同构的情况,采用所述中心决策的方式是比较合适的。因为在TT同构的情况下,各个运算节点的硬件和软件资源配置是相同的,因此通过判断各个TT所检测到的性能指标能够判断哪个TT的SMT初始值是最优的SMT值。然而如果各个TT处于异构的情况,也就是各个TT的硬件或软件资源配置不同时,仍然采用所述中心决策的方式可能无法判断出最佳的SMT值,因为各个TT的比较基础不同。因此在TT异构的情况下可以采用下面所披露的本地决策方式来决定。
图4A示出了以本地决策方式设置SMT初始值的一个实施例的示意图。在图4A所示的例子中,两个TT是异构的,因此TT1和TT2将分别为自己确定适合的SMT修订值。以TT1为例,TT1将自己进行SMT初始值设置。因此,步骤a被进一步被实现为为一个运算节点设置多个SMT初始值,包括在所述一个运算节点的多个时段设置多个SMT初始值,比如为TT1在不同时段设置不同的SMT初始值,使其在时间段1以SMT1运行,在时间段2以SMT2运行,在时间段3以SMT4运行。步骤b被进一步被实现为监测所述一个运算节点在所述多个SMT初始值下运行的性能指标,例如监测TT1在SMT1、SMT2、SMT4下运行的性能指标。步骤c被进一步被实现为选择所述性能指标最优的时段所对应的SMT初始值作为SMT修订值,比如时间段2的性能指标最优,则选择时间段2对应的SMT2作为SMT修订值。可选的,步骤d被进一步被实现为使所述一个运算节点在所述SMT修订值下运行,例如使所述TT1在SMT2下运行。同理,TT2也可以为自己确定合适的SMT修订值。
需要说明的是,本地决策并不意味着决策只能在本地TT进行,而是也可以将所述决策过程交给JT进行。图4B示出了以本地决策方式设置SMT初始值的另一个实施例的示意图。在图4B的例子中,整个决策过程是由JT完成的,不过由于TT1与TT2处于异构,因此JT根据仍然为TT1设置三个SMT初始值(即SMT1、SMT2、SMT4),并且监测TT1在多个时段的多个SMT初始值下运行的性能指标,以及选择所述性能指标最优的时段所对应的SMT初始值作为SMT修订值,且使TT1在所述SMT修订值下运行。可见虽然整个决策过程由JT完成,但是JT是根据TT1独立的监测结果所做出决策,因此本实施例与图3A所示的实施例存在根本差别。同理,JT也可以利用类似方式确定TT2适用的SMT修订值。
按照本发明的另一个实施例,图4B中的JT可以将部分的决策工作交由TT完成,比如将在多个时段设置多个SMT初始值的工作交由TT1自己完成,而JT负责执行剩下的步骤b-d。
按照本发明的又一个实施例,图4B中的JT的工作可以由TT2完成,也就是由TT2承担JT的角色,从而完成对TT1和TT2本身的SMT修订值的决策过程。
相比较而言,中心决策的方式可以为不同的运算节点分配不同的SMT初始值,从而测量不同运算节点在不同SMT初始值下的性能指标,本地决策的方式为同一运算节点的不同时段设置不同的SMT初始值,从而测量同一运算节点在不同SMT初始值下的性能指标。中心决策的方式比较节省监测时间,因为多个运算节点可以在并行进行性能指标的监测,而本地决策的方式更适用于多个运算节点异构的情况,或者运算节点比较少的情况(比如仅有一个运算节点时,就无法采用中心决策的方式)。
如果存在多个TT,但是其数量小于SMT初始值的数量,比如TT仅有两个,而SMT初始值有三个,此时如果要适用中心决策的方式,则无法为每个TT分配唯一的SMT初始值进行性能指标的监测,因此可以将中心决策和本地决策的方式相结合,从而为至少一个TT分配多个SMT初始值,使其测量在多个时段上的性能指标,从而寻找最有利于性能优化的SMT修订值。图5示出了以中心决策和本地决策相结合的方式设置SMT初始值的一个实施例的示意图。步骤a被进一步被实现为为多个运算节点设置多个SMT初始值,其中至少有一个运算节点在多个时段被设置多个SMT初始值,比如为TT1设置SMT1为初始值,为TT2设置SMT2以及SMT4为初始值使得TT2在不同时段监测其在不同SMT初始值下的性能指标。步骤b被进一步被实现为监测所述多个运算节点在多个SMT初始值下运行的性能指标,例如既监测TT1在时间段1上应用SMT1的性能指标,也监测TT2在时间段1上应用SMT2的性能指标和TT2在时间段2上应用SMT4的性能指标。步骤c被进一步被实现为选择所述性能指标最优的时段所对应的运算节点的SMT初始值作为SMT修订值,例如经过比较确定TT2在时间段1的性能指标最优,因此TT2在时间段1上应用的SMT2被确定为SMT修订值。可选的,步骤d被进一步实现为使所述多个运算节点在相同的SMT修订值下运行,如使TT1与TT2都在SMT2下运行。
可选的,图5中JT的工作可以全部的、或部分的交给一个或多个TT执行。
可以理解,尽管上文通过描述图3A-图5披露了如何在MapReduce架构下设置SMT初始值并完成后续的步骤。但是应当理解,所述实施例并不只限于在MapReduce架构下,其可以应用于其他通用程序架构下,只不过JT与TT的名称可能不同而已。
图6示出了按照本发明的一个实施例的在MapReduce架构下适用本发明的示意图。MapReduce是一种编程模型,用于大规模数据集的并行运算。MapReduce通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性,每个节点会周期性的把完成的工作和状态的更新报告回来。在这种编程模型下,用户通过定义map函数和reduce函数来解决问题。map函数对用户输入的键/值对(key/value pair)进行处理,生成一系列新的键/值对作为中间结果;reduce函数将键/值列表对作为输入,对同属于一个键的值列表进行处理,生成最终处理结果输出。因此MapReduce架构下一个完整的作业(j ob)周期大致可以分为三个阶段:仅执行Map运算的阶段、并行执行Map运算与Reduce运算的阶段、仅执行Reduce运算的阶段。图6示出了三个阶段的示意图。
本发明的发明人发现,由于在三个阶段下执行的运算任务不同,其适用的最优的SMT值也可能不同,如对于Terasort(Terasort是Hadoop中的的一个排序作业)这个作业而言,在仅执行Map运算的阶段IO操作占的比例较大,而在仅执行Reduce运算的阶段计算任务占据了较大的比例。
为了对每个阶段确定最优的SMT值,需要对每个阶段重复进行监测,从而确定该阶段适合的SMT值。按照本发明的一个实施例,其中所述至少一个运算节点在MapReduce架构下运行,当所述至少一个运算节点处于MapReduce架构的第一阶段的情况下执行所述步骤a-c,并且所述方法进一步包括响应于检测到所述至少一个运算节点从所述第一阶段切换到第二阶段,重新执行所述步骤a-c。其中所述第一阶段与第二阶段是下列各项组合中的任意一个组合:在第一阶段仅执行Map运算并且在第二阶段同时执行Map运算与Reduce运算,在第一阶段同时执行Map运算与Reduce运算并且在第二阶段仅执行Reduce运算,在第一阶段仅执行Reduce运算并且在第二阶段仅执行Map运算(当从仅执行Reduce运算切换到仅执行Map运算表示当前已经完成一个MapReduce作业的处理,从而切换到下一个MapReduce作业的处理)。在上面的例子中,当运算从一个阶段切换到另一个阶段时,则重复步骤a-c从而使得每个阶段都工作在最合适的SMT值下。需要说明的是,上文实施例中所提到的重复步骤a-c,并不意味着必然排除重复执行其他的步骤。
按照本发明的另一个实施例,如果数据处理方法包含步骤d,并且如果所述至少一个运算节点在MapReduce架构下运行,那么当所述至少一个运算节点处于MapReduce架构的第一阶段的情况下执行所述步骤a-d,并且所述方法进一步包括响应于检测到所述至少一个运算节点从所述第一阶段切换到第二阶段,重新执行所述步骤a-d。
按照本发明的一个实施例,所述至少一个运算节点在MapReduce架构下运行,当所述至少一个运算节点处于MapReduce架构的仅执行Map运算的阶段的情况下执行所述步骤a-c,并且步骤c进一步包括:基于在预定任务循环(taskiteration)内监测到的所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标自动确定所述SMT修订值。在图6的例子中,在MapReduce架构的第一阶段,通过监测到的至少一个任务循环内的运算节点的性能指标来确定SMT修订值,这样通过一个比较完整的采样周期,可以获得更准确的采样结果,使得监测到的性能指标能够反映至少一个完整的任务循环内的性能指标的情况。
按照本发明的一个实施例,所述步骤c进一步包括:基于在预定时间窗口内监测到的所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标自动确定所述SMT修订值。在图6的例子中,在MapReduce架构的第一阶段(仅执行Map运算的阶段)也可以通过监测预定时间窗口内的运算节点的性能指标来确定SMT修订值。当然在MapReduce架构的第二阶段(并行执行Map运算和Reduce运算)和第三阶段(仅执行Reduce运算),由于其运行并不是按照任务循环来划分的,因此难以根据任务循环对性能指标进行监测,因此在第二阶段和第三阶段,更适宜根据预定时间窗口对性能指标进行监测。当然第二阶段的时间窗口长度与第三阶段的时间窗口长度可以相同,也可以不同。但是应当理解,本实施例并不只限于在MapReduce架构下,其可以应用于其他通用程序架构下。
综上所述,按照本发明的一个实施例,可以自动的根据性能指标对SMT值进行动态调整,使得SMT值的设置有利于系统性能优化。
上文描述了本发明中的数据处理方法,下面将结合图7描述在同一发明构思下的数据处理系统,其中相同或相应的实现细节由于在上文中已经进行了详细和完整的描述,因此在下文中将不再进行赘述。
图7示出了按照本发明的一个实施例的利用同步多线程SMT进行数据处理的系统框图。图7中的数据处理系统包括设置装置、监测装置和确定装置,可选的图7中的系统还包括使能装置。其中所述设置装置被配置为为至少一个运算节点设置至少一个同步多线程SMT初始值。所述监测装置被配置为监测所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标。所述确定装置被配置为基于所述性能指标自动确定SMT修订值。所述使能装置被配置为使所述至少一个运算节点在所述SMT修订值下运行。
按照本发明的一个实施例,所述至少一个运算节点在MapReduce架构下运行,当所述至少一个运算节点处于MapReduce架构的第一阶段的情况下运行所述设置装置、监测装置、确定装置,并且所述系统进一步被配置为响应于检测到所述至少一个运算节点从所述第一阶段切换到第二阶段,重新运行所述设置装置、监测装置、确定装置,其中所述第一阶段与第二阶段是下列各项组合中的任意一个组合:在第一阶段仅执行Map运算并且在第二阶段并行执行Map运算与Reduce运算,在第一阶段并行执行Map运算与Reduce运算并且在第二阶段仅执行Reduce运算,在第一阶段仅执行Reduce运算并且在第二阶段仅执行Map运算。
按照本发明的一个实施例,其中所述至少一个运算节点在MapReduce架构下运行,当所述至少一个运算节点处于MapReduce架构的仅执行Map运算的阶段的情况下运行所述设置装置、监测装置、确定装置,并且所述监测装置进一步被配置为基于在预定任务循环内监测到的所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标自动确定所述SMT修订值。
按照本发明的一个实施例,其中所述监测装置进一步被配置为基于在预定时间窗口内监测到的所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标自动确定所述SMT修订值。
按照本发明的一个实施例,其中所述设置装置进一步被配置为为多个运算节点设置多个SMT初始值,包括为每个运算节点设置一个SMT初始值;所述监测装置进一步被配置为监测所述多个运算节点在所述多个SMT初始值下运行的性能指标;所述确定装置进一步被配置为选择所述性能指标最优的运算节点的SMT初始值作为SMT修订值。
按照本发明的一个实施例,其中所述设置装置进一步被配置为为一个运算节点设置多个SMT初始值,包括在所述一个运算节点的多个时段设置多个SMT初始值;所述监测装置进一步被配置为监测所述一个运算节点在所述多个SMT初始值下运行的性能指标;所述确定装置进一步被配置为选择所述性能指标最优的时段所对应的SMT初始值作为SMT修订值。
按照本发明的一个实施例,其中所述设置装置进一步被配置为为多个运算节点设置多个SMT初始值,其中至少有一个运算节点在多个时段被设置多个SMT初始值;所述监测装置进一步被配置为监测所述多个运算节点在多个SMT初始值下运行的性能指标;所述确定装置进一步被配置为选择所述性能指标最优的时段所对应的运算节点的SMT初始值作为SMT修订值。
按照本发明的一个实施例,响应于监测到所述性能指标变劣,重复运行所述设置装置、监测装置、确定装置。
按照本发明的一个实施例,所述设置装置、监测装置、确定装置是仅在运行时执行的。
以上已经描述了本发明的各实施例,所述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (20)

1.一种数据处理方法,包括:
a.为至少一个运算节点设置至少一个同步多线程SMT初始值;
b.监测所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标;以及
c.基于所述性能指标自动确定SMT修订值。
2.如权利要求1所述的方法,所述方法进一步包括:
d.使所述至少一个运算节点在所述SMT修订值下运行。
3.如权利要求1或2所述的方法,其中所述至少一个运算节点在MapReduce架构下运行,当所述至少一个运算节点处于MapReduce架构的第一阶段的情况下执行所述步骤a-c,并且所述方法进一步包括:
响应于检测到所述至少一个运算节点从所述第一阶段切换到第二阶段,重新执行所述步骤a-c,其中所述第一阶段与第二阶段是下列各项组合中的任意一个组合:
在第一阶段仅执行Map运算并且在第二阶段并行执行Map运算与Reduce运算,
在第一阶段并行执行Map运算与Reduce运算并且在第二阶段仅执行Reduce运算,
在第一阶段仅执行Reduce运算并且在第二阶段仅执行Map运算。
4.如权利要求1或2所述的方法,其中所述至少一个运算节点在MapReduce架构下运行,当所述至少一个运算节点处于MapReduce架构的仅执行Map运算的阶段执行所述步骤a-c,并且步骤c进一步包括:
基于在预定任务循环内监测到的所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标自动确定所述SMT修订值。
5.如权利要求1或2所述的方法,其中步骤c进一步包括:
基于在预定时间窗口内监测到的所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标自动确定所述SMT修订值。
6.如权利要求1-5中任意一个所述的方法,其中步骤a进一步包括:为多个运算节点设置多个SMT初始值,包括为每个运算节点设置一个SMT初始值;步骤b进一步包括:监测所述多个运算节点在所述多个SMT初始值下运行的性能指标;步骤c进一步包括:选择所述性能指标最优的运算节点的SMT初始值作为SMT修订值。
7.如权利要求1-5中任意一个所述的方法,其中步骤a进一步包括:为一个运算节点设置多个SMT初始值,包括在所述一个运算节点的多个时段设置多个SMT初始值;步骤b进一步包括:监测所述一个运算节点在所述多个SMT初始值下运行的性能指标;步骤c进一步包括:选择所述性能指标最优的时段所对应的SMT初始值作为SMT修订值。
8.如权利要求1-5中任意一个所述的方法,其中步骤a进一步包括:为多个运算节点设置多个SMT初始值,其中至少有一个运算节点在多个时段被设置多个SMT初始值;步骤b进一步包括:监测所述多个运算节点在多个SMT初始值下运行的性能指标;步骤c进一步包括:选择所述性能指标最优的时段所对应的运算节点的SMT初始值作为SMT修订值。
9.如权利要求1-5中任意一个所述的方法,还包括:
响应于监测到所述性能指标变劣,重复执行步骤a-c。
10.如权利要求1-5中任意一个所述的方法,其中步骤a-c是仅在运行时执行的。
11.一种数据处理系统,包括:
设置装置,被配置为设置至少一个运算节点的同步多线程SMT初始值;
监测装置,被配置为监测所述至少一个运算节点在所述SMT初始值下运行的性能指标;以及
确定装置,被配置为基于所述性能指标自动确定SMT修订值。
12.如权利要求11所述的系统,所述系统进一步包括:
使能装置,被配置为使所述至少一个运算节点在所述SMT修订值下运行。
13.如权利要求11或12所述的系统,其中所述至少一个运算节点在MapReduce架构下运行,当所述至少一个运算节点处于MapReduce架构的第一阶段的情况下运行所述设置装置、监测装置、确定装置,并且所述系统进一步被配置为响应于检测到所述至少一个运算节点从所述第一阶段切换到第二阶段,重新运行所述设置装置、监测装置、确定装置,其中所述第一阶段与第二阶段是下列各项组合中的任意一个组合:
在第一阶段仅执行Map运算并且在第二阶段并行执行Map运算与Reduce运算,
在第一阶段并行执行Map运算与Reduce运算并且在第二阶段仅执行Reduce运算,
在第一阶段仅执行Reduce运算并且在第二阶段仅执行Map运算。
14.如权利要求11或12所述的系统,其中所述至少一个运算节点在MapReduce架构下运行,当所述至少一个运算节点处于MapReduce架构的仅执行Map运算的阶段的情况下运行所述设置装置、监测装置、确定装置,所述第一阶段为,并且所述监测装置进一步被配置为:
基于在预定任务循环内监测到的所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标自动确定所述SMT修订值。
15.如权利要求11或12所述的系统,其中所述监测装置进一步被配置为:
基于在预定时间窗口内监测到的所述至少一个运算节点在所述至少一个SMT初始值下运行的性能指标自动确定所述SMT修订值。
16.如权利要求11-15中任意一个所述的系统,其中所述设置装置进一步被配置为为多个运算节点设置多个SMT初始值,包括为每个运算节点设置一个SMT初始值;所述监测装置进一步被配置为监测所述多个运算节点在所述多个SMT初始值下运行的性能指标;所述确定装置进一步被配置为选择所述性能指标最优的运算节点的SMT初始值作为SMT修订值。
17.如权利要求11-15中任意一个所述的系统,其中所述设置装置进一步被配置为为一个运算节点设置多个SMT初始值,包括在所述一个运算节点的多个时段设置多个SMT初始值;所述监测装置进一步被配置为监测所述一个运算节点在所述多个SMT初始值下运行的性能指标;所述确定装置进一步被配置为选择所述性能指标最优的时段所对应的SMT初始值作为SMT修订值。
18.如权利要求11-15中任意一个所述的系统,其中所述设置装置进一步被配置为为多个运算节点设置多个SMT初始值,其中至少有一个运算节点在多个时段被设置多个SMT初始值;所述监测装置进一步被配置为监测所述多个运算节点在多个SMT初始值下运行的性能指标;所述确定装置进一步被配置为选择所述性能指标最优的时段所对应的运算节点的SMT初始值作为SMT修订值。
19.如权利要求11-15中任意一个所述的系统,还包括:
响应于监测到所述性能指标变劣,重复运行所述设置装置、监测装置、确定装置。
20.如权利要求11-15中任意一个所述的系统,其中所述设置装置、监测装置、确定装置是仅在运行时执行的。
CN201310209952.XA 2013-05-31 2013-05-31 利用同步多线程进行数据处理的方法及其系统 Pending CN104216683A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310209952.XA CN104216683A (zh) 2013-05-31 2013-05-31 利用同步多线程进行数据处理的方法及其系统
US14/288,612 US10083066B2 (en) 2013-05-31 2014-05-28 Processing data by using simultaneous multithreading

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310209952.XA CN104216683A (zh) 2013-05-31 2013-05-31 利用同步多线程进行数据处理的方法及其系统

Publications (1)

Publication Number Publication Date
CN104216683A true CN104216683A (zh) 2014-12-17

Family

ID=51986714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310209952.XA Pending CN104216683A (zh) 2013-05-31 2013-05-31 利用同步多线程进行数据处理的方法及其系统

Country Status (2)

Country Link
US (1) US10083066B2 (zh)
CN (1) CN104216683A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055448A (zh) * 2015-04-02 2016-10-26 Arm 有限公司 在多线程数据处理装置中的事件监控
CN106126336A (zh) * 2016-06-17 2016-11-16 上海兆芯集成电路有限公司 处理器以及调度方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649385B (zh) * 2015-11-02 2019-12-03 北京国双科技有限公司 基于HBase数据库的数据排序方法和装置
KR101910926B1 (ko) * 2017-09-13 2018-10-23 주식회사 티맥스 소프트 It 시스템의 장애 이벤트를 처리하기 위한 기법
CN108197307A (zh) * 2018-01-31 2018-06-22 湖北工业大学 一种文本特征的选择方法及系统
CN110704515B (zh) * 2019-12-11 2020-06-02 四川新网银行股份有限公司 基于MapReduce模型的两阶段在线化采样方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7318127B2 (en) * 2005-02-11 2008-01-08 International Business Machines Corporation Method, apparatus, and computer program product for sharing data in a cache among threads in an SMT processor
US8046566B2 (en) 2007-05-14 2011-10-25 International Business Machines Corporation Method to reduce power consumption of a register file with multi SMT support
US7886172B2 (en) 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US8296773B2 (en) * 2008-06-30 2012-10-23 International Business Machines Corporation Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance
CN102096603B (zh) 2009-12-14 2013-01-02 中国移动通信集团公司 MapReduce系统中的作业分解控制方法及设备
US9619291B2 (en) 2009-12-20 2017-04-11 Yahoo! Inc. System and method for a task management library to execute map-reduce applications in a map-reduce framework
JP5542700B2 (ja) 2011-01-05 2014-07-09 株式会社日立製作所 Smtプロセッサにおけるプロセッサ使用率の算出方法
US20120304186A1 (en) 2011-05-26 2012-11-29 International Business Machines Corporation Scheduling Mapreduce Jobs in the Presence of Priority Classes
US8607243B2 (en) 2011-09-20 2013-12-10 International Business Machines Corporation Dynamic operating system optimization in parallel computing
US8954972B2 (en) * 2012-06-26 2015-02-10 Wal-Mart Stores, Inc. Systems and methods for event stream processing
US9063906B2 (en) * 2012-09-27 2015-06-23 International Business Machines Corporation Thread sparing between cores in a multi-threaded processor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055448A (zh) * 2015-04-02 2016-10-26 Arm 有限公司 在多线程数据处理装置中的事件监控
US11080106B2 (en) 2015-04-02 2021-08-03 Arm Limited Event monitoring in a multi-threaded data processing apparatus
CN106055448B (zh) * 2015-04-02 2022-04-08 Arm 有限公司 用于多线程数据处理的装置、方法和计算机可读存储介质
CN106126336A (zh) * 2016-06-17 2016-11-16 上海兆芯集成电路有限公司 处理器以及调度方法
CN106126336B (zh) * 2016-06-17 2019-06-04 上海兆芯集成电路有限公司 处理器以及调度方法

Also Published As

Publication number Publication date
US20140359635A1 (en) 2014-12-04
US10083066B2 (en) 2018-09-25

Similar Documents

Publication Publication Date Title
KR102482122B1 (ko) 태스크 병렬 처리 구현 방법, 장치, 기기 및 매체
CN102918501B (zh) 用于分析多线程应用的性能的方法和系统
US20170097853A1 (en) Realizing graph processing based on the mapreduce architecture
US20190080429A1 (en) Adaptive scheduling for task assignment among heterogeneous processor cores
Juve et al. Characterizing and profiling scientific workflows
CN103810035B (zh) 智能上下文管理
CN103069389B (zh) 混合计算环境中的高吞吐量计算的方法和系统
CN104216683A (zh) 利用同步多线程进行数据处理的方法及其系统
KR101730282B1 (ko) 지연된 재구성된 프로그램 순서를 이용한 선택 로직
US8972702B2 (en) Systems and methods for power management in a high performance computing (HPC) cluster
Huang et al. Novel heuristic speculative execution strategies in heterogeneous distributed environments
CN105700956A (zh) 用于处理分布式作业的方法和系统
US20150234729A1 (en) Enhancing performance in multithreaded systems
CN104657111A (zh) 一种并行计算方法和装置
US20130339689A1 (en) Later stage read port reduction
CN104598304A (zh) 用于作业执行中的调度的方法和装置
US10684834B2 (en) Method and apparatus for detecting inter-instruction data dependency
Kadirvel et al. Fault Management in {Map-Reduce} Through Early Detection of Anomalous Nodes
Liu et al. Runtime concurrency control and operation scheduling for high performance neural network training
Jin et al. Towards dataflow-based graph accelerator
US20140244985A1 (en) Intelligent context management
CN104346220A (zh) 一种任务调度方法与系统
WO2023165512A1 (zh) 一种故障文件保存方法及相关装置
Lin et al. Analyzing job completion reliability and job energy consumption for a heterogeneous MapReduce cluster under different intermediate-data replication policies
Chen et al. Ftpipehd: A fault-tolerant pipeline-parallel distributed training framework for heterogeneous edge devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141217

WD01 Invention patent application deemed withdrawn after publication