CN111225063B - 用于静态分布式计算架构的数据交换系统及其方法 - Google Patents

用于静态分布式计算架构的数据交换系统及其方法 Download PDF

Info

Publication number
CN111225063B
CN111225063B CN202010063542.9A CN202010063542A CN111225063B CN 111225063 B CN111225063 B CN 111225063B CN 202010063542 A CN202010063542 A CN 202010063542A CN 111225063 B CN111225063 B CN 111225063B
Authority
CN
China
Prior art keywords
data
request
read
message
description
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
CN202010063542.9A
Other languages
English (en)
Other versions
CN111225063A (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.)
Beijing Oneflow Technology Co Ltd
Original Assignee
Beijing Oneflow 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 Beijing Oneflow Technology Co Ltd filed Critical Beijing Oneflow Technology Co Ltd
Priority to CN202010063542.9A priority Critical patent/CN111225063B/zh
Publication of CN111225063A publication Critical patent/CN111225063A/zh
Application granted granted Critical
Publication of CN111225063B publication Critical patent/CN111225063B/zh
Priority to PCT/CN2021/072787 priority patent/WO2021147877A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种用于静态分布式计算架构的跨计算数据交换系统,所述静态分布式计算架构至少含有第一计算设备和第二计算设备,所述系统包括多个数据执行体、部署在每台计算机上的一个数据搬运请求汇集组件以及消息传输总线,其中第二计算设备上的第二数据执行体从其消息仓向第一计算设备上的第一搬运执行体发出指明可以读取数据的第二消息;第一搬运执行体在接收到所述第二消息时,其有限状态机改变状态以触发操作组件向第一数据搬运请求汇集组件发出执行读取数据的操作的第一命令;以及第一数据搬运请求汇集组件在接收到第一命令后,基于第一命令中所包含的读取描述,将第二输出数据缓存中的数据搬运到第一搬运执行体的第一输出数据缓存中。

Description

