CN102629221A - 用于分布式共享存储的任务同步方法、装置及系统 - Google Patents
用于分布式共享存储的任务同步方法、装置及系统 Download PDFInfo
- Publication number
- CN102629221A CN102629221A CN2012100477774A CN201210047777A CN102629221A CN 102629221 A CN102629221 A CN 102629221A CN 2012100477774 A CN2012100477774 A CN 2012100477774A CN 201210047777 A CN201210047777 A CN 201210047777A CN 102629221 A CN102629221 A CN 102629221A
- Authority
- CN
- China
- Prior art keywords
- task
- memory headroom
- formation
- snapshot
- synchronous
- 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
Images
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/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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F2003/0697—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例提供了用于分布式共享存储的任务同步方法、装置及系统,涉及分布式共享存储领域,为简化程序设计同时提升处理性能而发明。所述方法包括:创建第一任务的内存空间快照和第二任务的同步观察区,所述第二任务的同步观察区包括所述第二任务的同步变量的内存地址,所述同步变量为待同步的任务实现同步所必需的参数;将所述第一任务分配给第一计算节点执行;在所述第一任务执行结束后更新所述第一任务的内存空间快照及其对应的内存空间;如果所述第二任务的同步变量被所述第一任务更新,使所述第二任务根据所述第二任务的同步变量的内存地址获知所述第二任务的同步变量,并将所述第二任务分配给第二计算节点。
Description
技术领域
本发明涉及分布式共享存储领域,尤其涉及一种用于分布式共享存储的任务同步方法、装置及系统。
背景技术
当前,并行计算机的存储结构可以大致分为:共享存储结构、分布式存储结构。在共享存储结构中,所有处理器都有一致访问的全局物理内存,支持全局共享变量的编程模型。其编程简单,但受到共享内存带宽等的限制,扩展性较差。在分布式存储结构中,许多独立的有本地存储的计算节点通过高速网络互联,每个计算节点有单独的地址空间。计算节点间通过显式的消息传递使各个计算节点所执行的任务之间进行通信。其中,任务是系统进行资源分配和调度执行的基本单位,包含数据和对数据的操作序列。多个任务可以相互配合、并发执行,从而共同实现特定功能。分布式存储结构的扩展性能好,但由于需考虑数据分配和消息的传递,其程序设计较困难。
DSM(Distributed Shared Memory,分布式共享存储)结构,在物理存储分散的系统上通过硬件或软件实现了逻辑上的共享存储。在DSM中特别是通过软件实现的DSM中,底层的消息传递机制对用户掩盖起来,允许用户以共享存储方式进行并行程序设计。由于分布式共享存储系统既具有共享存储系统易于编程的优点,又保留了分布式存储系统的可扩展性,因而是大规模并行计算系统的一种重要形式。在DSM系统中,当存在多个任务(例如多个进程或者线程)共同实现特定的功能,且各任务之间存在前后制约关系、需要遵守某种顺序约束时,各任务的执行需要同步。因此,如何实现任务的同步,是并行程序设计必须要解决的关键问题。
现有技术中的锁、信号量、管程等同步手段仅适用于具有公共存储区的单机环境。现有技术中的基于消息传递编程模式的路障同步法,即在参与路障同步的每个任务的程序中彼此必须等待的位置设置一个障碍点,当某任务执行到障碍点时暂停,等待所有任务都执行到这个障碍点后,该任务才能继续运行。显式的消息传递编程要求程序员关心数据的划分和任务间的通信,因此在解决数据依赖和预防死锁方面花费大量力气,容易出错。
发明内容
本发明实施例提供一种用于分布式共享存储的任务同步方法、装置及系统,能够简化程序设计同时提升系统的处理性能。本发明提供了如下技术方案:
一方面,本发明实施例提供一种用于分布式共享存储的任务同步方法,包括:
创建所述第一任务的内存空间快照和所述第二任务的同步观察区,所述第二任务的同步观察区包括所述第二任务的同步变量的内存地址,所述同步变量为待同步的任务实现同步所必需的参数;
将所述第一任务分配给第一计算节点执行;
在所述第一任务执行结束后,更新所述第一任务的内存空间快照和所述第一任务的内存空间快照对应的内存空间;
如果所述第二任务的同步变量被所述第一任务更新,使所述第二任务根据所述第二任务的同步观察区中的同步变量的内存地址获知所述第二任务的同步变量,并将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行。
另一方面,本发明实施例提供一种用于分布式共享存储的任务同步装置,包括:
创建单元,用于创建第一任务的内存空间快照和第二任务的同步观察区,所述第二任务的同步观察区包括所述第二任务的同步变量的内存地址,所述同步变量为待同步的任务实现同步所必需的参数;
更新单元,用于将所述第一任务分配给第一计算节点执行,并在所述第一任务执行结束后更新所述第一任务的内存空间快照和所述第一任务的内存空间快照对应的内存空间;
同步单元,用于当所述第二任务的同步变量被所述第一任务更新时,使所述第二任务根据所述第二任务的同步观察区中的同步变量的内存地址获知所述第二任务的同步变量,并将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行。
另一方面,本发明实施例提供一种分布式共享存储系统,包括第一计算节点、第二计算节点以及本发明实施例提供的用于分布式共享存储的任务同步装置;所述用于分布式共享存储的任务同步装置位于所述第一计算节点内,或者位于所述第二计算节点内,或者分别与所述第一计算节点和所述第二计算节点相连,用于将所述第一计算节点与所述第二计算节点中的需要同步的任务进行同步。
采用上述技术方案后,本发明实施例提供的用于分布式共享存储的任务同步方法、装置及系统,创建了第一任务的内存空间快照和第二任务的同步观察区,所述第二任务的同步观察区存储有所述第二任务的同步变量的内存地址。一方面,第一任务在计算节点本地执行,任务完成后才更新共享存储空间,另一方面,如果所述第二任务的同步变量被所述第一任务更新,可以使所述第二任务根据所述第二任务的同步变量的内存地址获知所述第二任务的同步变量,并将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行,在很好地维护了分布式共享存储系统的内存一致性即程序对内存操作的正确性的同时,大大减少了分布式共享存储的任务同步和内存一致性维护所需要的频繁的消息发送和状态探寻,既简化了编程又有效提高了系统的处理性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的用于分布式共享存储的任务同步方法的一种流程图;
图2为本发明实施例提供的用于分布式共享存储的任务同步方法的一种详细流程图;
图3为本发明实施例提供的用于分布式共享存储的任务同步装置的一种结构示意图;
图4为本发明实施例提供的用于分布式共享存储的任务同步装置中的更新单元的结构示意图;
图5为本发明实施例提供的用于分布式共享存储的任务同步装置的另一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明的实施例提供了一种用于分布式共享存储的任务同步方法,包括:
S11,创建第一任务的内存空间快照和第二任务的同步观察区,所述第二任务的同步观察区包括所述第二任务的同步变量的内存地址,所述同步变量为待同步的任务实现同步所必需的参数;
S12,将所述第一任务分配给第一计算节点执行;
S13,在所述第一任务执行结束后,更新所述第一任务的内存空间快照和所述第一任务的内存空间快照对应的内存空间;
S14,如果所述第二任务的同步变量被所述第一任务更新,使所述第二任务根据所述第二任务的同步观察区中的同步变量的内存地址获知所述第二任务的同步变量,并将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行。
采用上述技术方案后,本发明实施例提供的用于分布式共享存储的任务同步方法,创建了第一任务的内存空间快照和第二任务的同步观察区,所述第二任务的同步观察区存储有所述第二任务的同步变量的内存地址。一方面,第一任务在计算节点本地执行,任务完成后才更新共享存储空间,另一方面,如果所述第二任务的同步变量被所述第一任务更新,可以使所述第二任务根据所述第二任务的同步变量的内存地址获知所述第二任务的同步变量,并将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行,在很好地维护了分布式共享存储系统的内存一致性即程序对内存操作的正确性的同时,大大减少了分布式共享存储的任务同步和内存一致性维护所需要的频繁的消息发送和状态探寻,既简化了编程又有效提高了系统的处理性能。
需要说明的是,在分布式共享存储结构中,存在多个计算节点。本实施例中的第一计算节点和第二计算节点可以相同,也可以不同,本发明对此不做限制。不同的任务,既可以分配给不同计算节点执行,也可以分配给同一个节点的不同处理器执行。具体的,在本发明的一个实施例中,当第一计算节点上的任务执行完成后,分配下一个任务时,需要选择一个空闲的计算节点执行该任务,此时既可能选择其他的计算节点,也可能选择当前空闲的第一计算节点。
当某个任务的执行需要另一个或另外多个任务的执行结果时,就需要知道所需要的另外一个或另外多个任务是否执行完毕,它们的执行结果是否可以被需要同步的任务使用了,即本发明所述的任务同步问题。
具体的,本实施例中的任务可以包含控制信息以及与任务相关的数据和代码。其中,控制信息可以包括任务执行相关的堆栈信息、同步观察区和首条指令地址等。分配在不同计算节点的任务从首条指令开始执行,在执行过程中发现数据不在本地则从全局共享内存中获取,任务成功执行后有可能修改全局内存以实现数据的更新或后续任务的同步。
为了便于说明,本实施例中,假定第一任务可以不受其它条件的制约而执行,或者说所述第一任务的执行条件已经具备。而第二任务是需要依赖于其它任务的执行结果才能执行。
还需要说明的是,本发明虽然以两个任务的任务同步方法为例进行说明,但本发明不限于此,所述任务同步可以是三个或三个以上任务的同步,其原理与两个任务的任务同步方法类似。
具体的,在步骤S11中,创建第一任务的内存空间快照和第二任务的同步观察区。可选的,第一任务的内存空间快照可以为基于事务内存的内存空间快照。此处,与第一任务相关的内存空间为共享空间。
所述第二任务的同步观察区包含所述第二任务的同步变量的内存地址。其中,所述同步变量为待同步的任务实现同步所必需的参数。可选的,所述第二任务的同步观察区可以位于所述第二任务的运行上下文中。
举例说明,在本发明的一个实施例中,在执行第二任务之前,需要初始化第二任务的运行上下文,这时,可以在第二任务的运行上下文中增加一片区域作为第二任务的同步观察区。在第二任务的同步观察区中,可以存放第二任务的同步变量的地址。只有通过该地址获得同步变量后,第二任务才能执行。
具体的,在步骤S12中,第一任务的执行条件已经具备,因此将第一任务分配给第一计算节点执行。需要说明的是,在执行第一任务的过程中,执行第一任务的计算节点只对第一任务的内存空间快照的一个副本进行写操作,而不会更新内存空间快照及其对应的内存空间。此处,第一任务的内存空间快照的一个副本为计算节点的本地内存。也就是说,第一任务的执行过程中,只更新计算节点的本地内存而不更新共享内存。
而在第一任务执行结束后在S13步骤中,在第一任务执行结束后,更新所述第一任务的内存空间快照和所述第一任务的内存空间快照对应的内存空间。
在S13步骤后,本实施例提供的用于分布式共享存储的任务同步方法可以根据各个需要同步的任务的同步变量,确定任意任务的执行结果,如第一任务的执行结果,是否为另外一个任务的同步变量。如果一任务的执行结果是另一个任务的同步变量,则每当所述一任务执行完成,更新了该任务的内存空间快照及其对应的内存空间后,由于该任务的执行结果,即所述另一个任务的同步变量,也存储在被更新了的内存空间中,因此,所述另一个任务的同步变量也就被更新了,从而使所述另一个任务能够根据其同步观察区中同步变量的地址获知更新后的同步变量。而如果某一任务没有执行完毕,就无法使其它任务获知与所述某一任务相关的同步变量。
具体的,在步骤S14中,如果所述第二任务的同步变量被所述第一任务更新,使所述第二任务根据所述第二任务的同步变量的内存地址获知所述第二任务的同步变量,并将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行。
例如,在本发明的一个实施例中,第二任务的执行需要同步变量S,在所述第二任务的同步观察区中存储有参数S在内存中的地址addr(S)。S同时又是第一任务的执行结果,如果第一任务尚未执行结束,其执行结果S就是未知的,addr(S)中的S也没有被更新,无法使第二任务获知其同步变量,在这种情况下,第二任务自然无法执行。
而当第一任务执行结束后,就可以更新所述第一任务的内存空间快照和所述第一任务的内存空间快照对应的内存空间。这样,存储在内存地址addr(S)中的参数S即被更新,从而使第二任务通过其同步观察区中存储的addr(S)获知所述第二任务的同步变量S,进而使第二任务得以伴随S的更新而同步执行。
具体的,对于内存空间快照的更新操作具有原子性。也就是说,对内存快照的更新,或者全部都更新,或者全部都不更新。而在更新所述第一任务的内存空间快照对应的内存空间时,又可能遇到两种情况。
其一,如果在更新所述第一任务的内存空间快照对应的内存空间时,所述第一任务的内存空间快照对应的内存空间已经被所述第一任务以外的任务更新,则放弃对所述内存空间快照及其对应的内存空间的更新。其二,如果在更新所述第一任务的内存空间快照对应的内存空间时,所述第一任务的内存空间快照对应的内存空间尚未被所述第一任务以外的任务更新,则更新所述内存空间快照及其对应的内存空间。
上述情况的发生是因为第一任务的内存空间快照对应的内存空间为共享存储空间,该内存空间所存储的内容的更新不仅可以由第一任务进行,也可以由第一任务和第二任务以外的其它任务进行。因此,如果在第一任务执行结束后,需要更新第一任务的内存空间快照及其对应的内存空间,则首先要确定,第一任务的内存空间快照对应的内存空间是否已经被其它任务更新过。具体的确定方法可以有多种,本发明对此不做限定。例如,在本发明的一个实施例中,可以通过确定此时的内存空间的存储状态(如版本号信息)是否与第一任务执行前的内存空间的存储状况(如第一任务的内存空间快照的状况)相同的方法进行确定。
具体的,在本发明的一个实施例中,第一任务的内存空间快照对应的内存空间已经被所述第一任务以外的任务更新,则放弃对所述第一任务的内存空间快照及其对应的内存空间的更新。此时,优选的,可以重新创建第一任务,以使第一任务可以被重新执行,从而实现对第一任务的内存空间快照可能的更新。如果所述第一任务的内存空间快照对应的内存空间尚未被所述第一任务以外的任务更新,则更新所述内存空间快照及其对应的内存空间。
进一步地,在本发明的另一个实施例中,第二任务的同步参数没有被所述第二任务更新,也就是说,本实施例中,第一任务的执行结果并没有对其它任务(本实施例中为第二任务)的执行产生约束,其它任务不需要获知第一任务的执行结果即可执行,则可以在所述更新所述第一任务的内存空间快照和所述第一任务的内存空间快照对应的内存空间后删除所述第一任务的内存空间快照。这样,由于不涉及任务间的同步问题,及时将内存空间快照删除后可以释放更多的内存空间。
需要说明的是,前述实施例中,第一任务执行完毕后会更新所述第一任务的内存空间快照及其对应的内存空间,如果第二任务的同步参数也存储在所述第一任务的内存空间快照所对应的内存空间,则,所述第二任务的同步参数也被更新,所述第二任务即被激活。但本发明不限于此,第一任务的执行结果可能涉及不止一个任务的同步执行。
进一步地,在本发明的另一个实施例中,如果分布式共享存储结构中存在多个需要同步的任务,即存在多个具有同步观察区的任务,则可以为这些任务的调度设置一个观察者队列,将所述第二任务放入所述观察者队列。所述观察者队列为存放具有同步观察区、但不能被立即执行的任务的队列。
此时,所述第一任务的内存空间快照对应的内存空间的更新,能够使所述观察者队列中的第二任务通过同步观察区中同步变量的地址获知其同步变量被更新。于是,所述第二任务即被激活,并从观察者队列移至执行队列,等待被调度执行。所述执行队列为存放即将被执行的任务的队列。
具体的,本实施例中,第一任务执行完毕并更新所述第一任务的内存空间快照及其对应的内存空间后,可以通过检索所述观察队列中的每一个任务的同步观察区的方法,获知所述第二任务的同步参数以及所述观察队列中的其它任务的同步参数是否被所述第一任务更新,并将所述观察者队列中包括所述第二任务在内的、所有同步变量被所述第一任务更新的任务,从所述观察者队列移至所述执行队列。以此保证所有需要与第一任务的执行结果相同步的任务都能通过该方法同步。
举例说明,在本发明的一个实施例中,任务B、任务C和任务D均在观察者队列中,其中,任务B和任务C的执行依赖任务A的执行结果,即任务B和任务C的同步变量包括任务A的执行结果,而任务D的执行不依赖任务A的执行结果。则任务A执行完毕后,将任务A的内存空间快照及其对应的内存空间进行更新,该更新使任务B和任务C获知其同步变量已经被更新,从而使任务B和任务C由观察者队列移至执行队列等待执行。而由于任务D的同步变量没有被更新,任务D仍然保留在观察者队列中。
将所述第二任务放置于观察者队列后,本实施例中,所述将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行,具体可以为:如果所述第二任务的同步变量中还存在至少一个同步变量所对应的内存空间没有被更新,则将所述第二任务重新放入所述观察者队列;如果所述第二任务的同步变量所对应的内存空间均已被更新,则执行所述第二任务。
举例说明,在本发明的一个实施例中,第二任务的执行需要第一任务的执行结果R1以及第三任务的执行结果R3,即第二任务的同步变量包括R1和R3。第二任务被创建后,首先被放入观察者队列。如果第一任务首先执行完毕,更新了其内存空间快照及其对应的内存空间,相应的,R1被更新,则可使第二任务通过其同步观察区中的同步变量的内存地址获知更新后的同步变量R1,第二任务即被激活,并由观察者队列移至执行队列,等待被调度执行。所述第二任务被调度出执行队列后即被执行,此时如果发现第二任务的同步变量中,所述第三任务的执行结果R3并未被更新,则停止执行第二任务,并将第二任务重新放入观察者队列。当第三任务执行完毕,其执行结果R3被更新到第三任务的内存空间快照及其对应的内存空间后,可使第二任务获知其同步变量R3被更新,第二任务将再次被激活并从观察者队列移至执行队列等待执行。此时,由于其同步变量R1和R3都已经更新,当第二任务被调度出执行队列时,所述第二任务即可以被执行。
本发明实施例的方法可以由通用集成电路,如CPU(CentralProcessing Unit,中央处理器)或ASIC(Application Specific IntegratedCircuit,专用集成电路)等执行。
为了使本领域的技术人员更好的理解本发明的技术方案,下面通过具体的实施例对本发明实施例的具体技术方案进行详细描述,可以理解的是,以下的具体实施例仅用于描述本发明,但本发明不限于此。
图2所示为本发明提供的用于分布式共享存储的任务同步方法的一个具体实施例的方法流程图。如图2所示,所述方法具体可包括:
101.创建任务,设置所述任务的运行上下文;
102.确定是否需要创建同步观察区,如果是,则执行步骤103,如果否,则执行步骤104;
具体的,可以确定该任务的执行是否需要与其它任务同步,如果需要,则该任务需要创建同步观察区,以便获知其同步变量是否被更新;如果不需要,则该任务不需要创建同步观察区。
103.创建观察者任务,将该观察者任务放入观察者队列;
其中,所述观察者任务为需要同步变量的同步才能执行的任务。
1031.观察者任务被激活成为普通任务(以下简称任务),将该任务放入执行队列;执行步骤105;
104.将该任务放入执行队列,等待调度;
105.分配任务到计算节点执行;
106.任务执行结束后,确定该任务的内存空间是否已被其它任务更新;如果是,放弃该任务的本次所有操作并重启该任务,执行步骤105;如果否,则执行步骤107;
107.更新该任务的内存空间快照及其对应的内存空间;
108.确定观察者队列中是否存在同步变量被更新的观察者任务;如果是,则执行步骤1031;如果否,则执行步骤109;
109.确定执行队列是否为空;如果是,则执行步骤110,如果否,则跳转至步骤105;
110.显示执行结果;
111.结束。
需要说明的是,本发明实施例提供的用于分布式共享存储的任务同步方法,可以使一个任务通过其同步观察区获知所述任务的同步变量是否已经更新并根据更新后的同步变量执行所述任务,在很好地维护了分布式共享存储系统的内存一致性即程序对内存操作的正确性的同时,大大减少了分布式共享存储的任务同步和内存一致性维护所需要的频繁的消息发送和状态探寻,既简化了编程又有效提高了系统的处理性能。
又例如,本发明实施例提供的用于分布式共享存储的任务同步方法,能有效地处理生产者-消费者问题。简单起见,假设缓冲区满缓冲单元的数目为n(初始为0),生产者生产一个产品对应于n值的加1,消费者消费一个产品对应于n值的减1。使用变量m控制生产者、消费者对n的更新:m为1时,允许消费者访问,生产者等待;m为0时,允许生产者访问,消费者等待。
假定变量m的初始值为0,并且生产者任务和生产者的观察者任务同时创建,其具体的伪代码如表1所示:
表1
具体的,producer_runner为生产者任务,producer_watcher为生产者的观察者任务,consumer_runner为消费者任务,consumer_watcher为消费者的观察者任务。其中,producer_runner和consumer_runner为普通任务;而producer_watcher和consumer_watcher是具有同步观察区的观察者任务,创建后不能被直接放入执行队列中执行而要放入观察者队列中,通过其同步观察区中的同步变量的内存地址获知该同步变量被更新后,才能被激活成普通任务,从观察者队列移至执行队列等待执行,以此方式实现任务同步。采用上述任务同步方法能够保证每个生产者(producer)和消费者(consumer)都能对n进行更新。
本实施例中,如果producer_watcher已经被激活,producer_watcher的激活可能是由producer_runner或者consumer_runner对m和n的更新而触发的。此时,producer_watcher可以根据m的值来判断激活操作来源于producer_runner还是consumer_runner。
具体的,当m为1时,表明producer_runner提交成功,即producer_runner的执行结果已经将该任务的内存空间快照及其对应的内存空间更新,即此时producer_runner的更新已应用于全局内存。
当m为0时,表明consumer_runner提交成功,即consumer_runner的执行结果已经将该任务的内存空间快照及其对应的内存空间更新。而producer_runner或者还没提交执行结果,或者提交执行结果时,发现producer_runner的内存空间快照对应的内存空间已经被consumer_runner更新,从而放弃producer_runner本次所有操作及其对内存空间快照及其对应的内存空间的修改。此时,优选的,producer_watcher会重新创建producer_runner和producer_watcher,以保证producer_runner在提交失败、放弃此任务的全部操作的情况下,也能够再次被调度执行。
本发明实施例的方法可以由通用集成电路,如CPU,或ASIC执行。
相应的,如图3所示,本发明还提供一种用于分布式共享存储的任务同步装置,包括:
创建单元11,用于创建第一任务的内存空间快照和第二任务的同步观察区,所述第二任务的同步观察区包括所述第二任务的同步变量的内存地址,所述同步变量为待同步的任务实现同步所必需的参数;
更新单元12,用于将所述第一任务分配给第一计算节点执行并在所述第一任务执行结束后更新所述第一任务的内存空间快照和所述第一任务的内存空间快照对应的内存空间;
同步单元13,用于当如果所述第二任务的同步变量被所述第一任务更新时,使所述第二任务根据所述第二任务的同步观察区中的同步变量的内存地址获知所述第二任务的同步变量,并将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行。
采用上述技术方案后,本发明实施例提供的用于分布式共享存储的任务同步装置,创建了第一任务的内存空间快照和第二任务的同步观察区,所述第二任务的同步观察区存储有所述第二任务的同步变量的内存地址。一方面,第一任务在计算节点本地执行,任务完成后才更新共享存储空间,另一方面,如果所述第二任务的同步变量被所述第一任务更新,可以使所述第二任务根据所述第二任务的同步变量的内存地址获知所述第二任务的同步变量,并将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行,在很好地维护了分布式共享存储系统的内存一致性即程序对内存操作的正确性的同时,大大减少了分布式共享存储的任务同步和内存一致性维护所需要的频繁的消息发送和状态探寻,既简化了编程又有效提高了系统的处理性能。
具体的,如图4所示,更新单元12可包括:
第一更新子单元121,用于如果当所述第一任务的内存空间快照对应的内存空间已经被所述第一任务以外的任务更新时,则放弃对所述第一任务的内存空间快照及其对应的内存空间的更新;
第二更新子单元122,用于当如果所述第一任务的内存空间快照对应的内存空间尚未被所述第一任务以外的任务更新时,则更新所述第一任务的内存空间快照及其对应的内存空间。
进一步的,如图5所示,在本发明的另一个实施例中,所述装置还包括观察者调度单元14,用于将所述第二任务放入观察者队列,所述观察者队列为存放具有同步观察区、但不能被立即执行的任务的队列。则,同步单元13可包括:
第一同步子单元131,用于当所述第二任务的同步变量被所述第一任务更新时,使所述第二任务根据所述第二任务的同步观察区中的同步变量的内存地址获知所述第二任务的同步变量;
第二同步子单元132,用于在将所述第二任务从所述观察者队列移至执行队列后,将所述第二任务分配给所述第二计算节点,所述执行队列为存放即将被执行的任务的队列。
可选的,第二同步子单元132,可具体用于在将观察者队列中包括所述第二任务在内的、所有同步变量被所述第一任务更新的任务,从所述观察者队列移至所述执行队列后,将所述第二任务分配给所述第二计算节点。
具体的,第二同步子单元132,可具体用于在将所述第二任务从所述观察者队列移至执行队列后,如果所述第二任务的同步变量中还存在至少一个同步变量所对应的内存空间没有被更新,则将所述第二任务重新放入所述观察者队列;在将所述第二任务从所述观察者队列移至执行队列后,如果所述第二任务的同步变量所对应的内存空间均已被更新,则执行所述第二任务。
本发明实施例的方法可以由通用集成电路,如CPU,或ASIC等执行。
相应的,本发明还提供一种分布式共享存储系统,包括第一计算节点、第二计算节点以及前述实施例中提供的任一项用于分布式共享存储的任务同步装置。所述用于分布式共享存储的任务同步装置位于所述第一计算节点内,或者位于所述第二计算节点内,或者分别与所述第一计算节点和所述第二计算节点相连,用于将所述第一计算节点与所述第二计算节点中的需要同步的任务进行同步。由于所述分布式共享存储系统中包括有前述实施例中的用于分布式共享存储的任务同步装置,因此也能实现该装置能够实现的有益技术效果,前文已经进行了详细的说明,此处不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分流程可以通过计算机程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种用于分布式共享存储的任务同步方法,其特征在于,包括:
创建第一任务的内存空间快照和第二任务的同步观察区,所述第二任务的同步观察区包括所述第二任务的同步变量的内存地址,所述同步变量为待同步的任务实现同步所必需的参数;
将所述第一任务分配给第一计算节点执行;
在所述第一任务执行结束后,更新所述第一任务的内存空间快照和所述第一任务的内存空间快照对应的内存空间;
如果所述第二任务的同步变量被所述第一任务更新,使所述第二任务根据所述第二任务的同步观察区中的同步变量的内存地址获知所述第二任务的同步变量,并将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行。
2.根据权利要求1所述的方法,其特征在于,所述更新所述第一任务的内存空间快照和所述第一任务的内存空间快照对应的内存空间包括:
如果所述第一任务的内存空间快照对应的内存空间已经被所述第一任务以外的任务更新,则放弃对所述第一任务的内存空间快照及其对应的内存空间的更新;
如果所述第一任务的内存空间快照对应的内存空间尚未被所述第一任务以外的任务更新,则更新所述第一任务的内存空间快照及其对应的内存空间。
3.根据权利要求1所述的方法,其特征在于,
在所述创建所述第一任务的内存空间快照和所述第二任务的同步观察区后,所述方法还包括:
将所述第二任务放入观察者队列,所述观察者队列为存放具有同步观察区、但不能被立即执行的任务的队列。
4.根据权利要求3所述的方法,其特征在于,所述将所述第二任务分配给第二计算节点包括:
将所述第二任务从所述观察者队列移至执行队列后,将所述第二任务分配给所述第二计算节点,所述执行队列为存放即将被执行的任务的队列。
5.根据权利要求4所述的方法,其特征在于,所述将所述第二任务从所述观察者队列移至执行队列包括:
将所述观察者队列中包括所述第二任务在内的所有同步变量被所述第一任务更新的任务,从所述观察者队列移至所述执行队列。
6.根据权利要求4所述的方法,其特征在于,所述将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行包括:
如果所述第二任务的同步变量中还存在至少一个同步变量所对应的内存空间没有被更新,则将所述第二任务重新放入所述观察者队列;
如果所述第二任务的同步变量所对应的内存空间均已被更新,则执行所述第二任务。
7.根据权利要求1所述的方法,其特征在于,所述第二任务的同步观察区位于所述第二任务的运行上下文中。
8.一种用于分布式共享存储的任务同步装置,其特征在于,包括:
创建单元,用于创建第一任务的内存空间快照和第二任务的同步观察区,所述第二任务的同步观察区包括所述第二任务的同步变量的内存地址,所述同步变量为待同步的任务实现同步所必需的参数;
更新单元,用于将所述第一任务分配给第一计算节点执行,在所述第一任务执行结束后更新所述第一任务的内存空间快照和所述第一任务的内存空间快照对应的内存空间;
同步单元,用于当所述第二任务的同步变量被所述第一任务更新时,使所述第二任务根据所述第二任务的同步观察区中的同步变量的内存地址获知所述第二任务的同步变量,并将所述第二任务分配给第二计算节点,以使所述第二任务随所述第二任务的同步变量的更新而同步执行。
9.根据权利要求8所述的装置,其特征在于,所述更新单元包括:
第一更新子单元,用于当所述第一任务的内存空间快照对应的内存空间已经被所述第一任务以外的任务更新时,放弃对所述第一任务的内存空间快照及其对应的内存空间的更新;
第二更新子单元,用于当所述第一任务的内存空间快照对应的内存空间尚未被所述第一任务以外的任务更新时,更新所述第一任务的内存空间快照及其对应的内存空间。
10.根据权利要求8所述的装置,其特征在于,还包括:
观察者调度单元,用于将所述第二任务放入观察者队列,所述观察者队列为存放具有同步观察区、但不能被立即执行的任务的队列。
11.根据权利要求10所述的装置,其特征在于,所述同步单元包括:
第一同步子单元,用于当所述第二任务的同步变量被所述第一任务更新时,使所述第二任务根据所述第二任务的同步观察区中的同步变量的内存地址获知所述第二任务的同步变量;
第二同步子单元,用于在将所述第二任务从所述观察者队列移至执行队列后,将所述第二任务分配给所述第二计算节点,所述执行队列为存放即将被执行的任务的队列。
12.根据权利要求11所述的装置,其特征在于,所述第二同步子单元具体用于:
在将所述观察者队列中包括所述第二任务在内的所有同步变量被所述第一任务更新的任务,从所述观察者队列移至所述执行队列后,将所述第二任务分配给所述第二计算节点。
13.根据权利要求11所述的装置,其特征在于,所述第二同步子单元具体用于:
在将所述第二任务从所述观察者队列移至执行队列后,如果所述第二任务的同步变量中还存在至少一个同步变量所对应的内存空间没有被更新,则将所述第二任务重新放入所述观察者队列;
在将所述第二任务从所述观察者队列移至执行队列后,如果所述第二任务的同步变量所对应的内存空间均已被更新,则执行所述第二任务。
14.一种分布式共享存储系统,其特征在于,包括第一计算节点、第二计算节点以及权利要求8-13中任一项所述的用于分布式共享存储的任务同步装置;所述用于分布式共享存储的任务同步装置位于所述第一计算节点内,或者位于所述第二计算节点内,或者分别与所述第一计算节点和所述第二计算节点相连,用于将所述第一计算节点与所述第二计算节点中的需要同步的任务进行同步。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210047777.4A CN102629221B (zh) | 2012-02-28 | 2012-02-28 | 用于分布式共享存储的任务同步方法、装置及系统 |
PCT/CN2012/075851 WO2013127132A1 (zh) | 2012-02-28 | 2012-05-22 | 用于分布式共享存储的任务同步方法、装置及系统 |
US14/471,198 US9201691B2 (en) | 2012-02-28 | 2014-08-28 | Method, apparatus and system for coordinating execution of tasks in a computing system having a distributed shared memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210047777.4A CN102629221B (zh) | 2012-02-28 | 2012-02-28 | 用于分布式共享存储的任务同步方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102629221A true CN102629221A (zh) | 2012-08-08 |
CN102629221B CN102629221B (zh) | 2014-11-19 |
Family
ID=46587481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210047777.4A Active CN102629221B (zh) | 2012-02-28 | 2012-02-28 | 用于分布式共享存储的任务同步方法、装置及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9201691B2 (zh) |
CN (1) | CN102629221B (zh) |
WO (1) | WO2013127132A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049334A (zh) * | 2012-12-14 | 2013-04-17 | 华为技术有限公司 | 一种任务处理的方法和虚拟机 |
CN103631648B (zh) * | 2012-08-20 | 2017-02-22 | 华为技术有限公司 | 一种任务处理方法及系统 |
CN106855821A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 一种分布式事务处理方法及装置 |
WO2017201984A1 (zh) * | 2016-05-24 | 2017-11-30 | 华为技术有限公司 | 一种数据处理的方法、相关设备及存储系统 |
CN108108232A (zh) * | 2013-06-25 | 2018-06-01 | 奥普塔姆软件股份有限公司 | 具有快照隔离的基于约束的一致性 |
CN108647154A (zh) * | 2018-05-14 | 2018-10-12 | 国网山东省电力公司阳谷县供电公司 | 一种在集中器中进行参数修改的方法 |
CN109032818A (zh) * | 2018-07-27 | 2018-12-18 | 北京计算机技术及应用研究所 | 一种同构系统核间同步与通信的方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11240305B2 (en) | 2016-07-28 | 2022-02-01 | At&T Intellectual Property I, L.P. | Task allocation among devices in a distributed data storage system |
CN110347427A (zh) * | 2019-07-08 | 2019-10-18 | 北京明略软件系统有限公司 | 网页代码的优化方法及装置 |
US11550642B1 (en) * | 2021-08-18 | 2023-01-10 | Micron Technology, Inc. | Mechanism to trigger early termination of cooperating processes |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1268688A (zh) * | 1999-03-25 | 2000-10-04 | 国际商业机器公司 | 异步更新共享资源的接口系统和方法 |
CN1804836A (zh) * | 2005-01-14 | 2006-07-19 | 微软公司 | 用于同步对共享对象的多个用户修订的方法和系统 |
CN101631328A (zh) * | 2009-08-14 | 2010-01-20 | 北京星网锐捷网络技术有限公司 | 一种对共享资源互斥访问的同步方法、装置和网络设备 |
CN102346740A (zh) * | 2010-08-02 | 2012-02-08 | 联想(北京)有限公司 | 一种文件同步方法、电子设备和同步系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5771383A (en) * | 1994-12-27 | 1998-06-23 | International Business Machines Corp. | Shared memory support method and apparatus for a microkernel data processing system |
US5940869A (en) * | 1995-06-07 | 1999-08-17 | International Business Machines Corporation | System and method for providing shared memory using shared virtual segment identification in a computer system |
US7058948B2 (en) * | 2001-08-10 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Synchronization objects for multi-computer systems |
US7823161B2 (en) * | 2004-01-29 | 2010-10-26 | Klingman Edwin E | Intelligent memory device with variable size task architecture |
CN100450105C (zh) * | 2005-09-13 | 2009-01-07 | 中兴通讯股份有限公司 | 一种基于java消息服务的同步消息接口实现方法 |
CN101079869B (zh) | 2006-05-26 | 2011-04-20 | 腾讯科技(深圳)有限公司 | 一种基于分布式的数据同步方法及系统 |
CN101207515B (zh) | 2007-12-12 | 2011-11-30 | 中兴通讯股份有限公司 | 一种多机共享内存的处理方法、实现方法和同步方法 |
CN101291342A (zh) | 2008-06-18 | 2008-10-22 | 中兴通讯股份有限公司 | 一种分布式体系中的数据同步方法及系统 |
CN102137125A (zh) * | 2010-01-26 | 2011-07-27 | 复旦大学 | 在分布式网络系统中处理跨任务数据的方法 |
CN102081551A (zh) * | 2011-01-28 | 2011-06-01 | 中国人民解放军国防科学技术大学 | 一种感知微体系结构信息的操作系统线程调度方法 |
-
2012
- 2012-02-28 CN CN201210047777.4A patent/CN102629221B/zh active Active
- 2012-05-22 WO PCT/CN2012/075851 patent/WO2013127132A1/zh active Application Filing
-
2014
- 2014-08-28 US US14/471,198 patent/US9201691B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1268688A (zh) * | 1999-03-25 | 2000-10-04 | 国际商业机器公司 | 异步更新共享资源的接口系统和方法 |
CN1804836A (zh) * | 2005-01-14 | 2006-07-19 | 微软公司 | 用于同步对共享对象的多个用户修订的方法和系统 |
CN101631328A (zh) * | 2009-08-14 | 2010-01-20 | 北京星网锐捷网络技术有限公司 | 一种对共享资源互斥访问的同步方法、装置和网络设备 |
CN102346740A (zh) * | 2010-08-02 | 2012-02-08 | 联想(北京)有限公司 | 一种文件同步方法、电子设备和同步系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631648B (zh) * | 2012-08-20 | 2017-02-22 | 华为技术有限公司 | 一种任务处理方法及系统 |
CN103049334A (zh) * | 2012-12-14 | 2013-04-17 | 华为技术有限公司 | 一种任务处理的方法和虚拟机 |
WO2014090008A1 (zh) * | 2012-12-14 | 2014-06-19 | 华为技术有限公司 | 一种任务处理的方法和虚拟机 |
CN103049334B (zh) * | 2012-12-14 | 2015-09-30 | 华为技术有限公司 | 一种任务处理的方法和虚拟机 |
US9996401B2 (en) | 2012-12-14 | 2018-06-12 | Huawei Technologies Co., Ltd. | Task processing method and virtual machine |
CN108108232A (zh) * | 2013-06-25 | 2018-06-01 | 奥普塔姆软件股份有限公司 | 具有快照隔离的基于约束的一致性 |
CN108108232B (zh) * | 2013-06-25 | 2021-10-22 | 奥普塔姆软件股份有限公司 | 用于确保与数据模型有关的并发事务的一致性的系统和方法 |
CN106855821A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 一种分布式事务处理方法及装置 |
WO2017201984A1 (zh) * | 2016-05-24 | 2017-11-30 | 华为技术有限公司 | 一种数据处理的方法、相关设备及存储系统 |
US10552089B2 (en) | 2016-05-24 | 2020-02-04 | Huawei Technologies Co., Ltd. | Data processing for managing local and distributed storage systems by scheduling information corresponding to data write requests |
CN108647154A (zh) * | 2018-05-14 | 2018-10-12 | 国网山东省电力公司阳谷县供电公司 | 一种在集中器中进行参数修改的方法 |
CN109032818A (zh) * | 2018-07-27 | 2018-12-18 | 北京计算机技术及应用研究所 | 一种同构系统核间同步与通信的方法 |
Also Published As
Publication number | Publication date |
---|---|
US9201691B2 (en) | 2015-12-01 |
CN102629221B (zh) | 2014-11-19 |
US20140373026A1 (en) | 2014-12-18 |
WO2013127132A1 (zh) | 2013-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102629221B (zh) | 用于分布式共享存储的任务同步方法、装置及系统 | |
CN103049334B (zh) | 一种任务处理的方法和虚拟机 | |
CN100392598C (zh) | 操作系统 | |
CN104636181B (zh) | 用于迁移虚拟机的方法和系统 | |
Maas et al. | Taurus: A holistic language runtime system for coordinating distributed managed-language applications | |
US8607004B2 (en) | Distributed symmetric multiprocessing computing architecture | |
CN101847148B (zh) | 实现应用高可用性的方法和装置 | |
CN101341473B (zh) | 具有共享存储体的多处理器电路 | |
US9794340B2 (en) | Mechanism and method for accessing data in a shared memory | |
CN100533393C (zh) | 用于在多处理器环境中管理对共享资源的存取的方法 | |
US20140019988A1 (en) | Support of non-trivial scheduling policies along with topological properties | |
CN101681294A (zh) | 存储器事务分组 | |
JPH06266683A (ja) | 並列処理装置 | |
CN102033755A (zh) | 用于运行虚拟机镜像的方法和系统 | |
CN101013415A (zh) | 用于多处理器阵列的线程感知分布式软件系统 | |
CN106445656B (zh) | 一种实现线程本地存储的方法及装置 | |
CN107003949A (zh) | 用于多核系统的内存同步的系统和方法 | |
US20160350340A1 (en) | Method of operation for a hierarchical file block variant tracker apparatus | |
CN104679662A (zh) | 用于管理共享存储器的方法和系统 | |
Sojoodi et al. | Ignite-GPU: a GPU-enabled in-memory computing architecture on clusters | |
US20040181647A1 (en) | Partitioning of node into more than one partition | |
Bonetta et al. | An architectural style for liquid web services | |
Shrivastava et al. | Supporting transaction predictability in replicated DRTDBS | |
EP3467671B1 (en) | Cache memory structure and method | |
Cowan et al. | Gc3: An optimizing compiler for gpu collective communication |
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 |