CN110502469B - 一种数据分发方法、装置、设备及存储介质 - Google Patents

一种数据分发方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110502469B
CN110502469B CN201910809006.6A CN201910809006A CN110502469B CN 110502469 B CN110502469 B CN 110502469B CN 201910809006 A CN201910809006 A CN 201910809006A CN 110502469 B CN110502469 B CN 110502469B
Authority
CN
China
Prior art keywords
data
destination
distributed
mirror image
positions
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
Application number
CN201910809006.6A
Other languages
English (en)
Other versions
CN110502469A (zh
Inventor
魏斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Suiyuan Intelligent Technology Co ltd
Original Assignee
Shanghai Suiyuan Intelligent Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Suiyuan Intelligent Technology Co ltd filed Critical Shanghai Suiyuan Intelligent Technology Co ltd
Priority to CN201910809006.6A priority Critical patent/CN110502469B/zh
Publication of CN110502469A publication Critical patent/CN110502469A/zh
Application granted granted Critical
Publication of CN110502469B publication Critical patent/CN110502469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种数据分发方法、装置、设备及存储介质。其中,该方法包括:确定待分发数据的目的地位置数量;如果目的地位置数量小于等于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第一数据分发策略,并根据第一数据分发策略分发待分发数据;如果目的地位置数量大于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第二数据分发策略,并根据第二数据分发策略分发待分发数据。本发明实施例可以根据待分发数据的目的地位置数量确定与待分发数据匹配的数据分发策略,可以根据第一数据分发策略或者第二数据分发策略分发待分发数据,有效降低了完成数据分发任务的操作开销,提高数据分发效率。

Description

一种数据分发方法、装置、设备及存储介质
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种数据分发方法、装置、设备及存储介质。
背景技术
随着人工智能(Artificial Intelligence,AI)处理器的演进和发展,处理器内部数据的存储需求越来越大。同时,处理器内部的数据计算引擎数量也越来越多。这就需要在多个数据存储单元和多个数据计算引擎之间安放数据交换矩阵,保证任何一个计算引擎都能访问任何一个数据存储单元,从而可以通过数据交换矩阵实现数据分发。
现有数据分发过程中,由于分发路径重叠,分发源头的竞争,导致了数据交换冲突、数据交换碰撞、数据地址随机抖动等问题,完成数据分发任务的操作开销较大,降低了数据分发效率。
发明内容
本发明实施例提供一种数据分发方法、装置、设备及存储介质,以优化现有的数据分发方法,降低完成数据分发任务的操作开销,提高数据分发效率。
第一方面,本发明实施例提供了一种数据分发方法,包括:
确定待分发数据的目的地位置数量;
如果目的地位置数量小于等于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第一数据分发策略,并根据第一数据分发策略分发待分发数据;
如果目的地位置数量大于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第二数据分发策略,并根据第二数据分发策略分发待分发数据。
第二方面,本发明实施例还提供了一种数据分发装置,包括:
位置数量确定模块,用于确定待分发数据的目的地位置数量;
第一数据分发模块,用于如果目的地位置数量小于等于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第一数据分发策略,并根据第一数据分发策略分发待分发数据;
第二数据分发模块,用于如果目的地位置数量大于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第二数据分发策略,并根据第二数据分发策略分发待分发数据。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如本发明实施例所述的数据分发方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明实施例所述的数据分发方法。
本发明实施例的技术方案,通过确定待分发数据的目的地位置数量,在目的地位置数量小于等于预设数量阈值时,根据第一数据分发策略分发待分发数据;在目的地位置数量大于预设数量阈值时,根据第二数据分发策略分发待分发数据,可以根据待分发数据的目的地位置数量确定与待分发数据匹配的数据分发策略,可以根据第一数据分发策略或者第二数据分发策略分发待分发数据,在待分发数据的目的地位置数量较多时,有效降低了完成数据分发任务的操作开销,提高数据分发效率。
附图说明
图1a为本发明实施例一提供的一种数据分发方法的流程图;
图1b为本发明实施例一提供的一种数据分发方法的操作开销对比图;
图2a为本发明实施例二提供的一种数据分发方法的流程图;
图2b为本发明实施例二提供的一种将待分发数据从数据源头位置分发至各个镜像数据位置的过程的示意图;
图3为本发明实施例三提供的一种数据分发方法的流程图;
图4为本发明实施例四提供的一种数据分发装置的结构示意图;
图5为本发明实施例五提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1a为本发明实施例一提供的一种数据分发方法的流程图。本实施例可适用于进行数据分发的情况,该方法可以由本发明实施例提供的数据分发装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。如图1a所示,本实施例的方法具体包括:
步骤101、确定待分发数据的目的地位置数量。
其中,待分发数据是需要进行分发的数据。数据源头是处理器内部用于存储数据的数据存储单元。待分发数据的数据源头是处理器内部用于存储待分发数据的数据存储单元。待分发数据存储在处理器内部的一个数据存储单元中。该数据存储单元的位置即为待分发数据的数据源头位置。
待分发数据的目的地是处理器内部需要获取待分发数据的数据处理单元。数据处理单元可以为数据存储单元或者数据计算引擎。数据处理单元的位置即为待分发数据的目的地位置。目的地位置数量是待分发数据的目的地的数量。
可选的,获取处理器内部的数据分发任务,并根据数据分发任务确定待分发数据的目的地位置数量。其中,数据分发任务为将待分发数据从数据源头位置分发至对应的至少一个目的地位置。
在一个具体实例中,数据分发任务为将待分发数据从数据源头位置分发至对应的8个目的地位置。根据数据分发任务确定待分发数据的目的地位置数量为8。
步骤102、判断目的地位置数量是否小于等于预设数量阈值:若是,则执行步骤103;若否,则执行步骤104。
图1b为本发明实施例一提供的一种数据分发方法的操作开销对比图。操作开销对比图的横坐标为数据源头位置数量-目的地位置数量,用于表示不同的数据分发任务。1src-2dst为1个数据源头位置-2个目的地位置,即数据分发任务为将待分发数据从数据源头位置分发至对应的2个目的地位置。操作开销对比图的纵坐标为操作开销。操作开销是完成数据分发任务的时间。操作开销的单位为毫秒。
本发明实施例提供两种数据分发策略:第一数据分发策略和第二数据分发策略。第一数据分发策略和第二数据分发策略根据待分发数据的数据源头位置和目的地位置,得到相应场景下的最优数据分发操作方法,达到高效分发数据的目的,克服现有数据分发过程中,由于分发路径重叠,分发源头的竞争,导致的数据交换冲突、数据交换碰撞、数据地址随机抖动等问题,有效降低了完成数据分发任务的操作开销,提高数据分发效率。
如图1b所示,当目的地位置数量小于等于3时,根据第一数据分发策略完成数据分发任务的操作开销、根据第二数据分发策略完成数据分发任务的操作开销、以及根据无数据分发优化的数据分发方法完成数据分发任务的操作开销比较接近,相差不大。当目的地位置数量大于3时,根据第一数据分发策略或者第二数据分发策略完成数据分发任务的操作开销小于根据无数据分发优化的数据分发方法完成数据分发任务的操作开销。可见,根据第一数据分发策略或者第二数据分发策略分发待分发数据,可以在目的地位置数量较多时,有效降低操作开销;在目的地位置数量较少时,产生与无数据分发优化的数据分发方法接近的操作开销。
如图1b所示,当目的地位置数量小于等于6时,根据第一数据分发策略完成数据分发任务的操作开销变化幅度要小于根据第二数据分发策略完成数据分发任务的操作开销变化幅度。可见,当目的地位置数量小于等于6时,根据第一数据分发策略完成数据分发任务的操作开销变化比较稳定。
可选的,预先根据操作开销对比图,设置预设数量阈值。判断目的地位置数量是否小于等于预设数量阈值:如果目的地位置数量小于等于预设数量阈值,则采用操作开销变化比较稳定的第一数据分发策略分发待分发数据;如果目的地位置数量大于预设数量阈值,则采用第二数据分发策略分发待分发数据。
在一个具体实例中,根据如图1b所示的操作开销对比图,将预设数量阈值设置为6。判断目的地位置数量是否小于等于6:如果目的地位置数量小于等于6,则采用操作开销变化比较稳定的第一数据分发策略分发待分发数据;如果目的地位置数量大于6,则采用第二数据分发策略分发待分发数据。
步骤103、确定与待分发数据匹配的数据分发策略为第一数据分发策略,并根据第一数据分发策略分发待分发数据。
可选的,根据第一数据分发策略分发待分发数据,可以包括:根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表;获取位置关系表中的其他目的地位置数量,作为与待分发数据对应的数据源头镜像数量;确定数据源头镜像数量的镜像数据位置,并根据位置关系表中的各个其他目的地位置,确定与各个镜像数据位置对应的目的地位置;根据各个镜像数据位置与待分发数据的数据源头位置的距离,将待分发数据分发至各个镜像数据位置;并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置。
在第一数据分发策略中,根据待分发数据的数据源头位置和至少一个目的地位置确定数据源头镜像数量的镜像数据位置,将待分发数据分发至各个镜像数据位置,然后并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置。每一个目的地位置有唯一对应的数据分发源头和数据分发路径,可以避免现有数据分发过程中,将待分发数据由数据源头位置分发至多个目的地位置时,由于分发路径重叠,分发源头的竞争,导致的数据交换冲突、数据交换碰撞、数据地址随机抖动等问题,有效降低了完成数据分发任务的操作开销,提高了数据分发效率。
步骤104、确定与待分发数据匹配的数据分发策略为第二数据分发策略,并根据第二数据分发策略分发待分发数据。
可选的,根据第二数据分发策略分发待分发数据,可以包括:根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表;根据位置关系表中的其他目的地位置数量,以及最大数据流并行数量,确定与待分发数据对应的数据源头镜像数量;确定数据源头镜像数量的镜像数据位置,并根据位置关系表中的各个其他目的地位置以及最大数据流并行数量,确定与各个镜像数据位置对应的目的地位置;根据各个镜像数据位置与待分发数据的数据源头位置的距离,将待分发数据分发至各个镜像数据位置;并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置。
在第二数据分发策略中,根据待分发数据的数据源头位置和至少一个目的地位置,以及最大数据流并行数量,确定数据源头镜像数量的镜像数据位置,将待分发数据分发至各个镜像数据位置,然后并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置。每一个目的地位置有对应的数据分发源头和数据分发路径,可以避免现有数据分发过程中,将待分发数据由数据源头位置分发至多个目的地位置时,由于分发路径重叠,分发源头的竞争,导致的数据交换冲突、数据交换碰撞、数据地址随机抖动等问题,有效降低了完成数据分发任务的操作开销,提高了数据分发效率。
本发明提供的两种数据分发策略可以封装为对应软件做数据分发的调度器,仅需输入待分发数据的数据源头位置和至少一个目的地位置,以及数据分发策略类型,即可让软件层无感使用,获得最好的数据分发效率。
本发明实施例提供了一种数据分发方法,通过确定待分发数据的目的地位置数量,在目的地位置数量小于等于预设数量阈值时,根据第一数据分发策略分发待分发数据;在目的地位置数量大于预设数量阈值时,根据第二数据分发策略分发待分发数据,可以根据待分发数据的目的地位置数量确定与待分发数据匹配的数据分发策略,可以根据第一数据分发策略或者第二数据分发策略分发待分发数据,在待分发数据的目的地位置数量较多时,有效降低了完成数据分发任务的操作开销,提高数据分发效率。
实施例二
图2a为本发明实施例二提供的一种数据分发方法的流程图。本实施例可以与上述一个或者多个实施例中各个可选方案结合,在本实施例中,根据所述第一数据分发策略分发待分发数据,可以包括:根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表;获取位置关系表中的其他目的地位置数量,作为与待分发数据对应的数据源头镜像数量;确定数据源头镜像数量的镜像数据位置,并根据位置关系表中的各个其他目的地位置,确定与各个镜像数据位置对应的目的地位置;根据各个镜像数据位置与待分发数据的数据源头位置的距离,将待分发数据分发至各个镜像数据位置;并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置。
以及,在根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表之前,可以还包括:初始化数据交换矩阵的属性参数;初始化数据源头位置与目的地位置的本地映射关系。
如图2a所示,本实施例的方法具体包括:
步骤201、确定待分发数据的目的地位置数量。
步骤202、在确定目的地位置数量小于等于预设数量阈值时,确定与待分发数据匹配的数据分发策略为第一数据分发策略。
步骤203、初始化数据交换矩阵的属性参数。
其中,数据交换矩阵用于在处理器内部的各数据处理单元之间形成连接,保证任何一个数据处理单元都能访问其他任何一个数据处理单元。数据处理单元可以为数据存储单元或者数据计算引擎。
初始化数据交换矩阵的属性参数,在处理器内部的各数据处理单元之间形成连接,从而可以通过数据交换矩阵,将数据从一个数据处理单元分发至另一个数据处理单元。
步骤204、初始化数据源头位置与目的地位置的本地映射关系。
其中,数据源头是处理器内部用于存储数据的数据存储单元。每一个数据源头设置有唯一对应的一个目的地,该目的地为数据源头的本地目的地。
可选的,针对每一个数据源头,将距离数据源最近的数据处理单元设置为数据源头的本地目的地,建立数据源头位置与数据源头的本地目的地位置之间的映射关系,从而得到数据源头位置与目的地位置的本地映射关系。
步骤205、根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表。
可选的,与待分发数据对应的位置关系表中包括两个目的地位置组:本地目的地位置组和其他目的地位置组。
可选的,根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表,可以包括:根据数据源头位置与目的地位置的本地映射关系,确定与待分发数据的数据源头位置对应的本地目的地位置;依次从待分发数据的全部目的地位置中,获取一个目的地位置作为目标目的地位置;判断目标目的地位置是否为与待分发数据的数据源头位置对应的本地目的地位置;若是,则将目标目的地位置划分为本地目的地位置,加入至与待分发数据对应的位置关系表中的本地目的地位置组;若否,则将目标目的地位置划分为其他目的地位置,加入至与待分发数据对应的位置关系表中的其他目的地位置组;返回执行依次从待分发数据的至少一个目的地位置中,获取一个待分发数据的各目的地位置作为目标目的地位置的操作,直至完成对待分发数据的全部目的地位置的处理。
步骤206、获取位置关系表中的其他目的地位置数量,作为与待分发数据对应的数据源头镜像数量。
其中,其他目的地位置数量是其他目的地位置组中的目的地位置的总数。
在一个具体实例中,待分发数据有8个目的地位置。与待分发数据对应的位置关系表中的本地目的地位置数量为1。与待分发数据对应的位置关系表中的其他目的地位置数量为7。获取位置关系表中的其他目的地位置数量,作为与待分发数据对应的数据源头镜像数量,即与待分发数据对应的数据源头镜像数量为7。
步骤207、确定数据源头镜像数量的镜像数据位置,并根据位置关系表中的各个其他目的地位置,确定与各个镜像数据位置对应的目的地位置。
其中,在处理器内部的除待分发数据的数据源头和目的地之外的数据处理单元中,选择数据源头镜像数量的数据处理单元作为数据源头镜像,所选择的数据处理单元的位置即为镜像数据位置。分别为位置关系表中的各个其他目的地位置分配一个对应的镜像数据位置,从而确定与各个镜像数据位置对应的目的地位置。
在一个具体实例中,与待分发数据对应的位置关系表中的其他目的地位置数量为7。与待分发数据对应的数据源头镜像数量为7。在处理器内部的除待分发数据的数据源头和目的地之外的数据处理单元中,选择7个数据处理单元作为数据源头镜像,所选择的数据处理单元的位置即为镜像数据位置。分别为每一个其他目的地位置分配一个对应的镜像数据位置,从而确定与各个镜像数据位置对应的目的地位置。
可选的,在确定数据源头镜像数量的镜像数据位置之后,可以还包括:依次判断各个镜像数据位置的数据负载是否大于预设数据负载阈值;如果目标镜像数据位置的数据负载大于预设数据负载阈值,则重新获取一个数据负载小于预设数据负载阈值的镜像数据位置替换目标镜像数据位置。
其中,预设数据负载阈值是预先设置的阈值,用于衡量各个镜像数据位置的数据负载。镜像数据位置存储的数据越多,数据负载越大。如果目标镜像数据位置的数据负载大于预设数据负载阈值,则重新获取一个数据负载小于预设数据负载阈值的镜像数据位置替换目标镜像数据位置;如果目标镜像数据位置的数据负载小于等于预设数据负载阈值,则无需进行替换处理。由此,实现使用数据负载较轻的数据处理单元作为数据源头镜像。
可选的,在确定数据源头镜像数量的镜像数据位置之后,可以还包括:根据各个数据分发引擎的任务负载,确定与各个镜像数据位置对应的数据分发引擎。
其中,数据分发引擎是处理器内部用于完成数据分发任务,将数据从一个指定位置分发至另一个指定位置的组件。数据分发引擎的数据分发任务越多,任务负载越大。预先设置预设任务负载阈值。在确定数据源头镜像数量的镜像数据位置之后,为每一个镜像数据位置分配一个任务负载小于等于预设任务负载阈值的数据分发引擎,从而确定与各个镜像数据位置对应的数据分发引擎。由此,实现使用任务负载较轻的数据分发引擎作为与各个镜像数据位置对应的数据分发引擎。
步骤208、根据各个镜像数据位置与待分发数据的数据源头位置的距离,将待分发数据分发至各个镜像数据位置。
其中,按照镜像数据位置与待分发数据的数据源头位置的距离,从近到远,对各个镜像数据位置进行排序。然后根据距离从近到远,将待分发数据从数据源头位置分发至各个镜像数据位置。
可选的,将待分发数据从数据源头位置分发至各个镜像数据位置的过程,是按照2的幂次速度扩散的。在一个具体实例中,与待分发数据对应的数据源头镜像数量为7。按照镜像数据位置与待分发数据的数据源头位置0的距离,从近到远,对各个镜像数据位置进行排序,得到排序结果:镜像数据位置1、镜像数据位置2、镜像数据位置3、镜像数据位置4、镜像数据位置5、镜像数据位置6、镜像数据位置7。将待分发数据从1个数据源头位置分发至7个镜像数据位置的过程如图2b所示,三步完成,并行数量每步增加一倍。第一步,启动与数据源头位置0对应的数据分发引擎,通过数据交换矩阵,将待分发数据从数据源头位置0分发至镜像数据位置4。第二步,并行启动与数据源头位置0对应的数据分发引擎、以及与镜像数据位置4对应的数据分发引擎,通过数据交换矩阵,将待分发数据从数据源头位置0分发至镜像数据位置2,将待分发数据从镜像数据位置4分发至镜像数据位置6。第二步,并行启动与数据源头位置0对应的数据分发引擎、与镜像数据位置2对应的数据分发引擎、与镜像数据位置4对应的数据分发引擎、以及与镜像数据位置6对应的数据分发引擎,通过数据交换矩阵,将待分发数据从数据源头位置0分发至镜像数据位置1,将待分发数据从镜像数据位置2分发至镜像数据位置3,将待分发数据从镜像数据位置4分发至镜像数据位置5,将待分发数据从镜像数据位置6分发至镜像数据位置7。
步骤209、并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置。
其中,数据源头位置对应的目的地位置为本地目的地位置。各个镜像数据位置有对应的一个其他目的地位置。并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎。与数据源头位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置分发至本地目的地位置。与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由镜像数据位置分发至对应的目的地位置。
本发明实施例提供了一种数据分发方法,通过根据待分发数据的数据源头位置和至少一个目的地位置确定数据源头镜像数量的镜像数据位置,将待分发数据分发至各个镜像数据位置,然后并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置,可以实现每一个目的地位置有唯一对应的数据分发源头和数据分发路径,可以避免现有数据分发过程中,将待分发数据由数据源头位置分发至多个目的地位置时,由于分发路径重叠,分发源头的竞争,导致的数据交换冲突、数据交换碰撞、数据地址随机抖动等问题,有效降低了完成数据分发任务的操作开销,提高了数据分发效率。
实施例三
图3为本发明实施例三提供的一种数据分发方法的流程图。本实施例可以与上述一个或者多个实施例中各个可选方案结合,在本实施例中,根据第二数据分发策略分发待分发数据,可以包括:根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表;根据位置关系表中的其他目的地位置数量,以及最大数据流并行数量,确定与待分发数据对应的数据源头镜像数量;确定数据源头镜像数量的镜像数据位置,并根据位置关系表中的各个其他目的地位置以及最大数据流并行数量,确定与各个镜像数据位置对应的目的地位置;根据各个镜像数据位置与待分发数据的数据源头位置的距离,将待分发数据分发至各个镜像数据位置;并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置。
如图3所示,本实施例的方法具体包括:
步骤301、确定待分发数据的目的地位置数量。
步骤302、在确定目的地位置数量大于预设数量阈值时,确定与待分发数据匹配的数据分发策略为第二数据分发策略。
步骤303、初始化数据交换矩阵的属性参数。
步骤304、初始化数据源头位置与目的地位置的本地映射关系。
步骤305、根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表。
步骤306、根据位置关系表中的其他目的地位置数量,以及最大数据流并行数量,确定与待分发数据对应的数据源头镜像数量。
其中,最大数据流并行数量是数据分发引擎可以并行完成的数据分发任务数量的上限。例如,最大数据流并行数量为2,则数据分发引擎最多可以并行完成2个数据分发任务。
可选的,根据位置关系表中的其他目的地位置数量,以及最大数据流并行数量,确定与待分发数据对应的数据源头镜像数量,可以包括:根据下述公式计算与待分发数据对应的数据源头镜像数量credits:
credits=nList/nParallel+nList%nParallel,
其中,credits为与待分发数据对应的数据源头镜像数量,nList为位置关系表中的其他目的地位置数量,nParallel为最大数据流并行数量,nList/nParallel为其他目的地位置数量与最大数据流并行数量相除的整数部分,nList%nParallel为其他目的地位置数量与最大数据流并行数量相除的余数部分。
步骤307、确定数据源头镜像数量的镜像数据位置,并根据位置关系表中的各个其他目的地位置以及最大数据流并行数量,确定与各个镜像数据位置对应的目的地位置。
其中,在处理器内部的除待分发数据的数据源头和目的地之外的数据处理单元中,选择数据源头镜像数量的数据处理单元作为数据源头镜像,所选择的数据处理单元的位置即为镜像数据位置。
可选的,在确定数据源头镜像数量的镜像数据位置之后,可以还包括:依次判断各个镜像数据位置的数据负载是否大于预设数据负载阈值;如果目标镜像数据位置的数据负载大于预设数据负载阈值,则重新获取一个数据负载小于预设数据负载阈值的镜像数据位置替换目标镜像数据位置。
可选的,在确定数据源头镜像数量的镜像数据位置之后,可以还包括:根据各个数据分发引擎的任务负载,确定与各个镜像数据位置对应的数据分发引擎。
可选的,根据位置关系表中的各个其他目的地位置以及最大数据流并行数量,确定与各个镜像数据位置对应的目的地位置,可以包括:依次从位置关系表中的全部其他目的地位置中,获取最大数据流并行数量的其他目的地位置,作为一个目的地位置组,直至位置关系表中的剩余其他目的地位置数量小于最大数据流并行数量;确定与各个目的地位置组对应的镜像数据位置;确定与各个剩余其他目的地位置对应的镜像数据位置。
在一个具体实施例中,位置关系表中的其他目的地位置数量为7,最大数据流并行数量为2。根据位置关系表中的其他目的地位置数量,以及最大数据流并行数量,确定与待分发数据对应的数据源头镜像数量为4。在处理器内部的除待分发数据的数据源头和目的地之外的数据处理单元中,选择4个数据处理单元作为数据源头镜像。依次从位置关系表中的全部其他目的地位置中,获取2个其他目的地位置,作为一个目的地位置组,直至位置关系表中的剩余其他目的地位置数量小于2,得到3个目的地位置组和1个剩余其他目的地位置。确定与各个目的地位置组对应的镜像数据位置,即为3个目的地位置组中的每一个目的地位置组分配一个镜像数据位置。将4个镜像数据位置中剩余的1个镜像数据位置分配给余下的1个剩余其他目的地位置。
步骤308、根据各个镜像数据位置与待分发数据的数据源头位置的距离,将待分发数据分发至各个镜像数据位置。
步骤309、并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置。
其中,各个镜像数据位置有对应的目的地位置。如果镜像数据位置对应的是目的地位置组,则该镜像数据位置有对应的一个目的地位置组内的最大数据流并行数量的其他目的地位置。如果镜像数据位置对应的是目的地位置,则该镜像数据位置有唯一对应的一个其他目的地位置。
并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎。与数据源头位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置分发至本地目的地位置。与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由镜像数据位置分发至对应的目的地位置。
如果镜像数据位置对应的是目的地位置组,则与镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由镜像数据位置并行分发至最大数据流并行数量的其他目的地位置。如果镜像数据位置对应的是目的地位置,则与镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由镜像数据位置分发至唯一对应的一个其他目的地位置。
本发明实施例提供了一种数据分发方法,通过根据待分发数据的数据源头位置和至少一个目的地位置,以及最大数据流并行数量,确定数据源头镜像数量的镜像数据位置,将待分发数据分发至各个镜像数据位置,然后并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置,可以实现每一个目的地位置有对应的数据分发源头和数据分发路径,可以避免现有数据分发过程中,将待分发数据由数据源头位置分发至多个目的地位置时,由于分发路径重叠,分发源头的竞争,导致的数据交换冲突、数据交换碰撞、数据地址随机抖动等问题,有效降低了完成数据分发任务的操作开销,提高了数据分发效率。
实施例四
图4为本发明实施例四提供的一种数据分发装置的结构示意图。如图4所示,所述装置可以配置于计算机设备,包括:位置数量确定模块401、第一数据分发模块402以及第二数据分发模块403。
其中,位置数量确定模块401,用于确定待分发数据的目的地位置数量;第一数据分发模块402,用于如果目的地位置数量小于等于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第一数据分发策略,并根据第一数据分发策略分发待分发数据;第二数据分发模块403,用于如果目的地位置数量大于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第二数据分发策略,并根据第二数据分发策略分发待分发数据。
本发明实施例提供了一种数据分发装置,通过确定待分发数据的目的地位置数量,在目的地位置数量小于等于预设数量阈值时,根据第一数据分发策略分发待分发数据;在目的地位置数量大于预设数量阈值时,根据第二数据分发策略分发待分发数据,可以根据待分发数据的目的地位置数量确定与待分发数据匹配的数据分发策略,可以根据第一数据分发策略或者第二数据分发策略分发待分发数据,在待分发数据的目的地位置数量较多时,有效降低了完成数据分发任务的操作开销,提高数据分发效率。
在上述各实施例的基础上,第一数据分发模块402可以包括:第一建立单元,用于根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表;数量获取单元,用于获取位置关系表中的其他目的地位置数量,作为与待分发数据对应的数据源头镜像数量;第一位置确定单元,用于确定数据源头镜像数量的镜像数据位置,并根据位置关系表中的各个其他目的地位置,确定与各个镜像数据位置对应的目的地位置;第一数据分发单元,用于根据各个镜像数据位置与待分发数据的数据源头位置的距离,将待分发数据分发至各个镜像数据位置;第一数据搬运单元,用于并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置。
在上述各实施例的基础上,第二数据分发模块403可以包括:第二建立单元,用于根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表;数量确定单元,用于根据位置关系表中的其他目的地位置数量,以及最大数据流并行数量,确定与待分发数据对应的数据源头镜像数量;第二位置确定单元,用于确定数据源头镜像数量的镜像数据位置,并根据位置关系表中的各个其他目的地位置以及最大数据流并行数量,确定与各个镜像数据位置对应的目的地位置;第二数据分发单元,用于根据各个镜像数据位置与待分发数据的数据源头位置的距离,将待分发数据分发至各个镜像数据位置;第二数据搬运单元,用于并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置。
在上述各实施例的基础上,第一数据分发模块402或者第二数据分发模块403可以还包括:参数初始化单元,用于初始化数据交换矩阵的属性参数;关系初始化单元,用于初始化数据源头位置与目的地位置的本地映射关系。
在上述各实施例的基础上,第一数据分发模块402或者第二数据分发模块403可以还包括:负载判断单元,用于依次判断各个镜像数据位置的数据负载是否大于预设数据负载阈值;位置替换单元,用于如果目标镜像数据位置的数据负载大于预设数据负载阈值,则重新获取一个数据负载小于预设数据负载阈值的镜像数据位置替换目标镜像数据位置。
在上述各实施例的基础上,第一数据分发模块402或者第二数据分发模块403可以还包括:引擎确定单元,用于根据各个数据分发引擎的任务负载,确定与各个镜像数据位置对应的数据分发引擎。
在上述各实施例的基础上,数量确定单元可以包括:数量计算子单元,用于根据下述公式计算与待分发数据对应的数据源头镜像数量credits:
credits=nList/nParallel+nList%nParallel,
其中,credits为与待分发数据对应的数据源头镜像数量,nList为位置关系表中的其他目的地位置数量,nParallel为最大数据流并行数量,nList/nParallel为其他目的地位置数量与最大数据流并行数量相除的整数部分,nList%nParallel为其他目的地位置数量与最大数据流并行数量相除的余数部分。
在上述各实施例的基础上,第二位置确定单元可以包括:位置获取子单元,用于依次从位置关系表中的全部其他目的地位置中,获取最大数据流并行数量的其他目的地位置,作为一个目的地位置组,直至位置关系表中的剩余其他目的地位置数量小于最大数据流并行数量;第一确定子单元,用于确定与各个目的地位置组对应的镜像数据位置;第二确定子单元,用于确定与各个剩余其他目的地位置对应的镜像数据位置。
上述数据分发装置可执行本发明任意实施例所提供的数据分发方法,具备执行数据分发方法相应的功能模块和有益效果。
实施例五
图5为本发明实施例五提供的一种计算机设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图5显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机设备12以通用计算机设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器16,存储器28,连接不同系统组件(包括存储器28和处理器16)的总线18。处理器16包括但不限于AI处理器。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图5中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
计算机设备12的处理器16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的数据分发方法。该方法具体可以包括:确定待分发数据的目的地位置数量;如果目的地位置数量小于等于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第一数据分发策略,并根据第一数据分发策略分发待分发数据;如果目的地位置数量大于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第二数据分发策略,并根据第二数据分发策略分发待分发数据。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所提供的数据分发方法。该方法具体可以包括:确定待分发数据的目的地位置数量;如果目的地位置数量小于等于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第一数据分发策略,并根据第一数据分发策略分发待分发数据;如果目的地位置数量大于预设数量阈值,则确定与待分发数据匹配的数据分发策略为第二数据分发策略,并根据第二数据分发策略分发待分发数据。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++、Ruby、Go,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言,以及AI算法的计算机语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种数据分发方法,其特征在于,包括:
确定待分发数据的目的地位置数量;
如果所述目的地位置数量小于等于预设数量阈值,则根据所述待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将所述至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与所述待分发数据对应的位置关系表;获取所述位置关系表中的其他目的地位置数量,作为与所述待分发数据对应的数据源头镜像数量;确定数据源头镜像数量的镜像数据位置,并根据所述位置关系表中的各个其他目的地位置,确定与各个镜像数据位置对应的目的地位置;根据所述各个镜像数据位置与所述待分发数据的数据源头位置的距离,将所述待分发数据分发至所述各个镜像数据位置;并行启动与所述数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将所述待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置;
如果所述目的地位置数量大于预设数量阈值,则根据所述待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将所述至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与所述待分发数据对应的位置关系表;根据所述位置关系表中的其他目的地位置数量,以及最大数据流并行数量,确定与所述待分发数据对应的数据源头镜像数量;确定数据源头镜像数量的镜像数据位置,并根据所述位置关系表中的各个其他目的地位置以及所述最大数据流并行数量,确定与各个镜像数据位置对应的目的地位置;根据所述各个镜像数据位置与所述待分发数据的数据源头位置的距离,将所述待分发数据分发至所述各个镜像数据位置;并行启动与所述数据源头位置对应的数据分发引擎,以及所述与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将所述待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置;
其中,数据源头是处理器内部用于存储数据的数据存储单元,本地目的地是数据源头唯一对应的一个目的地。
2.根据权利要求1所述的方法,其特征在于,在根据所述待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将所述至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与所述待分发数据对应的位置关系表之前,还包括:
初始化数据交换矩阵的属性参数;
初始化数据源头位置与目的地位置的本地映射关系。
3.根据权利要求1所述的方法,其特征在于,在确定数据源头镜像数量的镜像数据位置之后,还包括:
依次判断各个镜像数据位置的数据负载是否大于预设数据负载阈值;
如果目标镜像数据位置的数据负载大于预设数据负载阈值,则重新获取一个数据负载小于预设数据负载阈值的镜像数据位置替换目标镜像数据位置。
4.根据权利要求1所述的方法,其特征在于,在确定数据源头镜像数量的镜像数据位置之后,还包括:
根据各个数据分发引擎的任务负载,确定与各个镜像数据位置对应的数据分发引擎。
5.根据权利要求1所述的方法,其特征在于,根据所述位置关系表中的其他目的地位置数量,以及最大数据流并行数量,确定与所述待分发数据对应的数据源头镜像数量,包括:
根据下述公式计算与所述待分发数据对应的数据源头镜像数量credits:
credits=nList/nParallel+nList%nParallel,
其中,credits为与所述待分发数据对应的数据源头镜像数量,nList为所述位置关系表中的其他目的地位置数量,nParallel为所述最大数据流并行数量,nList/nParallel为所述其他目的地位置数量与所述最大数据流并行数量相除的整数部分,nList%nParallel为所述其他目的地位置数量与所述最大数据流并行数量相除的余数部分。
6.根据权利要求5所述的方法,其特征在于,根据所述位置关系表中的各个其他目的地位置以及所述最大数据流并行数量,确定与各个镜像数据位置对应的目的地位置,包括:
依次从所述位置关系表中的全部其他目的地位置中,获取所述最大数据流并行数量的其他目的地位置,作为一个目的地位置组,直至所述位置关系表中的剩余其他目的地位置数量小于所述最大数据流并行数量;
确定与各个目的地位置组对应的镜像数据位置;
确定与各个剩余其他目的地位置对应的镜像数据位置。
7.一种数据分发装置,其特征在于,包括:
位置数量确定模块,用于确定待分发数据的目的地位置数量;
第一数据分发模块,包括:第一建立单元,用于如果所述目的地位置数量小于等于预设数量阈值,则根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表;数量获取单元,用于获取位置关系表中的其他目的地位置数量,作为与待分发数据对应的数据源头镜像数量;第一位置确定单元,用于确定数据源头镜像数量的镜像数据位置,并根据位置关系表中的各个其他目的地位置,确定与各个镜像数据位置对应的目的地位置;第一数据分发单元,用于根据各个镜像数据位置与待分发数据的数据源头位置的距离,将待分发数据分发至各个镜像数据位置;第一数据搬运单元,用于并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置;
第二数据分发模块,包括:第二建立单元,用于如果所述目的地位置数量大于预设数量阈值,则根据待分发数据的数据源头位置和至少一个目的地位置,以及数据源头位置与目的地位置的本地映射关系,将至少一个目的地位置划分为本地目的地位置或者其他目的地位置,建立与待分发数据对应的位置关系表;数量确定单元,用于根据位置关系表中的其他目的地位置数量,以及最大数据流并行数量,确定与待分发数据对应的数据源头镜像数量;第二位置确定单元,用于确定数据源头镜像数量的镜像数据位置,并根据位置关系表中的各个其他目的地位置以及最大数据流并行数量,确定与各个镜像数据位置对应的目的地位置;第二数据分发单元,用于根据各个镜像数据位置与待分发数据的数据源头位置的距离,将待分发数据分发至各个镜像数据位置;第二数据搬运单元,用于并行启动与数据源头位置对应的数据分发引擎,以及与各个镜像数据位置对应的数据分发引擎,通过数据交换矩阵,将待分发数据由数据源头位置或者镜像数据位置分发至对应的目的地位置;
其中,数据源头是处理器内部用于存储数据的数据存储单元,本地目的地是数据源头唯一对应的一个目的地。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一所述的数据分发方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一所述的数据分发方法。
CN201910809006.6A 2019-08-29 2019-08-29 一种数据分发方法、装置、设备及存储介质 Active CN110502469B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910809006.6A CN110502469B (zh) 2019-08-29 2019-08-29 一种数据分发方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910809006.6A CN110502469B (zh) 2019-08-29 2019-08-29 一种数据分发方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110502469A CN110502469A (zh) 2019-11-26
CN110502469B true CN110502469B (zh) 2020-06-12

Family

ID=68590414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910809006.6A Active CN110502469B (zh) 2019-08-29 2019-08-29 一种数据分发方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110502469B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667560B (zh) * 2020-12-22 2023-01-24 深圳致星科技有限公司 基于fpga的数据分发装置和计算平台
CN113867637B (zh) * 2021-09-27 2024-04-16 上海星秒光电科技有限公司 多通道的数据快速存储方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360357A (zh) * 2011-09-29 2012-02-22 南京国电南自轨道交通工程有限公司 Scada系统网状关系数据库节点的数据同步组件
CN108228749A (zh) * 2017-12-21 2018-06-29 江苏瑞中数据股份有限公司 一种通用的时序数据的快速迁移方法
CN108595669A (zh) * 2018-04-28 2018-09-28 国信优易数据有限公司 一种无序分类变量处理方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873380B (zh) * 2014-02-24 2017-10-24 华为技术有限公司 一种数据分发策略的调整方法、装置及系统
CN104618959B (zh) * 2014-12-19 2018-01-16 中国航空无线电电子研究所 一种实现航空自组网mac协议的方法及其系统
CN109842642B (zh) * 2017-11-24 2022-11-01 中兴通讯股份有限公司 一种容器化集群系统的部署方法及装置、容器化集群系统
CN109450687A (zh) * 2018-11-14 2019-03-08 沈文策 一种数据分发方法、装置、电子设备及存储介质
CN109981744B (zh) * 2019-02-28 2022-03-04 东软集团股份有限公司 数据的分发方法、装置、存储介质及电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360357A (zh) * 2011-09-29 2012-02-22 南京国电南自轨道交通工程有限公司 Scada系统网状关系数据库节点的数据同步组件
CN108228749A (zh) * 2017-12-21 2018-06-29 江苏瑞中数据股份有限公司 一种通用的时序数据的快速迁移方法
CN108595669A (zh) * 2018-04-28 2018-09-28 国信优易数据有限公司 一种无序分类变量处理方法及装置

Also Published As

Publication number Publication date
CN110502469A (zh) 2019-11-26

Similar Documents

Publication Publication Date Title
CN107766148B (zh) 一种异构集群及任务处理方法和装置
US9277003B2 (en) Automated cloud workload management in a map-reduce environment
US20200019435A1 (en) Dynamic optimizing task scheduling
US10877757B2 (en) Binding constants at runtime for improved resource utilization
US9645743B2 (en) Selective I/O prioritization by system process/thread
US8572614B2 (en) Processing workloads using a processor hierarchy system
CN111309649B (zh) 一种数据传输和任务处理方法、装置及设备
US20110145153A1 (en) Negotiating agreements within a cloud computing environment
CN110502469B (zh) 一种数据分发方法、装置、设备及存储介质
US20230251979A1 (en) Data processing method and apparatus of ai chip and computer device
US9361257B2 (en) Mechanism for facilitating customization of multipurpose interconnect agents at computing devices
CN116467061B (zh) 一种任务执行的方法、装置、存储介质及电子设备
US11941528B2 (en) Neural network training in a distributed system
US10635492B2 (en) Leveraging shared work to enhance job performance across analytics platforms
US7707344B2 (en) Interrupt mitigation on multiple network adapters
US20180143812A1 (en) Control flow graph analysis
US11307889B2 (en) Schedule virtual machines
US8250253B2 (en) Method, apparatus and system for reduced channel starvation in a DMA engine
US11481255B2 (en) Management of memory pages for a set of non-consecutive work elements in work queue designated by a sliding window for execution on a coherent accelerator
US10838868B2 (en) Programmable data delivery by load and store agents on a processing chip interfacing with on-chip memory components and directing data to external memory components
US10789008B2 (en) Reducing write collisions in data copy
CN110083357A (zh) 界面构建方法、装置、服务器及存储介质
US20230266997A1 (en) Distributed scheduling in container orchestration engines
US11748236B2 (en) Multi-user debugging with user data isolation
CN110045962A (zh) 一种支持多语言脚本执行的方法和装置

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