掌桥专利:专业的专利平台
掌桥专利
首页

计算系统、计算处理器和数据处理方法

文献发布时间:2023-06-19 11:29:13


计算系统、计算处理器和数据处理方法

技术领域

本发明概括而言涉及分布式计算领域,更具体地,涉及一种计算系统、计算处理器和用于该计算处理器的数据处理方法。

背景技术

大规模分布式计算系统通常包括多层成簇的计算处理器。图1示出了现有技术中的这种计算系统1的一个实例。如图1中所示,该计算系统1包括多个计算簇10,每个计算簇10包括多个计算节点110,每个计算节点110包括多个计算处理器120。每个计算节点110中的多个计算处理器120之间可以通过直接通信链路相连,每个计算簇10中的多个计算节点110之间可以通过网络交换机130相连,而多个计算簇10之间可以通过网络交换机150相连。在每个计算节点110中还包括一个通用处理器140,其上运行有复杂的通信软件。当计算节点110内的一个计算处理器120要与该计算节点110外的另一计算处理器120(目的地计算处理器120)通信时,通用处理器140根据通信目的地,将通信请求路由至与目的地计算处理器120所处的计算节点110相连的网络交换机130并且由该网络交换机130将该通信请求路由至该目的地计算处理器120。或者,在目的地计算处理器120处于另一计算簇10中时,该网络交换机130进一步将该通信请求路由至与另一计算簇10相连的网络交换机150,并且由该网络交换机150将该通信请求路由至该目的地计算处理器120。在这种情况下,网络交换机130和150根据其中维护的整个计算系统1的路由表将通信请求路由至目的地计算处理器120。

然而,由于通用处理器140的处理消耗以及通用处理器140与网络交换机130之间以及网络交换机130与网络交换机150之间的通信消耗,整个通信过程将不可避免地产生大的系统延迟,从而影响系统性能。并且,由于通用处理器140和专用的网络交换机130和150的使用,计算系统1的整体复杂度和成本将大大增高。

在一些应用中,可以通过上层的资源调度将应用所需的处理能力集中由一个计算簇10或一个计算簇10中的一个或多个计算节点110来提供,从而减少计算节点110之间和计算簇10之间的通信消耗。然而,在具有大数据量处理需求的应用中,例如在人工智能领域的很多应用中,所需的计算能力通常需要调度多个计算簇10来协同完成。在这种情况下,图1所示的计算系统1的拓扑结构将使得高延迟和低性能无法避免。

发明内容

针对上述问题,本发明提供了一种统一且直接连接的计算系统,其中,除了计算处理器之间的直接链路之外,在至少一些计算节点之间以及至少一些计算簇之间也通过直接链路进行连接,并且在具有直接链路的每个计算处理器中配置简单的小型本地路由表,从而在计算系统的所有分层层级上都能够直接连接该计算处理器。此外,除了数据处理之外,每个计算处理器还可以通过基于应用类型控制数据流向来参与数据传输。

根据本发明的一个方面,提供了一种计算系统。该计算系统包括:多个计算簇,其中每个计算簇包括多个计算节点,每个计算节点包括多个计算处理器,其中所述多个计算簇中的至少一些计算簇之间、每个计算簇的至少一些计算节点之间以及每个计算节点的至少一些计算处理器之间通过直接链路相连;其中所述计算节点的至少一些计算处理器中的每个计算处理器配置有一个本地路由表,以用于所述计算处理器基于所述本地路由表,确定对从数据源到数据目的地的数据包进行路由所要经过的下一直接链路,并且所述计算处理器经由所述下一直接链路对所述数据包进行转发。

所述数据源包括所述计算处理器本身、所述计算处理器所处的本地计算节点中的其他计算处理器或者所述本地计算节点的外部计算节点,所述数据目的地包括所述计算处理器本身、所述本地计算节点中的其他计算处理器或者所述本地计算节点的外部计算节点。

