CN109002350B - 一种集群系统中的进程通信方法及装置 - Google Patents

一种集群系统中的进程通信方法及装置 Download PDF

Info

Publication number
CN109002350B
CN109002350B CN201810499441.9A CN201810499441A CN109002350B CN 109002350 B CN109002350 B CN 109002350B CN 201810499441 A CN201810499441 A CN 201810499441A CN 109002350 B CN109002350 B CN 109002350B
Authority
CN
China
Prior art keywords
communication
starting
cluster system
message
processes
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
CN201810499441.9A
Other languages
English (en)
Other versions
CN109002350A (zh
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.)
China National Petroleum Corp
BGP Inc
Original Assignee
China National Petroleum Corp
BGP Inc
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 China National Petroleum Corp, BGP Inc filed Critical China National Petroleum Corp
Priority to CN201810499441.9A priority Critical patent/CN109002350B/zh
Publication of CN109002350A publication Critical patent/CN109002350A/zh
Application granted granted Critical
Publication of CN109002350B publication Critical patent/CN109002350B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供了一种集群系统中的进程通信方法及装置,该方法包括:确定进程编号间的启动关系;所述启动关系包括细胞分裂式的启动关系;根据所述进程编号间的启动关系,以细胞分裂方式启动进程;且在进程启动期间,使每个进程将其地址信息发送给0号进程;进行进程间通信;且在进程间进行第一次通信时,使通信双方向0号进程查询对方的地址信息。本申请实施可提高集群系统的并行处理效率,具有高性能高扩展性易于使用的优点,可以满足计算密集和数据密集的勘探地球物理领域海量数据并行计算框架开发的需要,并显著提升大规模并行与分布式地震应用程序的开发效率和质量。

Description