用于静态分布式计算架构的数据交换系统及其方法
技术领域
本公开涉及一种数据交换技术,更具体地说,本公开涉及一种用于静态分布式架构中实现数据交换的系统及其方法。
背景技术
随着分布式计算的普及,大型的作业会通过分割而将不同部分的数据部署到不同的分布式数据处理系统的各个计算设备上进行处理,这样,在具体作业的处理过程中,部署在一个计算设备上的计算中间参数或结果会成为另一个计算设备上的计算任务的输入数据,这样为了实现中间参数的数据同步,这会引起计算设备之间的数据传输的调用开销。而网络通信调用往往是个瓶颈,然后网络性能通信的性能不好,就会影响多机分布式数据处理架构的加速比和扩展性。
随着数据搬运或数据交换在静态分布式数据处理架构中与数据运算一样被重视,因此在一些静态分布式架构中,将数据搬运任务固定在特定的搬运执行体中来实现,从而使得数据搬运操作与运算操作能够同等重要,从而实现数据交换中的异步的通信,从而减少两个调用的时间的开销。但是如何在静态分布式架构中预先将搬运过程配置为任务节点的情况下实现设备间的数据搬运就成为需要解决的一个问题。
发明内容
本发明的目的是解决至少上述问题之一,具体而言,本公开提供一种用于静态分布式计算架构的跨计算数据交换系统,所述静态分布式计算架构至少含有第一计算设备和第二计算设备,所述系统包括多个含有消息仓、状态机组件、操作组件以及输出数据缓存的数据执行体、部署在每台计算机上的一个数据搬运请求汇集组件以及消息传输总线,其中第二计算设备上的第二数据执行体在其第二输出数据缓存已经被写入新数据时从其消息仓向第一计算设备上的第一搬运执行体发出指明可以读取第二输出数据缓存中的数据的第二消息;第一计算设备上的第一搬运执行体在经由第二计算机上的第二消息传输总线和第二数据搬运请求汇集组件以及第一计算设备上的第一数据搬运请求汇集组件和第一消息传输总线接收到所述第二消息时,其有限状态机改变状态以触发操作组件向第一数据搬运请求汇集组件发出执行读取第二输出数据缓存中的数据的操作的第一命令;以及第一数据搬运请求汇集组件在接收到第一搬运执行体的第一命令后,基于第一命令中所包含的读取描述,采用直接远程数据访问协议直接读取第二输出数据缓存中的数据并存储到第一搬运执行体的第一输出数据缓存中或者采用以太网协议请求第二数据搬运请求汇集组件读取第二输出数据缓存中的数据并接收第二数据搬运请求汇集组件发送来的数据以便存储到第一搬运执行体的第一输出数据缓存中。
根据公开的用于静态分布式计算架构的数据交换系统,其中所述第一数据搬运请求汇集组件包括:请求描述队列管理单元,用于在计算架构初始化时针对存在通信连接关系的第一计算设备和第二计算设备生成一个或多个第一请求描述队列;数据读取单元,基于第一搬运执行体的发出第一命令,将第一命令中的读取描述插入与第一搬运执行体对应的第一请求描述队列;以及回调任务单元,基于第一搬运执行体的发出第一命令,第一请求描述队列中的所述读取描述之后插入一个或多个读取回调描述,并所述读取回调描述在出队时被执行。
根据公开的用于静态分布式计算架构的数据交换系统,其中所述第一数据搬运请求汇集组件的数据通信单元基于所述请求描述队列管理单元中的请求描述队列中的每个读取描述,采用第一计算设备和第二计算设备之间的直接远程数据访问协议直接读取第二输出数据缓存中的数据并存储到第一搬运执行体的第一输出数据缓存中。
根据公开的用于静态分布式计算架构的数据交换系统,其中所述第一数据搬运请求汇集组件的数据通信单元为第一套接字单元,其基于所述请求描述队列管理单元中的请求描述队列中的每个读取描述,采用以太网协议请求第二数据搬运请求汇集组件的第二数据通信单元的第二套接字单元读取并发送第二输出数据缓存中的数据。
根据公开的用于静态分布式计算架构的数据交换系统,其中所述第一套接字单元在接收到作为第一数据搬运请求汇集组件的数据通信单元的第二套接字单元发送的数据写入请求消息后,返回含有数据头部的数据读取请求消息,并将第二输出数据缓存中的数据按照预定的大小以消息方式发送到第一套接字单元以便其接收。
根据公开的用于静态分布式计算架构的数据交换系统,其中所述第一搬运执行体监听第一请求描述队列中的读取回调描述的出队执行结果,并在读取回调描述的出队执行结果发生变化时,所述第一搬运执行体的消息仓向第一输出数据缓存的下游的第一数据执行体发送第一消息以及经由第一数据搬运请求汇集组件、第二数据搬运请求汇集组件以及消息传输总线向第二数据执行体发送反馈消息。
根据公开的用于静态分布式计算架构的数据交换系统,其中所述读取描述包含了所要读取数据源地址和目的地地址以及数据大小、类型。
根据公开的用于静态分布式计算架构的数据交换系统,其中所述第一数据搬运请求汇集组件还包括:内存注册单元,用于将第一输出数据缓存和第二输出数据缓存注册为锁页内存。
根据公开的另一个方面,提供了一种用于静态分布式计算架构的数据交换方法,所述静态分布式计算架构至少含有第一计算设备和第二计算设备,所述系统包括多个含有消息仓、状态机组件、操作组件以及输出数据缓存的数据执行体、部署在每台计算机上的一个数据搬运请求汇集组件以及消息传输总线,所述方法包括:数据可读消息发送步骤,第二计算设备上的第二数据执行体在其第二输出数据缓存已经被写入新数据时从其消息仓向第一计算设备上的第一搬运执行体发出指明可以读取第二输出数据缓存中的数据的第二消息;数据传输命令发起步骤,第一计算设备上的第一搬运执行体在经由第二计算机上的第二消息传输总线和第二数据搬运请求汇集组件以及第一计算设备上的第一数据搬运请求汇集组件和第一消息传输总线接收到所述第二消息时,其有限状态机改变状态以触发操作组件向第一数据搬运请求汇集组件发出执行读取第二输出数据缓存中的数据的操作的第一命令;以及数据交换执行步骤,第一数据搬运请求汇集组件在接收到第一搬运执行体的第一命令后,基于第一命令中所包含的读取描述,采用直接远程数据访问协议直接读取第二输出数据缓存中的数据并存储到第一搬运执行体的第一输出数据缓存中或者采用以太网协议请求第二数据搬运请求汇集组件读取第二输出数据缓存中的数据并接收第二数据搬运请求汇集组件发送来的数据以便存储到第一搬运执行体的第一输出数据缓存中。
根据公开的用于静态分布式计算架构的数据交换方法,其中所述数据交换执行步骤包括:请求描述队列生成步骤,通过请求描述队列管理单元在计算架构初始化时针对存在通信连接关系的第一计算设备和第二计算设备生成一个或多个第一请求描述队列;读取描述插入步骤,通过数据读取单元,基于第一搬运执行体的发出第一命令,将第一命令中的读取描述插入与第一搬运执行体对应的第一请求描述队列;以及回调任务插入步骤,通过回调任务单元,基于第一搬运执行体的发出第一命令,第一请求描述队列中的所述读取描述之后插入一个或多个读取回调描述,并所述读取回调描述在出队时被执行。
根据公开的用于静态分布式计算架构的数据交换方法,所述数据交换执行步骤包括:所述第一数据搬运请求汇集组件的数据通信单元基于所述请求描述队列管理单元中的请求描述队列中的每个读取描述,采用第一计算设备和第二计算设备之间的直接远程数据访问协议直接读取第二输出数据缓存中的数据并存储到第一搬运执行体的第一输出数据缓存中。
根据公开的用于静态分布式计算架构的数据交换方法,其中所述数据交换执行步骤包括:在所述第一数据搬运请求汇集组件的数据通信单元为第一套接字单元的情形下,所述第一套接字单元基于所述请求描述队列管理单元中的请求描述队列中的每个读取描述,采用以太网协议请求第二数据搬运请求汇集组件的第二数据通信单元的第二套接字单元读取并发送第二输出数据缓存中的数据。
根据公开的用于静态分布式计算架构的数据交换方法,其中所述第一套接字单元在接收到作为第一数据搬运请求汇集组件的数据通信单元的第二套接字单元发送的数据写入请求消息后,返回含有数据头部的数据读取请求消息,并将第二输出数据缓存中的数据按照预定的大小以消息方式发送到第一套接字单元以便其接收。
根据公开的用于静态分布式计算架构的数据交换方法,还包括:数据传输完成消息发送步骤,所述第一搬运执行体监听第一请求描述队列中的读取回调描述的出队执行结果,并在读取回调描述的出队执行结果发生变化时,所述第一搬运执行体的消息仓向第一输出数据缓存的下游的第一数据执行体发送第一消息以及经由第一数据搬运请求汇集组件、第二数据搬运请求汇集组件以及消息传输总线向第二数据执行体发送反馈消息。
根据公开的用于静态分布式计算架构的数据交换方法,其中所述读取描述包含了命令类型、所要读取数据源地址和目的地地址以及数据大小。
根据公开的用于静态分布式计算架构的数据交换方法,其中还包括:内存注册步骤,在计算架构初始化时,通过第一数据搬运请求汇集组件中的内存注册单元,将第一输出数据缓存和第二输出数据缓存注册为锁页内存。
通过本公开的静态分布式计算架构中的数据交换系统和方法,能够实现数据搬运操作静态布置,减少数据交换过程中的调度,一方面实现数据搬运具有与数据运算同等的地位,另一方面也实现了数据搬运的异步操作,进一步实现了数据处理的流式进程。这样有效地降低了数据交换对实际运算操作带来的不良影响。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1所示的是根据本公开的静态分布式计算架构的数据交换系统的原理结构示意图。
图2所示的是根据本公开的数据交换系统的数据搬运请求汇集组件的结构示意图。
图3所示的是根据本公开的用于静态分布式计算架构的数据交换方法的流程图。
具体实施方式
下面结合实施例和附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。此外,在提到“第一”时,并不意味存在“第二”,有时候采用第一或第二仅仅是为了简化表述。例如,在不脱离本公开范围的情况下,在下文中,两个可能设备之一可以被称为第一数据搬运执行体也可以被称为第二数据搬运执行体,类似地,两个可能设备的之一可以被称为第二计算设备也可以被称为第一计算设备。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本领域技术人员更好地理解本公开,下面结合附图和具体实施方式对本公开作进一步详细说明。
图1所示的是根据本公开的静态分布式计算架构的数据交换系统的原理结构示意图。如图1所示,根据本公开的静态分布式计算架构的跨计算数据交换系统部署在构成静态分布式计算架构的第一计算设备和第二计算设备上。为了方便描述,图1中仅仅显示了两个计算设备,但是实际上可以有多个计算设备,例如3、4、5甚至更多。每个计算设备上基本上都具有相同的构成组件。因此如本公开下面所提到的,当本公开提到第一计算设备上的第一数据搬运请求汇集组件时,第二计算设备上也可以有数据搬运请求汇集组件,例如第二数据搬运请求汇集组件。不过,对于搬运执行体而言,在实际计算架构的计算设备中,是否具有搬运执行体则是基于该计算设备是否需要使用其他计算设备上产生的数据。因此,通常计算设备上部署的数据执行体存在对其他计算设备上数据执行体所产生的数据的需求时,该计算设备上会部署相应的数据搬运执行体。
返回图1。如图1所示,第一实现搬运执行体的是第一计算设备的第一数据执行体和第二计算设备的第二数据执行体之间的中间执行体。第一数据执行体会使用作为其上游执行体的第二执行体所产生并存储在第二输出数据缓存中的数据。由于第一数据执行体和第二数据执行体并不在同一计算设备上,第一数据执行体无法采用执行体之间的方式直接读取第二输出数据缓存中的数据。为此,在第一数据执行体和第二执行体之间插入了第一搬运执行体,由此通过第一搬运执行体触发第二输出数据缓存中的数据传输到第一输出数据缓存中,以便第一数据执行体能够直接读取第一输出数据缓存中的数据。
通常一个计算设备中会存在多个数据搬运执行体。但是为了显示方便和简化描述,在图1中仅仅显示了一个第一搬运执行体,在第一计算设备中的数据搬运执行体的数量基于在第一计算设备中存在多少个数据执行体需要其他计算设备上的数据的情形。为了管理一个计算设备中的多个数据搬运执行体,本公开中每个计算设备中都对应设置了数据搬运请求汇集组件,例如第一计算设备上的第一数据搬运请求汇集组件以及第二计算设备上的第二数据搬运请求汇集组件。每个数据搬运请求汇集组件接收来自其所属计算设备上的所有数据搬运执行体发出数据搬运命令,并管理和执行这些数据读取命令。
如图1所示,每个执行体都包含有消息仓、状态机组件、操作组件以及输出数据缓存。每个执行体的状态机组件,例如有限状态机,基于消息仓收到和发送消息以及操作组件执行操作而改变状态,并且在有限状态机达到预定状态条件是,操作组件会执行预定条件下指定的操作。对于数据执行体而言,在预定状态下操作组件读取上游执行体的输出数据缓存中的数据,并执行预定的运算操作或指定对应的运算操作元件(例如GPU的运算单元)执行预定的操作,从而产生数据并存储在其输出数据缓存中。任何数据执行体在读取其上游数据执行体的输出数据缓存的数据之后,其消息仓都会向该上游执行体反馈消息,以便其上游执行体能够进入下一次操作产生新的操作并将新产生的数据写入输出数据缓存。任何数据执行体在产生数据并将所产生的数据写入其输出数据缓存之后,都会通过其消息仓向其输出数据缓存的下游执行体发送消息告知下游执行体可以使用该输出数据缓存中的数据。
同样,第一搬运执行体在接收到第二数据执行体的消息时,会通过触发第一数据搬运请求汇集组件来执行数据搬运操作,并在将第二输出数据缓存中的数据搬运到第一输出数据缓存之后,经由第一计算设备中消息总线、第一数据搬运请求汇集组件、第一网络组件、第二数据搬运请求汇集组件以及第二计算设备中的消息总线向第二数据执行体反馈消息,同时向其第一输出数据缓存的下游第一执行体发送消息,告知下游第一执行体可以使用该输出数据缓存中的数据。
具体而言,如图1所示,数据交换系统在启动时进行初始化,各个计算设备的数据搬运汇集组件,例如第一计算设备中的第一数据搬运汇集组件基于第一计算设备和第二计算设备之间存在的数据交换连接生成一个请求描述队列。所述的设备间存在数据交换连接指的是在第一计算设备中存在数据执行体需要使用第二计算设备中的数据执行体所产生的数据或者相反。相应地,当计算架构中存在三个或更多计算设备时,如果第一计算设备中存在数据执行体需要使用第二计算设备上的执行体所产生的数据,也存在数据执行体需要使用第三、第四计算设备(未示出)上的执行体所产生的数据时,将会产生相应数量的请求描述队列。可选择地,在第一计算设备或第二计算设备之间存在多对如第一网络组件和第二网络组件这样的网络组件时,第一数据搬运请求汇集组件也可以针对第一计算设备和第二计算设备之间存在的数据交换连接生成多个请求描述队列。
图2中显示了数据搬运请求汇集组件的结构示意图。如图2所示,第一数据搬运请求汇集组件包括请求描述队列管理单元、读取单元、回调任务单元以及第一数据通信单元。同样,第二数据搬运请求汇集组件包括请求描述队列管理单元、读取单元、回调任务单元以及第二数据通信单元。当第一搬运执行体的消息仓接收到第二数据执行体经由第二计算设备的总线中的消息总线、第二数据搬运请求汇集组件、第一数据搬运请求汇集组件以及第一计算设备的总线中的消息总线发送来的消息时,第一搬运执行的有限状态机改变状态,使得操作组件向第一数据搬运请求汇集组件中的读取单元、回调任务单元发出命令。所述命令中包含读取第二输出数据缓存中的数据的地址信息、数据大小信息以及第一输出数据缓存的地址信息。所述读取单元可以是一种固件,也可以是一种软接口,例如读取单元可以是一种读取接口,而回调任务单元可以是回调接口。第一搬运执行体的操作组件发出的命令就是调用读取单元的命令和回调任务单元的命令。
所述读取单元在接收到第一搬运执行体的操作组件的命令后,解析并获得该命令的类型、源地址、目的地地址以及所要搬运数据的大小的读取描述,并将所述读取描述插入请求描述队列管理单元中所管理的对应的请求描述队列中。随后回调任务单元在接收到第一搬运执行体的操作组件的命令后,也基于该命令将一个或多个读取回调描述插入所述请求描述队中的对应的请求描述之后。对应一个命令,回调任务单元插入的读取回调描述的数量与第一搬运执行体的下游执行体的数量而定。图2中,每个队列中R开头的字母代表了读取描述,C开头的字母代表了读取回调描述。每个字母R的下标的第一个数字代表了所在请求描述队列的序号,第二数字代表了进入队列的顺序,而与读取描述对应的读取回调描述采用相同的下标数字。当一个读取描述对应多个读取回调描述时,按照顺序采用第三数字下标区分。
所述请求描述队列管理单元按照先进先出(FIFO)规则管理每个请求描述队列中的请求描述以及读取回调描述的出队顺序。第一数据通信单元按照每个请求描述队列中请求描述出队的顺序获取请求描述中的描述信息,例如类型、地址、大小,执行预定数据读取操作。在第一计算设备和第二计算设备之间采用RDMA协议的情况下,第一数据读取通信单元中的第一远程直接数据访问(RDMA)单元被选择,其直接通过第一网络通信组件、第二网络通信组件(例如网卡)以及第二计算设备中的总线中的数据总线直接存取第二输出数据缓存中的数据。另一方面,在第一计算设备和第二计算设备之间采用以太网协议的情况下,第一,第一数据读取通信单元中的第一套接字单元(SOCKET协议)被选择。所述套接字单元包括发送接口和接收接口。所述第一套接字单元在获得请求描述队列中请求描述的类型后,所述套接字单元的发送接口经由第一网络通信组件和第二网络通信组件向第二套接字单元发送数据写入请求消息。第二套接字单元的接收接口收到所述数据写入请求消息之后,其发送接口基于该数据写入请求消息中包含的源地址、目的地址以及数据大小,向第一套接字单元的发送接口反馈数据读取请求消息。所述数据读取请求消息中包含了数据的头部数据,指明了随后发送的数据的总的大小以及分片数据的大小。由于发送接口采用消息方式发送数据,因此,对于第二输出数据缓存中的较大的数据块将会倍发送接口按照预定的数据分片大小以消息方式发送到第一套接字单元。第一套接字单元的接收接口基于数据读取请求消息中的头部数据所包含的数据大小值统计所收到的数据。为了加快消息数据的发送,可以在第一套接字单元和第二套接字单元之间采用多线程方式并行进行消息发送。
第一网络通信组件在针对每个请求描述执行完读取操作并获得相应的数据之后,会直接通过第一计算设备中的数据总线直接将所接收到的数据存储到第一输出数据缓存。该请求描述之后的读取回调描述会顺序出队,并执行回调任务,例如一个回调函数,修改该函数的标志,例如从0修改为1。第一搬运执行体会监听到回调任务执行结果的变化。当第一搬运执行体监听第一请求描述队列中的读取回调描述的出队执行结果发生变化时,意味着其收到了其发出的读取命令被执行完成的消息。从而,第一搬运执行体的有限状态机的状态发生改变,使得第一搬运执行体的消息仓能够向第一输出数据缓存的下游的第一数据执行体发送第一消息,以告知第一数据执行体,其所需的第二执行体输出的数据已经从第二计算设备上搬运到第一输出数据缓存,并且处于可以被第一数据执行体读取的状态。同时,第一搬运执行体的消息仓会经由第一计算设备的总线中的消息总线、第一数据搬运请求汇集组件、第二数据搬运请求汇集组件以及第二计算设备的总线中的消息总线向第二数据执行体发送反馈消息,从而告知第二数据执行体,其第二输出数据缓存中的数据已经被传输到第一输出数据缓存。这样第二数据执行体在获得反馈消息后可以释放其第二输出数据缓存,以便能够执行下一轮操作,并向第二输出数据缓存写入新的数据
此外,为了保证数据传输的稳定性,尤其是为了消除数据传输过程的调度,本公开的搬运请求汇集组件还包括内存注册单元,其为计算设备上每个参与数据传输的执行体注册锁页内存作为其输出数据缓存。参与数据传输的执行体既包括跨计算设备进行数据搬运的搬运执行体,也包括其所产生的数据将被跨计算设备搬运的数据执行体。通过注册锁页内存作为输出数据缓存,使得每个搬运执行体在被静态布置时,该数据所在的输出数据缓存由于被锁定而不会被计算设备换出而变化,因此搬运执行体能够预先知晓所要搬运的数据的地址,从而消除了数据存取的调度的过程。同样,由于搬运执行体的输出数据缓存是锁业内存,因此,被搬运的数据也能够每次都具有固定的目的地址,从而在两者之间实现流式数据搬运。
图3所示的是根据本公开的用于静态分布式计算架构的数据交换方法的流程图。如上所结合图1和图2所述,所述静态分布式计算架构至少含有第一计算设备和第二计算设备,所述系统包括多个含有消息仓、状态机组件、操作组件以及输出数据缓存的数据执行体、部署在每台计算机上的一个数据搬运请求汇集组件以及消息传输总线。如图3所示,首先在步骤S301出,对这个计算架构进行启动和初始化。接着在数据可读消息发送步骤S302处,第二计算设备上的第二数据执行体在其第二输出数据缓存已经被写入新数据时从其消息仓向第一计算设备上的第一搬运执行体发出的指明可以读取第二输出数据缓存中的数据的第二消息。随后,在数据传输命令发起步骤S303处,第一计算设备上的第一搬运执行体在经由第二计算机上的第二消息传输总线和第二数据搬运请求汇集组件以及第一计算设备上的第一数据搬运请求汇集组件和第一消息传输总线接收到所述第二消息时,其有限状态机改变状态以触发操作组件向第一数据搬运请求汇集组件执行读取第二输出数据缓存中的数据的操作的第一命令。
随后,在数据交换执行步骤S304处,第一数据搬运请求汇集组件在接收到第一搬运执行体的第一命令后,基于第一命令中所包含的读取描述,采用直接远程数据访问协议直接将读取第二输出数据缓存中的数据并存储到第一搬运执行体的第一输出数据缓存中或者采用以太网协议请求第二数据搬运请求汇集组件读取第二输出数据缓存中的数据并接收第二数据搬运请求汇集组件发送来的数据并存储到第一搬运执行体的第一输出数据缓存中。具体而言,如图3所示,在读取描述插入步骤S3041处,通过数据读取单元基于第一搬运执行体的发出第一命令,将第一命令中的读取描述插入与第一搬运执行体对应的第一请求描述队列,同时也通过回调任务单元基于第一搬运执行体的发出第一命令,在第一请求描述队列中的所述读取描述之后插入一个或多个读取回调描述。在步骤S3042处,请求描述队列管理单元按照先进先出原则管理请求描述队列,从而所有描述按照排列顺序出队。所述请求描述队列通过请求描述队列管理单元在计算架构初始化时针对存在通信连接关系的第一计算设备和第二计算设备生成。随后在步骤S3043处,第一数据通信单元对于出队的描述,判断描述的类型是否请求读取数据描述。如果判断不是请求读取数据的描述,则是读取回调描述,从而在步骤S3047直接进行回调函数的执行。如果是请求读取数据的描述,则基于底层网络连接的协议选择数据读取方式。如果底层数据通信协议为RDMA协议,则在步骤S3045处第一数据通信单元作为第一远程直接数据访问单元直接读取第二数据输出缓存中的数据。如果底层数据通信协议不是RDMA协议,则为以太网通信协议。因此在步骤S3046处,第一数据通信单元作为第一套接字单元与第二套接字单元体通过消息方式通信进行数据接收。在数据发送之后,在步骤S3047处直接执行回调函数。
最后,在数据传输完成消息发送步骤S305处,所述第一搬运执行体监听第一请求描述队列中的读取回调描述的出队执行结果,并在读取回调描述的出队执行结果发生变化时,所述第一搬运执行体的消息仓向第一输出数据缓存的下游的第一数据执行体发送第一消息以及经由第一数据搬运请求汇集组件、第二数据搬运请求汇集组件以及消息传输总线向第二数据执行体发送反馈消息。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。
因此,本公开的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本公开的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本公开,并且存储有这样的程序产品的存储介质也构成本公开。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
还需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (14)

