CN117873938B - 面向异构计算的数据传输路径的确定方法及装置 - Google Patents
面向异构计算的数据传输路径的确定方法及装置 Download PDFInfo
- Publication number
- CN117873938B CN117873938B CN202410283957.5A CN202410283957A CN117873938B CN 117873938 B CN117873938 B CN 117873938B CN 202410283957 A CN202410283957 A CN 202410283957A CN 117873938 B CN117873938 B CN 117873938B
- Authority
- CN
- China
- Prior art keywords
- data transmission
- determining
- target
- transmission path
- reference data
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 826
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000004590 computer program Methods 0.000 claims description 29
- 238000003860 storage Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 7
- 230000001934 delay Effects 0.000 claims description 6
- 241000820057 Ithone Species 0.000 claims description 3
- 239000000758 substrate Substances 0.000 claims 9
- 239000000523 sample Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 230000001133 acceleration Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供了一种面向异构计算的数据传输路径的确定方法及装置,其中,该面向异构计算的数据传输路径的确定方法包括:确定N条数据传输总线,其中,所述N条数据传输总线中的每条数据传输总线为源设备和目标设备允许进行数据传输的总线,N为大于或等于1的正整数;确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,其中,第j条参考数据传输路径为所述源设备和目标设备使用第j条数据传输总线进行数据传输的最短路径;从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种面向异构计算的数据传输路径的确定方法及装置。
背景技术
随着人工智能、大数据的发展,通用处理器已无法满足各种应用对爆发的高计算能力的需求,因此,高并行、高密集计算能力的异构计算持续火热。数据库是高效组织、存储、管理数据的软件,要应对海量异构数据带来的巨大挑战,必须充分利用多核中央处理器(Central Processing Unit,简称为CPU)以及图形处理器(Graphics Processing Unit,简称为GPU)/现场可编程门阵列(Field-Programmable Gate Array,简称为FPGA)等异构硬件的高速并行处理能力,将一部分CPU任务卸载到异构硬件上去执行,如数据的扫描、谓词过滤、大量数据排序、大表连接、聚集等,以充分发挥各类计算资源的优势。
数据库异构计算加速的过程一般首先把数据从源设备(比如:磁盘或异构加速设备)拷贝至主机内存,再将主机内存的数据拷贝至异构加速设备,异构加速设备执行结束后将结果拷贝至主机内存,最后由主机将处理结果返回给用户或存储起来。现有的设备一般通过外设部件互联扩展(Peripheral Component Interconnect Express,简称为PCIe)总线与主机相连,研究表明数据的传输拷贝是数据库异构加速的性能瓶颈。为了提高数据传输的性能,提高吞吐量和降低延时,有部分厂家开始利用PCI-E Peer-to-Peer的技术由设备间直接数据传输;另外,设备间的总线互联技术也不断发展出来,比如NVLink、远程直接内存访问(Remote Direct Memory Access,简称为RDMA)和CXL等。因此,需要在设备间有多条数据传输路径中选择一条性能最优的路径。
目前,当设备之间拥有多种数据传输路径可以选择时,一般由用户在配置文件设定固定的数据传输路径或者软件直接固定一条数据传输路径,但由于设备之间的数据传输延时和吞吐量与两个设备之间的路径连接相关,而用户会改变设备的插槽、总线上的路由拓扑或者总线上的设备,这些改变都会引起传输性能的变化,因此固定配置不能保证选择最优。
针对相关技术中,现有方式确定的两个设备之间的数据传输路径较差的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种面向异构计算的数据传输路径的确定方法及装置,以至少解决现有方式确定的两个设备之间的数据传输路径较差的问题 。
根据本申请的一个实施例,提供了一种面向异构计算的数据传输路径的确定方法,包括:确定N条数据传输总线,其中,所述N条数据传输总线中的每条数据传输总线为源设备和目标设备允许进行数据传输的总线,N为大于或等于1的正整数;确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,其中,第j条参考数据传输路径为所述源设备和目标设备使用第j条数据传输总线进行数据传输的最短路径;从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
在一个示例性的实施例中,所述确定N条数据传输总线,包括:确定目标数据传输协议集合,其中,所述目标数据传输协议集合中的每个数据传输协议均为所述源设备和所述目标设备支持的数据传输协议;根据所述目标数据传输协议集合从系统具有的M条数据传输总线中确定P条数据传输总线,其中,所述P条数据传输总线中的每条数据传输总线的数据传输协议为所述目标数据传输协议集合中的数据传输协议;从所述P条数据传输总线中确定所述N条数据传输总线,其中,所述源设备和所述目标设备均位于所述N条数据传输总线中的每条数据传输总线上。
在一个示例性的实施例中,所述确定目标数据传输协议集合,包括:获取所述源设备支持的第一数据传输协议集合和所述目标设备支持的第二数据传输协议集合;将所述第一数据传输协议集合和所述第二数据传输协议集合进行交集运算,得到所述目标数据传输协议集合。
在一个示例性的实施例中,所述获取所述源设备支持的第一数据传输协议集合和所述目标设备支持的第二数据传输协议集合,包括:向所述源设备发送第一查询指令,以及向所述目标设备发送第二查询指令;获取所述源设备响应于所述第一查询指令所发送的所述第一数据传输协议集合,以及获取所述目标设备响应于所述第二查询指令所发送的第二数据传输协议集合。
在一个示例性的实施例中,所述从所述P条数据传输总线中确定所述N条数据传输总线,包括:通过以下方式确定是否将所述P条数据传输总线中的第i条数据传输总线作为所述N条数据传输总线中的一条数据传输总线:确定所述第i条数据传输总线对应的第i个设备链表,其中,所述第i个设备链表中记录有所述第i条数据传输总线上的所有设备;在所述源设备和所述目标设备均位于所述第i个设备链表中的情况下,确定将所述第i条数据传输总线作为所述N条数据传输总线中的一条数据传输总线。
在一个示例性的实施例中,所述确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,包括:通过以下方式确定所述N条数据传输总线中的第j条数据传输总线对应的第j条参考数据传输路径:确定所述第j条数据传输总线对应的第j个设备邻接表,其中,第j个设备邻接表中记载有所述第j条数据传输总线上的所有设备的邻接关系;根据所述第j个设备邻接表建立第j个无向图,其中,所述第j个无向图中的节点为所述第j条数据传输总线上设备,所述第j个无向图中相邻的两个节点之间的边的长度根据所述两个节点对应的两个设备在对应数据传输路径段的延时时间确定;根据所述第j个无向图确定所述第j条参考数据传输路径,其中,所述第j条参考数据传输路径为所述源设备和所述目标设备在所述第j个无向图中的多个数据传输路径中的最短路径。
在一个示例性的实施例中,所述第j个无向图中相邻的两个节点之间的边的长度等于所述两个节点对应的两个设备在对应数据传输路径段的延时时间的倒数。
在一个示例性的实施例中,所述从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径,包括:确定所述N条参考数据传输路径中每条数据传输路径的数据传输延时;以及确定所述N条参考数据传输路径中每条数据传输路径的带宽;根据所述N条参考数据传输路径中每条数据传输路径的数据传输延时和带宽从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
在一个示例性的实施例中,所述确定所述N条参考数据传输路径中每条数据传输路径的数据传输延时,包括:通过以下方式确定所述N条参考数据传输路径中的第j条参考数据传输路径的数据传输延时:将所述第j条参考数据传输路径中各个数据传输路径段的延时进行累加,得到所述第j条参考数据传输路径的数据传输延时。
在一个示例性的实施例中,所述确定所述N条参考数据传输路径中每条数据传输路径的带宽,包括:通过以下方式确定所述N条参考数据传输路径中的第j条参考数据传输路径的带宽:确定所述第j条参考数据传输路径中各个数据传输路径段的最小带宽;将所述最小带宽确定为所述第j条参考数据传输路径的带宽。
在一个示例性的实施例中,所述根据所述N条参考数据传输路径中每条数据传输路径的数据传输延时和带宽从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径,包括:确定预设数据传输延时和预设带宽;根据所述预设数据传输延时和预设带宽从所述N条参考数据传输路径中确定Z条参考数据传输路径,其中,所述Z条参考数据传输路径中的每条参考数据传输路径的数据传输延时小于所述预设数据传输延时、每条参考数据传输路径的带宽大于所述预设带宽;根据所述Z条参考数据传输路径中每条数据传输路径的数据传输延时和带宽从所述Z条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
在一个示例性的实施例中,所述根据所述Z条参考数据传输路径中每条数据传输路径的数据传输延时和带宽从所述Z条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径,包括:通过以下方式确定所述Z条参考数据传输路径中的第k条参考数据传输路径的性能参数,并将所述Z条参考数据传输路径中性能参数最大的参考数据传输路径确定为所述源设备和所述目标设备进行数据传输的数据传输路径:获取所述第k条参考数据传输路径对应的数据传输总线的有效载荷率;以及获取所述第k条参考数据传输路径对应的数据传输总线启动传输初始化的启动时间;以及获取目标权重值,其中,所述目标权重值用于指示对数据传输延时和带宽的重要程度;根据所述目标权重值、所述第k条参考数据传输路径的所述数据传输延时、所述带宽、所述有效载荷率和所述启动时间确定所述第k条参考数据传输路径的性能参数。
在一个示例性的实施例中,所述根据所述目标权重值、所述第k条参考数据传输路径的所述数据传输延时、所述带宽、所述有效载荷率和所述启动时间确定所述第k条参考数据传输路径的性能参数,包括:通过以下公式计算所述第k条参考数据传输路径的性能参数:;其中,/>为第k条参考数据传输路径的性能参数,/>为所述目标权重值,为所述第k条参考数据传输路径的所述有效载荷率,/>为所述第k条参考数据传输路径的所述启动时间,/>为所述第k条参考数据传输路径的所述带宽,/>为所述第k条参考数据传输路径的所述数据传输延时,/>为所述预设带宽,/>为所述预设数据传输延时。
在一个示例性的实施例中,在所述从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径之后,所述方法还包括:向所述目标数据传输路径中的设备发送配置指令,其中,所述配置指令用于指示所述目标数据传输路径中的设备所述源设备通过所述目标数据传输路径向所述目标设备发送数据。
在一个示例性的实施例中,在所述从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径之后,所述方法还包括:将所述目标数据传输路径存储在主机的系统配置文件中。
在一个示例性的实施例中,在所述确定N条数据传输总线之后,所述方法还包括:将所述N条数据传输总线中的每条数据传输总线对应的设备链表和设备邻接表存储至主机的系统配置文件中,其中,所述设备链表中记录有数据传输总线上的所有设备,所述设备邻接表中记载有数据传输总线上的所有设备的邻接关系。
在一个示例性的实施例中,所述方法还包括:在主机重启的情况下,根据所述系统配置文件确定所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表是否发生变化;在所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表未发生变化的情况下,继续将所述系统配置文件中存储的目标数据传输路径作为所述源设备和所述目标设备进行数据传输的数据传输路径。
在一个示例性的实施例中,所述方法还包括:在所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表发生变化的情况下,重新确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,并重新从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
根据本申请的另一个实施例,还提供了一种面向异构计算的数据传输路径的确定装置,包括:第一确定模块,用于确定N条数据传输总线,其中,所述N条数据传输总线中的每条数据传输总线为源设备和目标设备允许进行数据传输的总线,N为大于或等于1的正整数;第二确定模块,用于确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,其中,第j条参考数据传输路径为所述源设备和目标设备使用第j条数据传输总线进行数据传输的最短路径;第三确定模块,用于从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
通过本申请,确定源设备和目标设备之间允许进行数据传输的总线N条数据传输总线,并确定N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,进而从N条参考数据传输路径中确定源设备和目标设备进行数据传输的目标数据传输路径。采用上述技术方案,可以使得确定的两个设备之间的数据传输路径较好,解决了现有方式确定的两个设备之间的数据传输路径较差的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种面向异构计算的数据传输路径的确定方法的服务器设备的硬件结构框图;
图2是根据本申请实施例的一种面向异构计算的数据传输路径的确定方法的流程图;
图3是根据本申请实施例的一种设备连接关系的示意图;
图4是根据本申请实施例的一种PCIE总线对应的设备链表的示意图;
图5是根据本申请实施例的一种PCIE总线对应的设备邻接表的示意图;
图6是根据本申请实施例的一种IB总线对应的设备链表的示意图;
图7是根据本申请实施例的一种IB总线对应的设备邻接表的示意图;
图8是根据本申请实施例的一种PCIE总线对应的无向图的示意图;
图9是根据本申请实施例的一种IB总线对应的无向图的示意图;
图10是根据本申请实施例的一种面向异构计算的数据传输路径的确定方法的结构框图;
图11是根据本申请实施例的一种可选的电子设备的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的面向异构计算的数据传输路径的确定方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图1是本申请实施例的一种面向异构计算的数据传输路径的确定方法的服务器设备的硬件结构框图。如图1所示,服务器设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器设备的结构造成限定。例如,服务器设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的面向异构计算的数据传输路径的确定方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器设备的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种面向异构计算的数据传输路径的确定方法,包括但不限于应用在主机中,图2是根据本申请实施例的一种面向异构计算的数据传输路径的确定方法的流程图,如图2所示,该流程包括如下步骤S202-S206:
步骤S202:确定N条数据传输总线,其中,所述N条数据传输总线中的每条数据传输总线为源设备和目标设备允许进行数据传输的总线,N为大于或等于1的正整数;
在一个示例性的实施例中,上述步骤S202可以通过以下步骤S11-S13实现:
步骤S11:确定目标数据传输协议集合,其中,所述目标数据传输协议集合中的每个数据传输协议均为所述源设备和所述目标设备支持的数据传输协议;
在一个示例性的实施例中,上述步骤S11包括:获取所述源设备支持的第一数据传输协议集合和所述目标设备支持的第二数据传输协议集合;将所述第一数据传输协议集合和所述第二数据传输协议集合进行交集运算,得到所述目标数据传输协议集合。
可选的,主机可以通过管理网获取源设备支持的第一数据传输协议集合和目标设备支持的第二数据传输协议集合。
需要说明的是,管理网为用于管理和监控网络设备的特定网络。管理网通常是一个专门的网络子系统,用于远程监控、配置和管理网络设备,例如路由器、交换机、防火墙等。管理网通常是一个安全隔离的网络,用于保护管理流量免受外部干扰和攻击。通过管理网,主机可以远程访问设备,发送命令、获取设备信息,以及进行各种管理操作,而不会干扰设备所处的实际生产网络。示例性的,管理网可以是I2C、RS-232、RS-485或者以太网等总线。
在一个示例性的实施例中,可以通过以下方式获取所述源设备支持的第一数据传输协议集合和所述目标设备支持的第二数据传输协议集合:向所述源设备发送第一查询指令,以及向所述目标设备发送第二查询指令;获取所述源设备响应于所述第一查询指令所发送的所述第一数据传输协议集合,以及获取所述目标设备响应于所述第二查询指令所发送的第二数据传输协议集合。
示例性的,主机通过管理网向源设备和目标设备发送命令获取设备的对外接口信息,获取源设备接口集合(即上述第一数据传输协议集合)和目标设备接口集合(即上述第二数据传输协议集合)。假设确定的源设备接口集合为{PCIe、IB},目标设备接口集合为{PCIe、IB}。则最终确定的目标数据传输协议集合为{PCIe、IB}。
步骤S12:根据所述目标数据传输协议集合从系统具有的M条数据传输总线中确定P条数据传输总线,其中,所述P条数据传输总线中的每条数据传输总线的数据传输协议为所述目标数据传输协议集合中的数据传输协议;
需要说明的是,主机的系统具备的M条数据传输总线所使用的数据传输协议不仅仅只有目标数据传输协议集合中的数据传输协议,进而需要将M条数据传输总线中数据传输协议在目标数据传输协议集合中的P条数据传输总线筛选出来。
步骤S13:从所述P条数据传输总线中确定所述N条数据传输总线,其中,所述源设备和所述目标设备均位于所述N条数据传输总线中的每条数据传输总线上。
也就是说,源设备和目标设备可能不同时在一条数据传输总线上,而只有源设备和目标设备在一条数据传输总线上,源设备和目标设备才可以使用这条数据传输总线进行数据传输,进而需要从P条数据传输总线中确定N条数据传输总线。
在一个示例性的实施例中,上述步骤S13包括:通过以下方式确定是否将所述P条数据传输总线中的第i条数据传输总线作为所述N条数据传输总线中的一条数据传输总线:确定所述第i条数据传输总线对应的第i个设备链表,其中,所述第i个设备链表中记录有所述第i条数据传输总线上的所有设备;在所述源设备和所述目标设备均位于所述第i个设备链表中的情况下,确定将所述第i条数据传输总线作为所述N条数据传输总线中的一条数据传输总线。
在一个示例性的实施例中,主机可以通过管理网或者端口枚举总线拓扑结构及各终端设备,确定P条数据传输总线中每条数据传输总线的设备链表。设备链表记录总线上所有的设备,设备信息包括厂家ID、型号ID和产品SN号;进而可以在设备链表中进行搜索源设备,具体方法为逐个比较设备链表中的厂家ID、型号ID和产品SN号是否与源设备的厂家ID、型号ID和产品SN号一致,如果厂家ID、型号ID和产品SN号都一致,则将该总线的S_Flag置1;否则将S_Flag置0。在该总线的设备链表中搜索目标设备,具体方法为逐个比较设备链表中的厂家ID、型号ID和产品SN号是否与目标设备的厂家ID、型号ID和产品SN号一致,如果厂家ID、型号ID和产品SN号都一致,则将该总线的D_Flag置1;否则将D_Flag置0。如果该总线的S_Flag=1且D_Flag=1,则判定源设备与目标设备都在该总线上;否则,判定源设备与目标设备没有同时在该总线上。
需要说明的是,通过上述方式可以快速准确的确定源设备和目标设备是否位于同一条数据传输总线上,进而可以快速的从P条数据传输总线中确定N条数据传输总线。
步骤S204:确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,其中,第j条参考数据传输路径为所述源设备和目标设备使用第j条数据传输总线进行数据传输的最短路径;
在一个示例性的实施例中,上述步骤S204包括:通过以下步骤S21-S23确定所述N条数据传输总线中的第j条数据传输总线对应的第j条参考数据传输路径:
步骤S21:确定所述第j条数据传输总线对应的第j个设备邻接表,其中,第j个设备邻接表中记载有所述第j条数据传输总线上的所有设备的邻接关系;
在一个示例性的实施例中,假设源设备和目标设备之间的网络拓扑关系如图3所示。则PCIE总线对应的设备链表如图4所示,PCIE总线对应的设备邻接表如图5所示。
步骤S22:根据所述第j个设备邻接表建立第j个无向图,其中,所述第j个无向图中的节点为所述第j条数据传输总线上设备,所述第j个无向图中相邻的两个节点之间的边的长度根据所述两个节点对应的两个设备在对应数据传输路径段的延时时间确定;
示意性的,PCIE总线对应的无向图具体如图8所示。
在一个示例性的实施例中,所述第j个无向图中相邻的两个节点之间的边的长度等于所述两个节点对应的两个设备在对应数据传输路径段的延时时间的倒数。
例如,如图8所示,节点1与节点2之间的边的长度等于节点1对应的设备到节点2对应的设备的传输路径段的延迟时间的倒数/>。
步骤S23:根据所述第j个无向图确定所述第j条参考数据传输路径,其中,所述第j条参考数据传输路径为所述源设备和所述目标设备在所述第j个无向图中的多个数据传输路径中的最短路径。
作为一种可选的示例,可以使用贪心算法确定所述第j条参考数据传输路径,贪心算法包括但不限于Dijkstra算法。
步骤S206:从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
在一个示例性的实施例中,上述步骤S206包括以下步骤S31-S33:
步骤S31:确定所述N条参考数据传输路径中每条数据传输路径的数据传输延时;
在一个示例性的实施例中,上述步骤S31包括:通过以下方式确定所述N条参考数据传输路径中的第j条参考数据传输路径的数据传输延时:将所述第j条参考数据传输路径中各个数据传输路径段的延时进行累加,得到所述第j条参考数据传输路径的数据传输延时。
为了更好的理解,以下进行举例说明,如图8所述,对于数据传输路径1-2-4而言,其数据传输延时等于1-2数据传输路径段的数据传输延时加上2-3数据传输路径段的数据传输延时。
步骤S32:确定所述N条参考数据传输路径中每条数据传输路径的带宽;
在一个示例性的实施例中,上述步骤S32包括:通过以下方式确定所述N条参考数据传输路径中的第j条参考数据传输路径的带宽:确定所述第j条参考数据传输路径中各个数据传输路径段的最小带宽;将所述最小带宽确定为所述第j条参考数据传输路径的带宽。
为了更好的理解,以下进行举例说明,如图8所述,对于数据传输路径1-2-4而言,其带宽等于1-2数据传输路径段的带宽与2-3数据传输路径段的带宽的最小值。
需要说明的是,上述步骤S31与S32是异步执行的,其没有执行的先后顺序,其可以是步骤S31先执行,也可以是步骤S32先执行。
步骤S33:根据所述N条参考数据传输路径中每条数据传输路径的数据传输延时和带宽从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
在一个示例性的实施例中,上述步骤S33通过以下步骤S41-S43实现:
步骤S41:确定预设数据传输延时和预设带宽;
步骤S42:根据所述预设数据传输延时和预设带宽从所述N条参考数据传输路径中确定Z条参考数据传输路径,其中,所述Z条参考数据传输路径中的每条参考数据传输路径的数据传输延时小于所述预设数据传输延时、每条参考数据传输路径的带宽大于所述预设带宽;
步骤S43:根据所述Z条参考数据传输路径中每条数据传输路径的数据传输延时和带宽从所述Z条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
也就是说,需要从N条参考数据传输路径中先筛选出数据传输延时和带宽满足要求的Z条参考数据传输路径,进而从Z条参考数据传输路径中再根据对应的数据传输延时和带宽确定出目标数据传输路径。
在一个示例性的实施例中,上述步骤S43包括:通过以下步骤S51-S52确定所述Z条参考数据传输路径中的第k条参考数据传输路径的性能参数,并将所述Z条参考数据传输路径中性能参数最大的参考数据传输路径确定为所述源设备和所述目标设备进行数据传输的数据传输路径:
步骤S51:获取所述第k条参考数据传输路径对应的数据传输总线的有效载荷率;以及获取所述第k条参考数据传输路径对应的数据传输总线启动传输初始化的启动时间;以及获取目标权重值,其中,所述目标权重值用于指示对数据传输延时和带宽的重要程度;
步骤S52根据所述目标权重值、所述第k条参考数据传输路径的所述数据传输延时、所述带宽、所述有效载荷率和所述启动时间确定所述第k条参考数据传输路径的性能参数。
在一个示例性的实施例中,上述步骤S52包括:通过以下公式计算所述第k条参考数据传输路径的性能参数:
;
其中,为第k条参考数据传输路径的性能参数,/>为所述目标权重值,/>为所述第k条参考数据传输路径的所述有效载荷率,/>为所述第k条参考数据传输路径的所述启动时间,/>为所述第k条参考数据传输路径的所述带宽,/>为所述第k条参考数据传输路径的所述数据传输延时,/>为所述预设带宽,/>为所述预设数据传输延时。
需要说明的是,权重值表示本业务对带宽和延迟的重视程度,/>表示本业务只在乎带宽最大,延时不敏感;/>表示本业务带宽够用即可,但对延时比较在乎。
上述步骤,确定源设备和目标设备之间允许进行数据传输的总线N条数据传输总线,并确定N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,进而从N条参考数据传输路径中确定源设备和目标设备进行数据传输的目标数据传输路径。采用上述技术方案,可以使得确定的两个设备之间的数据传输路径较好,解决了现有方式确定的两个设备之间的数据传输路径较差的问题。
在一个示例性的实施例中,在上述步骤S206之后,所述方法还包括:向所述目标数据传输路径中的设备发送配置指令,其中,所述配置指令用于指示所述目标数据传输路径中的设备所述源设备通过所述目标数据传输路径向所述目标设备发送数据。
在一个示例性的实施例中,在上述步骤S206之后,所述方法还包括:将所述目标数据传输路径存储在主机的系统配置文件中。
也就是说,在本实施例中,主机会将最优传输路径(即上述目标数据传输路径)的信息保存在系统配置文件中,并发送配置指令给相关的设备,将该路径置为有效。
在一个示例性的实施例中,在上述步骤S202之后,所述方法还包括:将所述N条数据传输总线中的每条数据传输总线对应的设备链表和设备邻接表存储至主机的系统配置文件中,其中,所述设备链表中记录有数据传输总线上的所有设备,所述设备邻接表中记载有数据传输总线上的所有设备的邻接关系。
在一个示例性的实施例中,所述方法还包括步骤S61-S63:
步骤S61:在主机重启的情况下,根据所述系统配置文件确定所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表是否发生变化;
步骤S62:在所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表未发生变化的情况下,继续将所述系统配置文件中存储的目标数据传输路径作为所述源设备和所述目标设备进行数据传输的数据传输路径。
步骤S63:在所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表发生变化的情况下,重新确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,并重新从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
需要说明的是,主机的系统配置文件保存各总线的设备链表、设备邻接表和最优传输路径信息。系统上电后执行一个初始化任务,该初始化任务将会读取系统配置文件,获取系统上次工作时的机器配置包括各总线的设备链表、设备邻接表信息。系统通过管理网或各总线读取本次机器的设备配置和总线连接情况,将当前机器配置情况与系统配置文件进行比较判定。如果系统配置发生变化,则主机重新采用步骤S202-S206再次确定最优数据传输路径,否则不变。
显然,上述所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。为了更好的理解上述方法,以下结合实施例对上述过程进行说明,但不用于限定本发明实施例的技术方案,具体地:
在一个示例性的实施例中,针对设备间最优传输路径的选择问题,本申请提出了一种设备数据传输路径选择方法,该方法首先获取设备间的多条传输路径的总线拓扑连接关系,然后计算各路径的吞吐量和延时参数,最后通过判定模型确定出最优数据传输路径。
本申请提出一种数据传输路径选择方法帮助确定最优的路径。如图3所示,源设备为设备B,目标设备为设备C,两个设备之间存在多条数据传输路径,PCIe Peer-to-Peer和IB总线,其中传输总线还可以是CXL总线、NVLink和RoCE等。
需要说明的是,确定源设备和目标设备之间的最优数据传输路径的具体步骤如下:
Step 1:主机通过管理网向源设备和目标设备发送命令获取设备的对外接口信息,建立源设备接口集合和目标设备接口集合。示例性的,本申请的源设备接口集合为{PCIe、IB},目标设备接口集合为{PCIe、IB}。
Step 2:主机对源设备接口集合和目标设备接口集合求取交集,获得设备数据传输接口集合。示例性的,获得的设备数据传输接口集合为{PCIe、IB}。
Step 3:主机依据设备数据传输接口集合,逐个搜索主机所具有的总线。
每条总线的操作如下:
(1)CPU通过管理网或者端口枚举总线拓扑结构及各终端设备,建立设备链表和设备邻接表。所述设备链表记录总线上所有的设备,设备信息包括厂家ID、型号ID和产品SN号。所述设备节点邻接表记录其连接关系。将该总线设备链表和设备邻接表信息保存在系统配置文件中。
以图3为例,对于PCIE总线,建立的设备链表和设备邻接表如图4、5所示。
以图3为例,对于IB总线,建立的设备链表和设备邻接表如图6、7所示:
(2)在设备链表中进行搜索源设备,具体方法为逐个比较设备链表中的厂家ID、型号ID和产品SN号是否与源设备的厂家ID、型号ID和产品SN号一致,如果厂家ID、型号ID和产品SN号都一致,则将S_Flag置1;否则将S_Flag置0。
(3)在设备链表中搜索目标设备,具体方法为逐个比较设备链表中的厂家ID、型号ID和产品SN号是否与目标设备的厂家ID、型号ID和产品SN号一致,如果厂家ID、型号ID和产品SN号都一致,则将D_Flag置1;否则将D_Flag置0。
(4)判定源设备与目标设备是否都在该总线上,判断方法如下:如果S_Flag=1且D_Flag=1,判定源设备与目标设备都在总线上,则继续步骤(5);否则,判定源设备与目标设备没有同时在该总线上,则回到Step 3继续搜索下一总线。
(5)根据设备邻接表,建立无向图,用有向图求取最短路径法,将传输路径段的延迟时间的倒数/>作为权重(下标j代表第j段传输路径段), 采用Dijkstra算法求出最短路径,并将该路径记录下来。
以图3为例,对于PCIe总线,其无向图如图8所示,对于IB总线,其无向图如图9所示。
(6)根据最短路径,计算出源设备到目标设备的数据传输延时Di,计算方法为路径各传输路径段的延时进行累加,下标i代表第i条总线。
(7)根据最短路径,计算出源设备到目标设备的带宽Bi,计算方法为取路径各传输路径段中最小带宽,下标i代表第i条总线。注:由于物理层不一定相同,因此每一段路径的带宽不一定相同。
Step 4:主机获得了源设备与目标设备可以数据传输的第一数据传输总线集合,该集合内每个成员包括该总线类型Typei、带宽Bi和数据传输延时Di,下标i代表第i条总线。以图3为例,第一数据传输总线集合为{(TypeIB,Bib,Dib),(Typepcie,Bpcie,Dpcie)}。
Step 5:主机获取用户带宽要求Breq、延时要求Dreq以及权重参数。权重/>示本业务对带宽和延迟的重视程度,/>表示本业务只在乎带宽最大延时不敏感,/>表示本业务带宽够用即可对延时比较在乎。
Step 6:在第一数据传输总线集合中筛选带宽和延迟符合用户要求的总线,生成第二数据传输总线集合,该集合内的各总线路径带宽大于Breq且延迟小于Dreq。
Step 7:在第二数据传输总线集合中计算各总线的指标,用于筛选最优数据传输总线。指标计算公式如下:
;
其中,是预定的一个数组,该数组记录了各总线类型的有效载荷率,/>是预定的一个数组,该数组记录了各总线启动传输初始化需要的时间。
Step 9:在第二数据传输总线集合中,比较的值,将/>值最大的总线作为最优传输路径。
Step 10:主机根据最优传输路径的信息保存在系统配置文件中,发送命令配置相关的设备,将该路径置为有效。
需要说明的是, 针对设备间最优传输路径的选择问题,本发明提出了一种设备数据传输路径选择方法,该方法可以减少CPU开销和不必要的内存消耗,降低延迟提高吞吐量,缓解数据传输的性能瓶颈提升异构加速的性能。
需要说明的是,相关技术中,当数据需要在设备之间传输时,数据必须通过CPU,从而导致潜在的瓶颈并增加延迟。为了提高数据传输的性能,提高吞吐量和降低延时,设备可以利用PCI-E Peer-to-Peer技术、CXL Peer-to-Peer技术、NVLink和RDMA等技术直接访问目标设备的内存,减少不必要的内存消耗,减少CPU开销并降低延迟,从而提高性能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种面向异构计算的数据传输路径的确定装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的模块较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图10是根据本申请实施例的一种面向异构计算的数据传输路径的确定装置的结构框图,如图10所示,该装置包括:
第一确定模块1002,用于确定N条数据传输总线,其中,所述N条数据传输总线中的每条数据传输总线为源设备和目标设备允许进行数据传输的总线,N为大于或等于1的正整数;
第二确定模块1004,用于确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,其中,第j条参考数据传输路径为所述源设备和目标设备使用第j条数据传输总线进行数据传输的最短路径;
第三确定模块1006,用于从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
上述装置,确定源设备和目标设备之间允许进行数据传输的总线N条数据传输总线,并确定N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,进而从N条参考数据传输路径中确定源设备和目标设备进行数据传输的目标数据传输路径。采用上述技术方案,可以使得确定的两个设备之间的数据传输路径较好,解决了现有方式确定的两个设备之间的数据传输路径较差的问题。
在一个示例性的实施例中,第一确定模块1002,用于确定目标数据传输协议集合,其中,所述目标数据传输协议集合中的每个数据传输协议均为所述源设备和所述目标设备支持的数据传输协议;根据所述目标数据传输协议集合从系统具有的M条数据传输总线中确定P条数据传输总线,其中,所述P条数据传输总线中的每条数据传输总线的数据传输协议为所述目标数据传输协议集合中的数据传输协议;从所述P条数据传输总线中确定所述N条数据传输总线,其中,所述源设备和所述目标设备均位于所述N条数据传输总线中的每条数据传输总线上。
在一个示例性的实施例中,第一确定模块1002,还用于获取所述源设备支持的第一数据传输协议集合和所述目标设备支持的第二数据传输协议集合;将所述第一数据传输协议集合和所述第二数据传输协议集合进行交集运算,得到所述目标数据传输协议集合。
在一个示例性的实施例中,第一确定模块1002,还用于向所述源设备发送第一查询指令,以及向所述目标设备发送第二查询指令;获取所述源设备响应于所述第一查询指令所发送的所述第一数据传输协议集合,以及获取所述目标设备响应于所述第二查询指令所发送的第二数据传输协议集合。
在一个示例性的实施例中,第一确定模块1002,还用于通过以下方式确定是否将所述P条数据传输总线中的第i条数据传输总线作为所述N条数据传输总线中的一条数据传输总线:确定所述第i条数据传输总线对应的第i个设备链表,其中,所述第i个设备链表中记录有所述第i条数据传输总线上的所有设备;在所述源设备和所述目标设备均位于所述第i个设备链表中的情况下,确定将所述第i条数据传输总线作为所述N条数据传输总线中的一条数据传输总线。
在一个示例性的实施例中,第二确定模块1004,还用于通过以下方式确定所述N条数据传输总线中的第j条数据传输总线对应的第j条参考数据传输路径:确定所述第j条数据传输总线对应的第j个设备邻接表,其中,第j个设备邻接表中记载有所述第j条数据传输总线上的所有设备的邻接关系;根据所述第j个设备邻接表建立第j个无向图,其中,所述第j个无向图中的节点为所述第j条数据传输总线上设备,所述第j个无向图中相邻的两个节点之间的边的长度根据所述两个节点对应的两个设备在对应数据传输路径段的延时时间确定;根据所述第j个无向图确定所述第j条参考数据传输路径,其中,所述第j条参考数据传输路径为所述源设备和所述目标设备在所述第j个无向图中的多个数据传输路径中的最短路径。
在一个示例性的实施例中,所述第j个无向图中相邻的两个节点之间的边的长度等于所述两个节点对应的两个设备在对应数据传输路径段的延时时间的倒数。
在一个示例性的实施例中,第三确定模块1006,还用于确定所述N条参考数据传输路径中每条数据传输路径的数据传输延时;以及确定所述N条参考数据传输路径中每条数据传输路径的带宽;根据所述N条参考数据传输路径中每条数据传输路径的数据传输延时和带宽从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
在一个示例性的实施例中,第三确定模块1006,还用于通过以下方式确定所述N条参考数据传输路径中的第j条参考数据传输路径的数据传输延时:将所述第j条参考数据传输路径中各个数据传输路径段的延时进行累加,得到所述第j条参考数据传输路径的数据传输延时。
在一个示例性的实施例中,第三确定模块1006,还用于通过以下方式确定所述N条参考数据传输路径中的第j条参考数据传输路径的带宽:确定所述第j条参考数据传输路径中各个数据传输路径段的最小带宽;将所述最小带宽确定为所述第j条参考数据传输路径的带宽。
在一个示例性的实施例中,第三确定模块1006,还用于确定预设数据传输延时和预设带宽;根据所述预设数据传输延时和预设带宽从所述N条参考数据传输路径中确定Z条参考数据传输路径,其中,所述Z条参考数据传输路径中的每条参考数据传输路径的数据传输延时小于所述预设数据传输延时、每条参考数据传输路径的带宽大于所述预设带宽;根据所述Z条参考数据传输路径中每条数据传输路径的数据传输延时和带宽从所述Z条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
在一个示例性的实施例中,第三确定模块1006,还用于通过以下方式确定所述Z条参考数据传输路径中的第k条参考数据传输路径的性能参数,并将所述Z条参考数据传输路径中性能参数最大的参考数据传输路径确定为所述源设备和所述目标设备进行数据传输的数据传输路径:获取所述第k条参考数据传输路径对应的数据传输总线的有效载荷率;以及获取所述第k条参考数据传输路径对应的数据传输总线启动传输初始化的启动时间;以及获取目标权重值,其中,所述目标权重值用于指示对数据传输延时和带宽的重要程度;根据所述目标权重值、所述第k条参考数据传输路径的所述数据传输延时、所述带宽、所述有效载荷率和所述启动时间确定所述第k条参考数据传输路径的性能参数。
在一个示例性的实施例中,第三确定模块1006,还用于通过以下公式计算所述第k条参考数据传输路径的性能参数:
;
其中,为第k条参考数据传输路径的性能参数,/>为所述目标权重值,/>为所述第k条参考数据传输路径的所述有效载荷率,/>为所述第k条参考数据传输路径的所述启动时间,/>为所述第k条参考数据传输路径的所述带宽,/>为所述第k条参考数据传输路径的所述数据传输延时,/>为所述预设带宽,/>为所述预设数据传输延时。
在一个示例性的实施例中,所述装置还包括:发送模块,用于在所述从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径之后,向所述目标数据传输路径中的设备发送配置指令,其中,所述配置指令用于指示所述目标数据传输路径中的设备所述源设备通过所述目标数据传输路径向所述目标设备发送数据。
在一个示例性的实施例中,所述装置还包括:存储模块,用于在所述从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径之后,将所述目标数据传输路径存储在主机的系统配置文件中。
在一个示例性的实施例中,存储模块,还用在所述确定N条数据传输总线之后,将所述N条数据传输总线中的每条数据传输总线对应的设备链表和设备邻接表存储至主机的系统配置文件中,其中,所述设备链表中记录有数据传输总线上的所有设备,所述设备邻接表中记载有数据传输总线上的所有设备的邻接关系。
在一个示例性的实施例中,所述装置还包括:处理模块,用于在主机重启的情况下,根据所述系统配置文件确定所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表是否发生变化;在所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表未发生变化的情况下,继续将所述系统配置文件中存储的目标数据传输路径作为所述源设备和所述目标设备进行数据传输的数据传输路径。
在一个示例性的实施例中,处理模块,还用于在所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表发生变化的情况下,重新确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,并重新从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机程序可以被设置为通过计算机程序执行以下步骤:
S1,确定N条数据传输总线,其中,所述N条数据传输总线中的每条数据传输总线为源设备和目标设备允许进行数据传输的总线,N为大于或等于1的正整数;
S2,确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,其中,第j条参考数据传输路径为所述源设备和目标设备使用第j条数据传输总线进行数据传输的最短路径;
S3,从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,如图11所示,该电子设备包括存储器1102和处理器1104,该存储器1102中存储有计算机程序,该处理器1104被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器1104可以被设置为通过计算机程序执行以下步骤:
S1,确定N条数据传输总线,其中,所述N条数据传输总线中的每条数据传输总线为源设备和目标设备允许进行数据传输的总线,N为大于或等于1的正整数;
S2,确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,其中,第j条参考数据传输路径为所述源设备和目标设备使用第j条数据传输总线进行数据传输的最短路径;
S3,从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
可选地,本领域普通技术人员可以理解,图11所示的结构仅为示意,图11并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图11中所示更多或者更少的组件(如网络接口等),或者具有与图11所示不同的配置。
其中,存储器1102可用于存储软件程序以及模块,如本申请实施例中的面向异构计算的数据传输路径的确定方法和装置对应的程序指令/模块,处理器1104通过运行存储在存储器1102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的面向异构计算的数据传输路径的确定方法。存储器1102可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1102可进一步包括相对于处理器1104远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1102具体可以但不限于用于存储系统配置文件等信息。作为一种示例,如图11所示,上述存储器1102中可以但不限于包括上述的面向异构计算的数据传输路径的确定装置中的第一确定模块1002,第二确定模块1004,第三确定模块1006。此外,还可以包括但不限于上述的面向异构计算的数据传输路径的确定装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1106包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1106为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器1108;和连接总线1110,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述电子设备可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
本申请的实施例还提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
本申请的实施例还提供了另一种计算机程序产品,包括非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
本中请的实施例还提供了一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质巾;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处埋器执行该计算机指令,使得该计算机设备执行上述任一项方法实施例中的步骤。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种面向异构计算的数据传输路径的确定方法,其特征在于,
包括:
确定N条数据传输总线,其中,所述N条数据传输总线中的每条数据传输总线为源设备和目标设备允许进行数据传输的总线,N为大于或等于1的正整数;
确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,其中,第j条参考数据传输路径为所述源设备和目标设备使用第j条数据传输总线进行数据传输的最短路径;
从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径;
其中,从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径,包括:确定预设数据传输延时和预设带宽;根据所述预设数据传输延时和预设带宽从所述N条参考数据传输路径中确定Z条参考数据传输路径,其中,所述Z条参考数据传输路径中的每条参考数据传输路径的数据传输延时小于所述预设数据传输延时、每条参考数据传输路径的带宽大于所述预设带宽;将所述Z条参考数据传输路径中性能参数最大的参考数据传输路径确定为所述源设备和所述目标设备进行数据传输的目标数据传输路径,其中,所述Z条参考数据传输路径中的第k条参考数据传输路径的性能参数与所述第k条参考数据传输路径的数据传输延时和带宽具有对应关系。
2.根据权利要求1所述的方法,其特征在于,所述确定N条数据传输总线,包括:
确定目标数据传输协议集合,其中,所述目标数据传输协议集合中的每个数据传输协议均为所述源设备和所述目标设备支持的数据传输协议;
根据所述目标数据传输协议集合从系统具有的M条数据传输总线中确定P条数据传输总线,其中,所述P条数据传输总线中的每条数据传输总线的数据传输协议为所述目标数据传输协议集合中的数据传输协议;
从所述P条数据传输总线中确定所述N条数据传输总线,其中,所述源设备和所述目标设备均位于所述N条数据传输总线中的每条数据传输总线上。
3.根据权利要求2所述的方法,其特征在于,
所述确定目标数据传输协议集合,包括:
获取所述源设备支持的第一数据传输协议集合和所述目标设备支持的第二数据传输协议集合;
将所述第一数据传输协议集合和所述第二数据传输协议集合进行交集运算,得到所述目标数据传输协议集合。
4.根据权利要求3所述的方法,其特征在于,
所述获取所述源设备支持的第一数据传输协议集合和所述目标设备支持的第二数据传输协议集合,包括:
向所述源设备发送第一查询指令,以及向所述目标设备发送第二查询指令;
获取所述源设备响应于所述第一查询指令所发送的所述第一数据传输协议集合,以及获取所述目标设备响应于所述第二查询指令所发送的第二数据传输协议集合。
5.根据权利要求2所述的方法,其特征在于,
所述从所述P条数据传输总线中确定所述N条数据传输总线,包括:
通过以下方式确定是否将所述P条数据传输总线中的第i条数据传输总线作为所述N条数据传输总线中的一条数据传输总线:
确定所述第i条数据传输总线对应的第i个设备链表,其中,所述第i个设备链表中记录有所述第i条数据传输总线上的所有设备;
在所述源设备和所述目标设备均位于所述第i个设备链表中的情况下,确定将所述第i条数据传输总线作为所述N条数据传输总线中的一条数据传输总线。
6.根据权利要求1所述的方法,其特征在于,
所述确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,包括:
通过以下方式确定所述N条数据传输总线中的第j条数据传输总线对应的第j条参考数据传输路径:
确定所述第j条数据传输总线对应的第j个设备邻接表,其中,第j个设备邻接表中记载有所述第j条数据传输总线上的所有设备的邻接关系;
根据所述第j个设备邻接表建立第j个无向图,其中,所述第j个无向图中的节点为所述第j条数据传输总线上设备,所述第j个无向图中相邻的两个节点之间的边的长度根据所述两个节点对应的两个设备在对应数据传输路径段的延时时间确定;
根据所述第j个无向图确定所述第j条参考数据传输路径,其中,所述第j条参考数据传输路径为所述源设备和所述目标设备在所述第j个无向图中的多个数据传输路径中的最短路径。
7.根据权利要求6所述的方法,其特征在于,
所述第j个无向图中相邻的两个节点之间的边的长度等于所述两个节点对应的两个设备在对应数据传输路径段的延时时间的倒数。
8.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
通过以下方式确定所述N条参考数据传输路径中的第j条参考数据传输路径的数据传输延时:
将所述第j条参考数据传输路径中各个数据传输路径段的延时进行累加,得到所述第j条参考数据传输路径的数据传输延时。
9.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
通过以下方式确定所述N条参考数据传输路径中的第j条参考数据传输路径的带宽:
确定所述第j条参考数据传输路径中各个数据传输路径段的最小带宽;
将所述最小带宽确定为所述第j条参考数据传输路径的带宽。
10.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
通过以下方式确定所述Z条参考数据传输路径中的第k条参考数据传输路径的性能参数:
获取所述第k条参考数据传输路径对应的数据传输总线的有效载荷率;以及获取所述第k条参考数据传输路径对应的数据传输总线启动传输初始化的启动时间;以及获取目标权重值,其中,所述目标权重值用于指示对数据传输延时和带宽的重要程度;
根据所述目标权重值、所述第k条参考数据传输路径的所述数据传输延时、所述带宽、所述有效载荷率和所述启动时间确定所述第k条参考数据传输路径的性能参数。
11.根据权利要求10所述的方法,其特征在于,
所述根据所述目标权重值、所述第k条参考数据传输路径的所述数据传输延时、所述带宽、所述有效载荷率和所述启动时间确定所述第k条参考数据传输路径的性能参数,包括:
通过以下公式计算所述第k条参考数据传输路径的性能参数:
;
其中,为第k条参考数据传输路径的性能参数,/>为所述目标权重值,/>为所述第k条参考数据传输路径的所述有效载荷率,/>为所述第k条参考数据传输路径的所述启动时间,/>为所述第k条参考数据传输路径的所述带宽,/>为所述第k条参考数据传输路径的所述数据传输延时,/>为所述预设带宽,/>为所述预设数据传输延时。
12.根据权利要求1所述的方法,其特征在于,
在所述从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径之后,所述方法还包括:
向所述目标数据传输路径中的设备发送配置指令,其中,所述配置指令用于指示所述目标数据传输路径中的设备所述源设备通过所述目标数据传输路径向所述目标设备发送数据。
13.根据权利要求1所述的方法,其特征在于,
在所述从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径之后,所述方法还包括:
将所述目标数据传输路径存储在主机的系统配置文件中。
14.根据权利要求1所述的方法,其特征在于,
在所述确定N条数据传输总线之后,所述方法还包括:
将所述N条数据传输总线中的每条数据传输总线对应的设备链表和设备邻接表存储至主机的系统配置文件中,其中,所述设备链表中记录有数据传输总线上的所有设备,所述设备邻接表中记载有数据传输总线上的所有设备的邻接关系。
15.根据权利要求14所述的方法,其特征在于,
所述方法还包括:
在主机重启的情况下,根据所述系统配置文件确定所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表是否发生变化;
在所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表未发生变化的情况下,继续将所述系统配置文件中存储的目标数据传输路径作为所述源设备和所述目标设备进行数据传输的数据传输路径。
16.根据权利要求15所述的方法,其特征在于,
所述方法还包括:
在所述N条数据传输总线中的每条数据传输总线的设备链表和设备邻接表发生变化的情况下,重新确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,并重新从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径。
17.一种面向异构计算的数据传输路径的确定装置,其特征在于:
包括:
第一确定模块,用于确定N条数据传输总线,其中,所述N条数据传输总线中的每条数据传输总线为源设备和目标设备允许进行数据传输的总线,N为大于或等于1的正整数;
第二确定模块,用于确定所述N条数据传输总线中的每条数据传输总线对应的参考数据传输路径,得到N条参考数据传输路径,其中,第j条参考数据传输路径为所述源设备和目标设备使用第j条数据传输总线进行数据传输的最短路径;
第三确定模块,用于从所述N条参考数据传输路径中确定所述源设备和所述目标设备进行数据传输的目标数据传输路径;
其中,所述第三确定模块,还用于确定预设数据传输延时和预设带宽;根据所述预设数据传输延时和预设带宽从所述N条参考数据传输路径中确定Z条参考数据传输路径,其中,所述Z条参考数据传输路径中的每条参考数据传输路径的数据传输延时小于所述预设数据传输延时、每条参考数据传输路径的带宽大于所述预设带宽;将所述Z条参考数据传输路径中性能参数最大的参考数据传输路径确定为所述源设备和所述目标设备进行数据传输的目标数据传输路径,其中,所述Z条参考数据传输路径中的第k条参考数据传输路径的性能参数与所述第k条参考数据传输路径的数据传输延时和带宽具有对应关系。
18.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至16任一项中所述的方法的步骤。
19.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现权利要求1至16任一项中所述的方法的步骤。
20.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至16任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410283957.5A CN117873938B (zh) | 2024-03-13 | 2024-03-13 | 面向异构计算的数据传输路径的确定方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410283957.5A CN117873938B (zh) | 2024-03-13 | 2024-03-13 | 面向异构计算的数据传输路径的确定方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117873938A CN117873938A (zh) | 2024-04-12 |
CN117873938B true CN117873938B (zh) | 2024-05-24 |
Family
ID=90592262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410283957.5A Active CN117873938B (zh) | 2024-03-13 | 2024-03-13 | 面向异构计算的数据传输路径的确定方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117873938B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102415059A (zh) * | 2009-07-07 | 2012-04-11 | 松下电器产业株式会社 | 总线控制装置 |
JP2020123774A (ja) * | 2019-01-29 | 2020-08-13 | 三菱電機株式会社 | 通信システム |
CN111770009A (zh) * | 2020-06-29 | 2020-10-13 | 深圳市金蝶天燕云计算股份有限公司 | 一种数据传输方法及相关设备 |
CN112565074A (zh) * | 2020-11-27 | 2021-03-26 | 中国联合网络通信集团有限公司 | 目标路径的确定方法和多域控制器 |
CN116594950A (zh) * | 2023-06-07 | 2023-08-15 | 深圳砺驰半导体科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN117499297A (zh) * | 2023-12-28 | 2024-02-02 | 苏州元脑智能科技有限公司 | 数据包传输路径的筛选方法及装置 |
-
2024
- 2024-03-13 CN CN202410283957.5A patent/CN117873938B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102415059A (zh) * | 2009-07-07 | 2012-04-11 | 松下电器产业株式会社 | 总线控制装置 |
JP2020123774A (ja) * | 2019-01-29 | 2020-08-13 | 三菱電機株式会社 | 通信システム |
CN111770009A (zh) * | 2020-06-29 | 2020-10-13 | 深圳市金蝶天燕云计算股份有限公司 | 一种数据传输方法及相关设备 |
CN112565074A (zh) * | 2020-11-27 | 2021-03-26 | 中国联合网络通信集团有限公司 | 目标路径的确定方法和多域控制器 |
CN116594950A (zh) * | 2023-06-07 | 2023-08-15 | 深圳砺驰半导体科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN117499297A (zh) * | 2023-12-28 | 2024-02-02 | 苏州元脑智能科技有限公司 | 数据包传输路径的筛选方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117873938A (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9992274B2 (en) | Parallel I/O write processing for use in clustered file systems having cache storage | |
CN108566290B (zh) | 服务配置管理方法、系统、存储介质和服务器 | |
US10657108B2 (en) | Parallel I/O read processing for use in clustered file systems having cache storage | |
US9143452B2 (en) | Data processing | |
US10908834B2 (en) | Load balancing for scalable storage system | |
US9584361B2 (en) | Push signaling to run jobs on available servers | |
JP4343983B2 (ja) | ネットワーク管理装置およびネットワークの管理方法 | |
WO2016176011A1 (en) | Multiple-computing-node system job node selection | |
KR20120018178A (ko) | 객체 저장부들의 네트워크상의 스웜-기반의 동기화 | |
Ying et al. | Distributed operator placement and data caching in large-scale sensor networks | |
US11411830B2 (en) | Systems and methods for determining entry points for mapping a network | |
CN111352716B (zh) | 一种基于大数据的任务请求方法、装置、系统及存储介质 | |
US11030046B1 (en) | Cluster diagnostics data for distributed job execution | |
CN110460668B (zh) | 一种文件上传方法、装置、计算机设备和存储介质 | |
US10313474B1 (en) | System and method of load balancing by offloading redundant queries to client devices | |
US11711810B1 (en) | System, security and network management using self-organizing communication orbits in distributed networks | |
CN117873938B (zh) | 面向异构计算的数据传输路径的确定方法及装置 | |
US20160043894A1 (en) | Automatic reconfiguration of network parameters during file system failover | |
CN110958293B (zh) | 基于云服务器的文件传输方法、系统、服务器及存储介质 | |
US11748205B2 (en) | Network informed policy creation for optimizing multiple backup operations in a multiple source system | |
CN106302641A (zh) | 一种上传文件的方法、装置和系统 | |
US20210377718A1 (en) | Pattern affinity for discovery | |
CN116436978B (zh) | 面向云计算的内存分配方法、内存获取方法、装置和设备 | |
US20230396677A1 (en) | Computing power information processing method, first network device, and system | |
US20230289275A1 (en) | Software intelligent optimization system |
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 |