CN114817411A - 分布式图学习方法和装置 - Google Patents
分布式图学习方法和装置 Download PDFInfo
- Publication number
- CN114817411A CN114817411A CN202210717263.9A CN202210717263A CN114817411A CN 114817411 A CN114817411 A CN 114817411A CN 202210717263 A CN202210717263 A CN 202210717263A CN 114817411 A CN114817411 A CN 114817411A
- Authority
- CN
- China
- Prior art keywords
- node
- mirror
- state
- layer
- mirror image
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
Abstract
本说明书实施例提供了一种分布式图学习方法和装置。该方法中,分布式图中包括跨机节点,该跨机节点被映射为第一设备中的拥有特征数据的主节点以及第二设备中的不拥有特征数据的镜像节点;该方法包括:在一个线程中调度镜像节点进行基于特征数据的计算;判断所述镜像节点是否拥有从主节点同步来的特征数据;如果是,则由镜像节点利用接收到的特征数据进行计算;如果否,在该线程中调度其他节点进行基于特征数据的计算,该镜像节点进入睡眠,在该镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点。能够提高图学习的效率。
Description
技术领域
本说明书一个或多个实施例涉及网络通信技术,尤其涉及分布式图学习方法和装置。
背景技术
知识图谱(Knowledge Graph)本质上是一种揭示实体之间关系的语义网络。在知识图谱中,图中的每一个节点都具有自己的各种特征,每一个边也具有自己的各种特征。
随着信息的爆炸式增长,知识图谱的规模也异常庞大,比如一个知识图谱中可以包括上亿个节点及更多的边。鉴于知识图谱的庞大规模,目前出现了分布式图,即将知识图谱中的所有节点及边分散保存到多个设备中,相应地,也就出现了分布式图学习方法,即由保存各个节点及边的多个设备联合完成分布式图的学习。
在目前的分布式图学习的方法中,为了保证数据同步的正确性,会使用互斥锁(mutex锁),从而会导致图学习的效率低下。
发明内容
本说明书一个或多个实施例描述了分布式图学习方法和装置,能够提高图学习的效率。
根据第一方面,提供了一种分布式图学习方法,其中,所述分布式图中包括跨机节点,该跨机节点被映射为第一设备中的拥有特征数据的主节点以及第二设备中的不拥有特征数据的镜像节点;该方法包括:
在一个线程中调度镜像节点进行基于特征数据的计算;
判断所述镜像节点是否拥有从主节点同步来的特征数据;
如果是,则由镜像节点利用接收到的特征数据进行计算;
如果否,在所述线程中调度其他节点进行基于特征数据的计算,该镜像节点进入睡眠,在该镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点。
其中,
所述镜像节点中预先设置有状态机,该状态机包括:数据同步状态及计算状态;
该方法进一步包括:根据镜像节点是否拥有所述特征数据来设置所述数据同步状态的值,根据所述镜像节点是否在执行基于特征数据的计算来设置所述计算状态的值;
利用所述镜像节点的数据同步状态的值,执行所述判断所述镜像节点是否拥有从主节点同步来的特征数据的步骤;
利用所述镜像节点的计算状态的值,执行所述在所述镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点。
其中,主节点分批次将对应神经网络的每一层的特征数据同步给镜像节点;
所述数据同步状态包括:分别对应于该每一层的数据同步状态;
所述计算状态包括:分别对应于该每一层的计算状态;
所述设置所述数据同步状态的值,包括:当镜像节点拥有从主节点同步来的第M层的特征数据时,将对应该第M层的数据同步状态置为第一状态值,否则将对应该第M层的数据同步状态置为第二状态值;
所述设置所述计算状态的值,包括:当镜像节点在执行第M层的基于特征数据的计算时,将对应该第M层的计算状态置为第三状态值,否则将对应该第M层的计算状态置为第四状态值;
其中,M层为所述神经网络的任意一层。
其中,由计算线程负责调度镜像节点进行计算;
计算线程执行到所述神经网络的第N层;其中,N层为所述神经网络的任意一层;
所述利用所述镜像节点的数据同步状态的值执行所述判断所述镜像节点是否拥有从主节点同步来的特征数据的步骤,包括:
如果对应第N层的数据同步状态为第一状态值,则判断出镜像节点已经拥有所述特征数据;
如果对应第N层的数据同步状态为第二状态值,则判断出镜像节点还未拥有所述特征数据;
其中,由网络线程负责调度从主节点到镜像节点的特征数据的传输;
网络线程执行到所述神经网络的第N层;
所述利用所述镜像节点的计算状态的值执行所述在所述镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点,包括:
如果所述镜像节点中对应第N层的计算状态为第四状态值,网络线程只将所述主节点同步的特征数据传输给所述镜像节点;
如果所述镜像节点中对应第N层的计算状态为第三状态值,则网络线程将主节点同步的特征数据传输给所述镜像节点,并在传输完毕之后,唤醒所述镜像节点。
其中,所述状态机包括:L个比特位,其中,L等于所述神经网络的层数的两倍;
对应每一层的数据同步状态、计算状态均分别使用所述L个比特位中的一个比特位进行标识;
表征数据同步状态的比特位的不同值表示数据同步状态的不同值;
表征计算状态的比特位的不同值表示计算状态的不同值。
其中,由网络线程配置表征数据同步状态的比特位的值,由计算线程配置表征计算状态的比特位的值;
利用原子操作中的原子指令控制所述网络线程及所述计算线程执行配置比特位的值的流程。
根据第二方面,提供了一种分布式图学习的装置,该装置包括:
调度触发模块,配置为在一个线程中调度镜像节点进行基于特征数据的计算;
判断模块,配置为判断所述镜像节点是否拥有从主节点同步来的特征数据;
第一计算模块,配置为在所述镜像节点拥有从主节点同步来的特征数据时,触发镜像节点利用接收到的特征数据进行计算;
第二计算模块,配置为在所述镜像节点未拥有从主节点同步来的特征数据时,触发在所述线程中调度其他节点进行基于特征数据的计算,触发该镜像节点进入睡眠,在该镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任一实施例所述的方法。
对于本说明书实施例提供的分布式图学习的方法及装置,在一个线程中,不是逐个节点计算,如果镜像节点还未拥有从主节点同步来的特征数据,比如主节点向镜像节点同步特征数据的过程还未完成或者未开始,那么,可以让该镜像节点进入睡眠,而不是对整个线程上锁,并让该镜像节点所在线程中的拥有特征数据的其他节点计算特征值,从而不会浪费计算资源,提高了图学习的效率。进一步地,由于采用了对镜像节点进行睡眠加唤醒的方式,不会导致在操作系统层面的程序调度,降低了操作的复杂度,提高了系统性能。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是分布式图学习应用的系统架构示意图。
图2是本说明书一个实施例中分布式图学习的方法的流程图。
图3是本说明书另一个实施例中分布式图学习的方法的流程图。
图4是本说明书一个实施例中分布式图学习的装置的结构示意图。
图5是本说明书另一个实施例中分布式图学习的装置的结构示意图。
具体实施方式
如前所述,在目前的分布式图学习的方法中,为了保证图学习过程中数据同步的正确性,会使用互斥锁,从而会导致图学习的效率低下。
比如,参见图1,在一张分布式图中,节点A、D、C、B、H位于独立设备1中,节点E、G、F位于独立设备2中。节点D、C、B、H都是跨机节点,即都与位于不同设备中的多个节点均连接有边。以跨机节点D为例,在图学习过程中,为了计算节点D的特征值,需要首先分别计算对应边AD、边DE及边DG的特征值,然后将该三个特征值累加后才能得到节点D的特征值。如图1所示,因为节点E、G与节点D不在同一个设备上,因此,为了完成计算,跨机节点D被映射为设备1中拥有节点D的特征数据的主节点Master(如图1中实心圆圈所示的节点D),以及被映射为设备2中不拥有节点D的特征数据的镜像节点Mirror(如图1中虚线圆圈所示的节点D)。在图学习中,主节点D需要将自己拥有的特征数据同步给镜像节点D,以便能够在设备2中利用该镜像节点D计算对应边DE及边DG的特征值。
在主节点D将特征数据同步给镜像节点D的过程中,需要等待特征数据全部同步完成之后,镜像节点D才能开始计算。比如如果主节点D刚刚将部分特征数据传输至镜像节点D,镜像节点D不等待剩余特征数据的到达就开始计算的话,则会造成计算错误。因此,为了避免此种错误,保证同步数据操作的完整性,现有技术中引入了互斥锁(mutex锁)。在向一个镜像节点进行数据同步的过程中,会给该镜像节点所在的线程加锁,只有等待数据同步完成之后,才能解锁,才能继续进行计算。
可见,采用现有技术的互斥锁的方式,在一个线程中,只能逐个节点计算,即在主节点向镜像节点同步特征数据的过程中,因为互斥锁的存在,不能针对线程中其他节点进行计算,从而浪费了计算资源,降低了图学习的效率。比如,一个主节点D在向镜像节点D进行数据同步时,整个线程都会上锁,因此,线程中的其他节点则不能开始计算过程,比如图1中虚线圆圈所示的镜像节点C即使有了实线圆圈所示的主节点C同步过来的特征数据,也不能开始计算,浪费了计算资源,降低了图学习的效率。
进一步地,采用现有技术的互斥锁的方式,互斥锁(mutex锁)的加锁及解锁会导致在操作系统层面的程序调度,增加了操作的复杂度,降低了系统性能。
下面结合附图,对本说明书提供的方案进行描述。
首先需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
图2是本说明书一个实施例中分布式图学习的方法的流程图。该方法的执行主体为分布式图学习的装置,该装置可以位于镜像节点所在的设备中。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。在本说明书实施例中,分布式图中包括跨机节点,该跨机节点被映射为第一设备中的拥有特征数据的主节点以及第二设备中的不拥有特征数据的镜像节点,第一设备与第二设备不同。参见图2,该方法包括:
步骤201:在一个线程中调度镜像节点进行基于特征数据的计算;
步骤203:判断镜像节点是否拥有从主节点同步来的特征数据;如果是,执行步骤205,否则,执行步骤207。
步骤205:由镜像节点利用接收到的特征数据进行计算,结束当前流程。
步骤207:在该线程中调度其他节点进行基于特征数据的计算,该镜像节点进入睡眠,在该镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点。
由上述图2所示的流程可以看出,在一个线程中,不是逐个节点计算,如果镜像节点还未拥有从主节点同步来的特征数据,比如主节点向镜像节点同步特征数据的过程还未完成或者未开始,那么,可以让该镜像节点进入睡眠,而不是对整个线程上锁,并让该线程能够调度的、拥有特征数据的其他节点进行基于特征数据的计算,从而不会浪费计算资源,提高了图学习的效率。进一步地,图2所示的方法采用了对镜像节点进行睡眠加唤醒的方式,不会导致在操作系统层面的程序调度,降低了操作的复杂度,提高了系统性能。
本说明书实施例的方法可以应用于基于任何一种真实场景的分布式图学习中。比如包括:
场景一、
金融场景。当应用于金融场景时,在分布式图学习中,节点可以是用户或者用户的账户,边可以是不同用户之间的关系或者不同账户之间的关系,比如转账关系、同属于一个地域的关系、亲友关系等,上述同步的特征数据可以包括转账明细、用户画像数据等。
场景二、
社交场景。当应用于社交场景时,在分布式图学习中,节点可以是用户,边可以是朋友关系、同属于一个学校的关系、兴趣信息等,上述同步的特征数据可以包括用户画像数据、学校信息等。
针对诸如上述场景的分布式图学习,能够更好地建立知识图谱,从而为诸如金融场景中的不合规交易的发现,社交场景中的朋友关系的建立,提供更好的学习结果。
在本说明书实施例中,可以基于状态机来实现上述图2所示的过程。此时,镜像节点中预先设置有状态机,该状态机包括:数据同步状态及计算状态;在图学习的过程中,会进一步包括步骤S0:根据镜像节点是否拥有特征数据来设置数据同步状态的值,根据镜像节点是否在执行基于特征数据的计算来设置计算状态的值;
相应地,上述步骤203可以具体包括步骤2030:利用镜像节点的数据同步状态的值,判断镜像节点是否拥有从主节点同步来的特征数据;
相应地,上述步骤207可以具体包括步骤2070:利用镜像节点的计算状态的值,实现在镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点。
通常,在图学习过程中使用的神经网络的层数包括至少两层,主节点是分批次将对应神经网络的每一层的特征数据同步给镜像节点,镜像节点是针对每一层均进行基于特征数据的计算。因此,为了针对每一层的计算都能够实现上述图2所示流程及其技术效果(比如不会浪费计算资源,提高图学习的效率,并不会导致在操作系统层面的程序调度),那么,在本说明书实施例中,镜像节点的数据同步状态包括:分别对应于神经网络的每一层的数据同步状态;镜像节点的计算状态包括:分别对应于神经网络的每一层的计算状态。那么,上述步骤S0中在设置数据同步状态及计算状态的值时,是分层进行的,具体包括:
S00:在设置对应于任意一个第M层的数据同步状态的值时,当镜像节点拥有从主节点同步来的第M层的特征数据时,则将对应该第M层的数据同步状态置为第一状态值,否则将对应该第M层的数据同步状态置为第二状态值;
S02:在设置对应于任意一个第M层的计算状态的值时,当镜像节点在执行第M层的基于特征数据的计算时,将对应该第M层的计算状态置为第三状态值,否则将对应该第M层的计算状态置为第四状态值。其中,第M层为上述神经网络中的任意一层。
如前所述,镜像节点是针对每一层均计算特征值,那么,在本说明书实施例中,在步骤203中,利用镜像节点中每一层的数据同步状态的值,判断该镜像节点是否拥有从主节点同步来的对应该层的特征数据;并且,在步骤207中,是利用镜像节点中每一层的计算状态的值,在镜像节点拥有从主节点同步来的对应该层的特征数据之后唤醒该镜像节点。
在分布式图中,往往拥有大量的节点及边,比如可能拥有几亿个节点及更多的边,那么,为了保证在分布式图学习过程中的数据同步及计算的正确性,通常会使用大量的计算线程及网络线程。其中,一个计算线程中通常包括上万个节点,比如参见图1,在设备2的一个计算线程中至少包括镜像节点D、镜像节点C、镜像节点B、镜像节点H,计算线程负责调度本线程内的各个镜像节点进行特征值的计算。其中,一个网络线程中通常包括上万个节点,比如参见图1,在设备2的一个网络线程中至少包括镜像节点D、镜像节点C、镜像节点B、镜像节点H,网络线程负责调度从主节点同步到镜像节点的特征数据的传输。这样,网络线程在针对每一层进行调度传输时,都会根据对应于该层的数据同步状态的值,完成不同的调度传输。计算线程在针对每一层进行调度以计算特征值时,都会根据对应于该层的计算状态的值,完成不同的计算过程。
具体地,结合上述图2所示过程,当计算线程执行到神经网络的第N层时,其中,第N层为神经网络中的任意一层,上述步骤2030中利用镜像节点的数据同步状态的值判断镜像节点是否拥有从主节点同步来的特征数据的步骤,包括:
如果对应第N层的数据同步状态为第一状态值,则判断出镜像节点已经拥有第N层的特征数据,则相应地,由镜像节点利用接收到的第N层的特征数据进行第N层的计算;
如果对应第N层的数据同步状态为第二状态值,则判断出镜像节点还未拥有第N层的特征数据。
具体地,结合上述图2所示过程,当网络线程执行到神经网络的第N层时,上述步骤2070中利用镜像节点的计算状态的值实现在镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点,包括:
如果所述镜像节点中对应第N层的计算状态为第四状态值,网络线程只将所述主节点同步的第N层的特征数据传输给所述镜像节点;
如果所述镜像节点中对应第N层的计算状态为第三状态值,则网络线程将主节点同步的第N层的特征数据传输给所述镜像节点,并在传输完毕之后,唤醒所述镜像节点。
在实际的业务实现中,在主节点向镜像节点同步特征数据时,经常会出现乱序传输。也就是说,主节点会主动将对应于每一层的特征数据按照层数顺序传输给镜像节点,以便镜像节点计算特征值。比如,主节点首先传第K层的特征数据,接下来传第K+1层的特征数据。但是由于网络传输等原因,镜像节点有可能不是按照层的顺序依次接收完毕特征数据,比如,在镜像节点中,首先接收完毕第K+1层的特征数据,之后才接收完毕第K层的特征数据。采用上述本说明书实施例中的针对每一层都分别设置数据同步状态以及计算状态,并且在针对每一层计算特征值时,都会根据对应该层的数据同步状态的值以及计算状态的值来完成计算,则可以在上述乱序传输的情况下,保证镜像节点可以同时记录所有层的特征数据的传输情况,及保证镜像节点针对所有层依照“谁有特征数据谁先计算”的原则及时进行各层的基于特征数据的计算,从而进一步提高了计算效率。
在本说明书一个实施例中,提供了一种更加易于实现的状态机,即采用比特位的方式来实现状态机。此时,状态机包括:L个比特位,其中,L等于神经网络的层数的两倍;
每一层的数据同步状态、计算状态均分别使用所述L个比特位中的一个比特位进行标识;
表征数据同步状态的比特位的不同值表示数据同步状态的不同值;
表征计算状态的比特位的不同值表示计算状态的不同值。
举例说明采用比特位实现状态机的方式:
比如,神经网络的层数为32层,那么就为镜像节点分配一个64个bit位的整数,它分成两部分,即高32bit和低32bit。每层在这高低两部分各占1个bit,低32bit 用来标记计算线程中的镜像节点是否在执行对应层的计算,缺省为0,如果在执行,则为1;高32bit 用来标记在网络线程中镜像节点是否已经拥有了主节点同步来的特征数据,缺省为0,如果已拥有,则为1。例如对于神经网络的第0 层,可以使用bit 0 表示对应第0层的计算状态,使用bit 32表示对应第0层的数据同步状态;对于神经网络的第1层,可以使用bit 1表示对应第1层的计算状态,使用bit 33表示对应第1层的数据同步状态。
可见,比特位的方式更加适用于实现:对应多层计算的、需要同时标记数据同步状态及计算状态两种状态的状态机。
在本说明书一个实施例中,由网络线程配置表征数据同步状态的比特位的值,由计算线程配置表征计算状态的比特位的值。因此,网络线程及计算线程不能同时设置对应同一层的比特位的值为1,否则就会出现状态错误。因此,为了避免此种错误,在本说明书一个实施例中,利用原子操作中的原子指令控制所述网络线程及所述计算线程执行配置比特位的值的流程,使得表征数据同步状态的比特位的值及表征计算状态的比特位的值不会同时为1。原子操作(atomic operation)的原子指令不会被线程调度机制打断、且操作一旦开始,就一直运行到结束,中间不会切换到另一个线程,从而避免了上述状态错误。
下面通过一个具体的例子,来说明在本说明书一个实施例中分布式图学习方法的实现过程。
以神经网络的层0及层1为例,对应层0的计算状态及数据同步状态分别使用比特位0/32,对应层1的计算状态及数据同步状态分别使用比特位1/33,参见下述表1所示。在初始状态,所有比特位的值均被置为0。
表 1
计算线程针对某一层所执行的处理包括:
1、计算线程开始执行的时刻,如果镜像节点中对应该层的高比特位及低比特位的当前值为00,则镜像节点睡眠;
2、计算线程开始执行的时刻,如果镜像节点中对应该层的高比特位及低比特位的当前值为10,则直接由镜像节点计算对应该层的特征值。
网络线程针对某一层所执行的处理包括:
1、网络线程开始执行的时刻,如果镜像节点中对应该层的高比特位及低比特位的当前值为00,则网络线程只将对该层同步的特征数据传输至镜像节点;
2、网络线程开始执行的时刻,如果镜像节点中对应该层的高比特位及低比特位的当前值为01,则网络线程将对该层同步的特征数据传输至镜像节点,然后唤醒镜像节点。
具体地,参见图1和图3,结合上述层0及层1的设置,分布式图学习方法的过程包括:
步骤301:设备1中的主节点D首先将神经网络的层0的特征数据同步给设备2中的镜像节点D。
步骤303:接下来,设备1中的主节点D将神经网络的层1的特征数据同步给设备2中的镜像节点D。
步骤305:层1的特征数据先到达设备2的镜像节点D中,但是此时计算线程按照顺序,镜像节点D还没有执行到层0,更没有执行到层1,则网络线程将比特位 33置为1,比特位0、1、32保持为0。
步骤307:当计算线程开始执行镜像节点D的层0的时刻,比特位0、32的值均为0,则可以确定镜像节点还未拥有层0的特征数据,则计算线程调度本线程中其他镜像节点,比如该计算线程中的镜像节点E已经拥有主节点E同步来的层0的特征数据,那么,则由镜像节点E计算层0的特征值;同时,计算线程将比特位0置为1,镜像节点D进入睡眠。
步骤309:当网络线程开始调度传输镜像节点D对应的层0的特征数据的时刻,比特位32、0的值分别为0、1,则网络线程将主节点同步的层0的特征数据传输给镜像节点D,在传输完毕之后,唤醒镜像节点D,计算线程则可以调度镜像节点D利用层0的特征数据进行对应层0的特征值的计算。
步骤311:当计算线程执行到镜像节点D的层1的时刻,因为33、1的值分别为1、0,则说明镜像节点D不需要睡眠,直接由镜像节点D利用层1的特征数据计算特征值。
在本说明书一个实施例中,神经网络可以是卷积神经网络,相应地,每一层则为卷积层,计算出的特征值则为卷积值。
在本说明书的一个实施例中,提供了一种分布式图学习的装置。该装置被设置于镜像节点中。参见图4,该装置包括:
调度触发模块401,配置为触发在一个线程中调度镜像节点进行基于特征数据的计算;
判断模块402,配置为判断所述镜像节点是否拥有从主节点同步来的特征数据;
第一计算模块403,配置为在所述镜像节点拥有从主节点同步来的特征数据时,触发镜像节点利用接收到的特征数据进行计算;
第二计算模块404,配置为在所述镜像节点未拥有从主节点同步来的特征数据时,触发在该线程中调度其他节点进行基于特征数据的计算,触发该镜像节点进入睡眠,在该镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点。
在本说明书的装置的实施例中,参见图5,进一步包括状态机模块501,该状态机模块501中包括状态机,该状态机包括:数据同步状态及计算状态;状态机模块501被配置为:根据镜像节点是否拥有特征数据来设置数据同步状态的值,根据镜像节点是否在执行基于特征数据的计算来设置计算状态的值;
判断模块402被配置为利用所述镜像节点的数据同步状态的值,判断所述镜像节点是否拥有从主节点同步来的特征数据;
第二计算模块404被配置为利用镜像节点的计算状态的值,执行在所述镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点。
在本说明书装置的一个实施例中,主节点分批次将对应神经网络的每一层的特征数据同步给镜像节点;
所述数据同步状态包括:分别对应于该每一层的数据同步状态;
所述计算状态包括:分别对应于该每一层的计算状态;
状态机模块501被配置为执行:
当镜像节点拥有从主节点同步来的第M层的特征数据时,将对应该第M层的数据同步状态置为第一状态值,否则将对应该第M层的数据同步状态置为第二状态值;
当镜像节点在执行第M层的基于特征数据的计算时,将对应该第M层的计算状态置为第三状态值,否则将对应该第M层的计算状态置为第四状态值;
其中,第M层为所述神经网络的任意一层。
在本说明书装置的一个实施例中,由计算线程负责调度镜像节点进行基于特征数据的计算;
计算线程执行到神经网络的第N层;其中,N层为所述神经网络中的任意一层;
判断模块402被配置为执行:
如果对应第N层的数据同步状态为第一状态值,则判断出镜像节点已经拥有所述特征数据;
如果对应第N层的数据同步状态为第二状态值,则判断出镜像节点还未拥有所述特征数据;
在本说明书装置的一个实施例中,由网络线程负责调度从主节点到镜像节点的特征数据的传输;
网络线程执行到神经网络的第N层;
第二计算模块404被配置为执行:在网络线程唤醒镜像节点后,执行对应该镜像节点的第N层的计算。
在本说明书装置的一个实施例中,所述状态机包括:L个比特位,其中,L等于神经网络的层数的两倍;
对应每一层的数据同步状态、计算状态均分别使用所述L个比特位中的一个比特位进行标识;
表征数据同步状态的比特位的不同值表示数据同步状态的不同值;
表征计算状态的比特位的不同值表示计算状态的不同值。
在本说明书装置的一个实施例中,由网络线程配置表征数据同步状态的比特位的值,由计算线程配置表征计算状态的比特位的值;
所述状态机实现模块501被配置为执行:利用原子操作中的原子指令控制所述网络线程及所述计算线程执行配置比特位的值的流程。
本说明书一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。
本说明书一个实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现执行说明书中任一个实施例中的方法。
可以理解的是,本说明书实施例示意的结构并不构成对本说明书实施例的装置的具体限定。在说明书的另一些实施例中,上述装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置、系统内的各模块之间的信息交互、执行过程等内容,由于与本说明书方法实施例基于同一构思,具体内容可参见本说明书方法实施例中的叙述,此处不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (10)
1.分布式图学习方法,其中,所述分布式图中包括跨机节点,该跨机节点被映射为第一设备中的拥有特征数据的主节点以及第二设备中的不拥有特征数据的镜像节点;该方法包括:
在一个线程中调度镜像节点进行基于特征数据的计算;
判断所述镜像节点是否拥有从主节点同步来的特征数据;
如果是,则由镜像节点利用接收到的特征数据进行计算;
如果否,在所述线程中调度其他节点进行基于特征数据的计算,该镜像节点进入睡眠,在该镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点。
2.根据权利要求1所述的方法,其中,
所述镜像节点中预先设置有状态机,该状态机包括:数据同步状态及计算状态;
该方法进一步包括:根据镜像节点是否拥有所述特征数据来设置所述数据同步状态的值,根据所述镜像节点是否在执行基于特征数据的计算来设置所述计算状态的值;
利用所述镜像节点的数据同步状态的值,执行所述判断所述镜像节点是否拥有从主节点同步来的特征数据的步骤;
利用所述镜像节点的计算状态的值,执行所述在所述镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点。
3.根据权利要求2所述的方法,其中,主节点分批次将对应神经网络的每一层的特征数据同步给镜像节点;
所述数据同步状态包括:分别对应于该每一层的数据同步状态;
所述计算状态包括:分别对应于该每一层的计算状态;
所述设置所述数据同步状态的值,包括:当镜像节点拥有从主节点同步来的第M层的特征数据时,将对应该第M层的数据同步状态置为第一状态值,否则将对应该第M层的数据同步状态置为第二状态值;
所述设置所述计算状态的值,包括:当镜像节点在执行第M层的基于特征数据的计算时,将对应该第M层的计算状态置为第三状态值,否则将对应该第M层的计算状态置为第四状态值;
其中,第M层为所述神经网络的任意一层。
4.根据权利要求3所述的方法,其中,由计算线程负责调度镜像节点进行基于特征数据的计算;
计算线程执行到所述神经网络的第N层;其中,第N层为所述神经网络的任意一层;
所述利用所述镜像节点的数据同步状态的值执行所述判断所述镜像节点是否拥有从主节点同步来的特征数据的步骤,包括:
如果对应第N层的数据同步状态为第一状态值,则判断出镜像节点已经拥有所述特征数据;
如果对应第N层的数据同步状态为第二状态值,则判断出镜像节点还未拥有所述特征数据。
5.根据权利要求3所述的方法,其中,由网络线程负责调度从主节点到镜像节点的特征数据的传输;
网络线程执行到所述神经网络的第N层;
所述利用所述镜像节点的计算状态的值执行所述在所述镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点,包括:
如果所述镜像节点中对应第N层的计算状态为第四状态值,网络线程只将所述主节点同步的特征数据传输给所述镜像节点;
如果所述镜像节点中对应第N层的计算状态为第三状态值,则网络线程将主节点同步的特征数据传输给所述镜像节点,并在传输完毕之后,唤醒所述镜像节点。
6.根据权利要求3所述的方法,其中,所述状态机包括:L个比特位,其中,L等于所述神经网络的层数的两倍;
对应每一层的数据同步状态、计算状态均分别使用所述L个比特位中的一个比特位进行标识;
表征数据同步状态的比特位的不同值表示数据同步状态的不同值;
表征计算状态的比特位的不同值表示计算状态的不同值。
7.根据权利要求6所述的方法,其中,由网络线程配置表征数据同步状态的比特位的值,由计算线程配置表征计算状态的比特位的值;
利用原子操作中的原子指令控制所述网络线程及所述计算线程执行配置比特位的值的流程。
8.一种分布式图学习的装置,该装置包括:
调度触发模块,配置为在一个线程中调度镜像节点进行基于特征数据的计算;
判断模块,配置为判断所述镜像节点是否拥有从主节点同步来的特征数据;
第一计算模块,配置为在所述镜像节点拥有从主节点同步来的特征数据时,触发镜像节点利用接收到的特征数据进行计算;
第二计算模块,配置为在所述镜像节点未拥有从主节点同步来的特征数据时,触发在所述线程中调度其他节点进行基于特征数据的计算,触发该镜像节点进入睡眠,在该镜像节点拥有从主节点同步来的特征数据之后唤醒该镜像节点。
9.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7中任一项所述的方法。
10.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210717263.9A CN114817411B (zh) | 2022-06-23 | 2022-06-23 | 分布式图学习方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210717263.9A CN114817411B (zh) | 2022-06-23 | 2022-06-23 | 分布式图学习方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114817411A true CN114817411A (zh) | 2022-07-29 |
CN114817411B CN114817411B (zh) | 2022-11-01 |
Family
ID=82520832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210717263.9A Active CN114817411B (zh) | 2022-06-23 | 2022-06-23 | 分布式图学习方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817411B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020091846A1 (en) * | 2000-10-30 | 2002-07-11 | The Regents Of The University Of California | Tree-based ordered multicasting method |
CN111930518A (zh) * | 2020-09-22 | 2020-11-13 | 北京东方通科技股份有限公司 | 面向知识图谱表示学习的分布式框架构建方法 |
CN113835899A (zh) * | 2021-11-25 | 2021-12-24 | 支付宝(杭州)信息技术有限公司 | 针对分布式图学习的数据融合方法及装置 |
CN114217743A (zh) * | 2021-09-17 | 2022-03-22 | 支付宝(杭州)信息技术有限公司 | 用于分布式图学习架构的数据存取方法及装置 |
WO2022057310A1 (zh) * | 2020-09-15 | 2022-03-24 | 华为技术有限公司 | 一种图神经网络训练的方法、装置及系统 |
CN114239858A (zh) * | 2022-02-25 | 2022-03-25 | 支付宝(杭州)信息技术有限公司 | 一种用于分布式图模型的图学习方法及设备 |
CN114254735A (zh) * | 2021-12-07 | 2022-03-29 | 中信银行股份有限公司 | 一种基于分布式的僵尸网络模型构建方法和装置 |
CN114417780A (zh) * | 2021-12-16 | 2022-04-29 | 北京百度网讯科技有限公司 | 状态同步方法、装置、电子设备及存储介质 |
CN114600113A (zh) * | 2020-06-01 | 2022-06-07 | 辉达公司 | 选择用于使用神经网络训练图像的注释 |
-
2022
- 2022-06-23 CN CN202210717263.9A patent/CN114817411B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020091846A1 (en) * | 2000-10-30 | 2002-07-11 | The Regents Of The University Of California | Tree-based ordered multicasting method |
CN114600113A (zh) * | 2020-06-01 | 2022-06-07 | 辉达公司 | 选择用于使用神经网络训练图像的注释 |
WO2022057310A1 (zh) * | 2020-09-15 | 2022-03-24 | 华为技术有限公司 | 一种图神经网络训练的方法、装置及系统 |
CN111930518A (zh) * | 2020-09-22 | 2020-11-13 | 北京东方通科技股份有限公司 | 面向知识图谱表示学习的分布式框架构建方法 |
CN114217743A (zh) * | 2021-09-17 | 2022-03-22 | 支付宝(杭州)信息技术有限公司 | 用于分布式图学习架构的数据存取方法及装置 |
CN113835899A (zh) * | 2021-11-25 | 2021-12-24 | 支付宝(杭州)信息技术有限公司 | 针对分布式图学习的数据融合方法及装置 |
CN114254735A (zh) * | 2021-12-07 | 2022-03-29 | 中信银行股份有限公司 | 一种基于分布式的僵尸网络模型构建方法和装置 |
CN114417780A (zh) * | 2021-12-16 | 2022-04-29 | 北京百度网讯科技有限公司 | 状态同步方法、装置、电子设备及存储介质 |
CN114239858A (zh) * | 2022-02-25 | 2022-03-25 | 支付宝(杭州)信息技术有限公司 | 一种用于分布式图模型的图学习方法及设备 |
Non-Patent Citations (3)
Title |
---|
WENCONG XIAO: ""TUX2: distributed graph computation for machine learning"", 《NSDI"17: PROCEEDINGS OF THE 14TH USENIX CONFERENCE ON NETWORKED SYSTEMS DESIGN AND IMPLEMENTATION》 * |
丁鑫等: "分布式图计算框架混合计算模式的研究", 《小型微型计算机系统》 * |
常东阳: ""图分布式计算的通信优化研究"", 《中国优秀硕士学位论文全文数据库(电子期刊)基础科学辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114817411B (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7555516B2 (en) | Fast Paxos recovery | |
Tel | Topics in distributed algorithms | |
EP2972983B1 (en) | Dynamically managing memberships in replicated state machines within a distributed computing environment | |
Pu et al. | Asymptotic network independence in distributed stochastic optimization for machine learning: Examining distributed and centralized stochastic gradient descent | |
US20030187927A1 (en) | Clustering infrastructure system and method | |
CN111079921A (zh) | 一种基于异构分布式系统的高效神经网络训练调度方法 | |
CN106375416B (zh) | 分布式数据存储系统中一致性动态调整方法及装置 | |
CN112163042B (zh) | 多变数据同步方法、装置、电子装置及存储介质 | |
US20210357816A1 (en) | System with hybrid communication strategy for large-scale distributed deep learning | |
JP2022017588A (ja) | 深層学習フレームワークのトレーニング方法、装置及び記憶媒体 | |
Simić et al. | Towards edge computing as a service: Dynamic formation of the micro data-centers | |
CN109976873B (zh) | 容器化分布式计算框架的调度方案获取方法及调度方法 | |
CN108462737B (zh) | 基于批处理和流水线的分层数据一致性协议优化方法 | |
CN114817411B (zh) | 分布式图学习方法和装置 | |
CN114595051B (zh) | 一种增强云计算协作数据处理的方法、系统及电子设备 | |
Zhang et al. | Txallo: Dynamic transaction allocation in sharded blockchain systems | |
CN111049900B (zh) | 一种物联网流计算调度方法、装置和电子设备 | |
Homann et al. | Evaluation of conditional tasks in an artificial DNA system | |
CN113627617A (zh) | 一种动态扩展的模型训练方法、装置与系统 | |
CN113138831B (zh) | 一种网络重置方法及基于此的加速分布式训练方法和系统 | |
Yuan et al. | Fairness-aware scheduling algorithm for multiple DAGs based on task replication | |
CN114936080B (zh) | 一种分布式系统的容错性任务调度方法 | |
Marco et al. | Efficient leader election for synchronous shared-memory systems | |
Andler et al. | DeeDS NG: Architecture, design, and sample application scenario | |
Dai et al. | A task-based fault-tolerance mechanism to hierarchical master/worker with divisible tasks |
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 |