1.一种用于静态分布式计算架构的跨计算数据交换系统,所述静态分布式计算架构至少含有第一计算设备和第二计算设备,所述系统包括多个含有消息仓、状态机组件、操作组件以及输出数据缓存的数据执行体、部署在每台计算机上的一个数据搬运请求汇集组件以及消息传输总线,其中
第二计算设备上的第二数据执行体在其第二输出数据缓存已经被写入新数据时从其消息仓向第一计算设备上的第一搬运执行体发出指明可以读取第二输出数据缓存中的数据的第二消息;
第一计算设备上的第一搬运执行体在经由第二计算机上的第二消息传输总线和第二数据搬运请求汇集组件以及第一计算设备上的第一数据搬运请求汇集组件和第一消息传输总线接收到所述第二消息时,其有限状态机改变状态以触发操作组件向第一数据搬运请求汇集组件发出执行读取第二输出数据缓存中的数据的操作的第一命令;以及
第一数据搬运请求汇集组件,包括:请求描述队列管理单元,在计算架构初始化时针对存在通信连接关系的第一计算设备和第二计算设备生成一个或多个第一请求描述队列,并按照先进先出原则管理请求描述队列;数据读取单元,基于第一搬运执行体的发出第一命令,将第一命令中的读取描述插入与第一搬运执行体对应的第一请求描述队列;回调任务单元,基于第一搬运执行体的发出第一命令,在第一请求描述队列中的所述读取描述之后插入一个或多个读取回调描述,并且所述读取回调描述在出队时被执行;以及第一数据通信单元,对于出队的描述,判断描述的类型是否为读取描述,并在描述的类型为读取描述时,采用直接远程数据访问协议直接读取第二输出数据缓存中的数据并存储到第一搬运执行体的第一输出数据缓存中或者采用以太网协议请求第二数据搬运请求汇集组件读取第二输出数据缓存中的数据并接收第二数据搬运请求汇集组件发送来的数据以便存储到第一搬运执行体的第一输出数据缓存中。
2.根据权利要求1所述的用于静态分布式计算架构的数据交换系统,其中所述第一数据搬运请求汇集组件的数据通信单元为第一远程直接数据存取单元,其基于所述请求描述队列管理单元中的请求描述队列中的每个读取描述,采用第一计算设备和第二计算设备之间的直接远程数据访问协议直接读取第二输出数据缓存中的数据并存储到第一搬运执行体的第一输出数据缓存中。
3.根据权利要求1所述的用于静态分布式计算架构的数据交换系统,其中所述第一数据搬运请求汇集组件的数据通信单元为第一套接字单元,其基于所述请求描述队列管理单元中的请求描述队列中的每个读取描述,采用以太网协议请求第二数据搬运请求汇集组件的第二数据通信单元的第二套接字单元读取并发送第二输出数据缓存中的数据。
4.根据权利要求3所述的用于静态分布式计算架构的数据交换系统,其中所述第一套接字单元在接收到作为第一数据搬运请求汇集组件的数据通信单元的第二套接字单元发送的数据写入请求消息后,返回含有数据头部的数据读取请求消息,并将第二输出数据缓存中的数据按照预定的大小以消息方式发送到第一套接字单元以便其接收。
5.根据权利要求2-4之一所述的用于静态分布式计算架构的数据交换系统,其中所述第一搬运执行体监听第一请求描述队列中的读取回调描述的出队执行结果,并在读取回调描述的出队执行结果发生变化时,所述第一搬运执行体的消息仓向第一输出数据缓存的下游的第一数据执行体发送第一消息以及经由第一数据搬运请求汇集组件、第二数据搬运请求汇集组件以及消息传输总线向第二数据执行体发送反馈消息。
6.根据权利要求5所述的用于静态分布式计算架构的数据交换系统,其中所述读取描述包含了所要读取数据源地址和目的地地址以及数据大小、类型。
7.根据权利要求1所述的用于静态分布式计算架构的数据交换系统,其中所述第一数据搬运请求汇集组件还包括:
内存注册单元,用于将第一输出数据缓存和第二输出数据缓存注册为锁页内存。
8.一种用于静态分布式计算架构的数据交换系统的数据交换方法,所述静态分布式计算架构至少含有第一计算设备和第二计算设备,所述数据交换系统包括多个含有消息仓、状态机组件、操作组件以及输出数据缓存的数据执行体、部署在每台计算机上的一个数据搬运请求汇集组件以及消息传输总线,所述方法包括:
数据可读消息发送步骤,第二计算设备上的第二数据执行体在其第二输出数据缓存已经被写入新数据时从其消息仓向第一计算设备上的第一搬运执行体发出指明可以读取第二输出数据缓存中的数据的第二消息;
数据传输命令发起步骤,第一计算设备上的第一搬运执行体在经由第二计算机上的第二消息传输总线和第二数据搬运请求汇集组件以及第一计算设备上的第一数据搬运请求汇集组件和第一消息传输总线接收到所述第二消息时,其有限状态机改变状态以触发操作组件向第一数据搬运请求汇集组件发出执行读取第二输出数据缓存中的数据的操作的第一命令;以及
数据交换执行步骤,包括:请求描述队列生成步骤,通过请求描述队列管理单元在计算架构初始化时针对存在通信连接关系的第一计算设备和第二计算设备生成一个或多个第一请求描述队列,并按照先进先出原则管理请求描述队列; 读取描述插入步骤,通过数据读取单元,基于第一搬运执行体的发出第一命令,将第一命令中的读取描述插入与第一搬运执行体对应的第一请求描述队列;回调任务插入步骤,通过回调任务单元,基于第一搬运执行体的发出第一命令,在第一请求描述队列中的所述读取描述之后插入一个或多个读取回调描述,并且所述读取回调描述在出队时被执行;以及数据通信步骤,通过第一通信单元,对于出队的描述,判断描述的类型是否为读取描述,并在描述的类型为读取描述时,采用直接远程数据访问协议直接读取第二输出数据缓存中的数据并存储到第一搬运执行体的第一输出数据缓存中或者采用以太网协议请求第二数据搬运请求汇集组件读取第二输出数据缓存中的数据并接收第二数据搬运请求汇集组件发送来的数据以便存储到第一搬运执行体的第一输出数据缓存中。
9.根据权利要求8所述的用于静态分布式计算架构的数据交换方法,所述数据交换执行步骤包括:所述第一数据搬运请求汇集组件的数据通信单元基于所述请求描述队列管理单元中的请求描述队列中的每个读取描述,采用第一计算设备和第二计算设备之间的直接远程数据访问协议直接读取第二输出数据缓存中的数据并存储到第一搬运执行体的第一输出数据缓存中。
10.根据权利要求8所述的用于静态分布式计算架构的数据交换方法,其中所述数据交换执行步骤包括:在所述第一数据搬运请求汇集组件的数据通信单元为第一套接字单元的情形下,所述第一套接字单元基于所述请求描述队列管理单元中的请求描述队列中的每个读取描述,采用以太网协议请求第二数据搬运请求汇集组件的第二数据通信单元的第二套接字单元读取并发送第二输出数据缓存中的数据。
11.根据权利要求10所述的用于静态分布式计算架构的数据交换方法,其中所述第一套接字单元在接收到作为第一数据搬运请求汇集组件的数据通信单元的第二套接字单元发送的数据写入请求消息后,返回含有数据头部的数据读取请求消息,并将第二输出数据缓存中的数据按照预定的大小以消息方式发送到第一套接字单元以便其接收。
12.根据权利要求9-11之一所述的用于静态分布式计算架构的数据交换方法,还包括:数据传输完成消息发送步骤,所述第一搬运执行体监听第一请求描述队列中的读取回调描述的出队执行结果,并在读取回调描述的出队执行结果发生变化时,所述第一搬运执行体的消息仓向第一输出数据缓存的下游的第一数据执行体发送第一消息以及经由第一数据搬运请求汇集组件、第二数据搬运请求汇集组件以及消息传输总线向第二数据执行体发送反馈消息。
13.根据权利要求12所述的用于静态分布式计算架构的数据交换方法,其中所述读取描述包含了命令类型、所要读取数据源地址和目的地地址以及数据大小。
14.根据权利要求8所述的用于静态分布式计算架构的数据交换方法,其中还包括:
内存注册步骤,在计算架构初始化时,通过第一数据搬运请求汇集组件中的内存注册单元,将第一输出数据缓存和第二输出数据缓存注册为锁页内存。
CN202010063542.9A 2020-01-20 2020-01-20 用于静态分布式计算架构的数据交换系统及其方法 Active CN111225063B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010063542.9A CN111225063B (zh) 2020-01-20 2020-01-20 用于静态分布式计算架构的数据交换系统及其方法
PCT/CN2021/072787 WO2021147877A1 (zh) 2020-01-20 2021-01-20 用于静态分布式计算架构的数据交换系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010063542.9A CN111225063B (zh) 2020-01-20 2020-01-20 用于静态分布式计算架构的数据交换系统及其方法

