发明内容
本申请提供一种数据传输测试方法、装置、设备以及存储介质,以解决对于节点内每条连接链路,如何获取不同长度待传输数据对应的传输时间最小的数据传输策略的问题。
第一方面,本申请提供一种数据传输测试方法,包括:
获取目标节点的拓扑结构信息,所述拓扑结构信息包括CPU和异构加速器的存储空间以及数据链路信息;
根据所述拓扑结构信息和待测试的传输策略创建多个测试项,每个所述测试项包括待传输数据长度、一个待测试的传输策略和一条待测试连接链路,所述待测试连接链路为所述数据链路信息中的连接链路;
根据所述多个测试项进行数据传输测试,得到每个测试项的测试结果;
根据所述每个测试项的测试结果,确定所述数据链路信息中每条连接链路的传输策略信息,所述传输策略信息包括传输数据长度区间和传输时间最小的传输策略的对应关系。
可选的,所述数据链路信息包括CPU与异构加速器之间的连接链路和距离以及两个异构加速器之间的连接链路和距离,所述获取所述目标节点的数据链路信息,包括:
根据所述每个CPU与异构加速器之间的连接链路的类型和所述每个CPU与异构加速器之间的非统一内存访问NUMA距离,确定每个CPU与异构加速器之间的距离;
根据两个异构加速器的连接链路的类型和两个异构加速器之间的NUMA距离,确定两个异构加速器之间的距离;
其中,所述连接链路的类型包括PCI-E链路和高速互联链路。
上述申请中的另一个实施例具有如下优点或者有益效果:由于每个CPU与异构加速器之间的连接链路,或者两个异构加速器之间的链路可能有一条或多条,通过根据每个CPU与异构加速器之间的连接链路的类型和每个CPU与异构加速器之间的NUMA距离,确定每个CPU与异构加速器之间的距离,并根据两个异构加速器的连接链路的类型和两个异构加速器之间的NUMA距离,确定两个异构加速器之间的距离,从而可使得在进行数据传输测试时,可测试到所有连接链路,实现连接链路的全面测试。
可选的,所述根据所述拓扑结构信息和待测试的传输策略创建多个测试项,包括:
依次选取所述数据链路信息中的一条连接链路作为待测试连接链路,根据所述待测试连接链路的两个传输方的存储空间,确定传输数据长度的取值区间,所述传输数据长度的取值区间的第一端值为预设值,所述传输数据长度的取值区间的第二端值为所述待测试连接链路的两个传输方的存储空间中的最小值,所述传输方为CPU或异构加速器;
根据所述传输数据长度的取值区间和预设间隔确定多个待传输数据长度;
根据所述待测试连接链路、所确定的多个待传输数据长度和所述待测试的传输策略,创建多个测试项。
上述申请中的另一个实施例具有如下优点或者有益效果:通过在创建多个测试项时,对数据链路信息中的每一条连接链路,根据待测试连接链路的两个传输方的存储空间确定传输数据长度的取值区间,传输数据长度的取值区间的第二端值为待测试连接链路的两个传输方的存储空间中的最小值,可保证每条连接链路的传输数据长度的取值区间与该连接链路是相符合的,确保测试的准确性。
可选的,所述待测试的传输策略包括CPU直接传输策略、SDMA传输策略和临时缓冲区传输策略中的至少一个,所述临时缓冲区传输策略携带策略设置信息,所述策略设置信息包括缓冲区大小的取值区间和缓冲区数量的取值区间;
若所述待测试的传输策略为所述临时缓冲区传输策略,所述根据所述待测试连接链路、所确定的多个待传输数据长度和所述待测试的传输策略,创建多个测试项,包括:
根据所述缓冲区大小的取值区间和所述缓冲区数量的取值区间,确定出多个待测试的临时缓冲区传输策略,每一个待测试的临时缓冲区传输策略对应一缓冲区大小和缓冲区数量;
根据所述待测试连接链路、所确定的多个待传输数据长度和所述待测试的临时缓冲区传输策略,创建多个测试项。
上述申请中的另一个实施例具有如下优点或者有益效果:在创建测试项时,可以创建不同缓冲区大小和不同缓冲区数量对应的临时缓冲区传输策略对应的测试项,从而可以测试缓冲区大小和缓冲区数量可变的临时缓冲区传输策略,大大增加了每条连接链路的传输策略的可选的数量,对于每条链路,可以获取到与待传输数据长度对应的更合适的传输策略。
可选的,所述根据所述多个测试项进行数据传输测试,得到每个测试项的测试结果,包括:
依次对每个测试项,使用所述待测试的传输策略将所述待传输数据长度在所述待测试连接链路上进行数据传输,得到每个测试项的测试结果。
上述申请中的另一个实施例具有如下优点或者有益效果:通过对每个测试项,使用所述待测试的传输策略将所述待传输数据长度在所述待测试连接链路上进行数据传输,得到每个测试项的测试结果,可保证测试结果的准确性。
可选的,所述测试结果包括传输时间,所述根据所述每个测试项的测试结果,确定所述数据链路信息中每条连接链路的传输策略信息,包括:
分别根据所述每条连接链路对应的测试项及测试项的测试结果,确定所述每条连接链路下所有待测试的传输策略对应的多条传输时间曲线,所述传输时间曲线表征待传输数据长度与传输时间的对应关系;
从所述多条传输时间曲线中查找第一关键点、第二关键点和第三关键点,所述第一关键点为所述多条传输时间曲线的交点,所述第二关键点和所述第三关键点分别为所述多条传输时间曲线中最小长度的待传输数据传输时间最小时对应的点和最大长度的待传输数据传输时间最小时对应的点;
根据所述第一关键点、所述第二关键点、所述第三关键点和所述多条传输时间曲线,确定所述传输策略信息。
上述申请中的另一个实施例具有如下优点或者有益效果:在通过数据传输测试获取节点内每条连接链路的传输数据长度区间对应的传输时间最小的传输策略时,所获取的每条连接链路的传输数据长度区间对应的传输时间最小的传输策略具有较高的准确性和较低的存储占用率。
可选的,所述测试结果还包括CPU占用率和内存占用率,所述根据所述第一关键点、所述第二关键点、所述第三关键点和所述多条传输时间曲线,确定所述传输策略信息,包括:
根据所述第一关键点对应的测试项的CPU占用率和内存占用率,调整所述第一关键点向左移动或向右移动,得到第四关键点;
或者,
根据所述第一关键点对应的测试项的CPU占用率和内存占用率,调整所述第一关键点向左移动或向右动,得到调整后的第一关键点;
根据所述第一关键点对应的测试项中待测试连接链路的距离,再次调整所述调整后的第一关键点向左移动或向右移动,得到第四关键点;
根据所述第四关键点、所述第二关键点、所述第三关键点和所述多条传输时间曲线,确定所述传输策略信息。
上述申请中的另一个实施例具有如下优点或者有益效果:通过根据第一关键点对应的测试项的CPU占用率和内存占用率,调整第一关键点向左移动或向右移动,得到第四关键点,然后根据第四关键点、第二关键点、第三关键点和每条连接链路下所有待测试的传输策略对应的多条传输时间曲线,确定传输策略信息,即确定传输数据长度区间和与传输数据长度区间对应的传输时间最小的传输策略,可使得所确定的每条连接链路的传输数据长度区间和与传输数据长度区间对应的传输时间最小的传输策略中,传输时间最小,同时CPU占用率和内存占用率也较小,使得在数据传输时系统整体性能更优。
进一步地,在根据第一关键点对应的测试项的CPU占用率和内存占用率,调整第一关键点向左移动或向右移动,得到调整后的第一关键点后,根据第一关键点对应的测试项中待测试连接链路的距离,再次调整调整后的第一关键点向左移动或向右移动,得到第四关键点,不仅考虑了第一关键点对应的测试项的CPU占用率和内存占用率,还考虑了第一关键点对应的测试项中待测试连接链路的距离的影响,进一步提高了所获取的每条连接链路的传输数据长度区间对应的传输时间最小的传输策略的准确性。
第二方面,本申请提供一种数据传输测试装置,包括:
获取模块,用于获取目标节点的拓扑结构信息,所述拓扑结构信息包括CPU和异构加速器的存储空间以及数据链路信息;
处理模块,用于根据所述拓扑结构信息和待测试的传输策略创建多个测试项,每个所述测试项包括待传输数据长度、一个待测试的传输策略和一条待测试连接链路,所述待测试连接链路为所述数据链路信息中的连接链路;
测试模块,用于根据所述多个测试项进行数据传输测试,得到每个测试项的测试结果;
确定模块,用于根据所述每个测试项的测试结果,确定所述数据链路信息中每条连接链路的传输策略信息,所述传输策略信息包括传输数据长度区间和传输时间最小的传输策略的对应关系。
第三方面,本申请提供一种数据传输测试设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行第一方面或第一方面各可能的实施方式中任一所述的数据传输测试方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第一方面各可能的实施方式中任一所述的数据传输测试方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面或第一方面各可能的实施方式中任一所述的数据传输测试方法。
本申请提供的数据传输测试方法、装置、设备以及存储介质,通过获取目标节点的拓扑结构信息,拓扑结构信息包括CPU和异构加速器的存储空间以及数据链路信息,然后根据拓扑结构信息和待测试的传输策略创建多个测试项,每个测试项包括待传输数据长度、一个待测试的传输策略和一条待测试连接链路,待测试连接链路为数据链路信息中的连接链路,测试项可以覆盖目标节点内的所有连接链路,然后根据每个测试项进行数据传输测试,得到每个测试项的测试结果,最终可根据每个测试项的测试结果确定出每条连接链路的传输数据长度区间对应的传输时间最小的传输策略。从而,通过自动化的数据传输测试可获取节点内每条连接链路的传输数据长度区间对应的传输时间最小的传输策略。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
本申请实施例的说明书、权利要求书及附图中的术语“第一”和“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请实施例的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,下面对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
1、异构加速器,为一种类GPU异构加速硬件。
2、高速互联接口,为一种高速总线及高速总线的通信协议,用于CPU与异构加速器之间的互联。
3、节点,为异构加速器运行系统所在的装置,例如为主机或服务器。
为解决对于节点内每条连接链路,如何获取不同长度待传输数据对应的传输时间最小的数据传输策略的问题,本申请实施例提供一种数据传输测试方法、装置、设备以及存储介质,通过先获取节点的拓扑结构信息,拓扑结构信息包括CPU和异构加速器的存储空间以及数据链路信息,然后根据拓扑结构信息和待测试的传输策略创建测试项,每个测试项包括待传输数据长度、一个待测试的传输策略和一条待测试连接链路,待测试连接链路为数据链路信息中的连接链路,测试项可以覆盖节点内的所有连接链路,进而根据每个测试项进行数据传输测试,得到每个测试项的测试结果,最终可根据每个测试项的测试结果确定出每条连接链路的传输数据长度区间对应的传输时间最小的传输策略,从而,可获取节点内每条连接链路的传输数据长度区间对应的传输时间最小的传输策略。下面结合附图对本申请提供的技术方案进行详细说明。
接下来,对本申请实施例涉及的应用场景进行示例说明。
本申请实施例提供的数据传输测试方法至少可应用于异构加速器运行系统中的异步数据传输场景中,在进行异步数据传输时需要为异构加速器所配置的SDMA引擎配置SDMA引擎信息,具体是配置SDMA引擎信息中包括的每条连接链路的传输数据长度区间对应的传输时间最小的传输策略,其中的异构加速器运行系统可位于节点(如主机或服务器)中,该节点的架构是NUMA架构,该节点内采用多路CPU结构,即至少包括两个CPU,至少包括4个异构加速器,1个CPU连接至少2个异构加速器。下面结合附图进行说明。
示例性的,图1为本申请实施例提供的数据传输测试方法的一种应用场景示意图,如图1所示,本实施例中涉及一节点,该节点的架构是NUMA架构,该节点内采用多路CPU结构,本实施例中以节点包括两个CPU(图1中所示CPU0和CPU1)和4个异构加速器(图1中所示异构加速器0、异构加速器1、异构加速器2和异构加速器3)为例,每个CPU具有独立内存控制器,CPU0所在的NUMA为NUMA0,CPU1所在的NUMA为NUMA1,CPU0所在的NUMA0拥有内存0,CPU0同时连接异构加速器0和异构加速器1;CPU1所在的NUMA1拥有内存1,CPU1同时连接异构加速器2和异构加速器3。连接链路包括CPU与异构加速器之间的连接链路以及两个异构加速器之间的连接链路。如图1中所示,CPU0与异构加速器0之间的连接链路、CPU0与异构加速器1之间的连接链路以及CPU1与异构加速器2之间的连接链路、CPU1与异构加速器3之间的连接链路以及异构加速器0与异构加速器1之间的连接链路、异构加速器2与异构加速器3之间的连接链路均为高速链路。
下面以具体的实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的一种数据传输测试方法的流程图,该数据传输测试方法可以由数据传输测试装置执行,该数据传输测试装置可以通过软件和/或硬件的方式实现。如图2所示,本实施例的方法可以包括:
S101、获取目标节点的拓扑结构信息,拓扑结构信息包括CPU和异构加速器的存储空间以及数据链路信息。
具体地,异构加速器运行系统可位于目标节点中,获取目标节点的拓扑结构信息,具体是指获取异构加速器运行系统的拓扑结构信息,拓扑结构信息包括每个CPU的存储空间、每个异构加速器的存储空间和数据链路信息,还可以包括CPU的数量和异构加速器的数量,数据链路信息包括CPU与异构加速器之间的连接链路和距离以及两个异构加速器之间的连接链路和距离。以图1所示的节点为例,获取该节点的拓扑结构信息包括:2个CPU、4个异构加速器、2个CPU中每个CPU的存储空间、4个异构加速器中每个异构加速器的存储空间和数据链路信息,数据链路信息包括CPU0分别与4个异构加速器之间的连接链路、CPU1分别与4个异构加速器之间的连接链路以及4个异构加速器之间的连接链路,如异构加速器0与异构加速器1之间的连接链路、异构加速器2与异构加速器3之间的连接链路、异构加速器0与异构加速器2之间的连接链路、异构加速器0与异构加速器3之间的连接链路、异构加速器1与异构加速器2之间的连接链路和异构加速器1与异构加速器3之间的连接链路。
其中,CPU的数量和异构加速器的数量、每个CPU的存储空间以及每个异构加速器的存储空间可以直接获取到。
作为一种可实施的方式,图3为本申请实施例提供的一种数据传输测试方法中获取目标节点的数据链路信息的流程图,如图3所示,获取目标节点的数据链路信息,可以包括:
S1011、根据每个CPU与异构加速器之间的连接链路的类型和每个CPU与异构加速器之间的NUMA距离,确定每个CPU与异构加速器之间的距离。
具体地,先计算每个CPU与异构加速器之间的非统一内存访问(Non UniformMemory Access,NUMA)距离,若CPU与异构加速器直接连接,则CPU与异构加速器之间的NUMA距离为CPU与异构加速器之间的传输时间;若CPU与异构加速器之间通过其它CPU连接,则CPU与异构加速器之间的NUMA距离为其它CPU与异构加速器之间的传输时间和两个CPU之间的中继延时之和。
在确定每个CPU与异构加速器之间的距离时,可以先获取每个CPU与异构加速器之间的连接链路的类型,连接链路的类型包括PCI-E链路和高速互联链路。其中,高速互联链路是指通过高速互联接口(如NVLink或XGMI)连接的链路。
根据每个CPU与异构加速器之间的连接链路的类型和每个CPU与异构加速器之间的NUMA距离,确定每个CPU与异构加速器之间的距离。
例如,第一CPU与第一异构加速器之间的连接链路有两条,一条是PCI-E链路,另一条是高速互联链路,两条连接链路的距离均为第一CPU与第一异构加速器之间的NUMA距离,所确定的第一CPU与第一异构加速器之间的距离为包括PCI-E链路对应的NUMA距离和高速互联链路对应的NUMA距离。
S1012、根据两个异构加速器的连接链路的类型和两个异构加速器之间的NUMA距离,确定两个异构加速器之间的距离。
具体地,先计算两个异构加速器之间的NUMA距离,两个异构加速器的连接链路有一条或多条,例如,第一异构加速器与第二异构加速器之间的连接链路有两条,一条是PCI-E链路,另一条是高速互联链路,两条连接链路的距离均为第一异构加速器与第二异构加速器之间的NUMA距离,所确定的第一异构加速器与第二异构加速器之间的距离为包括PCI-E链路对应的NUMA距离和高速互联链路对应的NUMA距离。
S102、根据拓扑结构信息和待测试的传输策略创建多个测试项,每个测试项包括待传输数据长度、一个待测试的传输策略和一条待测试连接链路,待测试连接链路为数据链路信息中的连接链路。
具体地,拓扑结构信息包括CPU和异构加速器的存储空间以及数据链路信息,可以是根据数据链路信息、待测试的传输策略、每个CPU的存储空间和每个异构加速器的存储空间创建多个测试项,待测试的传输策略可以是预存的,待测试的传输策略包括CPU直接传输策略、SDMA传输策略和临时缓冲区传输策略中的至少一个,其中,临时缓冲区传输策略携带策略设置信息,策略设置信息包括缓冲区大小的取值区间和缓冲区数量的取值区间,缓冲区大小的取值可以为2的幂次方,缓冲区数量的取值可以为正整数。通过临时缓冲区传输策略携带策略设置信息,可选的,在创建测试项时,可以创建不同缓冲区大小和不同缓冲区数量对应的临时缓冲区传输策略对应的测试项,从而可以测试缓冲区大小和缓冲区数量可变的临时缓冲区传输策略,大大增加了每条连接链路的传输策略的可选的数量,对于每条链路,可以获取到与待传输数据长度对应的更合适的传输策略。
作为一种可实施的方式,S102中根据拓扑结构信息和待测试的传输策略创建多个测试项,具体可以包括:
S1021、依次选取数据链路信息中的一条连接链路作为待测试连接链路,根据待测试连接链路的两个传输方的存储空间,确定传输数据长度的取值区间,传输数据长度的取值区间的第一端值为预设值,传输数据长度的取值区间的第二端值为待测试连接链路的两个传输方的存储空间中的最小值,传输方为CPU或异构加速器。
具体地,可以是分别针对数据链路信息中的每一条连接链路创建测试项,例如,数据链路信息中包括8条连接链路,分别针对这8条连接链路,创建每条连接链路对应的测试项。
例如,选取第一CPU与第一异构加速器之间的第一条连接链路作为待测试连接链路,先根据待测试连接链路的两个传输方(即第一CPU与第一异构加速器)的存储空间确定传输数据长度的取值区间,传输数据长度的取值区间的第一端值为预设值(例如为0、32KB或其他值),第一CPU的存储空间例如为64MB(比特),第一异构加速器的存储空间例如为128MB,则传输数据长度的取值区间的第二端值为64MB。
S1022、根据传输数据长度的取值区间和预设间隔确定多个待传输数据长度。
例如,通过S1022确定的传输数据长度的取值区间为[32KB,1024KB],预设间隔例如为2的幂次方,则确定出的多个待传输数据长度从小到大依次为:32KB、64KB、128KB、256KB、512KB、1024KB。
S1023、根据待测试连接链路、所确定的多个待传输数据长度和待测试的传输策略,创建多个测试项。
进一步地,若待测试的传输策略为临时缓冲区传输策略,根据待测试连接链路、所确定的多个待传输数据长度和待测试的传输策略,创建多个测试项,具体可以为:
根据缓冲区大小的取值区间和缓冲区数量的取值区间,确定出多个待测试的临时缓冲区传输策略,每一个待测试的临时缓冲区传输策略对应一缓冲区大小和缓冲区数量。根据待测试连接链路、所确定的多个待传输数据长度和待测试的临时缓冲区传输策略,创建多个测试项。
其中,缓冲区大小的取值区间和缓冲区数量的取值区间可以是预存的。例如,以待测试连接链路为第一CPU与第一异构加速器之间的第一条连接链路为例,以所确定的多个待传输数据长度从小到大依次为:32KB、64KB、128KB、256KB、512KB、1024KB为例,以待测试的传输策略包括CPU直接传输策略、SDMA传输策略和S1-S3为例,其中,S1-S3为临时缓冲区传输策略。创建的30个测试项如下表二所示:
表二创建的30个测试项
S103、根据多个测试项进行数据传输测试,得到每个测试项的测试结果。
具体地,作为一种可实施的方式,根据多个测试项进行数据传输测试,得到每个测试项的测试结果,具体可以为:
依次对每个测试项,使用待测试的传输策略将待传输数据长度在待测试连接链路上进行数据传输,得到每个测试项的测试结果。其中,测试结果可以包括传输时间,或者,测试结果可以包括传输时间、CPU占用率和内存占用率,其中CPU占用率和内存占用率为待测试连接链路的数据发送方的CPU占用率和内存占用率。
S104、根据每个测试项的测试结果,确定数据链路信息中每条连接链路的传输策略信息,传输策略信息包括传输数据长度区间和传输时间最小的传输策略的对应关系。
具体地,得到每个测试项的测试结果后,可以根据数据链路信息中每条连接链路的所有测试项的测试结果,来确定出每条连接链路的传输策略信息。例如,连接链路1为第一CPU与第一异构加速器之间的连接链路,根据连接链路1的所有测试项的测试结果,可以确定出连接链路1的传输策略信息,传输策略信息包括传输数据长度区间和与传输数据长度区间对应的传输时间最小的传输策略,需要说明的是,传输数据长度区间还可以是一传输数据长度,如[32,32],下面表一示出了一条连接链路的传输策略信息的示例,表一中以该条连接链路的传输数据长度总区间为32KB-512KB为例:
表一传输策略信息
其中,S2和S3为两个临时缓冲区传输策略,S2和S3的缓冲区大小和缓冲区数量不同。
在根据连接链路1的所有测试项的测试结果,确定出连接链路1的传输策略信息时,例如可以是按照待传输数据长度从大到小或从小到大的顺序,确定每一待传输数据长度对应的传输时间最小的传输策略,然后按照相同传输策略合并传输数据长度区间,得到传输数据长度区间和与传输数据长度区间对应的传输时间最小的传输策略。还可以采用其它方式确定,本实施例对此不作限制。
进一步地,若待测试的传输策略为临时缓冲区传输策略,传输策略信息还包括缓冲区大小和缓冲区数量。
本实施例提供的数据传输测试方法,通过获取目标节点的拓扑结构信息,拓扑结构信息包括CPU和异构加速器的存储空间以及数据链路信息,然后根据拓扑结构信息和待测试的传输策略创建多个测试项,每个测试项包括待传输数据长度、一个待测试的传输策略和一条待测试连接链路,待测试连接链路为数据链路信息中的连接链路,测试项可以覆盖目标节点内的所有连接链路,然后根据每个测试项进行数据传输测试,得到每个测试项的测试结果,最终可根据每个测试项的测试结果确定出每条连接链路的传输数据长度区间对应的传输时间最小的传输策略。从而,通过自动化的数据传输测试可获取目标节点内每条连接链路的传输数据长度区间对应的传输时间最小的传输策略。
图4为本申请实施例提供的一种数据传输测试方法实施例的流程图,如图4所示,本实施例中测试结果包括传输时间,本实施例的方法在图2所示方法的基础上,可选的,上述S104可以通过如下步骤实现:
S1041、分别根据每条连接链路对应的测试项及测试项的测试结果,确定每条连接链路下所有待测试的传输策略对应的多条传输时间曲线,传输时间曲线表征待传输数据长度与传输时间的对应关系。
具体地,即就是分别根据数据链路信息中每条连接链路对应的测试项及测试项的测试结果,执行S1041-S1045,得到每条连接链路的传输策略信息。
具体地,每一个待测试的传输策略对应一条传输时间曲线,具体可以根据一个待测试的传输策略对应的待传输数据长度与传输时间绘制一条传输时间曲线,例如建立二维坐标,横轴为待传输数据长度,纵轴为传输时间,根据不同待传输数据长度对应的传输时间即可绘制出一条传输时间曲线。
S1042、从多条传输时间曲线中查找第一关键点、第二关键点和第三关键点,第一关键点为多条传输时间曲线的交点,第二关键点和第三关键点分别为多条传输时间曲线中最小长度的待传输数据传输时间最小时对应的点和最大长度的待传输数据传输时间最小时对应的点。
例如,一条连接链路下所有待测试的传输策略有10个,包括CPU直接传输策略、SDMA传输策略和8个临时缓冲区传输策略,8个临时缓冲区传输策略分别对应不同的缓冲区大小和缓冲区数量,查找该10个待测试的传输策略对应的传输时间曲线的交点,可以理解的是,这些交点是多个,将该多个交点确定为第一关键点,即第一关键点是多个。
接着查找每条连接链路下所有待测试的传输策略对应的传输时间曲线中最小长度的待传输数据传输时间最小时对应的点和最大长度的待传输数据传输时间最小时对应的点,分别为第二关键点和第三关键点。可以理解的是,第二关键点和第三关键点均为一个。
S1043、根据第一关键点、第二关键点、第三关键点和多条传输时间曲线,确定传输策略信息。
具体地,将传输时间最小的传输策略中相同传输时间的传输策略对应的传输数据长度合并,可得到传输数据长度区间对应的传输时间最小的传输策略,例如传输数据长度32KB时传输时间最小的传输策略为SDMA传输策略,传输数据长度64KB时传输时间最小的传输策略也为SDMA传输策略,合并后可得传输数据长度区间[32KB,64KB]对应的传输时间最小的传输策略为SDMA传输策略。通过合并,可保证较低的存储占用率。
根据传输数据长度区间和与传输数据长度区间对应的传输时间最小的传输策略,即可得到传输策略信息。
可选的,在临时缓冲区传输策略的个数较多时,还可以将所有传输时间曲线绘制为传输时间曲面,图5为本申请实施例提供的一种传输时间曲面的示意图,图5中示出了部分传输策略在固定区间内绘制的测试时间曲面。图5中所示的三维坐标中,X轴为传输数据长度,Y轴为传输策略,Z轴为传输时间(单位微秒),S1、S2、S4、S8、S16、S32、S64为不同的临时缓冲区传输策略,N为一种SDMA传输策略。根据该测试时间曲面所展现的数据特征可以确定传输数据长度区间和与传输数据长度区间对应的传输时间最小的传输策略。以图5中所示的传输时间曲面中传输时间曲线A、传输时间曲线B和传输时间曲线C为例,根据传输时间曲线A可以确定针对32MB及32MB以下长度的传输数据,除N外的传输策略为传输时间最小的传输策略。根据传输时间曲线B可以确定,在传输数据长度为64MB应选择S2和S4作为传输时间最小的传输策略;根据传输时间曲线C可以确定在传输数据长度为1MB时,除N外的各传输策略差异较小,需要对具体测试时间数据进行对比,才能确定出传输时间最小的传输策略。
传输时间曲面相对于传输时间曲线,传输时间曲面可以显示更多测试项对应的传输时间曲线,并且能够显示的更清楚,对比更明显。
本实施例提供的数据传输测试方法,在根据每个测试项的测试结果确定出每条连接链路的传输数据长度区间对应的传输时间最小的传输策略时,具体是先根据每条连接链路对应的测试项和测试项的测试结果,确定每条连接链路下每一个待测试的传输策略对应的传输时间曲线,然后查找每条连接链路下所有待测试的传输策略对应的传输时间曲线的交点,将交点确定为第一关键点,查找每条连接链路下所有待测试的传输策略对应的传输时间曲线中最小长度的待传输数据传输时间最小时对应的第二关键点和最大长度的待传输数据传输时间最小时对应的第三关键点,根据第一关键点、第二关键点、第三关键点和每条连接链路下所有待测试的传输策略对应的传输时间曲线,确定传输策略信息,即确定传输数据长度区间和传输时间最小的传输策略的对应关系。从而,在通过数据传输测试获取节点内每条连接链路的传输数据长度区间对应的传输时间最小的传输策略时,所获取的每条连接链路的传输数据长度区间对应的传输时间最小的传输策略具有较高的准确性和较低的存储占用率。
进一步地,本实施例中测试结果还可以包括CPU占用率和内存占用率,作为一种可实施的方式,上述S1043可以通过如下步骤实现:
S10431、根据第一关键点对应的测试项的CPU占用率和内存占用率,调整第一关键点向左移动或向右移动,得到第四关键点。
其中,具体可以是根据测试项的CPU占用率和内存占用率的大小,调整第一关键点向左移动或向右移动,例如,大于预设阈值(CPU占用率和内存占用率扥别对应一预设阈值),则向右移动,小于或等于预设阈值,则向左移动。具体移动的距离值可根据经验值确定。
或者,S10431也可以为:根据第一关键点对应的测试项的CPU占用率和内存占用率,调整第一关键点向左移动或向右动,得到调整后的第一关键点,根据第一关键点对应的测试项中待测试连接链路的距离,再次调整调整后的第一关键点向左移动或向右移动,得到第四关键点。其中,通常是待测试连接链路的距离越大,第一关键点受该距离的影响越大,在调整时将第一关键点向右侧移动;待测试连接链路的距离越小,第一关键点受该距离的影响越小,在调整时将第一关键点向左侧移动,具体移动的距离可根据经验值确定。
S10432、根据第四关键点、第二关键点、第三关键点和每条连接链路下所有待测试的传输策略对应的多条传输时间曲线,确定传输策略信息。
本实施例中,通过根据第一关键点对应的测试项的CPU占用率和内存占用率,调整第一关键点向左移动或向右移动,得到第四关键点,然后根据第四关键点、第二关键点、第三关键点和每条连接链路下所有待测试的传输策略对应的多条传输时间曲线,确定传输策略信息,即确定传输数据长度区间和传输时间最小的传输策略的对应关系,可使得所确定的每条连接链路的传输数据长度区间和与传输数据长度区间对应的传输时间最小的传输策略中,传输时间最小,同时CPU占用率和内存占用率也较小,使得在数据传输时系统整体性能更优。
进一步地,在根据第一关键点对应的测试项的CPU占用率和内存占用率,调整第一关键点向左移动或向右移动,得到调整后的第一关键点后,根据第一关键点对应的测试项中待测试连接链路的距离,再次调整调整后的第一关键点向左移动或向右移动,得到第四关键点,不仅考虑了第一关键点对应的测试项的CPU占用率和内存占用率,还考虑了第一关键点对应的测试项中待测试连接链路的距离的影响,进一步提高了所获取的每条连接链路的传输数据长度区间对应的传输时间最小的传输策略的准确性。
下面结合一个具体的实施例,对本申请提供的数据传输测试方法的详细过程进行说明。
图6为本申请实施例提供的一种数据传输测试方法的流程图,该数据传输测试方法可以由数据传输测试装置执行,该数据传输测试装置可以通过软件和/或硬件的方式实现。如图5所示,本实施例的方法可以包括:
S201、获取目标节点的CPU的数量、异构加速器的数量、每个CPU的存储空间和每个异构加速器的存储空间。
S202、获取目标节点的数据链路信息,数据链路信息包括CPU与异构加速器之间的连接链路和距离以及两个异构加速器之间的连接链路和距离。
具体地,S202的具体过程可参见上述图3所示实施例中S1011-S1017的过程描述,此处不再赘述。
S203、根据数据链路信息、待测试的传输策略、每个CPU的存储空间和每个异构加速器的存储空间创建多个测试项,每个测试项包括待传输数据长度、一个待测试的传输策略和一条待测试连接链路,待测试连接链路为数据链路信息中的连接链路。
具体地,待测试的传输策略可以是预存的,本实施例中以待测试的传输策略包括CPU直接传输策略、SDMA传输策略和临时缓冲区传输策略为例,其中临时缓冲区传输策略携带策略设置信息,策略设置信息包括缓冲区大小的取值区间和缓冲区数量的取值区间,缓冲区大小的取值为2的幂次方,缓冲区数量的取值为正整数。
S202的具体过程可以为:
S2021、依次选取数据链路信息中的一条连接链路作为待测试连接链路,根据待测试连接链路的两个传输方的存储空间确定传输数据长度的取值区间,传输数据长度的取值区间的第一端值为预设值,传输数据长度的取值区间的第二端值为待测试连接链路的两个传输方的存储空间中的最小值,传输方为CPU或异构加速器。
S2022、根据传输数据长度的取值区间和预设间隔确定多个待传输数据长度。
S2023、根据缓冲区大小的取值区间和缓冲区数量的取值区间,确定出多个待测试的临时缓冲区传输策略,每一个待测试的临时缓冲区传输策略对应一缓冲区大小和缓冲区数量。
S2024、根据待测试连接链路、所确定的多个待传输数据长度和CPU直接传输策略、SDMA传输策略与所确定的待测试的临时缓冲区传输策略,创建多个测试项。
S204、依次对每个测试项,使用待测试的传输策略将待传输数据长度在待测试连接链路上进行数据传输,得到每个测试项的测试结果。
S205、分别根据每条连接链路对应的测试项及测试项的测试结果,确定每条连接链路下所有待测试的传输策略对应的多条传输时间曲线,传输时间曲线表征待传输数据长度与传输时间的对应关系。
具体地,即就是分别根据数据链路信息中每条连接链路对应的测试项及测试项的测试结果,执行S206-S210,得到每条连接链路的传输策略信息。
具体地,每一个待测试的传输策略对应一条传输时间曲线,具体可以根据一个待测试的传输策略对应的待传输数据长度与传输时间绘制一条传输时间曲线,例如建立二维坐标,横轴为待传输数据长度,纵轴为传输时间,根据不同待传输数据长度对应的传输时间即可绘制出一条传输时间曲线。
图7为本申请实施例提供的一种的传输时间曲线的示意图,如图7所示,横轴为待传输数据长度(例如从32KB-128MB),纵轴为传输时间(单位为微秒),图7中有8条传输时间曲线,分别对应的传输策略为:S1、S2、S4、S8、S16、S32、S64和N,其中S1、S2、S4、S8、S16、S32、S64为不同的临时缓冲区传输策略,N为一种SDMA传输策略。
S206、查找每条连接链路下所有待测试的传输策略对应的传输时间曲线的交点,将交点确定为第一关键点。
可以理解的是,这些交点是多个,将该多个交点确定为第一关键点,即第一关键点是多个。如图7中所示,由于8条传输时间曲线重合的部分较多,图7仅示出了两个第一关键点。
S207、查找每条连接链路下所有待测试的传输策略对应的传输时间曲线中最小长度的待传输数据传输时间最小时对应的第二关键点和最大长度的待传输数据传输时间最小时对应的第三关键点。
以图7为例,最小长度的待传输数据为32KB,最大长度的待传输数据为128MB,32KB的待传输数据传输时间最小时对应的第二关键点和128MB的待传输数据传输时间最小时对应的第三关键点见图7中所示。
S208、根据第一关键点对应的测试项的CPU占用率和内存占用率,调整第一关键点向左移动或向右动,得到调整后的第一关键点。
其中,具体可以是根据测试项的CPU占用率和内存占用率的大小,调整第一关键点向左移动或向右移动,例如,大于预设阈值(CPU占用率和内存占用率扥别对应一预设阈值),则向右移动,小于或等于预设阈值,则向左移动。
S209、根据第一关键点对应的测试项中待测试连接链路的距离,再次调整调整后的第一关键点向左移动或向右移动,得到第四关键点。
其中,通常是待测试连接链路的距离越大,第一关键点受该距离的影响越大,在调整时将第一关键点向右侧移动;待测试连接链路的距离越小,第一关键点受该距离的影响越小,在调整时将第一关键点向左侧移动,具体移动的距离值可根据经验值确定。
S210、根据第四关键点、第二关键点、第三关键点和每条连接链路下所有待测试的传输策略对应的传输时间曲线,确定传输数据长度区间和与传输数据长度区间对应的传输时间最小的传输策略。
S211、对于每条连接链路,根据所确定的传输数据长度区间和与传输数据长度区间对应的传输时间最小的传输策略,得到每条连接链路的传输策略信息。
以下为本申请装置实施例,可以用于执行本申请上述方法实施例。对于本申请装置实施例中未披露的细节,可参考本申请上述方法实施例。
图8为本申请实施例提供的一种数据传输测试装置的结构示意图,如图8所示,本实施例的装置可以包括:获取模块11、处理模块12、测试模块13和确定模块14,其中,
获取模块11用于获取目标节点的拓扑结构信息,拓扑结构信息包括CPU和异构加速器的存储空间以及数据链路信息;
处理模块12用于根据拓扑结构信息和待测试的传输策略创建多个测试项,每个测试项包括待传输数据长度、一个待测试的传输策略和一条待测试连接链路,待测试连接链路为数据链路信息中的连接链路;
测试模块13用于根据多个测试项进行数据传输测试,得到每个测试项的测试结果;
确定模块14用于根据每个测试项的测试结果,确定数据链路信息中每条连接链路的传输策略信息,传输策略信息包括传输数据长度区间和传输时间最小的传输策略的对应关系。
可选的,数据链路信息包括CPU与异构加速器之间的连接链路和距离以及两个异构加速器之间的连接链路和距离,获取模块11用于:
根据每个CPU与异构加速器之间的连接链路的类型和每个CPU与异构加速器之间的非统一内存访问NUMA距离,确定每个CPU与异构加速器之间的距离;
根据两个异构加速器的连接链路的类型和两个异构加速器之间的NUMA距离,确定两个异构加速器之间的距离;
其中,连接链路的类型包括PCI-E链路和高速互联链路。
可选的,处理模块12用于:
依次选取数据链路信息中的一条连接链路作为待测试连接链路,根据待测试连接链路的两个传输方的存储空间确定传输数据长度的取值区间,传输数据长度的取值区间的第一端值为预设值,传输数据长度的取值区间的第二端值为待测试连接链路的两个传输方的存储空间中的最小值,传输方为CPU或异构加速器;
根据传输数据长度的取值区间和预设间隔确定多个待传输数据长度;
根据待测试连接链路、所确定的多个待传输数据长度和待测试的传输策略,创建多个测试项。
可选的,待测试的传输策略包括CPU直接传输策略、SDMA传输策略和临时缓冲区传输策略中的至少一个;
其中,临时缓冲区传输策略携带策略设置信息,策略设置信息包括缓冲区大小的取值区间和缓冲区数量的取值区间,缓冲区大小的取值可以为2的幂次方,缓冲区数量的取值可以为正整数;
若待测试的传输策略为临时缓冲区传输策略,处理模块12用于:
根据缓冲区大小的取值区间和缓冲区数量的取值区间,确定出多个待测试的临时缓冲区传输策略,每一个待测试的临时缓冲区传输策略对应一缓冲区大小和缓冲区数量;
根据待测试连接链路、所确定的多个待传输数据长度和待测试的临时缓冲区传输策略,创建多个测试项。
可选的,测试模块13用于依次对每个测试项,使用待测试的传输策略将待传输数据长度在待测试连接链路上进行数据传输,得到每个测试项的测试结果。
可选的,确定模块14用于:
分别根据每条连接链路对应的测试项及测试项的测试结果,确定每条连接链路下所有待测试的传输策略对应的多条传输时间曲线,传输时间曲线表征待传输数据长度与传输时间的对应关系;
从多条传输时间曲线中查找第一关键点、第二关键点和第三关键点,第一关键点为多条传输时间曲线的交点,第二关键点和第三关键点分别为多条传输时间曲线中最小长度的待传输数据传输时间最小时对应的点和最大长度的待传输数据传输时间最小时对应的点;
根据第一关键点、第二关键点、第三关键点和多条传输时间曲线,确定传输策略信息。
进一步地,测试结果还包括CPU占用率和内存占用率,确定模块14用于:
根据第一关键点对应的测试项的CPU占用率和内存占用率,调整第一关键点向左移动或向右移动,得到第四关键点;
或者,
根据第一关键点对应的测试项的CPU占用率和内存占用率,调整第一关键点向左移动或向右动,得到调整后的第一关键点;
根据第一关键点对应的测试项中待测试连接链路的距离,再次调整调整后的第一关键点向左移动或向右移动,得到第四关键点;
根据第四关键点、第二关键点、第三关键点和多条传输时间曲线,确定传输策略信息。
本申请实施例提供的装置,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
图9为本申请实施例提供的一种数据传输测试设备的结构示意图,如图9所示,本实施例的数据传输测试设备可以包括处理器21和存储器22,
其中,存储器22用于存储处理器21的可执行指令。
处理器21配置为经由执行可执行指令来执行上述方法实施例中的数据传输测试方法。
可选地,存储器22既可以是独立的,也可以跟处理器21集成在一起。
当存储器22是独立于处理器21之外的器件时,本实施例的数据传输测试设备还可以包括:
总线23,用于连接存储器22和处理器21。
可选地,本实施例的数据传输测试设备还可以包括:通信接口24,该通信接口24可以通过总线23与处理器21连接。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当其在计算机上运行时,使得计算机执行如上述实施例的数据传输测试方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上实施例中的数据传输测试方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。