一种集群系统中的进程通信方法及装置
技术领域
本申请涉及计算机通信技术领域,尤其是涉及一种集群系统中的进程通信方法及装置。
背景技术
近年来,随着地震采集技术的发展,地震资料的数据量不断增大,同时一些超大计算量的先进算法逐步进入生产实用,海量地震资料的并行计算进一步加强了对超大规模并行计算系统的需求。由于与之匹配的并行实现技术框架缺乏,集群系统的超大并行规模和多态复杂的体系结构,给传统高性能计算应用带来巨大的挑战。当前面向集群计算系统的并行实现大都基于两级并行模型,即MPI(MessagePassing Interface,消息传递接口)并行+线程并行两级方式。据目前可查文献,应用领域的计算机系统的主要并行应用的MPI级并行规模都在百千量级,很难支撑更大规模和更复杂的并行计算应用。
目前,并行编程框架是并行程序实现的基础平台,其表达能力和性能将对并行算法设计和应用程序实现产生根本性的影响。因此,如何实现支持单作业千节点以上并行规模,表达复杂运行模式的高性能高可扩展性的并行编程框架,已成为本领域技术人员亟待解决的技术难题。
发明内容
本申请实施例的目的在于提供一种集群系统中的进程通信方法及装置,以提高集群系统的并行处理效率。
为达到上述目的,一方面,本申请实施例提供了一种集群系统中的进程通信方法,包括:
确定进程编号间的启动关系;所述启动关系包括细胞分裂式的启动关系;
根据所述进程编号间的启动关系,以细胞分裂方式启动进程;且在进程启动期间,使每个进程将其地址信息发送给0号进程;
进行进程间通信;且在进程间进行第一次通信时,使通信双方向0号进程查询对方的地址信息。
本申请实施例的集群系统中的进程通信方法,还包括:
使每个子进程在成功启动后向0号进程发送成功启动信息;
对应的,使父进程在启动其子进程后向0号进程询问该子进程是否已成功启动;
如果未成功启动,则确认该子进程出现故障,并使所述父进程接管该子进程启动下一级进程的任务。
本申请实施例的集群系统中的进程通信方法,所述进行进程间通信,包括:
使源进程向目标进程发送消息;所述消息为序列化对象;
使所述目标进程基于预设的PutHandler方法反序列化所述消息并处理。
本申请实施例的集群系统中的进程通信方法,所述进行进程间通信,包括:
使源进程从目标进程获取消息;
使所述目标进程基于预设的GetHandler方法组装消息,并将组装后的消息发送给所述源进程。
本申请实施例的集群系统中的进程通信方法,所述进行进程间通信,包括:
使源进程向目标进程发送第一消息;
使所述目标进程基于预设的GetHandler方法或CallHandler方法接收并处理所述第一消息,然后根据所述第一消息的处理结果生成第二消息并返给所述源进程。
本申请实施例的集群系统中的进程通信方法,所述进行进程间通信,还包括:
在作业任务完成初始化阶段之后,定时ping每个作业进程,以进行进程故障检测;
当通过ping确认存在故障进程时,使集群系统中的主节点将进程故障事件通知所有的正常作业进程。
本申请实施例的集群系统中的进程通信方法,在使集群系统中的主节点将进程故障事件通知所有的正常作业进程之后,还包括:
当有进程请求失败的任务时,使该进程截获所述故障事件通知并交由故障处理类进行处理。
本申请实施例的集群系统中的进程通信方法,所述使集群系统中的主节点将进程故障事件通知所有的正常作业进程,包括:
当通过ping确认存在故障进程时,基于预设的进程组管理策略从进程组中剔除所有故障进程,并使集群系统中的主节点将进程故障事件通知已剔除所有故障进程后的进程组中的每个进程。
另一方面,本申请实施例还提供了一种集群系统中的进程通信装置,包括:
启动关系确定模块,用于确定进程编号间的启动关系;所述启动关系包括细胞分裂式的启动关系;
进程启动执行模块,用于根据所述进程编号间的启动关系,以细胞分裂方式启动进程;且在进程启动期间,使每个进程将其地址信息发送给0号进程;
进程通信执行模块,用于进行进程间通信;且在进程间进行第一次通信时,使通信双方向0号进程查询对方的地址信息。
另一方面,本申请实施例还提供了另一种集群系统中的进程通信装置,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时执行如下步骤:
确定进程编号间的启动关系;所述启动关系包括细胞分裂式的启动关系;
根据所述进程编号间的启动关系,以细胞分裂方式启动进程;且在进程启动期间,使每个进程将其地址信息发送给0号进程;
进行进程间通信;且在进程间进行第一次通信时,使通信双方向0号进程查询对方的地址信息。
由以上本申请实施例提供的技术方案可见,本申请实施例以细胞分裂方式启动进程;且在进程启动期间,使每个进程将其地址信息发送给0号进程;当进程间进行第一次通信时,可使通信双方向0号进程查询对方的地址信息,因此,本申请实施例可降低进程启动过程的时间复杂度得以大大降低,从而提高了集群系统的并行处理效率。此外,本申请实施例的进程间的活动消息通信方式可以表达更加复杂的并行模式和非规则计算,从而提高集群系统的适应性及高扩展性;本申请实施例的容错机制使得节点故障时可以自动迁移任务,从而提高系统的适应性和健壮性;本申请实施例的进程组管理策略有利于容错广播的实现。因此,本申请实施可以满足计算密集和数据密集的勘探地球物理领域海量数据并行计算框架开发的需要,并显著提升大规模并行与分布式地震应用程序的开发效率和质量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请一实施例的集群系统中的进程通信方法的流程图;
图2为本申请一实施例中进程编号的启动关系示意图;
图3为本申请一实施例中Put通信接口的描述图;
图4为本申请一实施例中Put通信接口的通信模型;
图5为本申请一实施例中Get通信接口的描述图;
图6为本申请一实施例中Get通信接口的通信模型;
图7为本申请一实施例中Call通信接口的描述图;
图8为本申请一实施例中进程管理组类的描述图;
图9为本申请一实施例中故障处理示例的描述图;
图10为本申请一实施例中进程启动性能测试示意图;
图11为本申请一实施例中GPP的系统架构图;
图12为本申请一实施例中GeoPSTM的测试数据的数据表;
图13为本申请一实施例中GeoPSTM的示意图;
图14为本申请一实施例的集群系统中的进程通信装置的结构框图;
图15为本申请另一实施例的集群系统中的进程通信装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
参考图1所示,本申请实施例的集群系统中的进程通信方法可以包括以下步骤:
S101、确定进程编号间的启动关系;所述启动关系包括细胞分裂式的启动关系。
在本申请一些实施例中,进程编号间的启动关系可以采用胞分裂式的启动关系,基于这种关系,进程启动过程类似细胞分裂过程,如此可以使进程启动过程的时间复杂度得以大大降低,从而提高了集群系统的并行处理效率。
在一示例性实施例中,进程编号的启动关系可如图2所示,包括三次细胞分裂:
第一次细胞分裂:0号进程启动1号进程;
第二次细胞分裂:0号进程启动2号进程,1号进程启动3号进程;
第三次细胞分裂:0号进程启动4号进程,1号进程启动5号进程,2号进程启动6号进程,3号进程启动7号进程。
从图2可以看出,最终所有进程组成的一棵“二项树”结构,树上的父进程可利用SSH(Secure Shell,安全外壳)或者RSH(Remote Shell,远程外壳)启动其所有的子进程。
通过研究发现:目前现有的进程启动算法一般采用二叉树或者4叉树算法,其对应的时间复杂度为O(2logN)或者O(4logN),而通过采用本申请实施例的细胞分裂进程启动方法,可使进程启动过程的时间复杂度降低至O(logN)。
S102、根据所述进程编号间的启动关系,以细胞分裂方式启动进程;且在进程启动期间,使每个进程将其地址信息发送给0号进程。
在本申请一些实施例中,在进程编号间的启动关系后,可据此以细胞分裂方式启动进程,以使进程启动过程的时间复杂度降低。
当前的MPICH和OpenMPI等MPI实现都是在启动期间进行所有进程两两间交换地址信息(主机名、端口号等)。然而,在实现本申请的过程中本申请的发明人研究发现:多数情况下,在作业运行期间,多数进程间并不会进行通信,因而进行全互换是没必要的。有鉴于此,本申请实施例中采用的策略是:在进程启动期间,使每个进程将其地址信息发送给0号进程,而当两个进程间进行第一次通信时,才向0号进程查询对方的地址信息。如此,实现了可将地址互换分散到作业执行期间,从而消除不必要的信息交换和网络连接,进而可以提升进程启动速度。
此外,实际应用中,集群系统的计算节点列表中存在现故障节点的情形比较常见,当前的MPI实现遇到此类情形时,一般是作业报错退出,然后需要用户剔除故障节点。而在本申请一些实施例中,由于还增加了进程启动容错选项,用户可在发作业任务时可利用命令行选项指定是作业报错退出,还是启动容错选项。相比现有技术,用户可有了更多的选择性。如果用户指定是启动容错选项,其实现策略是:每个子进程在成功启动后,会向0号进程发送成功启动信息。这样0号进程就知道各子进程的状态。对应的,父进程在启动其子进程后可向0号进程询问该子进程是否已成功启动;如果未成功启动(例如在指定的S秒内未成功启动),则确认该子进程出现故障(即确认执行该子进程的子节点出现了故障),于是可由所述父进程接管该子进程启动下一级进程的任务,从而实现了进程启动容错。其中,本申请实施例中的节点可以是集群系统中执行程序的计算机。
S103、进行进程间通信;且在进程间进行第一次通信时,使通信双方向0号进程查询对方的地址信息。
目前作为单向通信机制的活动消息,广泛应用于超级计算机底层通信系统,但活动消息接口过于底层,很难直接用于编写高性能应用程序。而本申请一些实施例中,创新性地利用面向对象和序列化技术提升了已有活动消息通信模型的抽象层次,以降低进程间调用难度。在本申请一示例性实施例中提供三个单向通信接口:Put(如图3所示)、Get(如图5所示)和Call(或PutGet)(如图7)。这三个接口都可非阻塞调用,线程安全,而且可以传递复杂数据结构。此外,源进程可通过Future获取异步通信的返回值。进程间的通信可根据需要从这三个单向通信接口中选择相应的接口。
下面结合附图介绍上述各个单向通信接口:
Put接口:可向目标进程(例如进程号为rank的远程的进程)发送一个消息,消息可以是一个可序列化和反序列化的对象,消息达到目标进程后可由预设的PutHandler方法反序列化并处理。因此,PutHandler可以看作是在目标进程内的一个服务。其中,Put接口的更多细节可参见图5所示,Put的通信模型可如图4所示。
Get接口:可从目标进程(例如进程号为rank的远程的进程)获取一个消息,目标进程内预设的GetHandler方法可负责组装消息,并将组装后的消息发送给接收端(即源进程)。其中,Get接口的更多细节可参见图3所示,Gut的通信模型可如图6所示。
Call接口:也可以称为PutGet接口,是Put接口与Get接口的组合。源进程向目标进程(例如进程号为rank的远程进程)发送一个消息putMessage,目标进程内预设的CallHandler(或者PutGetHandler)可接收并处理该消息,然后生成一个新的消息getMessage,返回给源进程。Call接口的更多细节可参见图7所示。
由此可见,上述3个基本的单向通信接口的消息传递过程都是异步的,双方进程并没有一个匹配和互相等待的过程,这点与目前的MPI的消息通信有显著的不同。由于不需要互相等待匹配,本申请一些实施例就消除了MPI消息传递的死锁问题,从而更有利于在一个进程内启用多个线程进行通信。而且在本申请一些实施例中,一个服务和源进程之间可以是一个1对多的形式,这样在一些复杂的通信模式下,可以简化处理逻辑,提升易用性。
在本申请另一些实施例中,还可以为上述进行进程间通信提供基于故障事件的容错机制,使得节点故障时可以自动迁移任务,以提高集群系统的健壮性。在本申请一示例性实施例中,容错机制例如可以是在作业经过初始化阶段之后,可定时ping每个作业进程,以进行进程故障检测;当通过ping确认存在故障进程时,可使集群系统中的主节点将进程故障事件通知所有的正常作业进程。
在本申请另一示例性实施例中,在使集群系统中的主节点将进程故障事件通知所有的正常作业进程之后,如果有进程请求失败的任务,则可使该进程截获所述故障事件通知并交由故障处理类进行处理。其中,所述故障处理类可由用户自定义,例如可以是进行任务转移或者其他活动。在本申请一示例性实施例中,所述故障处理类可以是如图9所示。
在本申请另一些实施例中还提供了新的进程组管理策略。具体的,上述集群系统中的进程通信方法还可以抛弃MPI中通信域的概念,而只有进程组,因为实践表明通信域在实际项目中可能并没有太大的意义。例如在本申请一示例性实施例中,进程组的操作封装在如图8所示的Group类中。其中,Group World代表包括所有进程的组,其是集合通信接口内组参数的默认值。本申请实施例的进程组的概念来源于MPI,但是对MPI的进行简化,Group类中的方法多数是顾名思义。最大的区别是容错,因为MPI是不容错的,因此MPI进程组内的进程始终都是健康进程(即正常进程)。而本申请实施例的进程组提供了一种伴生组healthyTwinGroup(),这个healthyTwinGroup()方法可返回剔除故障节点之后的进程组,由运行时系统自动删除故障节点,并维护一个健康的进程组。
在本申请一示例性实施例中,以上述集群系统中的主节点将进程故障事件通知所有的正常作业进程为例,当通过ping确认存在故障进程时,基于预设的进程组管理策略可从进程组中剔除所有故障进程,并使集群系统中的主节点将进程故障事件通知已剔除所有故障进程后的进程组中的每个进程。
在本申请另一示例性实施例中,由于进程组可自动维护健康进程组,这就为实现容错广播提供了便利,因而本申请实施例的进程通信方法还可以包括容错广播。其中,所述容错广播例如可以是基于活动消息通信模型和进程组的一个通信模式。
下面介绍本申请一实施例的应场景。
基于本申请实施例支撑的地球物理并行编程框架系统(简称GPP)可支持超大规模(1000节点以上)的地球物理并行应用开发。GPP的主要模块及其关系可如图11所示。其中,运行时系统是GPP的根基,负责作业进程的快速启动与管理、屏蔽网络设备的差异、计算资源监控、节点故障检测等。基于本申请实施例,GPP的进程启动过程类似细胞分裂过程,其启动效率可如图10所示。其中:
面向对象活动消息通信模型最初是作为高性能计算环境的底层通信机制,本申请实施例中将其抽象为更加高层的接口,其可以包括单向通信接口与集合通信接口(例如广播、规约等),这些接口分别有非阻塞与阻塞版本,由于运行时系统屏蔽了底层网络设备的差异,因此这些接口的实现独立于具体的网络设备通信接口。
并行模式库里可封装常用的并行模式,将重用率非常高的并行模式可以包装成可重用的组件,封装线程间的同步、进程间通信等并行细节,例如MapReduce、线程池等,简化并行编程难度,在一定程度上实现自动化并行。
容错编程接口与运行时系统关系最为密切,运行时系统检测到故障节点之后,可执行应用层的故障处理机制。
分布式检查点编程系统可用于简化检查点的优化存储、一致性检测、检查点数据的迁移与备份、检查点的原子写、垃圾回收等,是一个应用层的检查点机制,简化用户编写检查点的难度,同时不失灵活性。
为了验证效果,本申请的发明人曾对以GPP作为架构开发的Kirchhoff积分法叠前时间偏移模块(GeoPSTM)进行了测试,其测试数据和环境如图12示,测试过程中分别调度了128、256、512、768和1024个节点,执行时间和加速比如图13所示,从图13中可以看出,GeoPSTM接近线性的加速比,具备良好的可扩展性。
针对于集群计算环境,不同应用软件的启动和结束过程中要完成的事情是相同的。这些事情包括在每个计算结点上启动作业进程,每个进程获得参与协同计算的所有进程的信息等。通过使用GPP框架实现了时间复杂度为O(logN)的启动应用程序的高性能。
在集群计算环境中,运行应用软件的各个计算结点间的通信是不可避免的。通信的数据通常有需要加工的数据、加工的中间结果、最终的处理结果等。一般来说,根据参与通信的结点数量可以将通信类型分为点对点通信和集合通信。根据通信数据的传输方向又可以将通信分为单向通信和双向通信。根据通信发起结点是否需要等待通信操作完成才能进行下一步操作,将通信分为同步通信和异步通信。而在实际并行应用软件的设计过程中,通信和计算重叠是一个重要的考虑因素。而基于本申请实施例支撑的GPP框架所提供的异步通信机制,使得实现通信和计算重叠变得更加容易。
在活动消息编程模型中,应用程序是由相互之间发送消息而驱动的。消息中通常包含着要处理的数据,传输到远程节点后,由远程节点的消息处理例程来处理这些数据。为了确定由哪个消息处理例程来调用,消息中除了包含数据以外还包含着消息处理例程的标识。这样当消息传输到远程节点后,远程节点根据消息中的消息处理例程标识调用对应的消息处理例程来处理此消息,这样就完成了对消息的处理。
由于GPP是基于本申请实施例中利用面向对象和序列化技术的活动消息通信模型的,它提供了点对点消息传输接口和集合通信接口。为了实现消息处理例程,GPP提供了消息处理例程的基类,用户可以根据这些基类来实现自己的处理例程。这些基类包括用于消息发送的SendHandler、用于消息接收的RecvHandler、用于消息发送接收的SendRecvHandler、用户远程过程调用的CallHandler、消息广播的BcastHandler等。
消息例程和消息一一对应,这个对应关系是靠消息标识来实现的。也就是消息例程和消息标识一一对应,而消息和消息标识也一一对应,这样就保证了消息和消息例程的一一对应关系。消息例程应该在消息接收前就已经注册给运行时系统。这样,当进程接收到消息后才能根据消息中附加的消息标识来查找注册的消息例程。
利用本申请实施例中的基于故障事件的容错机制,GPP框架会周期性的检查所有节点的心跳信号,当某个进程故障时,其心跳信号将不能再被检测到。通过这种机制GPP框架将发现故障节点,然后GPP框架会回调用户自动的容错处理例程,完成对故障节点的容错。
由此可见,本申请实施具有高性能高扩展性易于使用的优点,其可以满足计算密集和数据密集的勘探地球物理领域海量数据并行计算框架开发的需要,并显著提升大规模并行与分布式地震应用程序的开发效率和质量。以GPP为例,其主要优势体现在:①基于活动消息通信模型,可以表达更加复杂的并行模式和非规则计算;②容错支持,机器故障时可以自动迁移任务;③丰富易用的多线程库,融合活动消息通信模型,能够同时支持共享内存和分布式内存两级并行结构开发;④利用并行模式库,简化并行程序开发难度,提升开发效率。
参考图14所示,本申请一实施例的集群系统中的进程通信装置可以包括:
启动关系确定模块141,可以用于确定进程编号间的启动关系;所述启动关系包括细胞分裂式的启动关系;
进程启动执行模块142,可以用于根据所述进程编号间的启动关系,以细胞分裂方式启动进程;且在进程启动期间,使每个进程将其地址信息发送给0号进程;
进程通信执行模块143,可以用于进行进程间通信;且在进程间进行第一次通信时,使通信双方向0号进程查询对方的地址信息。
参考图15所示,本申请另一实施例的集群系统中的进程通信装置可以包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时执行如下步骤:
确定进程编号间的启动关系;所述启动关系包括细胞分裂式的启动关系;
根据所述进程编号间的启动关系,以细胞分裂方式启动进程;且在进程启动期间,使每个进程将其地址信息发送给0号进程;
进行进程间通信;且在进程间进行第一次通信时,使通信双方向0号进程查询对方的地址信息。
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种集群系统中的进程通信方法,其特征在于,包括:
确定进程编号间的启动关系;所述启动关系包括细胞分裂式的启动关系;
根据所述进程编号间的启动关系,以细胞分裂方式启动进程;且在进程启动期间,使每个进程将其地址信息发送给0号进程;
进行进程间通信;且在进程间进行第一次通信时,使通信双方向0号进程查询对方的地址信息;其中,所述进程间为所述集群系统中各节点的作业进程之间。
2.如权利要求1所述的集群系统中的进程通信方法,其特征在于,还包括:
使每个子进程在成功启动后向0号进程发送成功启动信息;
对应的,使父进程在启动其子进程后向0号进程询问该子进程是否已成功启动;
如果未成功启动,则确认该子进程出现故障,并使所述父进程接管该子进程启动下一级进程的任务。
3.如权利要求1所述的集群系统中的进程通信方法,其特征在于,所述进行进程间通信,包括:
使源进程向目标进程发送消息;所述消息为序列化对象;
使所述目标进程基于预设的PutHandler方法反序列化所述消息并处理。
4.如权利要求1所述的集群系统中的进程通信方法,其特征在于,所述进行进程间通信,包括:
使源进程从目标进程获取消息;
使所述目标进程基于预设的GetHandler方法组装消息,并将组装后的消息发送给所述源进程。
5.如权利要求1所述的集群系统中的进程通信方法,其特征在于,所述进行进程间通信,包括:
使源进程向目标进程发送第一消息;
使所述目标进程基于预设的GetHandler方法或CallHandler方法接收并处理所述第一消息,然后根据所述第一消息的处理结果生成第二消息并返给所述源进程。
6.如权利要求3至5任一项所述的集群系统中的进程通信方法,其特征在于,所述进行进程间通信,还包括:
在作业任务完成初始化阶段之后,定时ping每个作业进程,以进行进程故障检测;
当通过ping确认存在故障进程时,使集群系统中的主节点将进程故障事件通知所有的正常作业进程。
7.如权利要求6所述的集群系统中的进程通信方法,其特征在于,在使集群系统中的主节点将进程故障事件通知所有的正常作业进程之后,还包括:
当有进程请求失败的任务时,使该进程截获所述故障事件通知并交由故障处理类进行处理。
8.如权利要求6所述的集群系统中的进程通信方法,其特征在于,所述使集群系统中的主节点将进程故障事件通知所有的正常作业进程,包括:
当通过ping确认存在故障进程时,基于预设的进程组管理策略从进程组中剔除所有故障进程,并使集群系统中的主节点将进程故障事件通知已剔除所有故障进程后的进程组中的每个进程。
9.一种集群系统中的进程通信装置,其特征在于,包括:
启动关系确定模块,用于确定进程编号间的启动关系;所述启动关系包括细胞分裂式的启动关系;
进程启动执行模块,用于根据所述进程编号间的启动关系,以细胞分裂方式启动进程;且在进程启动期间,使每个进程将其地址信息发送给0号进程;
进程通信执行模块,用于进行进程间通信;且在进程间进行第一次通信时,使通信双方向0号进程查询对方的地址信息;其中,所述进程间为所述集群系统中各节点的作业进程之间。
10.一种集群系统中的进程通信装置,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时执行如下步骤:
确定进程编号间的启动关系;所述启动关系包括细胞分裂式的启动关系;
根据所述进程编号间的启动关系,以细胞分裂方式启动进程;且在进程启动期间,使每个进程将其地址信息发送给0号进程;
进行进程间通信;且在进程间进行第一次通信时,使通信双方向0号进程查询对方的地址信息,其中,所述进程间为所述集群系统中各节点的作业进程之间。
CN201810499441.9A 2018-05-23 2018-05-23 一种集群系统中的进程通信方法及装置 Active CN109002350B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810499441.9A CN109002350B (zh) 2018-05-23 2018-05-23 一种集群系统中的进程通信方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810499441.9A CN109002350B (zh) 2018-05-23 2018-05-23 一种集群系统中的进程通信方法及装置