Publications (2)

Publication Number Publication Date
CN111225063A CN111225063A (zh) 2020-06-02
CN111225063B true CN111225063B (zh) 2020-09-22

Family

ID=70827176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010063542.9A Active CN111225063B (zh) 2020-01-20 2020-01-20 用于静态分布式计算架构的数据交换系统及其方法

Country Status (2)

Country Link
CN (1) CN111225063B (zh)
WO (1) WO2021147877A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111225063B (zh) * 2020-01-20 2020-09-22 北京一流科技有限公司 用于静态分布式计算架构的数据交换系统及其方法
CN114661644B (zh) * 2022-02-17 2024-04-09 之江实验室 辅助3d架构近存计算加速器系统的预存储dma装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949664B2 (en) * 2011-11-18 2015-02-03 Nokia Corporation Method and apparatus for providing information consistency in distributed computing environments
US9690829B2 (en) * 2013-04-15 2017-06-27 Vmware, Inc. Dynamic load balancing during distributed query processing using query operator motion
US11023443B2 (en) * 2015-02-13 2021-06-01 Teradata Us, Inc. Collaborative planning for accelerating analytic queries
FR3049141B1 (fr) * 2016-03-21 2021-10-01 Sagem Defense Securite Reseau de communication
WO2018175864A1 (en) * 2017-03-23 2018-09-27 Dh2I Company Highly available stateful containers in a cluster environment
CN110175159B (zh) * 2019-05-29 2020-07-31 京东数字科技控股有限公司 用于对象存储集群的数据同步方法与系统
CN110347636B (zh) * 2019-07-15 2024-04-30 北京一流科技有限公司 数据执行体及其数据处理方法
CN110209629B (zh) * 2019-07-15 2023-12-15 北京一流科技有限公司 协处理器的数据处理路径中的数据流动加速装置及其方法
CN110347450B (zh) * 2019-07-15 2024-02-09 北京一流科技有限公司 多流并行控制系统及其方法
CN111225063B (zh) * 2020-01-20 2020-09-22 北京一流科技有限公司 用于静态分布式计算架构的数据交换系统及其方法