在一些实施例中,所述计算处理器被配置为执行以下各项:接收所述数据包;确定所述数据包的数据目的地是所述计算处理器所处的本地计算节点中的计算处理器还是外部计算节点中的计算处理器;如果确定所述数据包的数据目的地是所述本地计算节点中的计算处理器,确定所述数据包的数据目的地是所述计算处理器本身还是所述本地计算节点中的其他计算处理器;如果确定所述数据包的数据目的地是所述本地计算节点中的其他计算处理器,基于所述本地路由表将所述数据包的下一直接链路确定为从所述计算处理器到所述其他计算处理器的内部直接链路;如果确定所述数据包的数据目的地是所述外部计算节点中的计算处理器,确定所述数据包的下一直接链路是所述计算处理器的向外直接链路;以及如果确定所述数据包的数据目的地是所述计算处理器本身,直接对所述数据包进行本地处理。

在一些实施例中,所述计算处理器被配置为执行以下各项:接收所述数据包;确定所述数据包的数据源是所述至少一些计算处理器中的其他计算处理器还是外部计算节点中的计算处理器;如果确定所述数据包的数据源是所述外部计算节点中的计算处理器,确定所述数据包是否指定了数据目的地或者所述计算节点中的中继计算处理器;如果确定所述数据包指定了所述数据目的地或者所述计算节点中的中继计算处理器,将所述数据包的下一直接链路确定为所述计算处理器与所述数据目的地或者所述中继计算处理器之间的直接链路;如果确定所述数据包未指定所述数据目的地或者所述计算节点中的中继计算处理器,基于所述计算处理器运行的应用程序确定所述数据包的下一直接链路;以及如果确定所述数据包的数据源是所述至少一些计算处理器中的其他计算处理器,基于所述本地路由表将所述数据包的下一直接链路确定为向外直接链路或者内部直接链路。

在一些实施例中,所述计算系统具有全连接结构,其中所述多个计算簇中的任意两个计算簇之间、每个计算簇中的任意两个计算节点之间以及每个计算节点中的任意两个计算处理器之间都通过直接链路相连,并且其中每个计算处理器通过一个向外直接链路与同一计算簇或者不同计算簇中的另一计算节点中的计算处理器相连。

在一些实施例中,所述计算系统还包括:路由编译器,其被配置为根据每个计算处理器在所述计算系统中的直接链路的连接关系和应用需求为所述计算处理器编译产生所述本地路由表。

根据本发明的另一个方面,提供了一种计算处理器,其与本地计算节点中的至少一个其他计算处理器通过直接链路相连,并且所述计算处理器配置有一个本地路由表,所述计算处理器被配置为基于所述本地路由表,确定对从数据源到数据目的地的数据包进行路由所要经过的下一直接链路,并且所述计算处理器经由所述下一直接链路对所述数据包进行转发。

在一些实施例中,所述数据源包括所述计算处理器本身、所述本地计算节点中的其他计算处理器或所述本地计算节点的外部计算节点,所述数据目的地包括所述计算处理器本身、所述本地计算节点中的其他计算处理器或者所述本地计算节点的外部计算节点。

在一些实施例中,所述计算处理器被配置为执行以下各项:接收所述数据包;确定所述数据包的数据目的地是所述本地计算节点中的计算处理器还是外部计算节点中的计算处理器;如果确定所述数据包的数据目的地是所述本地计算节点中的计算处理器,确定所述数据包的数据目的地是所述计算处理器本身还是所述本地计算节点中的其他计算处理器;如果确定所述数据包的数据目的地是所述本地计算节点中的其他计算处理器,基于所述本地路由表将所述数据包的下一直接链路确定为从所述计算处理器到所述至少一个其他计算处理器的内部直接链路;如果确定所述数据包的数据目的地是所述外部计算节点中的计算处理器,确定所述数据包的下一直接链路是所述计算处理器的向外直接链路;以及如果确定所述数据包的数据目的地是所述计算处理器本身,直接对所述数据包进行本地处理。

