测例同步执行的方法及相关设备技术

技术编号:38089134 阅读:10 留言:0更新日期:2023-07-06 08:59
本发明专利技术实施例公开一种测例同步执行的方法及相关设备。该方法包括确定多个进程的同步点;在所述多个进程间创建共享数据;当所述多个进程中的任意一个进程执行到所述同步点时,对所述共享数据进行处理,以得到数据处理结果;基于所述数据处理结果,继续执行所述多个测例。采用本方案,可以不依赖于共享文件系统的进程间同步技术,支持多机场景下的进程间的测例同步执行。测例同步执行。测例同步执行。

【技术实现步骤摘要】
测例同步执行的方法及相关设备


[0001]本专利技术涉及测试
,尤其涉及一种测例同步执行的方法及相关设备。

技术介绍

[0002]Pytorch原生的分布式功能测例是通过单机的测例来模拟多机的测例。其中,单台机器上有多个GPU设备,一个或者多个GPU设备组成一个分布式计算单元。每个计算单元占据一个独立的进程,每个测例都会重新创建新的进程来执行,计算单元和计算单元之间采用一种依赖于共享文件系统的同步技术来保持测例的同步执行。这种同步技术的具体实现是:首先,每个进程都有一个barrier_id,初始化为0,每个进程对应一个单独的文件,这些文件都保存在同一个目录中。当计算单元和计算单元之间需要同步时,每个单元就对本进程barrier_id加1,并将结果写入到进程对应的文件中,接着,循环遍历目录中的所有文件,读取每个文件中记录的barrier_id,统计读到的值大于等于本进程当前的barrier_id的个数,当个数等于分布式计算单元的总数时,说明所有进程都执行到了同步点,即所有计算单元完成了同步,此时,跳出循环,所有进程各自继续执行后面的程序。
[0003]Pytorch原生对分布式功能的测试方法只测到了单机的内部通信,没有涉及不同机器间进行协同的分布式功能;而且其中的进程间同步技术依赖于共享文件系统,同一个机器的文件当然可以共享,但是不同机器之间不一定存在共享文件系统,当协同执行分布式功能的不同机器无法共享文件系统或者没有搭建共享文件系统时,原生采用的进程间同步技术就会失效。

技术实现思路