Also Published As

Publication number Publication date
CN111225063A (zh) 2020-06-02
WO2021147877A1 (zh) 2021-07-29

Similar Documents

Publication Publication Date Title
US7269179B2 (en) Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7870306B2 (en) Shared memory message switch and cache
US7337275B2 (en) Free list and ring data structure management
US7505410B2 (en) Method and apparatus to support efficient check-point and role-back operations for flow-controlled queues in network devices
US7349399B1 (en) Method and apparatus for out-of-order processing of packets using linked lists
US7477644B2 (en) Method and system of efficient packet reordering
US8155134B2 (en) System-on-chip communication manager
US7443836B2 (en) Processing a data packet
US6738831B2 (en) Command ordering
EP1421739B1 (en) Transmitting multicast data packets
US7149226B2 (en) Processing data packets
US8606975B2 (en) Managing interrupts in a virtualized input/output device supporting multiple hosts and functions
US20060182137A1 (en) Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment
US7433364B2 (en) Method for optimizing queuing performance
US8576864B2 (en) Host ethernet adapter for handling both endpoint and network node communications
US8266344B1 (en) Recycling buffer pointers using a prefetch buffer
JPH03126158A (ja) スケジユーリング方法及び装置
JP2014531687A (ja) ミドルウェアマシン環境においてマルチノードアプリケーションのためのメッセージキューを提供および管理するためのシステムおよび方法
US20090199208A1 (en) Queued message dispatch
CN111225063B (zh) 用于静态分布式计算架构的数据交换系统及其方法
TW201237632A (en) Buffer management scheme for a network processor
US20110145318A1 (en) Interactive analytics processing
US20130060963A1 (en) Facilitating routing by selectively aggregating contiguous data units
US7760736B2 (en) Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of broadcast traffic to virtual hosts
US8392636B2 (en) Virtual multiple instance extended finite state machines with wait rooms and/or wait queues

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