在一些实施例中,所述计算处理器被配置为执行以下各项:接收所述数据包;确定所述数据包的数据源是所述至少一个其他计算处理器还是外部计算节点中的计算处理器;如果确定所述数据包的数据源是所述外部计算节点中的计算处理器,确定所述数据包是否指定了数据目的地或者所述本地计算节点中的中继计算处理器;如果确定所述数据包指定了所述数据目的地或者所述本地计算节点中的中继计算处理器,将所述数据包的下一直接链路确定为所述计算处理器与所述数据目的地或者所述中继计算处理器之间的直接链路;如果确定所述数据包未指定所述数据目的地或者所述本地计算节点中的中继计算处理器,基于所述计算处理器所运行的应用程序确定所述数据包的下一直接链路;以及如果确定所述数据包的数据源是所述至少一个其他计算处理器,基于所述本地路由表将所述数据包的下一直接链路确定为所述向外直接链路或者内部直接链路。

根据本发明的再一个方面,提供了一种用于计算处理器的数据处理方法,其中所述计算处理器与本地计算节点中的至少一个其他计算处理器通过直接链路相连并且配置有本地路由表。所述方法包括:接收数据包;确定所述数据包的数据目的地是所述本地计算节点中的计算处理器还是外部计算节点中的计算处理器;如果确定所述数据包的数据目的地是所述本地计算节点中的计算处理器,确定所述数据包的数据目的地是所述计算处理器本身还是所述本地计算节点中的其他计算处理器;如果确定所述数据包的数据目的地是所述本地计算节点中的其他计算处理器,基于所述本地路由表将所述数据包的下一直接链路确定为从所述计算处理器到所述至少一个其他计算处理器的内部直接链路;如果确定所述数据包的数据目的地是所述外部计算节点中的计算处理器,确定所述数据包的下一直接链路是所述计算处理器的向外直接链路;通过所述下一直接链路对所述数据包进行转发;以及如果确定所述数据包的数据目的地是所述计算处理器本身,直接对所述数据包进行本地处理。

根据本发明的又一个方面,提供了一种用于计算处理器的数据处理方法,其中所述计算处理器与本地计算节点中的至少一个其他计算处理器通过直接链路相连并且配置有本地路由表。所述方法包括:接收数据包;确定所述数据包的数据源是所述至少一个其他计算处理器还是外部计算节点中的计算处理器;如果确定所述数据包的数据源是所述外部计算节点中的计算处理器,确定所述数据包是否指定了数据目的地或者所述本地计算节点中的中继计算处理器;如果确定所述数据包指定了所述数据目的地或者所述本地计算节点中的中继计算处理器,将所述数据包的下一直接链路确定为所述计算处理器与所述数据目的地或者所述中继计算处理器之间的直接链路;如果确定所述数据包未指定所述数据目的地或者所述本地计算节点中的中继计算处理器,基于所述计算处理器运行的应用程序确定所述数据包的下一直接链路;如果确定所述数据包的数据源是所述至少一个其他计算处理器,基于所述本地路由表将所述数据包的下一直接链路确定为所述向外直接链路或者内部直接链路;以及通过所述下一直接链路对所述数据包进行转发。

附图说明

通过参考下列附图所给出的本发明的具体实施方式的描述,将更好地理解本发明,并且本发明的其他目的、细节、特点和优点将变得更加显而易见。

图1示出了现有技术中的这种计算系统的一个实例。

图2示出了根据本发明一种实施例的计算系统的示意图。

图3示出了图2所示的一个计算节点中的一个计算处理器的连接关系图。

图4示出了根据本发明一种实施例的在计算处理器中进行的数据处理过程的流程图。

图5示出了根据本发明另一种实施例的在计算处理器中进行的数据处理过程的流程图。

图6示出了根据本发明另一种实施例的计算系统的示意图。

图7示出了图6所示的一个计算节点中的一个计算处理器的连接关系图。

图8A和图8B示出了根据本发明又一种实施例的计算系统的示意图。

图9A和图9B示出了根据本发明再一种实施例的计算系统的示意图。

具体实施方式

下面将参照附图更详细地描述本发明的优选实施例。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。

在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一些实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。

图2示出了根据本发明一种实施例的计算系统2的示意图。

如图2中所示,计算系统2包括多个计算簇20-i(其中i指示每个计算簇的编号,在图2中i=1、2、3、4,以下也将计算簇20-i统称为计算簇20)。