Publications (2)

Publication Number Publication Date
CN109002350A CN109002350A (zh) 2018-12-14
CN109002350B true CN109002350B (zh) 2021-08-03

Family

ID=64573321

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810499441.9A Active CN109002350B (zh) 2018-05-23 2018-05-23 一种集群系统中的进程通信方法及装置

Country Status (1)

Country Link
CN (1) CN109002350B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110689138B (zh) * 2018-12-29 2021-03-19 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
CN110955460B (zh) * 2019-11-15 2023-10-03 北京金山云网络技术有限公司 一种服务进程启动方法、装置、电子设备和存储介质
CN112929461B (zh) * 2021-01-21 2022-09-16 中国人民解放军国防科技大学 一种基于高速互连网络的mpi进程管理接口实现方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662775A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种进程通信方法和装置
WO2012159305A1 (zh) * 2011-06-28 2012-11-29 华为技术有限公司 一种分布式多进程通信方法和装置
CN103699450A (zh) * 2013-12-20 2014-04-02 国云科技股份有限公司 一种Linux下的自适应组件间通信方法
CN105279036A (zh) * 2015-12-04 2016-01-27 上海斐讯数据通信技术有限公司 进程间通信方法、装置及电子设备
CN105426260A (zh) * 2015-10-30 2016-03-23 北京航天自动控制研究所 一种支持分布式系统的透明进程间通信系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012159305A1 (zh) * 2011-06-28 2012-11-29 华为技术有限公司 一种分布式多进程通信方法和装置
CN102662775A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种进程通信方法和装置
CN103699450A (zh) * 2013-12-20 2014-04-02 国云科技股份有限公司 一种Linux下的自适应组件间通信方法
CN105426260A (zh) * 2015-10-30 2016-03-23 北京航天自动控制研究所 一种支持分布式系统的透明进程间通信系统及方法
CN105279036A (zh) * 2015-12-04 2016-01-27 上海斐讯数据通信技术有限公司 进程间通信方法、装置及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种在复杂环境中支持容错的高性能规约框架;李超 等;《kns.cnki.net/kcms/detail/11.2625.V.20180503.0938.002.html》;20180503;第3节 *
基于Linux内核的多进程应用程序的开发;赵丰;《中国优秀硕士学位论文全文数据库信息科技辑》;20071115;正文第3章 *

