1.本公开涉及信息传输领域,具体地,涉及一种用于计算集群的数据传输方法、装置及存储介质。
背景技术:
2.当前,随着计算硬件以及高速网络的快速发展,构建多节点的异构计算集群获得了广泛的研究和关注。然而,虽然网络硬件,通信协议等快速发展,网络传输与本地的pci总线传输相比,其带宽和延迟仍存在一定差距;如何提升跨节点的数据传输能力,提升集群整体计算性能,是当前集群性能优化的重要方向。
3.在跨节点集群中,当前的网络传输使用多种方法来实现和提升数据传输性能。然而在相关技术中,直接的内存数据拷贝方法由于需要cpu介入网络软件栈的处理,带来额外的性能开销,性能较差;rdma技术可以有效实现高速的跨节点数据通信,但是不能解决异构硬件(如gpu)等的通信问题,存在跨节点数据访问灵活性差的问题。
技术实现要素:
4.为了进一步提高数据传输效率,本公开提供一种用于计算集群的数据传输方法、装置及存储介质。
5.为了实现上述目的,本公开第一方面提供一种用于计算集群的数据传输方法,应用于包括多个节点的计算集群,所述方法包括:对所述多个节点的存储介质的存储空间进行统一编址,得到编址信息,所述编址信息中的每一个地址映射至所述多个节点中的任一节点的存储介质的存储空间的一个物理地址;并,在所述多个节点的每一个节点的存储空间中构建缓存空间;响应于所述多个节点中的任意一个目标节点中的应用程序发起数据访问请求,确定所述数据访问请求对应的需求数据;根据所述需求数据的地址确定所述需求数据所在的第一节点以及目标物理地址;在所述第一节点不是所述目标节点的情况下,根据所述目标物理地址查询所述目标节点的本地缓存空间中是否命中所述需求数据;在所述本地缓存空间未命中所述需求数据的情况下,将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间;并,将所述本地缓存空间中存储所述需求数据的地址映射为所述目标物理地址,以使得所述应用程序从所述目标节点的本地缓存空间获取所述需求数据。
6.可选地,所述存储空间包括内存和/或显存,所述在所述多个节点的每一个节点的存储空间中构建缓存空间包括:在所述多个节点的每一个节点的内存和/或显存中构建缓存空间以及本地存储空间;
所述方法包括:在所述第一节点为所述目标节点的情况下,确定所述目标物理地址指向所述目标节点的本地存储空间,并将所述目标节点的本地存储空间中存储的需求数据返回至所述应用程序。
7.可选地,所述方法还包括:根据历史访问特征,基于预取算法确定预取数据以及预取规模;将所述预取数据对应的物理地址中的数据按照所述预取规模缓存至所述本地缓存空间。
8.可选地,所述方法还包括:在将所述预取数据对应的物理地址中的数据按照所述预取规模缓存至所述本地缓存空间后,将所述本地缓存空间中缓存所述预取数据的存储空间的地址映射为所述预取数据对应的物理地址。
9.可选地,所述在所述多个节点中的每一个节点的内存和/或显存中构建缓存空间包括:在所述多个节点中的每一个节点的内存和显存中构建缓存空间,所述缓存空间包括内存缓存以及显存缓存,并设置所述显存缓存与所述内存缓存的优先级;所述将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间包括:根据所述显存缓存与所述内存缓存的优先级,在优先级较高的缓存空间未满的情况下,将所述存储于所述目标物理地址的需求数据缓存至优先级较高的缓存空间。
10.可选地,所述设置所述显存缓存与所述内存缓存的优先级包括:将所述显存缓存设置为第一优先级,将所述内存缓存设置为第二优先级;所述根据所述显存缓存与所述内存缓存的优先级,在优先级较高的缓存空间未满的情况下,将所述存储于所述目标物理地址的需求数据缓存至优先级较高的缓存空间包括:在所述显存缓存的存储空间已满的情况下,若所述存储于所述目标物理地址的需求数据未完全缓存,则将所述存储于所述目标物理地址的需求数据未缓存完成的数据缓存至内存缓存的存储空间。
11.可选地,所述将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间还包括:确定所述目标物理地址指向的存储空间为内存或显存;在所述目标物理地址指向的存储空间为内存的情况下,将所述内存缓存的优先级设置为第一优先级,并将所述显存缓存的优先级设置为第二优先级;在所述目标物理地址指向的存储空间为显存的情况下,将所述显存缓存的优先级设置为第一优先级,并将所述内存缓存的优先级设置为第二优先级;所述第一优先级的优先级高于所述第二优先级的优先级。
12.可选地,所述将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间包括:通过直接网络拷贝或远程直接数据存取或显存远程直接数据存取,将所述第一节
点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间。
13.本公开第二方面提供一种用于计算集群的数据传输装置,所述装置设置于包括多个节点的计算集群,所述装置包括:统一编址模块,用于对所述多个节点的存储介质的存储空间进行统一编址,得到编址信息,所述编址信息中的每一个地址映射至所述多个节点中的任一节点的存储介质的存储空间的一个物理地址;并,缓存空间构建模块,用于在所述多个节点的每一个节点的存储空间中构建缓存空间;第一确定模块,用于响应于所述多个节点中的任意一个目标节点中的应用程序发起数据访问请求,确定所述数据访问请求对应的需求数据;第二确定模块,用于根据所述需求数据的地址确定所述需求数据所在的第一节点以及目标物理地址;命中查询模块,用于在所述第一节点不是所述目标节点的情况下,根据所述目标物理地址查询所述目标节点的本地缓存空间中是否命中所述需求数据;传输模块,用于在所述本地缓存空间未命中所述需求数据的情况下,将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间;映射模块,将所述本地缓存空间中存储所述需求数据的地址映射为所述目标物理地址,以使得所述应用程序从所述目标节点的本地缓存空间获取所述需求数据。
14.本公开第三方面提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面中任一项所述方法的步骤。
15.通过上述技术方案,通过对计算集群内的多个节点中的存储介质进行统一编址,应用可以在任意一个节点直接进行数据访问,而无需关心数据的实际存储位置,无需主动的进行数据拷贝,有效地解决了跨节点数据访问灵活性差的问题。并且,通过构建缓存空间,在本地构建远端数据的缓存,应用在进行跨节点数据访问时,可以获得与本节点数据访问相近的性能,进一步提高了数据传输效率。
16.本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
17.附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1是根据一示例性实施例示出的一种用于计算集群的数据传输方法的流程图;图2是根据一示例性实施例示出的一种用于计算集群的数据传输示意图;图3是根据一示例性实施例示出的一种统一内存/显存编址系统进行数据传输分流过程的示意图;图4是根据一示例性实施例示出的一种缓存管理/预取系统数据传输过程的示意图;图5是根据一示例性实施例示出的一种用于计算集群的数据传输装置的框图;图6是根据一示例性实施例示出的一种电子设备的框图;图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
18.以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
19.图1是根据一示例性实施例示出的一种用于计算集群的数据传输方法,应用于包括多个节点的计算集群,该计算集群可以作为一个服务器,所述方法包括:s101、对所述多个节点的存储介质的存储空间进行统一编址,得到编址信息,所述编址信息中的每一个地址映射至所述多个节点中的任一节点的存储介质的存储空间的一个物理地址。
20.在一些可能的实施方式中,在步骤s101中,所述存储空间包括内存和/或显存,所述在所述多个节点的每一个节点的存储空间中构建缓存空间包括:在所述多个节点的每一个节点的内存和/或显存中构建缓存空间以及本地存储空间。
21.示例地,计算集群包括节点1以及节点2,统一内存显存编址将把两个节点的异构访存空间编址成0到399,其中节点1-cpu(0-99),节点1-gpu(100
ꢀ‑ꢀ
199),节点2-cpu(200-299),节点2-gpu(300-399),节点1和节点2维持相同的全局地址映射视图,均可以获取某段地址的节点信息,映射信息等,实现数据的自由访问。
22.进一步,统一编址的实现方式可以有多种,如软件实现,硬件实现,软硬件协同实现等。以一种的纯软件方式实现为例,统一的内存/显存编址可以使用树结构/哈希结构实现编址和索引,并在各节点间同步。
23.s102、在所述多个节点的每一个节点的存储空间中构建缓存空间。
24.可以理解的是,该缓存空间可以是固定大小的存储空间,也可以是根据缓存所需的数据的大小实时调整的存储空间。具体地,在步骤s102中,可以设计一缓存管理系统,用于管理各个节点本地的缓存,负责缓存的申请,释放,并维持缓存中的数据映射关系。
25.s103、响应于所述多个节点中的任意一个目标节点中的应用程序发起数据访问请求,确定所述数据访问请求对应的需求数据。
26.s104、根据所述需求数据的地址确定所述需求数据所在的第一节点以及目标物理地址。
27.s105、在所述第一节点不是所述目标节点的情况下,根据所述目标物理地址查询所述目标节点的本地缓存空间中是否命中所述需求数据。
28.s106、在所述本地缓存空间未命中所述需求数据的情况下,将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间。
29.在一些可能的实施方式中,步骤s103中所述将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间包括:通过直接网络拷贝或远程直接数据存取或显存远程直接数据存取,将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间。
30.具体地选取通过直接网络拷贝、远程直接数据存取或显存远程直接数据存取的方式可以是根据当前网络情况确定的,本公开对此不做限定。
31.s107、将所述本地缓存空间中存储所述需求数据的地址映射为所述目标物理地址,以使得所述应用程序从所述目标节点的本地缓存空间获取所述需求数据。
32.在本公开实施例中,通过对计算集群内的多个节点中的存储介质进行统一编址,应用可以在任意一个节点直接进行数据访问,而无需关心数据的实际存储位置,无需主动的进行数据拷贝,有效地解决了跨节点数据访问灵活性差的问题。并且,通过构建缓存空间,在本地构建远端数据的缓存,应用在进行跨节点数据访问时,可以获得与本节点数据访问相近的性能,进一步提高了数据传输效率。
33.在一些可选地实施例中,所述方法包括:在所述第一节点为所述目标节点的情况下,确定所述目标物理地址指向所述目标节点的本地存储空间,并将所述目标节点的本地存储空间中存储的需求数据返回至所述应用程序。
34.采用上述方案,在应用程序所需的需求数据保存在运行该应用程序的节点的本地存储的情况下,则可以直接从该节点的本地存储中获取该需求数据并返回至该应用程序,使得应用程序能够快速地获取其所需的数据。
35.在又一些可选地实施例中,所述方法还包括:根据历史访问特征,基于预取算法确定预取数据以及预取规模;将所述预取数据对应的物理地址中的数据按照所述预取规模缓存至所述本地缓存空间。
36.本领域技术人员应知悉,该预取算法在相关技术中有多种,例如常见的数据预取算法,间隔预取算法以及今年学术界中公开的一些基于机器学习的算法,具体的算法本公开对此不作限定。
37.进一步,该预取算法可以是使用软件实现,也可以固化到定制的fpga中,固化到硬件中将具有更高的算法性能,同时也可以降低对系统其他资源的消耗。
38.采用上述方案,基于历史访问数据,通过预取算法预取数据至各节点的缓存空间,能够使得各节点的应用程序在请求数据时,能够更加快速地从本地缓存空间获取到所需的数据,无需重新将数据从其他节点传输至本地,有效地提高了数据获取的效率。
39.可选地,所述方法还包括:在将所述预取数据对应的物理地址中的数据按照所述预取规模缓存至所述本地缓存空间后,将所述本地缓存空间中缓存所述预取数据的存储空间的地址映射为所述预取数据对应的物理地址。
40.可以理解的是,可以通过缓存管理系统进行缓存管理的更新,添加缓存映射关系等过程,以实现上述地址映射的过程。
41.采用本方案,通过将远端节点的数据缓存至本地缓存后,将缓存的地址映射为预取数据对应的物理地址,能够使得该节点的需求数据为预取数据对应的物理地址存储的数据时,准确的从本地缓存找到该需求数据,而无需从远端节点获取,降低了传输开销,提高了数据传输的效率。
42.在又一些可选地实施例中,所述在所述多个节点中的每一个节点的内存和/或显存中构建缓存空间包括:在所述多个节点中的每一个节点的内存和显存中构建缓存空间,所述缓存空间包括内存缓存以及显存缓存,并设置所述显存缓存与所述内存缓存的优先级;所述将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节
点的本地缓存空间包括:根据所述显存缓存与所述内存缓存的优先级,在优先级较高的缓存空间未满的情况下,将所述存储于所述目标物理地址的需求数据缓存至优先级较高的缓存空间。
43.本领域技术人员应知悉,缓存的实际分配是受到实际的物理容量及成本约束的,如在当前的系统中,在服务器上扩展内存的成本远小于扩展gpu显存的成本,这也注定了我们不可能将所有预取的数据全部放到显存的缓存中,采用上述方案,通过设计多级缓存,分级存储缓存数据,有效地利用不同的存储介质的存储空间,提高了缓存数据的存储效率。
44.可选地,所述设置所述显存缓存与所述内存缓存的优先级包括:将所述显存缓存设置为第一优先级,将所述内存缓存设置为第二优先级;所述根据所述显存缓存与所述内存缓存的优先级,在优先级较高的缓存空间未满的情况下,将所述存储于所述目标物理地址的需求数据缓存至优先级较高的缓存空间包括:在所述显存缓存的存储空间已满的情况下,若所述存储于所述目标物理地址的需求数据未完全缓存,则将存储于所述目标物理地址的需求数据未缓存完成的数据缓存至内存缓存的存储空间。
45.可以理解的是,将显存缓存设置为更高级别的缓存,或者将内存缓存设置为更高缓存可以是根据实际需求选择的,基本原则可以是,数据在介质中的访问性能越高,其缓存级别越低,在进行缓存分配时的优先级也越高。上述方案仅提供了将显存缓存设置为更高级别缓存的方案便于理解。
46.采用上述方案,优先将数据缓存至更高缓存级别的存储介质中,能够使得数据优先存储于访问性能较高的存储介质中,以保证应用程序获取该数据时,能够有更好的访问性能。
47.在另一些可选地实施例中,所述将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间还包括:确定所述目标物理地址指向的存储空间为内存或显存;在所述目标物理地址指向的存储空间为内存的情况下,将所述内存缓存的优先级设置为第一优先级,并将所述显存缓存的优先级设置为第二优先级;在所述目标物理地址指向的存储空间为显存的情况下,将所述显存缓存的优先级设置为第一优先级,并将所述内存缓存的优先级设置为第二优先级;所述第一优先级的优先级高于所述第二优先级的优先级。
48.采用上述方案,根据应用程序所需的数据所在的存储介质,动态地调整内存缓存与显存缓存的优先级,在多级缓存系统中,若对显存进行访问,则本地的显存缓存为一级缓存,在后续应用访问数据时,则无需再进行数据传输,进一步地提高了数据访问效率,降低数据访问时间。
49.为了使得本领域技术人员更容易理解本公开实施例提供的技术方案,本公开实施例提供如图2所示的根据一示例性实施例示出的一种用于计算集群的数据传输示意图,如图2所示,该计算集群包括节点1、节点2以及高速网卡,节点1与节点2的存储空间被划分为本地存储与本地缓存,本地存储还包括本地内存与本地显存,本地缓存还包括内存缓存与显存缓存。可以理解的是,计算集群中除去节点1以及节点2还可以存在多个其他节点,图2
只是便于本领域技术人员理解所示。
50.另外,还设计了统一内存/显存编址系统,以及缓存管理/预取系统。其中,统一内存/显存编址系统能够对各节点的各存储介质进行统一编址,例如将节点1、2的异构访存空间编址成0到399,其中节点1-cpu(0-99),节点1-gpu(100
ꢀ‑ꢀ
199),节点2-cpu(200-299),节点2-gpu(300-399),节点1和节点2维持相同的全局地址映射视图,均可以获取某段地址的节点信息,映射信息等,实现数据的自由访问,各节点还能够通过统一内存/显存编址系统进行本地访问,以使得应用程序获取本地存储中存储的数据,并能够通过缓存管理/预取系统进行远端访问以及缓存读写,以将远端节点中的数据通过高速网卡缓存至本地缓存。
51.进一步,基于图2所示的用于计算集群的数据传输示意图,本公开还提供如图3所示的一种统一内存/显存编址系统进行数据传输分流过程的示意图,以及如图4所示的一种缓存管理/预取系统数据传输过程的示意图。
52.如图3所示,应用将数据访问请求发送至统一内存/显存编址系统,统一内存/显存编址系统判断该数据访问请求对应的需求数据是否存储于本地存储中,即图2所示的本地内存或本地显存,若是,则通过统一内存/显存编址进行本地访问,以使得应用程序从本地内存或本地显存中获取其需求数据,若否,则将该数据访问请求发送至缓存管理/预取系统,以进行如图4所示的过程。
53.如图4所示,通过缓存管理模块接收该数据访问请求,并通过缓存管理模块判断是否缓存命中,即确定图2所示的内存缓存与显存缓存中是否存在需求数据,若缓存命中,则使得应用程序直接访问本地缓存中的需求数据;若缓存未命中,则将该数据访问请求进一步发送至预取模块,以使得预取模块基于预取算法,根据缓存分级以及容量分配,从需求数据所在的远端节点中获取数据,并缓存至本地缓存,在数据传输结束后通过缓存管理更新缓存,以使得应用程序能够访问传输至本地缓存中的需求数据。
54.基于相同的发明构思,图5是根据一示例性实施例示出的一种用于计算集群的数据传输装置50的框图,该装置可以是计算集群中的中央处理器或者该中央处理器的一部分,也可以作为计算集群中任意节点的一部分,所述装置设置于包括多个节点的计算集群,所述装置包括:统一编址模块51,用于对所述多个节点的存储介质的存储空间进行统一编址,得到编址信息,所述编址信息中的每一个地址映射至所述多个节点中的任一节点的存储介质的存储空间的一个物理地址;并,缓存空间构建模块52,用于在所述多个节点的每一个节点的存储空间中构建缓存空间;第一确定模块53,用于响应于所述多个节点中的任意一个目标节点中的应用程序发起数据访问请求,确定所述数据访问请求对应的需求数据;第二确定模块54,用于根据所述需求数据的地址确定所述需求数据所在的第一节点以及目标物理地址;命中查询模块55,用于在所述第一节点不是所述目标节点的情况下,根据所述目标物理地址查询所述目标节点的本地缓存空间中是否命中所述需求数据;传输模块56,用于在所述本地缓存空间未命中所述需求数据的情况下,将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间;
映射模块57,将所述本地缓存空间中存储所述需求数据的地址映射为所述目标物理地址,以使得所述应用程序从所述目标节点的本地缓存空间获取所述需求数据。
55.可选地,所述存储空间包括内存和/或显存,所述缓存空间构建模块52具体用于:在所述多个节点的每一个节点的内存和/或显存中构建缓存空间以及本地存储空间;所述装置50还包括:第三确定模块,用于在所述第一节点为所述目标节点的情况下,确定所述目标物理地址指向所述目标节点的本地存储空间,并将所述目标节点的本地存储空间中存储的需求数据返回至所述应用程序。
56.可选地,所述装置50还包括:第四确定模块,用于根据历史访问特征,基于预取算法确定预取数据以及预取规模;预取模块,用于将所述预取数据对应的物理地址中的数据按照所述预取规模缓存至所述本地缓存空间。
57.可选地,所述装置50还包括:重映射模块,用于在将所述预取数据对应的物理地址中的数据按照所述预取规模缓存至所述本地缓存空间后,将所述本地缓存空间中缓存所述预取数据的存储空间的地址映射为所述预取数据对应的物理地址。
58.可选地,所述缓存空间构建模块52具体用于:在所述多个节点中的每一个节点的内存和显存中构建缓存空间,所述缓存空间包括内存缓存以及显存缓存,并设置所述显存缓存与所述内存缓存的优先级;所述传输模块56用于:根据所述显存缓存与所述内存缓存的优先级,在优先级较高的缓存空间未满的情况下,将所述存储于所述目标物理地址的需求数据缓存至优先级较高的缓存空间。
59.可选地,所述缓存空间构建模块52还用于:将所述显存缓存设置为第一优先级,将所述内存缓存设置为第二优先级;所述传输模块56还用于:在所述显存缓存的存储空间已满的情况下,若所述存储于所述目标物理地址的需求数据未完全缓存,则将所述存储于所述目标物理地址的需求数据未缓存完成的数据缓存至内存缓存的存储空间。
60.可选地,所述缓存空间构建模块52还用于:确定所述目标物理地址指向的存储空间为内存或显存;在所述目标物理地址指向的存储空间为内存的情况下,将所述内存缓存的优先级设置为第一优先级,并将所述显存缓存的优先级设置为第二优先级;在所述目标物理地址指向的存储空间为显存的情况下,将所述显存缓存的优先级设置为第一优先级,并将所述内存缓存的优先级设置为第二优先级;所述第一优先级的优先级高于所述第二优先级的优先级。
61.可选地,所述传输模块56具体用于:通过直接网络拷贝或远程直接数据存取或显存远程直接数据存取,将所述第一节
点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间。
62.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
63.图6是根据一示例性实施例示出的一种电子设备600的框图。如图6所示,该电子设备600可以包括:处理器601,存储器602。该电子设备600还可以包括多媒体组件603,输入/输出(i/o)接口604,以及通信组件605中的一者或多者。
64.其中,处理器601用于控制该电子设备600的整体操作,以完成上述的用于计算集群的数据传输方法中的全部或部分步骤。存储器602用于存储各种类型的数据以支持在该电子设备600的操作,这些数据例如可以包括用于在该电子设备600上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如需求数据、收发的消息、图片、音频、视频等等。该存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件603可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器602或通过通信组件605发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口604为处理器601和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件605用于该电子设备600与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g、4g、nb-iot、emtc、或其他5g等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件605可以包括:wi-fi模块,蓝牙模块,nfc模块等等。
65.在一示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的用于计算集群的数据传输方法。
66.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的用于计算集群的数据传输方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器602,上述程序指令可由电子设备600的处理器601执行以完成上述的用于计算集群的数据传输方法。
67.图7是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图7,电子设备700包括处理器722,其数量可以为一个或多个,以及存储器732,用于存储可由处理器722执行的计算机程序。存储器732中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器722可以被配置为
执行该计算机程序,以执行上述的用于计算集群的数据传输方法。
68.另外,电子设备700还可以包括电源组件726和通信组件750,该电源组件726可以被配置为执行电子设备700的电源管理,该通信组件750可以被配置为实现电子设备700的通信,例如,有线或无线通信。此外,该电子设备700还可以包括输入/输出(i/o)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
等等。
69.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的用于计算集群的数据传输方法的步骤。例如,该非临时性计算机可读存储介质可以为上述包括程序指令的存储器732,上述程序指令可由电子设备700的处理器722执行以完成上述的用于计算集群的数据传输方法。
70.在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的用于计算集群的数据传输方法的代码部分。
71.以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
72.另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
73.此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
技术特征:
1.一种用于计算集群的数据传输方法,其特征在于,应用于包括多个节点的计算集群,所述方法包括:对所述多个节点的存储介质的存储空间进行统一编址,得到编址信息,所述编址信息中的每一个地址映射至所述多个节点中的任一节点的存储介质的存储空间的一个物理地址;并,在所述多个节点的每一个节点的存储空间中构建缓存空间;响应于所述多个节点中的任意一个目标节点中的应用程序发起数据访问请求,确定所述数据访问请求对应的需求数据;根据所述需求数据的地址确定所述需求数据所在的第一节点以及目标物理地址;在所述第一节点不是所述目标节点的情况下,根据所述目标物理地址查询所述目标节点的本地缓存空间中是否命中所述需求数据;在所述本地缓存空间未命中所述需求数据的情况下,将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间;并,将所述本地缓存空间中存储所述需求数据的地址映射为所述目标物理地址,以使得所述应用程序从所述目标节点的本地缓存空间获取所述需求数据。2.根据权利要求1所述的方法,其特征在于,所述存储空间包括内存和/或显存,所述在所述多个节点的每一个节点的存储空间中构建缓存空间包括:在所述多个节点的每一个节点的内存和/或显存中构建缓存空间以及本地存储空间;所述方法包括:在所述第一节点为所述目标节点的情况下,确定所述目标物理地址指向所述目标节点的本地存储空间,并将所述目标节点的本地存储空间中存储的需求数据返回至所述应用程序。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据历史访问特征,基于预取算法确定预取数据以及预取规模;将所述预取数据对应的物理地址中的数据按照所述预取规模缓存至所述本地缓存空间。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:在将所述预取数据对应的物理地址中的数据按照所述预取规模缓存至所述本地缓存空间后,将所述本地缓存空间中缓存所述预取数据的存储空间的地址映射为所述预取数据对应的物理地址。5.根据权利要求2所述的方法,其特征在于,所述在所述多个节点中的每一个节点的内存和/或显存中构建缓存空间包括:在所述多个节点中的每一个节点的内存和显存中构建缓存空间,所述缓存空间包括内存缓存以及显存缓存,并设置所述显存缓存与所述内存缓存的优先级;所述将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间包括:根据所述显存缓存与所述内存缓存的优先级,在优先级较高的缓存空间未满的情况下,将所述存储于所述目标物理地址的需求数据缓存至优先级较高的缓存空间。6.根据权利要求5所述的方法,其特征在于,所述设置所述显存缓存与所述内存缓存的
优先级包括:将所述显存缓存设置为第一优先级,将所述内存缓存设置为第二优先级;所述根据所述显存缓存与所述内存缓存的优先级,在优先级较高的缓存空间未满的情况下,将所述存储于所述目标物理地址的需求数据缓存至优先级较高的缓存空间包括:在所述显存缓存的存储空间已满的情况下,若所述存储于所述目标物理地址的需求数据缓未完全缓存,则所述存储于所述目标物理地址的需求数据未缓存完成的数据缓存至内存缓存的存储空间。7.根据权利要求5所述的方法,其特征在于,所述将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间还包括:确定所述目标物理地址指向的存储空间为内存或显存;在所述目标物理地址指向的存储空间为内存的情况下,将所述内存缓存的优先级设置为第一优先级,并将所述显存缓存的优先级设置为第二优先级;在所述目标物理地址指向的存储空间为显存的情况下,将所述显存缓存的优先级设置为第一优先级,并将所述内存缓存的优先级设置为第二优先级;所述第一优先级的优先级高于所述第二优先级的优先级。8.根据权利要求1-7任一项所述的方法,其特征在于,所述将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间包括:通过直接网络拷贝或远程直接数据存取或显存远程直接数据存取,将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间。9.一种用于计算集群的数据传输装置,其特征在于,所述装置设置于包括多个节点的计算集群,所述装置包括:统一编址模块,用于对所述多个节点的存储介质的存储空间进行统一编址,得到编址信息,所述编址信息中的每一个地址映射至所述多个节点中的任一节点的存储介质的存储空间的一个物理地址;并,缓存空间构建模块,用于在所述多个节点的每一个节点的存储空间中构建缓存空间;第一确定模块,用于响应于所述多个节点中的任意一个目标节点中的应用程序发起数据访问请求,确定所述数据访问请求对应的需求数据;第二确定模块,用于根据所述需求数据的地址确定所述需求数据所在的第一节点以及目标物理地址;命中查询模块,用于在所述第一节点不是所述目标节点的情况下,根据所述目标物理地址查询所述目标节点的本地缓存空间中是否命中所述需求数据;传输模块,用于在所述本地缓存空间未命中所述需求数据的情况下,将所述第一节点中存储于所述目标物理地址的需求数据传输至所述目标节点的本地缓存空间;映射模块,将所述本地缓存空间中存储所述需求数据的地址映射为所述目标物理地址,以使得所述应用程序从所述目标节点的本地缓存空间获取所述需求数据。10.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-8中任一项所述方法的步骤。
技术总结
本公开涉及一种用于计算集群的数据传输方法、装置及存储介质,该方法包括:对该多个节点的存储介质的存储空间进行统一编址,得到编址信息;在该多个节点的每一个节点的存储空间中构建缓存空间;响应于该多个节点中的任意一个目标节点中的应用程序发起数据访问请求,确定需求数据;根据该需求数据确定该需求数据所在的第一节点以及目标物理地址;在该第一节点不是该目标节点的情况下,根据该目标物理地址查询该目标节点的本地缓存空间中是否命中该需求数据;在该本地缓存空间未命中该需求数据的情况下,将该第一节点中的需求数据传输至该目标节点的本地缓存空间,以使得该应用程序从该目标节点的本地缓存空间获取该需求数据。该目标节点的本地缓存空间获取该需求数据。该目标节点的本地缓存空间获取该需求数据。
技术研发人员:黄增士 王鲲 陈飞 邹懋 杨智佳
受保护的技术使用者:维塔科技(北京)有限公司
技术研发日:2022.02.08
技术公布日:2022/3/8