[0004]本专利技术实施例提供了一种测例同步执行的方法及相关设备,可以不依赖于共享文件系统的进程间同步技术,支持多服务器中多进程间测例同步执行。
[0005]第一方面,本专利技术实施例提供了一种测例同步执行的方法,所述方法应用于一个或多个服务器,所述一个或多个服务器对应多个进程,每个所述多个进程执行多个测例,所述方法包括:
[0006]确定所述多个进程的同步点;
[0007]在所述多个进程间创建共享数据;
[0008]当所述多个进程中的任意一个进程执行到所述同步点时,对所述共享数据进行处理,以得到数据处理结果;
[0009]基于所述数据基于处理结果,继续执行所述多个测例。
[0010]第二方面,本专利技术实施例提供了一种测例同步执行的装置,所述装置对应多个进程,所述多个进程用于执行多个测例,所述装置包括:
[0011]确定模块,用于确定所述多个进程的同步点;
[0012]创建模块,用于在所述多个进程间创建共享数据;
[0013]处理模块,用于当所述多个进程中的任意一个进程执行到所述同步点时,对所述
共享数据进行处理,以得到数据处理结果;
[0014]执行模块,用于基于所述数据处理结果,继续执行所述多个测例。
[0015]第三方面,本专利技术实施例提供了一种测例同步执行的设备,包括:处理器和存储器;所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行第一方面任一实现方式提供的测例同步执行的方法。
[0016]第四方面,本专利技术实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行第一方面任一实现方式提供的测例同步执行的方法。
[0017]第五方面,本专利技术实施例提供了一种芯片系统,所述芯片系统应用于电子设备;所述芯片系统包括一个或多个接口电路,以及一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行第一方面任一实现方式提供的测例同步执行的方法。
[0018]本申请实施例,通过确定多个进程的同步点,确定一个或多个服务器中对应的多个进程需要进行同步的位置,以便各进程之间可以实现同步;进一步,通过在多个进程间创建共享数据,以便各个进程可以共享使用该共享数据;当各进程执行到同步点时,对该共享数据做处理,多个进程间可以通过共享数据的处理结果了解其他进程处理的进度,进而实现进程间通信;通过基于上述处理结果,以便各个进程继续执行多个测例。通过该设置,当在不同机器之间不存在共享文件系统时,协同执行分布式功能的不同机器无法通过共享文件系统或者没有搭建共享文件系统时,仍然可以实现多进程间测例同步执行,保证多个进程的正确执行。
附图说明
[0019]为了更清楚地说明本专利技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020]图1是本专利技术实施例提供的一种测例同步执行的方法的流程示意图;
[0021]图2是本专利技术实施例提供的其中一种测例同步执行的方法的流程示意图;
[0022]图3是本专利技术实施例提供的另一种测例同步执行的方法的流程示意图;
[0023]图4是本专利技术实施例提供的一种测例同步执行的装置的结构示意图;
[0024]图5是本专利技术实施例提供的又一种测例同步执行的装置的结构示意图。
具体实施方式
[0025]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。
[0026]应当理解,本申请的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选
地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0027]在本专利技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本专利技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本专利技术所描述的实施例可以与其它实施例相结合。
[0028]在本申请中,测例同步可以理解为,在为执行测例而建立的多个进程中,这些进程因为需要在某些位置上协调它们的工作次序等而等待、传递信息所产生的制约关系。具体来说,本申请实施例的测例同步,是指所有工作进程总会等待主进程也执行到当前测例,才继续执行其他测例;或者,在所有进程均执行完当前测例,才执行其他测例。
[0029]需要说明的是,进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。一个服务器可以对应一个进程,也可以对应多个进程。其中,进程可包括主进程以及工作进程。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种测例同步执行的方法,其特征在于,所述方法应用于一个或多个服务器,所述一个或多个服务器对应多个进程,每个所述多个进程执行多个测例,所述方法包括:确定所述多个进程的同步点;在所述多个进程间创建共享数据;当所述多个进程中的任意一个进程执行到所述同步点时,对所述共享数据进行处理,以得到数据处理结果;基于所述数据处理结果,继续执行所述多个测例。2.根据权利要求1所述的方法,其特征在于,所述共享数据为共享队列,所述多个进程包括主进程,当所述多个进程中的主进程执行到所述同步点时,对所述共享数据进行处理,包括:当所述主进程执行到所述同步点时,生成多个队列元素;将所述多个队列元素存储在所述共享队列中。3.根据权利要求1所述的方法,其特征在于,所述共享数据为共享队列,所述多个进程包括多个工作进程,当所述多个进程中的任意一个工作进程执行到所述同步点时,对所述共享数据进行处理,包括:在所述工作进程执行到所述同步点时,从所述共享队列中读取一个队列元素;将所述读取的队列元素从所述共享队列中移除。4.根据权利要求3所述的方法,其特征在于,所述基于所述数据处理结果,继续执行所述多个测例,包括:若所述任一工作进程从所述共享队列中未读取到队列元素,则持续读取,直到所述工作进程读取成功,继续执行所述多个测例,以保证所述多个工作进程等所述主进程执行到所述同步点时,才能继续执行所述多个测例。5.根据权利要求3所述的方法,其特征在于,所述工作进程的数量与主进程生成的队列元素的数量相同,以保证所述多个工作进程最终都能从所述共享队列中读取到元素。6.根据权利要求1所述的方法,其特征在于,所述共享数据为共享标志位,当所述多个进程中的任意一个进程执行到所述同步点时,对所述共享数据进行处理,包括:当所述多个进程中的任意一个进程执行到所述同步点时,对所述...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1