Also Published As

Publication number Publication date
CN109002350A (zh) 2018-12-14

Similar Documents

Publication Publication Date Title
CN107479990B (zh) 一种分布式软件服务系统
US9396031B2 (en) Distributed UIMA cluster computing (DUCC) facility
CN109002350B (zh) 一种集群系统中的进程通信方法及装置
López et al. Triggerflow: trigger-based orchestration of serverless workflows
EP3913859A1 (en) Vnf life cycle management method and apparatus
Lee et al. Granular computing
US11934877B2 (en) Workflow resource management for cloud computing services
CN110609749A (zh) 一种分布式任务运行方法、系统及设备
CN106649000B (zh) 实时处理引擎的故障恢复方法及相应的服务器
Powell Extra Performance Architecture (XPA)
CN116954944A (zh) 基于内存网格的分布式数据流处理方法、装置及设备
Fohry et al. Fault tolerance schemes for global load balancing in X10
CN111435320B (zh) 一种数据处理方法及其装置
Lufei et al. vStarCloud: An operating system architecture for Cloud computing
Larus Programming clouds
Bungart et al. Fault-tolerant global load balancing in X10
CN110018880B (zh) Io线程执行方法及装置
Lianghuan et al. Expressing and composing actors for deterministic and scalable programming in cloud
Morrow Distributed Task Scheduling on Cloud Infrastructure for Bioinformatics Workflows and Analysis
US11893403B1 (en) Automation service
Ayyalasomayajula et al. Experiences running mixed workloads on cray analytics platforms
Dai et al. A task-based fault-tolerance mechanism to hierarchical master/worker with divisible tasks
Cai et al. SMSS: Stateful Model Serving in Metaverse With Serverless Computing and GPU Sharing
Duffield et al. Manufacture and evaluation of a GyroTWA amplifier
Revathi Performance tuning and scheduling of large data set analysis in map reduce paradigm by optimal configuration using Hadoop

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant