CN104025036A - 低时延集群计算 - Google Patents
低时延集群计算 Download PDFInfo
- Publication number
- CN104025036A CN104025036A CN201180076175.5A CN201180076175A CN104025036A CN 104025036 A CN104025036 A CN 104025036A CN 201180076175 A CN201180076175 A CN 201180076175A CN 104025036 A CN104025036 A CN 104025036A
- Authority
- CN
- China
- Prior art keywords
- computational data
- stored
- volatile memory
- node
- data
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 82
- 230000008569 process Effects 0.000 claims description 63
- 230000007246 mechanism Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1466—Management of the backup or restore process to make the backup process non-disruptive
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Retry When Errors Occur (AREA)
Abstract
实施例包括用于对分布式应用执行检查点的低时延机制。更具体地,本发明的实施例包括在集群中所包含的计算节点上执行第一应用,以产生第一计算数据,然后将第一计算数据存储在计算节点本地包含的易失性存储器中;基于启动的检查点,暂停第一应用的处理,并且将与暂停的第一应用对应的第一状态数据存储在易失性存储器中;将第一状态信息和第一计算数据存储在计算节点本地包含的非易失性存储器中;以及恢复处理所述暂停的第一应用,然后继续处理第一应用以产生第二计算数据,同时将第一状态信息和第一计算数据从非易失性存储器拉出到输入/输出(IO)节点。
Description
背景技术
高性能计算(HPC)和集群计算涉及到连接各计算节点以形成能够解决复杂问题的分布式系统。这些节点可以是单个的台式计算机、服务器、处理器或能够托管单个计算实例的类似机器。更具体地,这些节点是由包括但不限于处理器、易失性存储器(RAM)、磁存储驱动器、主板、网络接口卡等硬件部件构成的。
可扩展的HPC应用需要检查点能力。在分布式共享存储器系统中,检查点是一种帮助容忍导致失去长期运行的应用的工作效力的错误的技术。检查点技术有助于在故障的情况下保持系统一致性。随着集群尺寸增长,故障之间的平均时间减小,这需要应用来创建更频繁的检查点。这驱动了对于快速检查点能力的需求。
附图说明
通过随附的权利要求书、一个或多个示例性实施例的如下详细说明以及对应的附图,本发明的实施例的多个特征和优点将变得清晰,在附图中:
图1包括本发明的实施例中的用于HPC的集群的示意图。
图2包括本发明的实施例中的计算节点的示意图。
图3包括本发明的实施例中的计算节点的易失性存储器的框图。
图4-5包括本发明的实施例中的检查点处理的第一阶段的流程图。
图6-7包括本发明的实施例中的检查点处理的第二阶段的流程图。
具体实施方式
在下面的说明中,阐述了多方面具体的细节,但是本发明的实施例可以在不具有这些具体细节的情况下实施。为避免使对本说明书的理解模糊,未详细示出公知的电路、结构和技术。“实施例”、“各个实施例”等表示如此描述的实施例可以包括特定的特征、结构或特点,但是不是每一个实施例必然包括该所述特定的特征、结构或特点。一些实施例可以具有针对其他实施例所描述的特征中的一些、全部或不包括。“第一”、“第二”、“第三”等描述了共同的对象并且表示提及类似对象的不同实例。这些形容词不暗示如此描述的对象必须以时间上或空间上的给定序列中、按级别或以任何其他方式。“连接”可以表示元件彼此直接物理或电接触,“耦合”可表示元件彼此配合或相互作用,但是它们可以或者可以不直接物理或电接触。而且,虽然相似或相同的标记可以用来在不同图中指示相同或相似的部件,这样做不意味着包括相似或相同标记的所有图都构成单个或相同的实施例。
本发明的实施例包括用于对分布式应用执行检查点的低时延机制。这包括使得应用所经受的时延最小化的多步检查点过程。
图1和图2一起解决了包括计算节点以及计算节点本身的更详细的示例的集群。下面根据需要讨论两个图来描述本发明的各个实施例。
图1包括实施例中的用于高性能计算的集群的示意图。分布式应用正在通过远程直接存储器存取(RDMA)使能网络115连接的多个计算节点110、111、112、113和114上运行。输入/输出(IO)节点120、121、122通过RDMA网络115连接到计算节点110、111、112、113、114且经由存储网络125连接到永久存储阵列130。虽然单独地示出,但是计算节点、IO节点和网络可以共享相同的硬件。
过程管理器105控制应用的总流程。更具体地,“过程管理器”用来控制集群中的其他节点。例如,过程管理器105可用于远程启动在集群中多个机器上的过程,设置集群环境并且发起在消息传递接口(MIP)作业中使用的过程,提供与MPI任务和分布式计算有关的命令库,以规划的间隔启动检查点,等等。MPI是允许计算机彼此通信的应用程序接口(API)规范。该规范定义了可用于集群计算中的库例程的核心的语法和语义。在实施例中,过程管理器105与计算节点和IO节点通信以启动检查点,来协调在检查点期间的节点的活动,并且接收检查点完成的指示。
图2包括本发明的实施例中的计算节点210的示意图。对于每个计算节点,一个或多个处理器201、202、203、204可用于处理一个或多个应用过程,诸如分布式应用的过程。处理器201、202、203、204可以经由RDMA网络接口卡(NIC)220或其他RDMA硬件与易失性存储器(例如,RAM)215耦合。易失性存储器215还可以与非易失性存储器区域(NMR)(例如,闪存、应用优化非易失性存储器等)225耦合。因此,各计算节点为应用提供对低时延NMR的存取。NMR可本地包含在计算节点(如图2所示)内或可通过RDMA网络存取。RDMA NIC220将计算节点210和IO节点与RDMA网络115耦合并且能够直接存取NMR225和/或易失性存储器215。
RDMA通过实现与应用存储器直接进行数据传递来支持零复制网络化,消除了在应用存储器(例如,存储器215)与操作系统中的数据缓冲器之间复制数据的需要。这种传递不需要通过CPU、高速缓存或上下文开关来完成工作,并且传递与其他系统操作并行地继续。当应用执行RDMA读或写请求时,应用数据直接输送到网络,降低了时延。
在实施例中,当需要检查点时,过程管理器105对包括在处理器201、202、203和204中的应用发信号。在接收到来自过程管理器105的信号之后,应用暂停外部通信且将所有计算的状态保存到NMR225中。可以利用诸如NMR225的本地NMR的总线传递,或者利用本地或远程NMR的RDMA NIC220,将状态数据写入NMR225。本地NMR225的RDMA NIC220的使用可以免除主机处理器(例如,处理器201)控制总线传递的需要。一旦完成,应用过程应答过程管理器105:它们已经完成了它们的检查点任务并且继续进行进一步的计算。这完成了检查点过程的第一阶段。CPU(201、202、203和204)或RDMA还可以将与在计算节点210上处理的应用有关的过程数据从易失性存储器215传递到NMR225。
在计算状态和处理数据已经保存到NMR225之后,开始检查点过程的第二阶段。然后,IO节点120、121、122跨越RDMA网络115来访问NMR225。状态信息和过程数据从一个或多个NMR225中读出且写入存储阵列130。将检查点的最终完成通知过程管理器105,这允许重新使用NMR(例如,225)。
虽然NMR225的使用提供了较大的容错恢复,但是在检查点过程的第一阶段使用非易失性存储器可由易失性存储器替代,从而减少时延,但是付出更大的代价。
因此,常规的系统可以将计算状态保存到永久存储中。对于分布式应用,这通常意味着,利用分布式文件系统将状态信息保存到远程定位的硬盘驱动器。结果,防止应用继续计算,直到检查点数据已经跨越时延诱发网络而写入永久存储。作为对比,本发明的实施例使用多阶段检查点过程和RDMA来减少执行检查点所需的时延(从应用的视角看到的)。这允许更频繁地出现检查点,这对于将应用扩展到大的集群尺寸(例如,千兆兆级)是很重要的。通过利用RDMA技术,实施例避免了在将数据从计算节点复制到存储阵列的同时与用于处理电力的应用竞争。
此外,常规的系统不将快速的辅助存储器区域(例如,NMR225)的使用与RDMA协议结合。同时,这些特征允许应用将数据快速地检查点到较小的、可负担的存储器区域,后台RDMA传递将数据卸载给较大的、较廉价的存储单元。本发明的实施例可以用于各种产品,包括在集群和HPC系统中涉及到的MPI产品。
现在解决更详细的实施例。图3包括在本发明的实施例中的计算节点的易失性存储器的框图。图4-5包括本发明的实施例中的检查点处理的第一阶段的流程图。图6-7包括本发明的实施例中的检查点处理的第二阶段的流程图。
如上所示,多个应用可以在每个计算节点110、111、112、113和114上运行。图3包括易失性存储器的实施例,诸如图2的存储器215。存储器315被划分成多个工作空间316、336、346,每个应用一个工作空间。每个工作空间被划分成计算的过程数据(例如,由于处理分布式应用而产生的)的一个或多个区段,以及关于计算进程的普通状态信息(例如,处理器寄存器的内容)。例如,工作空间316包括用于与第一应用有关的状态数据的区段317。工作空间316还包括分别用于都与第一应用有关的过程数据321、322的区段318和319。以类似的方式,第二应用与状态信息337和数据341的区段338有关。第三应用与状态信息347和分别用于数据351、352的区段348、349有关。
常规的检查点操作可通过下面的序列来描述:(1)启动检查点,以使应用暂停计算;(2)计算节点通过网络将工作空间状态信息传递到IO节点;(3)IO节点将工作空间状态数据写入非易失性存储器(例如,硬盘驱动器);(4)计算节点将已处理的工作空间数据区段传递到IO节点;(5)IO节点将每个区段写入非易失性存储器;以及然后(6)计算节点继续进行计算。这能够视为推模型(push model),其中计算节点(及其处理器)将数据推入/写入IO节点,并且处理器负担所有到IO节点的数据传递。
相比而言,图4-7中的实施例涉及拉模型(pull model),其中通过IO节点来读取(即,拉出)状态信息和计算数据。因此,实施例通过网络拉出数据以缓解IO节点处的网络拥塞。利用RDMA NIC,IO节点从计算节点读取数据。为了减少应用所经过的检查点时间,过程的工作空间中的数据被复制到计算节点上的NMR。数据的复制是计算节点CPU与RDMA NIC之间的联合努力。例如,实施例使用以下序列:(1)启动检查点;(2)应用暂停计算;(3)计算节点处理器将工作空间复制到本地NMR;(4)计算节点继续进行计算;(5)IO节点将工作空间读入IO网络缓冲器;以及然后(6)IO节点将IO网络缓冲器写入非易失性存储器(例如,硬盘驱动器)。
具体地参考图4,在框405中,处理器210判定检查点是否存在。例如,计算节点210的处理器201判定过程管理器105是否已启动检查点。如果为否,则在框410中,处理器201处理应用。然而,如果检查点已经启动,则在框415、420中,每个过程暂停,且在一个实施例中,将状态信息存储到易失性存储器215中(连同也存储在存储器215中的过程数据一起)。在框425中,状态信息随后存储到NMR225中。然而,在其他实施例中,状态信息被直接存储到NMR225中,而不是首先定位在存储器215中。
在框430中,“未决的RDMA请求”被设定为0。然后,在框435中,工作空间(例如,包括状态信息317(如果不是已经位于NMR中)和数据321,322)保存到NMR225中。图5示出了框435的更详细的实施例。在框440中,如果不存在未决的RDMA请求,则在框410中处理器继续计算。但是,如果存在这样的请求,则在框445中处理RDMA请求。由于RDMA的使用以及状态信息和数据存储在NMR225中,这可与处理器处理应用同时完成。在图6和图7中更详细地论述了框445的实施例。
在图5中,框535对应于图4中的框435。过程500包括用于将工作空间316、336、346保存到NMR的可选路径。在框540中,系统判定是否已处理了所有的区段。如果为是,则无需复制(框545)。然而,如果仍需要处理区段,则过程前进到框550。在框550中,判定未决的RDMA请求的数量是否满足阈值。该阈值可以基于设备(例如,RDMA NIC)的容量限制。例如,如果未决的请求数量小于阈值,则RDMA是可选项。因此,在框555中,未决的RDMA请求的数量增加。在框560中,RDMA写被提交(例如,提交到队列中),从而通过例如计算节点210中所包含的RDMA NIC220将相关区段(例如,工作空间316)复制到NMR225。
然而,如果在框550中RDMA请求超过阈值,则在框575中区段(例如,工作空间316)可经由处理器(例如,处理器201)复制到NMR225中。在复制之后,易失性存储器中的区段被标记为可用(框580),并且处理器201可以恢复处理应用并且将其他数据存储到刚刚释放的易失性存储器中。在框585中,可以将拉出请求连同区段的NMR地址和任何所需的加密密钥、散列等一起提交给远程节点(例如,IO节点120)。在框565中,如果RDMA请求完成,则可以在框570中处理RDMA请求(下文结合图6进行更详细论述)。
因此,如图5中所看出的,过程数据(以及在一些实施例中可能的状态信息)从易失性存储器215中的工作空间复制或传递到NMR225是计算节点处理器(例如,CPU201)和RDMA实用程序(例如,RDMA NIC220)之间的联合努力。主机CPU可以执行步骤575、580和585,并且RDMA NIC可以执行步骤555和560。框550的决策“未决的RDMA请求<阈值”用来判定RDMA NIC220是否利用RDMA写将区段复制到NMR225(“是”路径)或者主机CPU201是否将区段复制到NMR225(“否”路径)。作为例子,RDMA NIC220可以将区段1-1(元素318)复制到NMR225的第一部分,而CPU201将区段1-2(元素319)复制到NMR225的第二部分。NMR225的该第二部分与第一部分不重叠。换言之,第一和第二部分可共享同一存储器,但是彼此分离,从而允许对第一和第二部分同时存取。复制可与CPU201和NIC220两者处理传递的不同部分并行地(即,同时地)进行。这与常规方法形成对比,常规方法利用更直接的方法,其中CPU处理所有的复制。在实施例中,一旦RAM215的区段已被复制到NMR225,就可以修改RAM215。例如,一开始修改RAM215,计算就可以在计算节点上继续进行。
图6包括示出了图5的框570的更多细节的实施例。在图6中,框670包括处理RDMA完成。RDMA完成可以是指示从计算节点的本地易失性存储器(例如,215)传递或复制信息到本地非易失性存储器(例如,225)完成的信号。此外,在数据已经复制到NMR225之后,计算节点210可以对控制节点发出其已完成的信号。当计算节点210已经完成将其数据复制到NMR225时,控制节点随后可以对IO节点发信号。
在框680中,未决的RDMA请求的数量可以递减(这将影响图5的框550)。在框685中,易失性存储器(已从其复制了状态信息和/或过程数据)215可标记为可用。换言之,存储器215的那些部分被“释放”,因此计算节点上的过程可以处理应用并且将状态和/或过程数据存储到所释放的存储器中。在框690中,“拉出”请求可以提交给IO节点(或其他远程节点)。请求可以为非易失性存储器部分(225)提供包括要拉出IO节点的状态信息和/或过程数据的地址。在框690的请求中,还可以包括对NMR225部分存取所需的任何必要的加密工具(例如,密钥、散列)。在框695中,过程可以朝向实际的拉出操作继续。
图7涉及拉出操作,如从IO节点120、121、122的视角所看到的。在框705中,IO节点(例如,120)接收通知。通知或信号可以是作为图6中的框690的主题的拉出请求。如果是,则在框710中,IO节点120将RDMA读连同所需的加密信息提交到指定的NMR225地址(例如,以与计算节点上的密钥兼容的方式加密的密钥或信息,等等)。然后,过程返回到框705。
然而,如果框705的信号或通知包括RDMA读(即,拉出)完成的通知,则IO节点120现在可以将接收到的信息写入(即,推入)诸如阵列130的其他非易失性存储设备中。在框720中,IO节点120可以向过程管理器105发信号:推入(到存储阵列)以及拉出(从NMR)操作完成。过程随后返回到框705。在拉出操作中,RDMA NIC220直接存取数据,而不涉及计算节点210或多个节点的主机CPU(201、202、203、204)。
在各个实施例中,RDMA硬件(例如,RDMA NIC220)可本地定位在计算节点210中或者仅可经由RDMA网络115访问。将硬件本地定位在每个计算节点上允许计算节点CPU(201、202、203、204)和RDMA NIC220将数据从RAM215复制到NMR225,从NMR225中IO节点120、121、122能够取得数据。
因此,各个实施例提供了一个或多个特征,这些特征例如帮助减少检查点时延。例如,一个实施例调用CPU201和RDMA NIC220的组合使用以将工作空间数据传递到本地NMR225。在图5的框550的“是”和“否”分支中例示出所述“组合使用”。组合使用格式帮助从计算节点处理器卸载传递负担,因此处理器能够更快速地返回以处理应用。
实施例还基于计算节点的本地NMR225和DMA辅助硬件(例如,RDMA NIC220)的使用来帮助减少时延,从(在计算节点上运行的)应用的视角看,这有助于减少完成检查点所需的时间(例如,通过免除将信息从易失性存储器215跨越网络链路115传递到远程IO120、121、122的传统需要)。
此外,利用工作空间数据分割成区段的实施例帮助减少时延。如图3所示,过程数据区段321和322被划分成彼此远离。而且,状态信息317被划分而远离区段321、322。结果,一旦区段已保存到NMR225,计算过程就可以继续对该区段内的数据进行计算。RDMA硬件能够继续复制区段(在后台),而CPU201再次专用于执行计算。
而且,在一些实施例中,IO节点120、121、122使用RDMA硬件从计算节点NMR225拉出保存的区段有助于减少时延。IO节点120、121、122可以在区段一旦复制到NMR225时就拉出区段,提供与新区段保存到易失性存储器215以及甚至保存到NMR225的其他区段相重叠的操作。这减少了检查点之间所需的最小时间。在IO节点120、121、122通过网络115取得数据的情况下,RDMA的使用允许这在不使用计算节点210上的处理能力的情况下发生。当在RAM215与NMR225之间复制数据时,也可以使用RDMA设备。这允许系统将处理与在RAM215与NMR225之间复制数据相重叠(一旦RAM的某部分可修改),还允许处理与通过网络115将数据传递到IO节点120、121、122相重叠。
具体地,常规方法集中于提高执行任何传统步骤的速度。也即,当检查点被请求时,所有节点停止计算,通过网络将它们的数据写入永久存储,然后恢复计算。在IO节点处已收集到所有数据之后,从计算节点的视角看,完成了检查点。IO节点随后将存储在NMR中的数据复制到更廉价的磁盘。这是“推”模型,其中通过写入IO节点的网络速度来限制检查点时间。在检查点网络操作正在进行的同时,计算受阻挡。相比而言,本发明的各个实施例通过利用硬件辅助便于重叠操作而减少了时延(即,在IO节点从计算节点拉出信息的同时在计算节点上处理应用的能力)。
诸如计算节点210和/或IO节点120、121、122的实施例可以多种不同的系统类型来实现。现在参考图8,显示了依照本发明的实施例的系统的框图。多处理器系统500是点对点互连系统,并且包括经由点对点互连550耦合的第一处理器570和第二处理器580。处理器570和580中的每一个可以是多核处理器。第一处理器570可以包括存储器控制器中心(MCH)和点对点(P-P)接口。类似地,第二处理器580可以包括MCH和P-P接口。MCH可以将处理器耦合到各存储器,即存储器532和存储器534,存储器532和存储器534可以是本地附接到相应处理器的主存储器(例如,动态随机存取存储器(DRAM))的部分。第一处理器570和第二处理器580可以分别经由P-P互连与芯片组590耦合。芯片组590可以包括P-P接口。此外,芯片组590可以经由接口与第一总线516耦合。各个输入/输出(I/O)设备514可以连同将第一总线516与第二总线520耦合的总线桥518一起与第一总线516耦合。各个设备可以与第二总线520耦合,包括例如键盘/鼠标522、通信设备526以及数据存储单元528,诸如磁盘驱动器或其他大容量存储设备,在一个实施例中,可以包括代码530。代码可以包括在一个或多个存储器中,包括存储器528、532、534、经由网络与系统500耦合的存储器,等等。此外,音频I/O524可以与第二总线520耦合。
术语“处理器”可以指代处理来自寄存器和/或存储器的电子数据以将该电子数据变换成可存储在寄存器和/或存储器中的其他电子数据的任何设备或设备的部分。处理器或者控制器可以包括意在表示本领域公知的各种控制逻辑中的任一种的控制逻辑,因此,可以很好地实现为微处理器、微控制器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、可编程逻辑设备(PLD)等。
实施例可以以代码实现并且可以存储在非暂态存储介质上,非暂态存储介质上存储有指令,指令能够用于对系统编程以执行指令。存储介质可以包括但不限于:任意类型的磁盘,包括软盘、光盘、固态驱动器(SSD)、只读式光盘存储器(CD-ROM)、可重写光盘(CD-RW)以及磁光盘;半导体器件,诸如只读存储器(ROM);随机存取存储器(RAM),诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡;或任何适合存储电子指令的其他类型的介质。
在本文中参考诸如指令、函数、程序、数据结构、应用程序、配置设定、代码等数据对本发明的实施例进行了描述。当通过机器存取数据时,机器可通过执行任务、定义抽象数据类型、建立低级硬件上下文和/或执行其他操作来做出响应,如本文更详细说明的。数据可以存储在易失性和/或非易失性数据存储设备中。术语“代码”或“程序”涵盖了宽范围的部件和构造,包括应用、驱动器、过程、例程、方法、模块和子程序,并且可指代任何指令集合,当通过处理系统执行时,其执行期望的一种或多种操作。另外,可选的实施例可以包括使用比所披露的全部操作少的过程、使用附加操作的过程、使用不同序列中的相同操作的过程以及本文所披露的各项操作结合、细分或以其他方式改动的过程。部件或模块可以根据需要结合或分离,并且可以定位在设备的一个或多个部分中。
虽然已经参考有限数量的实施例描述了本发明,但本领域技术人员将从其中理解多个修改和变型例。随附权利要求书意在涵盖落在本发明的主旨和范围内的所有这样的修改和变型例。
Claims (23)
1.一种方法,包括:
在包含于集群中的计算节点上处理第一应用,以产生第一计算数据,然后将所述第一计算数据存储在所述计算节点中本地包含的易失性存储器中;
基于启动的检查点来暂停所述第一应用的处理;
将所述第一计算数据和与暂停的第一应用对应的第一状态数据存储在所述计算节点本地包含的非易失性存储器中;以及
恢复所述暂停的第一应用的处理,然后继续处理所述第一应用以产生第二计算数据,同时将第一状态信息和所述第一计算数据从所述非易失性存储器拉出到输入/输出(IO)节点。
2.如权利要求1所述的方法,包括:利用所述易失性存储器的直接存储器存取(DMA)将所述第一状态信息和所述第一计算数据中的一个存储在所述非易失性存储器中。
3.如权利要求2所述的方法,包括:
将所述第二计算数据存储在所述易失性存储器中;以及
利用所述计算节点所包含的至少一个处理器而不利用所述易失性存储器的DMA,将所述第二计算数据存储在所述非易失性存储器中。
4.如权利要求3所述的方法,包括:
判定对所述易失性存储器的未决的存取请求的数量满足阈值;以及
基于判定所述未决的存取请求的数量满足所述阈值,利用所述处理器将所述第二计算数据存储在所述非易失性存储器中。
5.如权利要求1所述的方法,包括:
将所述第一计算数据存储在所述易失性存储器的第一部分中;
在所述计算节点上处理所述第一应用以产生第三计算数据,然后将所述第三计算数据存储在所述易失性存储器的第三部分中,所述第三部分与所述第一部分不重叠;
利用所述易失性存储器的直接存储器存取(DMA)将所述第一计算数据存储在所述非易失性存储器中,同时利用所述计算节点中所包含的至少一个处理器而不利用所述易失性存储器的DMA将所述第三计算数据存储在所述非易失性存储器中。
6.如权利要求1所述的方法,包括:利用远程直接存储器存取(RDMA)将所述第一状态信息和所述第一计算数据从所述非易失性存储器拉出到所述IO节点。
7.如权利要求1所述的方法,包括:将所述第一计算数据存储在所述易失性存储器的第一区段中,以及将所述第二计算数据存储在所述易失性存储器的第二区段中。
8.如权利要求7所述的方法,包括:将所述第二计算数据存储在所述易失性存储器的所述第二区段中,同时将所述第一计算数据存储在所述非易失性存储器中。
9.如权利要求7所述的方法,包括:为所述第一应用保留所述易失性存储器的所述第一区段和第二区段。
10.如权利要求1所述的方法,其中将所述第一状态信息和所述第一计算数据从所述非易失性存储器拉出到所述IO节点包括:所述IO节点读取所述第一状态信息和所述第一计算数据。
11.如权利要求1所述的方法,包括:经由写操作,将所述第一状态信息和所述第一计算数据从所述IO节点推入到非易失性存储阵列,同时处理所述第一应用。
12.如权利要求1所述的方法,包括:在所述第一应用的处理暂停的同时,将所述第一状态信息和所述第一计算数据存储在所述非易失性存储器中。
13.驻留于一个或多个存储介质中的指令集,所述指令集由至少一个处理器执行以实现如权利要求1至12所述的方法。
14.一种系统,包括:
计算节点,其包含在集群中;
在所述计算节点中本地包含的易失性存储器和非易失性存储器;以及
其上存储有指令的至少一个机器可存取介质,当所述指令在所述系统上执行时使所述系统:
处理第一应用以产生第一计算数据,然后将所述第一计算数据存储在所述易失性存储器中;
基于启动的检查点来暂停所述第一应用的处理;
将所述第一计算数据和与暂停的第一应用对应的第一状态数据存储在所述非易失性存储器中;以及
恢复所述暂停的第一应用的处理,然后继续处理所述第一应用以同时产生第二计算数据并且将第一状态信息和所述第一计算数据从所述非易失性存储器拉出到输入/输出(IO)节点。
15.如权利要求14所述的系统,还包括当在所述系统上执行时使所述系统用于以下操作的指令:利用所述易失性存储器的直接存储器存取(DMA)将所述第一状态信息和所述第一计算数据中的一个存储在所述非易失性存储器中。
16.如权利要求15所述的系统,还包括当在所述系统上执行时使所述系统用于以下操作的指令:
将所述第二计算数据存储在所述易失性存储器中;以及
利用所述计算节点中所包含的至少一个处理器而不利用所述易失性存储器的DMA将所述第二计算数据存储在所述非易失性存储器中。
17.如权利要求16所述的系统,还包括当在所述系统上执行时使所述系统用于以下操作的指令:
判定对所述易失性存储器的未决的存取请求的数量满足阈值;以及
基于判定出所述未决的存取请求的数量满足所述阈值,利用所述至少一个处理器将所述第二计算数据存储在所述非易失性存储器中。
18.如权利要求14所述的系统,还包括当在所述系统上执行时使所述系统用于以下操作的指令:
将所述第一计算数据存储在所述易失性存储器的第一部分中;
在所述计算节点上处理所述第一应用以产生第三计算数据,然后将所述第三计算数据存储在所述易失性存储器的第三部分中,所述第三部分与所述第一部分不重叠;
利用所述易失性存储器的直接存储器存取(DMA)将所述第一计算数据存储在所述非易失性存储器中,同时利用所述计算节点中所包含的至少一个处理器而不利用所述易失性存储器的DMA将所述第三计算数据存储在所述非易失性存储器中。
19.如权利要求14所述的系统,还包括当在所述系统上执行时使所述系统用于以下操作的指令:利用远程直接存储器存取(RDMA)将所述第一状态信息和所述第一计算数据从所述非易失性存储器拉出到所述IO节点。
20.如权利要求14所述的系统,还包括当在所述系统上执行时使所述系统用于以下操作的指令:将所述第一计算数据存储在所述易失性存储器的第一区段中,以及将所述第二计算数据存储在所述易失性存储器的第二区段中。
21.如权利要求20所述的系统,还包括当在所述系统上执行时使所述系统用于以下操作的指令:同时将所述第二计算数据存储在所述易失性存储器的所述第二区段中,以及将所述第一计算数据存储在所述非易失性存储器中。
22.如权利要求14所述的系统,其中将所述第一状态信息和所述第一计算数据从所述非易失性存储器拉出到所述IO节点包括:所述IO节点读取所述第一状态信息和所述第一计算数据。
23.如权利要求14所述的系统,还包括当在所述系统上执行时使所述系统同时用于以下操作的指令:经由写操作,(a)将所述第一状态信息和所述第一计算数据从所述IO节点推入到非易失性存储阵列,以及(b)处理所述第一应用。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/068011 WO2013101142A1 (en) | 2011-12-30 | 2011-12-30 | Low latency cluster computing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104025036A true CN104025036A (zh) | 2014-09-03 |
CN104025036B CN104025036B (zh) | 2018-03-13 |
Family
ID=48698376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180076175.5A Expired - Fee Related CN104025036B (zh) | 2011-12-30 | 2011-12-30 | 低时延集群计算 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9560117B2 (zh) |
EP (1) | EP2798461B1 (zh) |
CN (1) | CN104025036B (zh) |
WO (1) | WO2013101142A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105700907A (zh) * | 2014-12-16 | 2016-06-22 | 英特尔公司 | 利用针对本地检查点的卸载程序模型 |
CN105868137A (zh) * | 2015-02-10 | 2016-08-17 | Fts电脑技术有限公司 | 经扩展的分布单元 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110103391A1 (en) * | 2009-10-30 | 2011-05-05 | Smooth-Stone, Inc. C/O Barry Evans | System and method for high-performance, low-power data center interconnect fabric |
US9781027B1 (en) * | 2014-04-06 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods to communicate with external destinations via a memory network |
US9348710B2 (en) * | 2014-07-29 | 2016-05-24 | Saudi Arabian Oil Company | Proactive failure recovery model for distributed computing using a checkpoint frequency determined by a MTBF threshold |
US10055371B2 (en) | 2014-11-03 | 2018-08-21 | Intel Corporation | Apparatus and method for RDMA with commit ACKs |
JP6160931B2 (ja) * | 2015-01-21 | 2017-07-12 | コニカミノルタ株式会社 | 画像形成装置及びジョブ処理制御方法並びにジョブ処理制御プログラム |
US9921875B2 (en) * | 2015-05-27 | 2018-03-20 | Red Hat Israel, Ltd. | Zero copy memory reclaim for applications using memory offlining |
GB2558517B (en) * | 2016-05-31 | 2022-02-16 | Fujitsu Ltd | Automatic and customisable checkpointing |
US10949378B2 (en) | 2016-05-31 | 2021-03-16 | Fujitsu Limited | Automatic and customisable checkpointing |
US9811403B1 (en) | 2016-06-22 | 2017-11-07 | Intel Corporation | Method, apparatus and system for performing matching operations in a computing system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7124207B1 (en) * | 2003-08-14 | 2006-10-17 | Adaptec, Inc. | I2O command and status batching |
CN101030154A (zh) * | 2006-01-25 | 2007-09-05 | 国际商业机器公司 | 将应用重新定位到拓扑上位于远程计算系统的系统和方法 |
CN101123521A (zh) * | 2006-08-07 | 2008-02-13 | 华为技术有限公司 | 一种集群内检查点的管理方法 |
US20100122199A1 (en) * | 2008-11-13 | 2010-05-13 | International Business Machines Corporation | Using Accelerators in a Hybrid Architecture for System Checkpointing |
US20110173488A1 (en) * | 2010-01-08 | 2011-07-14 | International Business Machines Corporation | Non-volatile memory for checkpoint storage |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07175700A (ja) * | 1993-12-20 | 1995-07-14 | Fujitsu Ltd | データベース管理方式 |
US7573895B2 (en) | 2004-06-24 | 2009-08-11 | Intel Corporation | Software assisted RDMA |
US7548244B2 (en) * | 2005-01-12 | 2009-06-16 | Sony Computer Entertainment Inc. | Interactive debugging and monitoring of shader programs executing on a graphics processor |
US9417909B2 (en) * | 2008-11-13 | 2016-08-16 | International Business Machines Corporation | Scheduling work in a multi-node computer system based on checkpoint characteristics |
-
2011
- 2011-12-30 US US13/994,478 patent/US9560117B2/en active Active
- 2011-12-30 EP EP11878714.2A patent/EP2798461B1/en active Active
- 2011-12-30 WO PCT/US2011/068011 patent/WO2013101142A1/en active Application Filing
- 2011-12-30 CN CN201180076175.5A patent/CN104025036B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7124207B1 (en) * | 2003-08-14 | 2006-10-17 | Adaptec, Inc. | I2O command and status batching |
CN101030154A (zh) * | 2006-01-25 | 2007-09-05 | 国际商业机器公司 | 将应用重新定位到拓扑上位于远程计算系统的系统和方法 |
CN101123521A (zh) * | 2006-08-07 | 2008-02-13 | 华为技术有限公司 | 一种集群内检查点的管理方法 |
US20100122199A1 (en) * | 2008-11-13 | 2010-05-13 | International Business Machines Corporation | Using Accelerators in a Hybrid Architecture for System Checkpointing |
US20110173488A1 (en) * | 2010-01-08 | 2011-07-14 | International Business Machines Corporation | Non-volatile memory for checkpoint storage |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105700907A (zh) * | 2014-12-16 | 2016-06-22 | 英特尔公司 | 利用针对本地检查点的卸载程序模型 |
CN105700907B (zh) * | 2014-12-16 | 2019-06-18 | 英特尔公司 | 利用针对本地检查点的卸载程序模型 |
CN105868137A (zh) * | 2015-02-10 | 2016-08-17 | Fts电脑技术有限公司 | 经扩展的分布单元 |
CN105868137B (zh) * | 2015-02-10 | 2019-10-22 | Tttech 电脑技术股份公司 | 经扩展的分布单元 |
Also Published As
Publication number | Publication date |
---|---|
EP2798461B1 (en) | 2017-06-21 |
EP2798461A4 (en) | 2015-10-21 |
US9560117B2 (en) | 2017-01-31 |
WO2013101142A1 (en) | 2013-07-04 |
US20140129635A1 (en) | 2014-05-08 |
CN104025036B (zh) | 2018-03-13 |
EP2798461A1 (en) | 2014-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104025036A (zh) | 低时延集群计算 | |
TWI828824B (zh) | 具有啟動器模式的固態硬碟 | |
US9043341B2 (en) | Efficiently storing and retrieving data and metadata | |
CN100555257C (zh) | 处理页面复制期间的dma操作的存储控制器和方法 | |
CN106371807B (zh) | 一种扩展处理器指令集的方法及装置 | |
CN102981864B (zh) | 信息处理装置和信息处理方法 | |
US9588844B2 (en) | Checkpointing systems and methods using data forwarding | |
JP5273982B2 (ja) | データ処理システム内のレジスタリネーミング | |
US11061693B2 (en) | Reprogramming a field programmable device on-demand | |
CN102741820A (zh) | 虚拟存储器的后台迁移 | |
US9262344B2 (en) | Local locking in a bi-directional synchronous mirroring environment | |
US10614004B2 (en) | Memory transaction prioritization | |
US9715403B2 (en) | Optimized extended context management for virtual machines | |
US9811404B2 (en) | Information processing system and method | |
US20180341555A1 (en) | Data processing method, data processing system, and computer program product | |
CN111190766A (zh) | 基于HBase数据库的跨机房集群的容灾方法、装置和系统 | |
US7921220B2 (en) | Reducing occurrences of two-phase commits in a multi-node computing system | |
CN105808391A (zh) | 一种热替换cpu节点的方法及装置 | |
US20030172229A1 (en) | Systems and methods for detecting and compensating for runt block data transfers | |
US9697059B2 (en) | Virtualized communication sockets for multi-flow access to message channel infrastructure within CPU | |
JP2615677B2 (ja) | 共用拡張記憶制御方式 | |
KR20180034963A (ko) | 프로세스 클라우드 시스템 및 방법 | |
CN117716339A (zh) | 用于在处理元件之间传输触发指令的数据处理装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180313 Termination date: 20211230 |
|
CF01 | Termination of patent right due to non-payment of annual fee |