每个计算簇20包括多个计算节点210-ij(其中i指示计算簇的编号,j指示一个计算簇20中的每个计算节点的编号,在图2中i, j=1、2、3、4,以下也将计算节点210-ij统称为计算节点210)。例如,计算簇20-1包括多个计算节点210-11、210-12、210-13和210-14,计算簇20-2包括多个计算节点210-21、210-22、210-23和210-24,计算簇20-3包括多个计算节点210-31、210-32、210-33和210-34,计算簇20-4包括多个计算节点210-41、210-42、210-43和210-44。

每个计算节点210包括多个计算处理器220-ijk(其中i指示计算簇的编号,j指示一个计算簇20中的每个计算节点210的编号,k指示一个计算节点210中的每个计算处理器的编号,在图2中i, j, k=1、2、3、4,以下也将计算处理器220-ijk统称为计算处理器220)。例如,计算簇20-1中的计算节点210-11包括多个计算处理器220-111、220-112、220-113和220-114,计算簇20-1中的计算节点210-12包括多个计算处理器220-121、220-122、220-123和220-124,……计算簇20-4中的计算节点210-44包括多个计算处理器220-441、220-442、220-443和220-444。

与图1所示的计算系统1不同,在图2所示的计算系统2中,除了每个计算节点210中的各个计算处理器220之间使用直接链路相连之外,各个计算簇20之间以及每个计算簇20的各个计算节点210之间也使用直接链路相连,而不需要如图1中所示的网络交换机130和150。这里,计算处理器220之间的直接链路可以使用各种现有的或未来开发的快速点对点链路来实现,例如PCI-E(高速外设部件互连,peripheral component interconnectexpress)总线等。

在图2所示的计算系统2中,由于多个计算簇20两两互连,每个计算簇20中的多个计算节点210两两互连,并且每个计算节点210中的多个计算处理器220两两互连,因此图2所示的计算系统2具有全连接结构,也称为全连接网络。在这样的全连接网络中,每个计算处理器220都通过一个向外直接链路与同一计算簇20或者不同计算簇20中的另一计算节点210中的一个计算处理器220相连。

由于各个计算簇20之间以及每个计算簇20的各个计算节点210之间都通过直接链路相连,因此每个计算节点210中也不再需要如图1中所示的通用处理器140。

代替图1所示的计算系统1中的通用处理器140和网络交换机130和150,在图2所示的计算系统2中,具有直接链路的每个计算处理器220可以维持一个软件可配置的本地路由表,以控制数据业务的传输。具体地,该本地路由表用于指示在该计算处理器220处,对从数据源到数据目的地的数据包进行路由所要经过的下一直接链路。数据源是指数据包的上一跳计算处理器220,其可以是该计算处理器220本身(即数据由该计算处理器自己产生)、该计算处理器220所处的计算节点210(也称为本地计算节点)内的其他计算处理器220,或者可以是该计算处理器220所处的计算节点210外的其他计算节点210(也称为外部计算节点)中的计算处理器220。数据源可以从收到该数据包的直接链路来确定。数据目的地是指数据包中所指示的需要送达的最终计算处理器220,其可以是该计算处理器220本身、该计算处理器220所处的计算节点210(也称为本地计算节点)内的其他计算处理器220,或者可以是该计算处理器220所处的计算节点210外的其他计算节点210(也称为外部计算节点)中的计算处理器220。外部计算节点可以是同一计算簇20中的其他计算节点210,也可以是其他计算簇20中的其他计算节点210。以下结合图3进一步描述计算处理器220处的数据处理。

图3示出了图2所示的一个计算节点210中的一个计算处理器220的连接关系图。下面的表1示出了该计算处理器220的示例性本地路由表。计算处理器220的本地路由表可以由更上层的路由编译器(图中未示出)根据该计算处理器220在计算系统2中的直接链路的连接关系和所要执行的应用需求产生。当然,在一些情况下,该本地路由表也可以由人工根据计算处理器220的直接链路的连接关系和应用需求而产生。

假设计算节点210是图2所示的计算节点210-14,计算处理器220是计算节点210-14中的计算处理器220-144。如图3中所示,计算处理器220-144分别通过直接链路L0、L1和L2与本地计算节点210-14中的其他计算处理器220-141、220-142和220-143相连,并且通过直接链路L3与外部节点210(如图2中所示的另一计算簇20-4中的计算节点210-41)相连,更具体地,与外部节点210中的一个计算处理器220(如图2中所示的计算簇20-4中的计算节点210-41中的计算处理器220-411)相连。这里,与本地计算节点210中的计算处理器220相连的直接链路(如L0、L1和L2)也称为内部直接链路,与外部计算节点210相连的直接链路(如L3)也称为向外直接链路。

根据如表1所示的本地路由表,计算处理器220-144可以对接收的数据包进行不同处理。图4示出了根据本发明一种实施例的在计算处理器220中进行的数据处理过程400的流程图。在图4所示的实施例中,计算处理器220不考虑数据包的数据源是本地计算节点210内的其他计算处理器220还是外部计算节点210的计算处理器220。

如图4中所示,在步骤410,计算处理器220-144接收一数据包,该数据包包括数据源和数据目的地。

在步骤420,计算处理器220-144可以确定该数据包的数据目的地是本地计算节点210-14内的计算处理器220还是外部计算节点210中的计算处理器220。外部计算节点210可以是同一计算簇20-1中的其他计算节点210-11、210-12或者210-13,也可以是其他计算簇20-2、20-3或20-4中的计算节点210。

如果在步骤420确定该数据包的数据目的地是本地计算节点210中的计算处理器220,则在步骤430,计算处理器220-144可以进一步确定该数据包的数据目的地是本地计算处理器(即当前的计算处理器220-144本身)还是本地计算节点210-14内的其他计算处理器220(如计算处理器220-141、220-142或220-143)。

如果在步骤430确定该数据包的数据目的地是本地计算节点210-14内的其他计算处理器220(如计算处理器220-141、220-142或220-143),则在步骤440,计算处理器220-144可以基于该本地路由表将该数据包的下一直接链路确定为内部直接链路L0、L1或L2。如表1中所示,在数据目的地是计算处理器220-141时,该下一直接链路是计算处理器220-144与计算处理器220-141之间的内部直接链路L0;在数据目的地是计算处理器220-142时,该下一直接链路是计算处理器220-144与计算处理器220-142之间的内部直接链路L1;在数据目的地是计算处理器220-143时,该下一直接链路是计算处理器220-144与计算处理器220-143之间的内部直接链路L2。

如果在步骤420确定该数据包的数据目的地是外部计算节点210中的计算处理器220,则在步骤450,计算处理器220-144可以确定该数据包的下一直接链路是计算处理器220-144的向外直接链路L3。如前所述,外部计算节点210可以是同一计算簇20中的其他计算节点210,也可以是其他计算簇20中的其他计算节点210。

在步骤460,计算处理器220-144可以根据步骤440或450确定的下一直接链路对该数据包进行转发。

另一方面,如果在步骤430确定该数据包的数据目的地是当前的本地计算处理器220-144,则在步骤470,计算处理器220-144可以直接对该数据包进行本地处理。进一步地,计算处理器220-144还可以根据其所运行的应用程序确定本地处理的结果是最终结果还是需要转发至其他计算处理器进行进一步处理(图中未示出)。

图5示出了根据本发明另一种实施例的在计算处理器220中进行的数据处理过程500的流程图。在图5所示的实施例中,当数据包的数据源是外部计算节点时,计算处理器220可以根据数据包中是否指明了其数据目的地而对该数据包进行路由。

如图5中所示,在步骤510,计算处理器220-144接收一数据包,该数据包包括数据源。

在步骤520,计算处理器220-144可以确定该数据包的数据源是本地计算节点210-14内的计算处理器220还是外部计算节点210中的计算处理器220。如前所述,外部计算节点210可以是同一计算簇20-1中的其他计算节点210-11、210-12或者210-13,也可以是其他计算簇20-2、20-3或20-4中的计算节点210。

如果在步骤520确定该数据包的数据源是外部计算节点210中的计算处理器220,则在步骤530,计算处理器220-144可以确定该数据包是否指定了数据目的地或者本地计算节点210-14中的中继计算处理器220(如计算处理器220-141、220-142或220-143)。也就是说,数据包中可能指定了作为数据目的地或者中继处理器的下一跳计算处理器220。在这种情况下,计算处理器220-144应当根据数据包中指定的下一跳计算处理器220进行路由。

如果在步骤530确定该数据包指定了数据目的地或者本地计算节点210-14中的中继计算处理器220-141、220-142或220-143(步骤530判断为“是”),则在步骤540,计算处理器220-144可以将该数据包的下一直接链路确定为计算处理器220-144与该数据目的地或者中继计算处理器220之间的直接链路(向外直接链路L3或者内部直接链路L0、L1或L2)。例如,假设数据包中指定了在本地计算节点210-14中要经过计算处理器220-141,则计算处理器220-144可以将下一直接链路确定为计算处理器220-144与计算处理器220-141之间的内部直接链路L0;假设数据包中指定了在本地计算节点210-14中要经过计算处理器220-142,则计算处理器220-144可以将下一直接链路确定为计算处理器220-144与计算处理器220-142之间的内部直接链路L1;假设数据包中指定了在本地计算节点210-14中要经过计算处理器220-143,则计算处理器220-144可以将下一直接链路确定为计算处理器220-144与计算处理器220-143之间的内部直接链路L2;假设数据包中指定了外部计算节点210中的数据目的地,则计算处理器220-144可以将下一直接链路确定向外直接链路L3。

另一方面,如果在步骤530确定该数据包中未指定最终数据目的地(例如只指明了目的节点而不是目的处理器)或者本地计算节点210中的中继计算处理器220(步骤530判断为“否”),则在步骤550,计算处理器220-144可以基于其运行的应用程序确定其下一直接链路。例如,计算处理器220-144本身可以被编程为能够处理这种未指明目的计算处理器或者本地通过的计算处理器的数据包,其例如可以根据处理器正在运行的应用程序确定不同的下一直接链路,以达到允许应用程序本身参与到数据路由的目的。

如果在步骤520确定该数据包的数据源是本地计算节点210-14内的计算处理器220,则在步骤560,计算处理器220-144可以进一步确定该数据包的数据目的地是本地计算处理器(即当前的计算处理器220-144本身)还是本地计算节点210-14内的其他计算处理器220(如计算处理器220-141、220-142或220-143)。

如果在步骤560确定该数据包的数据目的地是本地计算节点210-14内的其他计算处理器220(如计算处理器220-141、220-142或220-143),则在步骤570,计算处理器220-144可以基于该本地路由表将该数据包的下一直接链路确定为向外直接链路L3或者内部直接链路L0、L1或L2。

接下来,在步骤580,计算处理器220-144可以根据步骤540、550或570确定的下一直接链路对该数据包进行转发。

另一方面,如果在步骤560确定该数据包的数据目的地是当前的本地计算处理器220-144,则在步骤590,计算处理器220-144可以直接对该数据包进行本地处理。进一步地,计算处理器220-144还可以根据其所运行的应用程序确定本地处理的结果是最终结果还是需要转发至其他计算处理器进行进一步处理(图中未示出)。

通过这种方式,计算处理器220能够参与到数据路由中,这一方面帮助降低了硬件路由表大小(即,路由表不需要存储整个系统中的所有目的地的路由信息,而仅需要每个计算处理器220的本地路由表来存储其本地路由所需的路由信息),另一方面帮助降低了数据包需要携带的目的地信息(即数据包不需要在其包头中指明最终目的地的完整路径,而是可以仅指明其下一跳路径或者指明其最终目的地),并且还允许非常灵活和动态地对数据进行路由(例如,针对不同应用,可以对数据进行不同的路由)。

以上以图2所示的全连接网络的计算系统2为例对本发明的实施例进行了描述,然而本领域技术人员可以理解,本发明的思想可以应用于具有任何拓扑和规模的计算系统中。例如,计算系统2中可以包含任意数量个计算簇20,每个计算簇20可以包含任意数量个计算节点210,每个计算节点210可以包含任意数量个计算处理器220,这些计算簇20之间、一个计算簇20中的计算节点210之间以及一个计算节点210中的计算处理器220之间可以通过任意拓扑(如全连接结构或者部分连接结构)来连接。

图6示出了根据本发明另一种实施例的计算系统6的示意图。其中,各个计算簇、计算节点和计算处理器采用了与图2中所示的类似的标号方式,这里不再赘述。

与图2所示的计算系统2相比,图6所示的计算系统6中使用了直接链路更少的部分连接结构。例如,在计算簇60-1和计算簇60-4之间不具有直接链路,并且在计算簇60-2和计算簇60-3之间不具有直接链路。此外,在每个计算簇60-i中,计算节点610-i1和610-i4之间不具有直接链路,计算节点610-i2和610-i3之间也不具有直接链路。此外,在每个计算节点610-ij中,计算处理器620-ij1和620-ij4之间不具有直接链路,计算处理器620-ij2和620-ij3之间也不具有直接链路。

也就是说,在图6所示的计算系统6中,多个计算簇60中只有一些计算簇60之间具有直接链路,每个计算簇60中只有一些计算节点610之间具有直接链路,每个计算节点610中只有一些计算处理器620之间具有直接链路。与图2所示的计算系统2不同,在这样的部分连接结构中,一个计算处理器620可能具有与同一计算簇60或者不同计算簇60中的另一计算节点610中的一个计算处理器620相连的向外直接链路,如计算簇60-1中的计算节点610-11中的计算处理器620-111(与不同计算簇60中的计算处理器620相连)、620-112(与同一计算簇60-1中的另一计算节点610-12的计算处理器620-121相连)和620-113(与同一计算簇60-1中的另一计算节点610-13的计算处理器620-131相连)等,也可能不具有与同一计算簇60或者不同计算簇60中的另一计算节点610中的一个计算处理器620相连的向外直接链路,如计算簇60-1中的计算节点610-11中的计算处理器620-114。

注意,图6仅仅示出了部分连接结构的一种具体形式,部分连接结构还可以具有更多种不同形式。例如,在图6的计算系统6中,可以在不同计算簇60之间、不同计算节点610之间和/或不同计算处理器620之间增加或者减少若干直接链路。

与图2所示的计算系统2类似,在图6所示的计算系统6中,每个具有直接链路的计算处理器620可以维持一个软件可配置的本地路由表,以控制数据业务的传输。

图7示出了图6所示的一个计算节点610中的一个计算处理器620的连接关系图。下面的表2示出了该计算处理器620的示例性本地路由表。假设计算节点610是图6所示的计算节点610-13,计算处理器620是计算节点610-13中的计算处理器620-133。如图6中所示,计算处理器620-133分别通过直接链路L5和L6与本地计算节点610-13中的其他计算处理器620-131和620-134相连,并且通过直接链路L7与外部节点610(如图6中所示的另一计算簇60-3中的计算节点610-31)相连,更具体地,与外部节点610中的一个计算处理器620(如图6中所示的计算簇60-3中的计算节点610-31中的计算处理器620-311)相连。这里,与本地计算节点610中的计算处理器620相连的直接链路(如L5和L6)也称为内部直接链路,与外部计算节点610相连的直接链路(如L7)也称为向外直接链路。

可以看出,与图3所示的计算处理器220的连接关系图相比,图7所示的计算处理器620-133的连接关系图中,由于本地计算节点610中的计算处理器620-132与计算处理器620-133之间没有直接链路,因此计算处理器620-133不能直接接收来自计算处理器620-132的数据包,从而在表2中数据源为计算处理器620-132的列均为空。在这种情况下,在为计算处理器620-132配置的本地路由表中,可以通过选择另一计算处理器(如计算处理器620-131或者计算处理器620-134)作为中继处理器来将该数据包转发给计算处理器620-133。

另一方面,虽然计算处理器620-133与计算处理器620-132之间没有直接链路,但是计算处理器620-133的本地路由表仍可被配置为通过与其相连的其他直接链路向计算处理器620-132发送数据包。例如,如表2中所示,计算处理器620-133可以将发送给计算处理器620-132的数据包先通过直接链路L6(或者直接链路L5)发送给计算处理器620-134,再由计算处理器620-134通过计算处理器620-134与计算处理器620-132之间的直接链路发送给计算处理器620-132。

根据如表2所示的本地路由表,计算处理器620-133可以对接收的数据包进行不同处理。这里,数据处理器620-133对接收的数据包进行的数据处理过程与上述结合图4和图5所述的基本相同,在此不再赘述。

图8A和图8B示出了根据本发明又一种实施例的计算系统8的示意图。其中,各个计算簇、计算节点和计算处理器采用了与图2和图6中所示的类似的标号方式,这里不再赘述。

与图2所示的计算系统2相比,图8A和图8B所示的计算系统8中包含更多的计算簇80,每个计算簇80中包含更多的计算节点810,并且每个计算节点810中包含更多的计算处理器820。例如,图2所示的计算系统2中示出了4个计算簇20,每个计算簇20包含4个计算节点210,并且每个计算节点210包含4个计算处理器220,而在图8A和图8B所示的计算系统8中,示出了8个计算簇80,每个计算簇80包含8个计算节点810,并且每个计算节点810包含8个计算处理器820。

与图2所示的计算系统2类似,图8A和图8B所示的计算系统8中,多个计算簇80两两互连,每个计算簇80中的多个计算节点810两两互连,并且每个计算节点810中的多个计算处理器820两两互连,因此图8A和图8B所示的计算系统8也具有全连接结构。

图9A和图9B示出了根据本发明再一种实施例的计算系统9的示意图。其中,各个计算簇、计算节点和计算处理器采用了与图2、图6和图8A和图8B中所示的类似的标号方式,这里不再赘述。

与图6所示的计算系统6相比,图9A和图9B所示的计算系统9中包含更多的计算簇90,每个计算簇90中包含更多的计算节点910,并且每个计算节点910中包含更多的计算处理器920。例如,图6所示的计算系统6中示出了4个计算簇60,每个计算簇60包含4个计算节点610,并且每个计算节点610包含4个计算处理器620,而在图9A和图9B所示的计算系统9中,示出了9个计算簇90,每个计算簇90包含8个计算节点910,并且每个计算节点910包含8个计算处理器920。

与图6所示的计算系统6类似,图9A和图9B所示的计算系统9中,多个计算簇90中只有一些计算簇90直接具有直接链路,每个计算簇90中的只有一些计算节点910之间具有直接链路,每个计算节点910中只有一些计算处理器920之间具有直接链路,因此图9A和图9B所示的计算系统9也具有部分连接结构。

在图8A和图8B以及图9A和图9B所示的计算系统中,在具有直接链路的每个计算处理器处,也基于网络拓扑和实际应用需求配置了与上述表1和表2类似的软件可配置的本地路由表,并且在每个计算处理器处的数据处理过程也类似于上述结合图4和图5所述的过程,因此这里不再赘述。

以上结合附图描述了根据本发明的通过直接链路连接并且在为计算处理器配置本地路由表的计算系统的各种实施方式。通过使用具有直接链路的更加便宜和高性能的计算处理单元来代替传统的专用网络交换机和通用处理器能够降低网络成本,同时实现低延迟和高性能,并且通过使计算处理器参与到数据流控制中,使得数据传输更加灵活和应用优化。

此外,虽然上述图中将计算系统2、6、8和9描述为单独的计算系统,但是本发明所述的计算系统2、6、8或9可以与如图1所示的计算系统1结合使用。例如,计算系统1可以连接到计算系统2、6、8或9的没有实现上述直接链路连接和本地路由表的子系统,或者用于支持需要传统通信软件实现的应用。

在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本发明所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。

本文公开的计算系统的各个组成部分可以使用分立硬件组件来实现,也可以集成地实现在一个硬件组件上。例如,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本发明所描述的各种示例性的逻辑块、模块和电路。

本领域普通技术人员还应当理解,结合本发明的实施例描述的各种示例性的逻辑块、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。

本发明的以上描述用于使本领域的任何普通技术人员能够实现或使用本发明。对于本领域普通技术人员来说,本发明的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本发明的精神和保护范围的情况下应用于其它变形。因此,本发明并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。

相关技术
  • 计算系统、计算处理器和数据处理方法
  • 可信计算系统构建方法、装置、可信计算系统及处理器
技术分类

06120112941898