背景技术
一些计算工作负载,例如机器学习训练,需要大量的处理节点以有效地完成工作负载。处理节点可以通过互连网络彼此通信。例如,在机器学习训练中,处理节点可以彼此通信以收敛于最佳的深度学习模型。互连网络对于处理单元实现收敛的速度和效率至关重要。
随着机器学习和其他工作负载的大小和复杂性变化,包括多个处理节点的超级计算机的刚性结构可能会限制超级计算机的可用性、可伸缩性和性能。例如,如果具有连接处理节点的特定排列的刚性互连网络的超级计算机的某些处理节点发生故障,则超级计算机可能无法替换这些处理节点,从而导致可用性和性能降低。与不依赖故障节点的其他排列相比,某些特定排列也可能导致更高的性能。
发明内容
本说明书描述了与计算节点的可重配置超级平台(superpod)有关的技术,使用光网络从该可重配置超级平台中生成工作负载集群。
通常,本说明书中描述的主题的一个创新方面可以体现在以下方法中,该方法包括:接收指定用于计算工作负载的所请求计算节点的请求数据。请求数据指定所述计算节点的目标n维度排列,其中n大于或等于2。从包括每个均包括计算节点的m维度排列的构建块集合的超级平台中选择所述构建块的子集,所述构建块的子集在被组合时与由所述请求数据指定的目标n维度排列相匹配,其中m大于或等于2。所述构建块的子集连接到包括用于n维度中的每个维度的一个或多个光电路交换的光网络。生成包括所述构建块的子集的计算节点的工作负载集群。工作负载集群是专用于特定给定工作负载的计算或执行的计算节点集群。生成包括对于所述工作负载集群的每个维度,配置用于该维度的一个或多个光电路交换的相应路由数据,所述工作负载集群的每个维度的相应路由数据指定计算工作负载的数据如何沿所述工作负载集群的该维度在计算节点之间被路由。使所述工作负载集群的计算节点执行所述计算工作负载。
这些和其他实施方式可各自可选地包括以下特征中的一个或多个。在某些方面,所述请求数据指定不同类型的计算节点。选择所述构建块的子集包括针对由所述请求数据指定的每种类型的计算节点选择包括所指定的类型的一个或多个计算节点的构建块。
在一些方面,用于所述超级平台的每个维度的相应路由数据包括用于所述一个或多个光电路交换中的一个的光电路交换路由表。在一些方面,对于所述n维度中的每个维度,所述光网络包括沿着该维度在计算节点之间路由数据的所述光网络的一个或多个光电路交换。每个构建块可以包括沿着所述构建块的每个维度的计算节点的多个分段。对于每个维度的每个分段,所述光网络可以包括所述光网络的光电路交换,所述光网络的所述光电路交换在所述工作负载集群中的每个构建块的计算节点的对应分段之间路由数据。
在一些方面,每个构建块包括计算节点的三维环面或计算节点的网格中的一个。在一些方面,超级平台包括多个工作负载集群。每个工作负载集群可以包括所述构建块的不同子集,并且执行与每个其他工作负载集群不同的工作负载。
一些方面包括:接收指示所述工作负载集群的给定构建块已故障的数据,以及用可用构建块来替换所述给定构建块。用可用构建块来替换所述给定构建块可以包括更新所述光网络的一个或多个光电路交换的路由数据,以停止在所述工作负载集群的给定构建块与一个或多个其他构建块之间路由数据,以及更新所述光网络的一个或多个光电路交换的路由数据,以在所述工作负载集群的可用构建块与一个或多个其他构建块之间路由数据。
在一些方面,选择所述构建块的子集,所述构建块的子集在被组合时与由所述请求数据指定的目标n维度排列相匹配,包括:确定由所述请求数据指定的n维度排列需要超过所述超级平台中健康可用的第二数量的构建块的第一数量的构建块,并且响应于确定由所述请求数据指定的n维度排列需要超过所述超级平台中健康可用的第二数量的构建块的第一数量的构建块:识别比所述计算工作负载具有更低优先级并且正在由所述超级平台的其他构建块执行的一个或多个第二计算工作负载,并将所述一个或多个第二计算工作负载的一个或多个构建块重新分配给用于所述计算工作负载的工作负载集群。生成包括所述构建块的子集的计算节点的工作负载集群包括:在所述构建块的子集中包括所述一个或多个第二计算工作负载的一个或多个构建块。
在一些方面,生成包括所述构建块的子集的计算节点的工作负载集群包括:针对所述工作负载集群的每个维度重新配置用于该维度的一个或多个光电路交换的相应路由数据,使得所述一个或多个第二计算工作负载的一个或多个构建块中的每一个与所述工作负载集群的其他构建块而不是所述一个或多个第二计算工作负载的构建块进行通信。
本说明书中描述的主题可以在特定实施例中实现,以实现以下优点中的一个或多个。使用光网络为工作负载动态配置计算节点的群集导致计算节点的可用性更高,因为其他计算节点可以轻松替换已故障或脱机的计算节点。计算节点排列的灵活性导致计算节点的性能更高,并且为每个工作负载分配适当数量和优化(或改进)的计算节点排列的效率更高。利用包括多种类型的计算节点的超级平台,可以生成工作负载群集,其不仅包括适当数量的计算节点和计算节点的排列,而且还包括针对每个工作负载的适当类型的计算节点,例如,但不仅限于在数据中心或其他位置在物理上彼此靠近(例如,在同一机架中彼此直接连接和/或彼此相邻)的计算节点。相反,光网络启用了各种形状的工作负载集群,其中计算节点尽管彼此相对在任意物理位置中,但是好像它们彼此相邻一样进行操作。
使用光网络配置平台还为工作负载提供了故障隔离和更好的安全性。例如,一些常规的超级计算机在组成该超级计算机的各种计算机之间路由流量。如果计算机之一发生故障,则该通信路径将丢失。使用光网络,可以快速重新路由数据和/或可用计算节点可以替换已故障的计算节点。另外,与使用易受攻击的软件来管理分离相比,由光电路交换(OCS)交换机提供的工作负载之间的物理隔离(例如,不同光路的物理隔离)在同一超级平台中执行的各种工作负载之间提供了更好的安全性。
使用光网络连接构建块还可以减少相对于分组交换网络在构建块之间传送数据时的延迟。例如,在分组交换中,存在额外的延迟,因为分组需要由交换机接收,缓冲并在另一个端口上再次发送出去。使用OCS交换机连接构建块提供真正的端到端光路,而中间没有分组交换或缓冲。
下面参考附图描述前述主题的各种特征和优点。根据本文描述的主题和权利要求,其他特征和优点是显而易见的。
附图说明
图1是其中示例处理系统生成计算节点的工作负载集群并使用工作负载集群执行计算工作负载的环境的框图。
图2示出了示例逻辑超级平台和从超级平台中的一部分构建块生成的示例工作负载集群。
图3示出了示例构建块和使用该构建块生成的示例工作负载集群。
图4示出了从计算节点到光电路交换(OCS)交换机的示例光链接。
图5示出了用于形成构建块的逻辑计算托盘。
图6示出了省略一个维度的示例构建块的子块。
图7示出了示例构建块。
图8示出了用于超级平台的OCS结构拓扑。
图9示出了示例超级平台的组件。
图10是示出了用于生成工作负载集群并使用工作负载集群执行计算工作负载的示例过程的流程图。
图11是示出了用于重新配置光网络以替换故障的构建块的示例过程的流程图。
在各个附图中,相同的附图标记和符号指示相同的元件。
具体实施方式
通常,本文描述的系统和技术可以配置光网络结构以从超级平台生成计算节点的工作负载群集。超级平台是一组通过光网络相互连接的计算节点的多个构建块。例如,超级平台可以包括一组互连的构建块。每个构建块可以包括m维度排列(例如二维度或三维度排列)的多个计算节点。
用户可以指定用于特定工作负载的计算节点的目标排列。例如,用户可以提供机器学习工作负载并指定计算节点的目标排列以执行机器学习计算。目标排列可以定义跨n个维度中的每个维度的计算节点的数量,例如,其中n大于或等于2。即,目标排列可以定义工作负载集群的大小和形状。例如,某些机器学习模型和计算在非正方形拓扑上执行更好。
横截面带宽也可能成为整个计算的限制,例如,等待数据传输的计算节点留下了空闲的计算周期。根据如何跨计算节点分配工作以及需要在各个维度上跨网络传输多少数据,工作负载集群的形状可能会影响工作负载集群中的计算节点的性能。
对于将具有所有计算节点到所有计算节点数据流量的工作负载,立方体形状的工作负载群集将使计算节点之间的跳跃数最小化。如果工作负载具有大量本地通信,然后将数据跨特定维度传输到相邻的一组计算节点,并且该工作负载需要将许多这些相邻通信链接在一起,则该工作负载可能会受益于与其他维度相比在特定维度中具有更多计算节点的排列。因此,使用户能够指定工作负载群集中的计算节点的排列,可以允许用户指定可能导致其工作负载的更好性能的排列。
如果超级平台中包括不同类型的计算节点,则请求还可以指定要包括在工作负载群集中的每种类型的计算节点的数量。这允许用户指定对特定工作负载执行得更好的计算节点的排列。
工作负载调度器可以例如基于构建块的可用性、构建块的健康(例如,工作或故障)和/或超级平台中的工作负载的优先级(例如,超级平台的计算节点执行或将要执行的工作负载的优先级)而为工作负载集群选择构建块。工作负载调度器可以将识别所选构建块和构建块的目标排列的数据提供给光电路交换(OCS)管理器。然后,OCS管理器可以配置光网络的一个或多个OCS交换机,以将构建块连接在一起以形成工作负载集群。然后,工作负载调度器可以在工作负载群集的计算节点上执行计算工作负载。
如果工作负载集群的一个构建块发生故障,则可以通过简单地重新配置OCS交换机来快速将发生故障的构建块替换为另一个构建块。例如,工作负载调度器可以在超级平台中选择可用的构建块来替换发生故障的构建块。工作负载调度器可以指示OCS管理器将已故障的构建块替换为所选的构建块。然后,OCS管理器可以重新配置OCS交换机,以使所选的构建块连接到工作负载集群的其他构建块,并且使已故障的构建块不再连接到工作负载集群的构建块。
图1是示例处理系统130生成计算节点的工作负载集群并且使用工作负载集群执行计算工作负载的环境100的框图。处理系统130可以通过例如局域网(LAN)、广域网(WAN)、互联网、移动网络或其组合的数据通信网络120从用户设备110接收计算工作负载112。示例工作负载112包括软件应用、机器学习模型(例如,训练和/或使用机器学习模型,编码和解码视频以及数字信号处理工作负载等)。
用户还可以为工作负载112指定计算节点的所请求集群114。例如,用户可以指定计算节点的所请求集群的集群的目标形状和大小。即,用户可以跨多个维度指定计算节点的数量和计算节点的形状。例如,如果计算节点分布在x、y和z的三个维度上,则用户可以在每个维度中指定多个计算节点。用户还可以指定一种或多种类型的计算节点以包括在群集中。如下所述,处理系统130可以包括不同类型的计算节点。
如下所述,处理系统130可以使用构建块来生成与集群的目标形状和大小相匹配的工作负载集群。每个构建块可以包括以m个维度(例如,三个维度)排列的多个计算节点。因此,用户可以根据多个维度中的每个维度中的构建块的数量来指定目标形状和大小。例如,处理系统130可以向用户设备110提供用户界面,该用户界面使用户能够在每个维度中选择多达最大数量的构建块。
用户设备110可以将工作负载112和指定所请求集群114的数据提供给处理系统130。例如,用户设备110可以通过网络120将包括工作负载112和指定所请求的集群114的数据的所请求数据提供给处理系统130。
处理系统130包括单元调度器140和一个或多个单元(cell)150。单元150是一组一个或多个超级平台。例如,示出的单元150包括四个超级平台152-158。每个超级平台152-158包括一组构建块160,在本文中也称为构建块池。在该示例中,每个超级平台152-158包括64个构建块160。然而,超级平台152-158可以包括其他数量的构建块160,例如20、50、100或另一适当量。超级平台152-158还可以包括不同数量的构建块160。例如,超级平台152可以包括64个构建块,而超级平台152包括100个构建块。
如下面更详细地描述的,每个构建块160可以包括以二维度或更多维度排列的多个计算节点。例如,构建块160可以包括沿着三个维度排列的64个计算节点,每个维度中具有四个计算节点。计算节点的这种排列在本文档中称为4x4x4构建块,其中沿x维度具有四个计算节点,沿y维度具有四个计算节点,而沿z维度具有四个计算节点。其他数量的维度(例如,二维度)以及每个维度中其他数量的计算节点也是可能的,例如3x1、2x2x2、6x2、2x3x4等。
构建块还可以包括单个计算节点。但是,如下所述,为了生成工作负载集群,构建块之间的光链接配置为将构建块连接在一起。因此,尽管较小的构建块(例如,具有单个计算节点的构建块)可以在生成工作负载群集时提供更大的灵活性,但是较小的构建块可能需要更多的OCS交换机配置和更多的光网络组件(例如,电缆和交换机)。可以基于工作负载集群的所需灵活性与将构建块连接在一起以形成工作负载集群的要求和所需的OCS交换机数量之间的折衷,来选择构建块中计算节点的数量。
构建块160的每个计算节点可以包括专用集成电路(ASIC),例如用于机器学习工作负载的张量处理单元(TPU)、图形处理单元(GPU)或其他类型的处理单元。例如,每个计算节点可以是包括处理单元的单个处理器芯片。
在一些实施方式中,超级平台中的所有构建块160具有相同的计算节点。例如,超级平台152可以包括64个构建块,每个构建块具有以4x4x4排列的64个TPU,用于执行机器学习工作负载。超级平台还可以包括不同类型的计算节点。例如,超级平台154可以包括具有TPU的60个构建块和具有执行除机器学习工作负载以外的任务的专用处理单元的4个构建块。这样,工作负载的工作负载群集可以包括不同类型的计算节点。超级平台可以包括超级平台中的每种类型的计算节点的多个构建块,以实现冗余和/或允许多个工作负载在超级平台中运行。
在一些实施方式中,超级平台中的所有构建块160具有相同排列,例如,相同尺寸和形状。例如,超级平台152的每个构建块160可以具有4x4x4排列。超级平台也可以具有带有不同排列的构建块。例如,超级平台154可以具有以4x4x4排列的32个构建块和以16x8x16排列的32个构建块。不同的构建块排列可以具有相同或不同的计算节点。例如,具有TPU的构建块的排列可能与具有GPU的构建块的排列不同。
超级平台可以具有不同层次的构建块。例如,超级平台152可以包括具有4x4x4排列的基本级构建块。超级平台152还可以包括具有更多计算节点的中间级构建块。例如,中间级构建块可以具有例如由八个基本级构建块制成的8x8x8排列。这样,与连接基本级构建块以生成较大的工作负载集群相比,可以使用具有较少链接配置的中间级构建块来生成较大的工作负载集群。在超级平台中还具有基本级构建块,从而为较小的工作负载集群提供了灵活性,这些集群可能不需要中间级构建块中的计算节点数量。
单元150内的超级平台152-158可以在构建块中具有相同或不同类型的计算节点。例如,单元150可以包括具有TPU构建块的一个或多个超级平台和具有GPU构建块的一个或多个超级平台。构建块的大小和形状在单元150的不同超级平台152-158中也可以相同或不同。
每个单元150还包括共享数据存储162和共享辅助计算组件164。单元150中的每个超级平台152-158可以使用共享数据存储162,例如,存储由在超级平台152-158中执行的工作负载生成的数据。共享数据存储162可以包括硬盘驱动器、固态驱动器、闪存和/或其他适当的数据存储设备。共享辅助计算组件可以包括在单元150内共享的CPU(例如,通用CPU机器)、GPU和/或其他加速器(例如,视频解码、图像解码等)。辅助计算组件164还可以包括存储设备、存储器设备和/或计算节点可以通过网络共享的其他计算组件。
单元调度器140可以针对从用户设备110接收的每个工作负载选择单元150和/或单元150的超级平台152-158。单元调度器140可以基于为工作负载指定的目标排列、超级平台152-158中的构建块160的可用性以及超级平台152-158中的构建块的健康来选择超级平台。例如,单元调度器140可以为工作负载选择至少包括足够数量的可用且健康的构建块的超级平台,以生成具有目标排列的工作负载集群。如果请求数据指定计算节点的类型,则单元调度器140可以选择具有至少足够数量的具有指定类型的计算节点的可用且健康的构建块的超级平台。
如下所述,每个超级平台152-158还可以包括工作负载调度器和OCS管理器。当单元调度器140选择单元150的超级平台时,单元调度器140可以将工作负载和指定所请求集群的数据提供给该超级平台150的工作负载调度器。如下面更详细地描述的,工作负载调度器可以基于构建块的可用性和健康以及可选地超级平台中的工作负载的优先级而从超级平台的构建块中选择一组构建块进行连接以形成工作负载集群。例如,如下所述,如果工作负载调度器接收到对工作负载群集的请求,其中该工作负载群集包括比超级平台中健康且可用的构建块数量更多的构建块,则工作负载调度器可以将优先级较低的工作负载的构建块重新分配给所请求工作负载集群。工作负载调度器然后可以将识别所选构建块的数据提供给OCS管理器。然后,OCS管理器可以配置一个或多个OCS交换机,以将构建块连接在一起以形成工作负载集群。然后,工作负载调度器可以在工作负载群集的计算节点上执行工作负载。
在一些实施方式中,例如,当为工作负载选择超级平台152-158时,单元调度器140平衡各个单元150与超级平台152-158之间的负载。例如,当在具有用于工作负载的构建块的容量的两个或更多个超级平台之间进行选择时,单元调度器140可以选择具有最大容量的超级平台,例如,最可用和最健康的构建块,或者具有整体容量最大的单元的超级平台。可用的健康的构建块是未执行另一工作负载或活动工作负载集群的一部分且未处于故障状态的构建块。单元调度器可以维护构建块的索引。对于每个构建块,索引可以包括指示构建块是否健康(例如,未处于故障状态)和/或可用(例如,未执行另一工作负载或活动工作负载集群的一部分)的数据。
在一些实施方式中,单元调度器140还可以确定工作负载的目标排列。例如,单元调度器140可以基于所估计的工作负载的计算需求和一种或多种类型的可用计算节点的吞吐量来确定构建块的目标排列。在该示例中,单元调度器140可以将所确定的目标排列提供给超级平台的工作负载调度器。
图2示出了示例逻辑超级平台210以及从超级平台210中的一部分构建块生成的示例工作负载集群220、230和240。在该示例中,超级平台210包括64个构建块,每个构建块具有4x4x4排列。尽管本文档中描述的许多示例都是根据4x4x4构建块进行描述的,但是相同的技术也可以应用于构建块的其他排列。
在超级平台210中,用阴影线表示的构造被分配给工作负载,如下所述。用纯白色表示的构建块是可用的健康构建块。用实心黑色表示的构建块是不健康的节点,其例如由于故障而无法用于生成工作负载群集。
工作负载集群220是8x8x4的平台,其包括来自超级平台210的四个4x4x4构建块。也就是说,工作负载集群220沿x维度具有八个计算节点,沿y维度具有八个计算节点,以及沿z维度具有四个计算节点。由于每个构建块沿每个维度都有四个计算节点,因此工作负载集群220包括沿x维度的两个构建块、沿y维度的两个构建块和沿z维度的一个构建块。
工作负载集群220的四个构建块用斜线阴影线表示,以示出它们在超级平台210中的位置。如图所示,工作负载集群220的构建块彼此不相邻。如下面更详细地描述的,光网络的使用使得能够从超级平台210中的工作负载集群的任何组合生成工作负载集群,而不管它们在超级平台210中的相对位置如何。
工作负载集群230是8x8x8的平台,其包括超级平台210的八个构建块。特别地,工作负载集群包括沿每个维度的两个构建块,这为工作负载集群230提供了沿每个维度的八个计算节点。用垂直阴影线表示了工作负载集群230的构建块,以示出它们在超级平台210中的位置。
工作负载集群240是16x8x16的平台,其包括超级平台210的32个构建块。特别地,工作负载集群240包括沿x维度的四个构建块、沿y维度的两个构建块、以及沿z维度的四个构建块,这为工作负载群集提供了沿x维度的16个计算节点、沿y维度的8个计算节点和沿z维度的16个计算节点。用交叉阴影线表示了工作负载集群240的构建块,以示出它们在超级平台210中的位置。
工作负载集群220、230和240仅仅是可以为工作负载生成的超级平台210的集群的一些示例。工作负载集群的许多其他排列也是可能的。尽管示例工作负载集群220、230和240具有矩形形状,但是其他形状也是可能的。
包括工作负载集群220、230和240的工作负载集群的形状是逻辑形状而不是物理形状。对光网络进行配置,以使构建块沿每个维度进行通信,就好像工作负载群集在逻辑配置中物理连接一样。但是,可以以各种方式将物理构建块及其相应的计算节点物理地排列在数据中心中。可以从任何健康的可用构建块中选择工作负载220、230和240的构建块,而对超级平台210中的构建块之间的物理关系没有任何限制,除了所有构建块都已连接到超级平台210的光网络之外。例如,如上所述和图2所示,工作负载集群220、230和240包括物理上不相邻的构建块。
另外,工作负载集群的逻辑排列不受超级平台的构建块的物理排列的约束。例如,可以将构建块排列成八行八列,而沿z维度仅一个构建块。但是,可以配置工作负载群集,以便通过配置光网络来创建此逻辑排列,从而使工作负载群集包括沿z维度的多个构建块。
图3示出了示例构建块310以及使用构建块310生成的示例工作负载集群320、330和340。构建块310是沿着每个维度具有四个计算节点的4x4x4构建块。在该示例中,构建块310的每个维度包括在每个分段中四个计算节点的16个分段。例如,在构建块310的顶部上有16个计算节点。对于这16个计算节点中的每一个,沿y维度都有一个分段,其包括计算节点和三个其他计算节点,其包括在构建块310的底部上对应的最后计算节点。例如,沿y维度的一个分段包括计算节点301-304。
构建块310内的计算节点可以通过由导电材料(例如铜电缆)制成的内部链接318彼此连接。可以使用内部链接318连接每个维度的每个分段中的计算节点。例如,存在将计算节点301连接到计算节点302的内部链接318。还存在将计算节点302连接到计算节点303的内部链接318和将计算节点303连接到计算节点304的另一个内部链接318。可以以相同的方式连接每个其他分段中的计算节点,以在构建块310的计算节点之间提供内部数据通信。
构建块310还包括将构建块310连接到光网络的外部链接311-316。光网络将构建块310连接到其他构建块。在该示例中,构建块310包括用于x维度的16个外部输入链接311。即,构建块310包括用于沿x维度的16个分段中的每个分段的外部输入链接311。类似地,构建块310包括沿x维度的每个分段的外部输出链接312、沿y维度的每个分段的外部输入链接313、沿y维度的每个分段的外部输出链接314、沿z维度的每个分段的外部输入链接315、以及沿z维度的每个分段的外部输出链接316。由于构建块的某些排列可以具有三个以上的尺寸,例如圆环,因此构建块310可以为构建块310的每个尺寸包括相似的外部链接。
每个外部链接311-316可以是将其相应的计算节点分段上的计算节点连接到光网络的光纤链接。例如,每个外部链接311-316可以将其计算节点连接到光网络的OCS交换机。如下所述,对于构建块310对其具有分段的每个维度,光网络可以包括一个或多个OCS交换机。也就是说,用于x维度的外部链接311和312可以连接到与外部链接313和314不同的OCS交换机。OCS交换机可以被配置为将构建块连接到其他构建块以形成工作负载群集,如下面更详细的描述。
构建块310为4x4x4网格排列的形式。对于4x4x4(或其他尺寸的构建块),其他排列也是可能的。例如,类似于工作负载集群320,构建块310可以是具有环绕的环形链接的三维圆环的形式。也可以通过配置光网络以提供环绕的环形链接321-323来从单个网格构建块310生成工作负载集群320。
环形链接321-323在每个分段的一端与每个分段的另一端之间提供环绕数据通信。例如,环形链接321将沿x维度的每个分段的每一端处的计算节点连接到该分段的另一端处的对应计算节点。环形链接321可以包括将计算节点325连接到计算节点326的链接。类似地,环形链接322可以包括将计算节点325连接到计算节点327的链接。
环形链接321-323可以是导电电缆,例如铜电缆或光链接。例如,环形链接321-323的光链接可以将其对应的计算机节点连接到一个或多个OCS交换机。可以将OCS交换机配置为将数据从每个分段的一端路由到每个分段的另一端。构建块310可以包括用于每个维度的OCS交换机。例如,环形链接321可以连接到第一OCS交换机,该第一OCS交换机在沿x维度的每个分段的一端与沿x维度的每个分段的另一端之间路由数据。类似地,环形链接322可以连接到第二OCS交换机,该第二OCS交换机在沿y维度的每个分段的一端与沿y维度的每个分段的另一端之间路由数据。环形链接322可以连接到第三OCS交换机,该第三OCS交换机在沿z维度的每个分段的一端与沿z维度的每个分段的另一端之间路由数据。
工作负载集群330包括形成4x8x4平台的两个构建块338和339。每个构建块338和339可以与构建块310或工作负载集群320相同。这两个构建块使用外部链接337沿y维度连接。例如,一个或多个OCS交换机可以被配置为在构建块338的y维度分段和构建块339的y维度分段之间路由数据。
另外,可以将一个或多个OCS交换机配置为沿所有三个维度在每个分段的一端与每个分段的另一端之间提供环绕链接331-333。在该示例中,环绕链接333将构建块338的y维度分段的一端连接至构建块339的y维度分段的一端,以为通过两个构建块338和339的组合形成的y维度分段提供完全环绕通信。
工作负载集群340包括形成8x8x8集群的八个构建块(一个未示出)。每个构建块348可以与构建块310相同。使用外部链接345A-345C连接沿x维度连接的构建块链接。类似地,使用外部链接344A-344C连接沿y维度连接的构建块链接,使用外部链接346A-346C连接沿z维度连接的构建块。例如,一个或多个OCS交换机可配置为在x维度分段之间路由数据,一个或多个OCS交换机可配置为在y维度分段之间路由数据,并且一个或多个OCS交换机可配置为在Z维度分段之间路由数据。存在附加外部链接,每个维度用于将构建块(图3中未示出)连接到相邻的构建块。另外,一个或多个OCS交换机可被配置为沿所有三个维度在每个分段的一端与每个分段的另一端之间提供环绕链接341-343。
图4示出了从计算节点到OCS交换机的示例光链接400。可以将超级平台的计算节点安装在数据中心机架的托盘中。每个计算节点可以包括六个高速电链接。电链接中的两个可以连接到计算节点的电路板上,并且四个可以路由到外部电连接器(例如八进制小尺寸可插拔(OSFP)连接器),该连接器连接到端口410(例如OSFP端口)。在该示例中,端口410通过电触点412连接到光学模块420。光学模块420可以将电链接转换成光链接,以将外部链接的长度延长,例如,超过一公里(km),以根据需要在大型数据中心中的计算节点之间提供数据通信。光模块的类型可以基于构建块和OCS交换机之间所需的长度以及链接的所需速度和带宽而变化。
光学模块420通过光纤电缆422和424连接到环行器430。光纤电缆422可以包括一个或多个光纤电缆,用于将数据从光学模块420传送到环行器430。光纤电缆424可以包括一个或多个光纤电缆,用于从环行器430接收数据。例如,光纤电缆422和424可以包括双向光纤或成对的单向TX/RX光纤。环行器430可以通过从单向光纤转换到双向光纤来减少光纤电缆的数量(例如,从两对光缆减少到单对光缆432)。这与OCS交换机的单个OCS端口445很好地对准,OCS交换机通常容纳在一起切换的一对光路(2个光纤)。在一些实施方式中,环行器430可以被集成到光学模块420中或从光链接400中省去。
图5-图7示出了如何使用多个计算托盘形成4x4x4构建块。可以使用类似的技术来形成其他大小和形状的构建块。
图5示出了用于形成4x4x4构建块的逻辑计算托盘500。4x4x4构建块的基本硬件块是具有2x2x1拓扑的单个计算托盘500。在该示例中,计算托盘500具有沿着x维度的两个计算节点、沿着y维度的两个节点以及沿着z维度的一个节点。例如,计算节点501和502形成x维度分段,并且计算节点503和504形成x维度分段。类似地,计算节点501和503形成y维度分段,并且计算节点502和504形成y维度分段。
每个计算节点501-504使用内部链接510(例如,印刷电路板上的铜缆或迹线)连接到其他两个计算节点。每个计算节点还连接到四个外部端口。计算节点501连接到外部端口521。类似地,计算节点502连接到外部端口522,计算节点503连接到外部端口523,并且计算节点504连接到外部端口524。外部端口521-524可以是OSFP或将计算节点连接到OCS交换机的其他端口,如上所述。这些端口可以容纳附接到光纤电缆的电铜或光纤模块。
每个计算节点501-504的外部端口521-524具有一个x维度端口、一个y维度节点和两个z维度节点。这是因为每个计算节点501-504已使用内部链接510连接到x维度和y维度中的另一个计算节点。具有两个z维度的外部端口允许每个计算节点501-504也连接到沿着z维度的两个计算节点。
图6示出了省略了一个维度(z维度)的示例构建块的子块600。特别地,子块600是由2x2排列的计算托盘(例如图1的2x2排列的计算托盘500)形成的4x4x1块。子块600包括以2x2排列的四个计算托盘620A-620D。每个计算托盘620A-620D可以与图5的计算托盘500相同,包括以2x2x1排列的四个计算节点622。
计算托盘620A-620D的计算节点622可以使用内部链接631-634(例如铜电缆)连接。例如,使用内部链接632,计算托盘620A的两个计算节点622沿着y维度连接到计算托盘620B的两个计算节点622。
每个计算托盘620A-620D的两个计算节点622也沿着x维度连接到外部链接640。类似地,每个计算托盘620A-620D的两个计算节点也沿着y维度连接到外部线641。特别地,在每个x维度分段的末端和每个y维度分段的末端的计算节点连接到外部链接640。这些外部链接640可以是连接将计算节点并因此将包括计算节点的构建块(例如,使用图4的光链接400)连接到OCS交换机的光纤电缆。
可以通过沿着z维度将四个子块600连接在一起来形成4x4x4构建块。例如,每个计算托盘620A-620A的计算节点622可以使用内部链接连接到以z维度排列的其他子块600上的计算托盘的一个或两个对应的计算节点。每个z维度分段末端的计算节点可以包括连接到OCS交换机的外部链接640,类似于x维度分段和y维度分段末端的外部链接。
图7示出了示例构建块700。构建块700包括沿着z维度连接的四个子块710A-710D。每个子块710A-710D可以与图6的子块600相同。图7示出了沿着z维度的子块710A-710D之间的一些连接。
具体地,构建块700包括在子块710A-710D的计算托盘715的相应计算节点716之间沿着z维度的内部链接730-733。例如,内部链接730沿着z维度连接计算节点0的分段。类似地,内部链接731沿z维度连接计算节点1的分段,内部链接732沿z维度连接计算节点8的分段,并且内部链接733沿z维度连接计算节点9的分段。尽管未示出,但相似的内部链接连接了计算节点2-7和A-F的分段。
构建块700还沿着z维度在每个分段的末端包括外部链接720。尽管仅针对计算节点0、1、8和9的分段示出了外部链接720,但计算节点2-7和AF的其他每个分段也都包括外部链接720。外部链接可以将分段连接到OCS交换机,类似于x维度和y维度分段的末端的外部链接。
图8示出了用于超级平台的OCS结构拓扑800。在该示例中,OCS结构拓扑包括沿着超级平台的4x4x4构建块的每个维度的每个分段的单独的OCS交换机,该超级平台包括64个构建块805,即构建块0-63。4x4x4构建块805包括沿着x维度的16个分段、沿着y维度的16个分段和沿着z维度的16个分段。在此示例中,OCS结构拓扑包括用于x维度的16个OCS交换机、用于y维度的16个OCS交换机和用于z维度的16个OCS交换机,总共48个OCS交换机,其可以被配置为生成各种工作负载集群。
对于x维度,OCS结构拓扑800包括16个OCS交换机,包括OCS交换机810。对于沿着x维度的每个分段,每个构建块805包括外部输入链接811和外部输出链接812,其连接到用于该分段的OCS交换机810。这些外部链接811和812可以与图4的光学链接400相同或相似。
对于y维度,OCS结构拓扑800包括16个OCS交换机,包括OCS交换机820。对于沿着y维度的每个分段,每个构建块805包括外部输入链接821和外部输出链接822,其连接到用于该分段的OCS交换机810。这些外部链接821和822可以与图4的光学链接400相同或相似。
对于z维度,OCS结构拓扑800包括16个OCS交换机,包括OCS交换机830。对于沿着z维度的每个分段,每个构建块805包括外部输入链接821和外部输出链接822,其连接到用于该分段的OCS交换机810。这些外部链接821和822可以与图4的光学链接400相同或相似。
在其他示例中,例如,取决于OCS基数和/或超级平台中的构建块的数量,多个分段可以共享相同的OCS交换机。例如,如果OCS交换机具有足够数量的端口用于超级平台中所有构建块的所有x维度分段,则所有x维度分段都可以连接到同一OCS交换机。在另一个示例中,如果OCS交换机具有足够数量的端口,则每个维度的两个分段可以共享OCS交换机。但是,通过将超级平台的所有构建块的相应分段连接到同一OCS交换机,可以使用单个路由表在这些分段的计算节点之间进行数据通信。此外,为每个分段或每个维度使用单独的OCS交换机可以简化故障排除和诊断。例如,如果跨特定分段或维度的数据通信存在问题,则与将多个OCS用于该特定分段或维度相比,识别潜在故障的OCS会更容易。
图9示出了示例超级平台900的组件。例如,超级平台900可以是图1的处理系统130的超级平台之一。示例超级平台900包括64个4x4x4构建块960,其可以用于生成执行计算工作负载(例如,机器学习工作负载)的工作负载集群。如上所述,每个4x4x4构建块960包括32个计算节点,其中四个计算节点沿着三个维度的每一个排列。例如,构建块960可以与上述构建块310、工作负载集群320或构建块700相同或相似。
示例超级平台900包括光网络970,其包括48个OCS交换机930、940和950,这些OCS交换机930、940和950使用每个构建块960的96个外部链接931、932和933连接到构建块。每个外部链接可以是光纤链接,其与图4的光链接400相似或相同。
与图8的OCS结构拓扑800相似,光网络970包括用于每个构建块的每个维度的每个分段的OCS交换机。对于x维度,光网络970包括16个OCS交换机950,沿着x维度的每个分段一个。对于每个构建块960,光网络970还包括沿着x维度的构建块960的每个分段的输入外部链接和输出外部链接。这些外部链接将分段上的计算节点连接到该分段的OCS交换机950。由于每个构建块960沿着x维度包括16个分段,因此光网络970包括32个外部链接933(即16个输入链接和16个输出链接),这些外部链接将每个构建块960的x维度分段连接到分段的相应的OCS交换机950。
对于y维度,光网络970包括16个OCS交换机930,沿着y维度的每个分段一个。对于每个构建块960,光网络970还包括沿着y维度的构建块960的每个分段的输入外部链接和输出外部链接。这些外部链接将分段上的计算节点连接到该分段的OCS交换机930。由于每个构建块960包括沿着y维度的16个分段,因此光网络970包括32个外部链接931(即16个输入链接和16个输出链接),这些外部链接将每个构建块960的y维度分段连接到分段的相应OCS交换机930。
对于z维度,光网络970包括16个OCS交换机932,沿着z维度的每个分段一个。对于每个构建块960,光网络970还包括沿着z维度的构建块960的每个分段的输入外部链接和输出外部链接。这些外部链接将分段上的计算节点连接到该分段的OCS交换机940。由于每个构建块960包括沿着z维度的16个分段,因此光网络970包括32个外部链接932(即16个输入链接和16个输出链接),这些外部链接将每个构建块960的z维度分段连接到分段的相应OCS交换机940。
工作负载调度器910可以接收请求数据,该请求数据包括工作负载和指定用于执行工作负载的构建块960的所请求集群的数据。请求数据还可以包括工作负载的优先级。优先级可以以例如高、中或低的水平或以例如1-100的范围或另一适当范围的数值来表示。例如,工作负载调度器910可以从用户设备或单元调度器(例如,图1的用户设备110或单元调度器140)接收请求数据。如上所述,请求数据可以指定计算节点的目标n维度排列(例如,包括计算节点的构建块的目标排列)。
工作负载调度器910可以选择设置的构建块960以生成与由请求数据指定的目标排列相匹配的工作负载集群。例如,工作负载调度器910可以在超级平台900中识别一组可用的健康构建块。如上所述,可用的健康构建块是未执行另一工作负载或活动工作负载集群的一部分并且未处于故障状态的构建块。
例如,工作负载调度器910可以例如以数据库的形式维护和更新状态数据,其指示超级平台中的每个构建块960的状态。构建块960的可用性状态可以指示是否将构建块960分配给工作负载集群。构建块960的健康状态可以指示该构建块是工作还是故障。工作负载调度器910可以识别具有指示未将构建块960分配给工作负载的可用性状态并且具有健康工作状态的构建块960。当将构建块960分配给工作负载(例如,用于为工作负载生成工作负载集群)或具有健康状态更改(例如,从工作变为故障或反之亦然)时,工作负载调度器可以相应地为该构建块960更新状态数据。
工作负载调度器910可以从识别的构建块960中选择与目标排列所定义的数量相匹配的构建块960的数量。如果请求数据指定一种或多种类型的计算节点,则工作负载调度器910可以从所识别的构建块960中选择具有所请求的一种或多种类型的计算节点的构建块。例如,如果请求数据指定具有两个TPU构建块和两个GPU构建块的2x2排列的构建块,则工作负载调度器910可以选择两个具有TPU的可用健康构建块和两个具有GPU的健康可用构建块。
工作负载调度器910还可以基于当前在超级平台中运行的每个工作负载的优先级和包括在请求数据中的工作负载的优先级来选择构建块960。如果超级平台900没有足够的可用健康构建块来生成用于所请求的工作负载的工作负载集群,则工作负载调度器910可以确定是否存在优先级低于所请求的工作负载的在超级平台900中正在执行的任何工作负载。如果是这样,则工作负载调度器910可以将构建块从一个或多个较低优先级工作负载的工作负载集群重新分配给所请求的工作负载的工作负载集群。例如,工作负载调度器910可以终止较低优先级工作负载,延迟较低优先级工作负载,或者减小较低优先级工作负载的工作负载集群的大小,以释放用于较高优先级的工作负载的构建块。
工作负载调度器910可以简单地通过重新配置光网络(例如,通过配置如下所述的OCS交换机)来将构建块从一个工作负载集群重新分配给另一工作负载集群,以使得该构建块连接到较高优先级的构建块,而不是较低优先级的构建块。类似地,如果较高优先级工作负载的构建块发生故障,则工作负载调度器910可以通过重新配置光网络来将较低优先级工作负载的工作负载集群的构建块重新分配给较高优先级工作负载的工作负载集群。
工作负载调度器910可以生成每个工作的配置数据912并将其提供给超级平台900的OCS管理器920。每个工作的配置数据912可以为工作负载和构建块的排列指定所选的构建块960。例如,如果该排列是2x2排列,则该排列包括用于构建块的四个点。每个工作的配置数据可以指定哪个选择的构建块960进入四个点中的每个点。
每个工作的配置数据912可以使用每个构建块的逻辑标识符来识别所选择的构建块960。例如,每个构建块960可以包括唯一逻辑标识符。在特定示例中,可以将64个构建块960编号为0-63,并且这些数字可以是唯一逻辑标识符。
OCS管理器920使用每个工作的配置数据912来配置OCS交换机930、940和/或950以生成与每个工作的配置数据所指定的排列相匹配的工作负载集群。每个OCS交换机930、940和950均包括路由表,该路由表用于在OCS交换机的物理端口之间路由数据。例如,假设将第一构建块的x维度分段的输出外部链接连接到第二构建块的相应x维度分段的输入外部链接。在该示例中,用于该x维度分段的OCS交换机950的路由表将指示在这些分段所连接的OCS交换机的物理端口之间的数据将在彼此之间路由。
OCS管理器920可以维护端口数据,该端口数据将每个OCS交换机920、930和940的每个端口映射到每个构建块的每个逻辑端口。对于构建块的每个x维度分段,此端口数据可以指定外部输入链接连接到OCS交换机950的哪个物理端口以及外部输出链接连接到OCS交换机950的哪个物理端口。对于超级平台900的每个构建块960的每个维度,端口数据可以包括相同的数据。
OCS管理器920可以使用该端口数据来配置OCS交换机930、940和/或950的路由表,以生成用于工作负载的工作负载集群。例如,假定第一构建块将连接到2x1排列的第二构建块,其中该第一构造在x维度中位于第二构建块的左侧。OCS管理器920将更新x维度的OCS交换机950的路由表,以在第一构建块和第二构建块的x维度分段之间路由数据。由于将需要连接构建块的每个x维度分段,因此OCS管理器920可以更新每个OCS交换机950的路由表。
对于每个x维度分段,OCS管理器920可以更新该分段的OCS交换机950的路由表。特别地,OCS管理器920可以更新路由表以将第一构建块的分段连接到的OCS交换机950的物理端口映射到第二构建块的分段连接到的OCS交换机的物理端口。由于每个x维度分段都包括输入链接和输出链接,因此OCS管理器920可以更新路由表,使得第一构建块的输入链接被连接到第二构建块的输出链接并且第一构建块的输出链接被连接到第二构建块的输入链接。
OCS管理器920可以通过从每个OCS交换机获得当前路由表来更新路由表。OCS管理器920可以更新适当的路由表,并且将更新的路由表发送到适当的OCS交换机。在另一个示例中,OCS管理器920可以向OCS交换机发送指定更新的更新数据,并且OCS交换机可以根据该更新数据来更新其路由表。
在将OCS交换机配置有其更新的路由表之后,将生成工作负载群集。然后,工作负载调度器910可以使工作负载由工作负载集群的计算节点执行。例如,工作负载调度器910可以将工作负载提供给工作负载集群的计算节点以供执行。
在工作负载完成之后,工作负载调度器910可以将用于生成工作负载集群的每个构建块的状态更新为可用。工作负载调度器910还可以指示OCS管理器920移除用于生成工作负载集群的构建块之间的连接。继而,OCS管理器920可以更新路由表以移除用于在构建块之间路由数据的OCS交换机的物理端口之间的映射。
使用OCS交换机配置光纤结构拓扑以这种方式为工作负载生成工作负载群集,使超级平台能够以动态和安全的方式托管多个工作负载。当接收到新工作负载并且工作负载完成时,工作负载调度器920可以动态地生成和终止工作负载集群。与传统的超级计算机相比,OCS交换机提供的分段之间的路由在同一超级平台中执行的不同工作负载之间提供了更好的安全性。例如,OCS交换机通过工作负载之间的气隙使工作负载在物理上彼此分离。传统的超级计算机使用提供工作负载之间隔离的软件,这更容易受到数据泄露的影响。
图10是示出了用于生成工作负载集群并使用该工作负载集群来执行计算工作负载的示例过程1000的流程图。可以由包括一个或多个数据处理装置的系统来执行过程1000的操作。例如,过程1000的操作可以由图1的处理系统130执行。
系统接收指定计算节点的所请求集群的请求数据(1010)。例如,可以从用户设备接收请求数据。请求数据可以包括计算工作负载和指定计算节点的目标n维度排列的数据。例如,请求数据可以指定包括计算节点的构建块的目标n维度排列。
在一些实施方式中,请求数据还可以指定构建块的计算节点的类型。超级平台可以包括具有不同类型的计算节点的构建块。例如,超级平台可以包括90个构建块(每个构建块包括4x4x4排列的TPU)以及10个专用构建块(其包括2x1排列的专用计算节点)。请求数据可以指定每种类型的计算节点的构建块的数量以及这些构建块的排列。
系统从包括一组构建块的超级平台中为所请求集群选择构建块的子集(1020)。如上所述,超级平台可以包括一组构建块,其具有三维度排列的计算节点,例如,4x4x4排列的计算节点。系统可以选择与目标排列定义的数量匹配的数量的构建块。如上所述,系统可以选择健康且可用于所请求集群的构建块。
构建块的子集可以是构建块的适当子集。适当子集是不包括集合中所有成员的子集。例如,可能需要少于所有构建块才能生成与计算节点的目标排列匹配的工作负载集群。
系统生成工作负载集群,该工作负载集群包括计算节点的所选子集(1030)。工作负载集群可以具有与请求数据指定的目标排列相匹配的构建块排列。例如,如果请求数据指定计算节点的4x8x4排列,则工作负载集群可以包括如图3的工作负载集群330那样排列的两个构建块。
为了生成工作负载集群,系统可以为工作负载集群的每个维度配置路由数据。例如,如上所述,超级平台可以包括光网络,该光网络包括针对构建块的每个维度的一个或多个OCS交换机。一个维度的路由数据可以包括一个或多个OCS交换机的路由表。如以上参考图9所述,OCS交换机的路由表可以被配置为沿着每个维度在计算节点的适当分段之间路由数据。
系统使工作负载集群的计算节点执行计算工作负载(1040)。例如,系统可以将计算工作负载提供给工作负载集群的计算节点。在执行计算工作负载时,已配置的OCS交换机可以在工作负载集群的构建块之间路由数据。已配置的OCS交换机可以在构建块的计算节点之间路由数据,就像计算节点在目标排列中物理连接一样,尽管计算节点在该排列中并未物理连接。
例如,维度的每个分段的计算节点可以跨OCS交换机将数据传达到该分段的位于不同的构建块中的其他计算节点,就好像该分段中的计算节点在单个物理分段中物理上连接在一起一样。这与分组交换网络不同,因为工作负载群集的此配置在相应的分段之间提供了真正的端到端光路径,中间没有分组交换或缓冲。在分组交换中,存在增加的延迟,因为分组需要由交换机接收,缓冲并在另一个端口上再次传送。
在计算工作负载完成之后,系统可以释放其他工作负载的构建块,例如,通过将构建块的状态更新为可用状态并且将路由数据更新为不再在工作负载集群的构建块之间路由数据。
图11是示出用于重新配置光网络以替换故障的构建块的示例过程1100的流程图。过程1100的操作可以由包括一个或多个数据处理装置的系统来执行。例如,过程1100的操作可以由图1的处理系统130执行。
系统使工作负载集群的计算节点执行计算工作负载(1110)。例如,系统可以使用图10的过程1000来生成工作负载集群并且使计算节点执行计算工作负载。
系统接收指示工作负载集群的构建块已故障的数据(1120)。例如,如果构建块的一个或多个计算节点发生故障,则另一组件(例如,监视组件)可以确定该构建块已发生故障并将指示该构建块已发生故障的数据发送给系统。
系统识别可用构建块(1130)。例如,系统可以在与工作负载集群的其他构建块相同的超级平台中识别可用的健康构建块。系统可以基于例如由系统维护的构建块的状态数据来识别可用的健康构建块。
系统将已故障的构建块替换为所识别的可用构建块(1140)。系统可以更新连接构造块的光网络的一个或多个OCS交换机的路由数据,以将已故障的构造块替换为所识别的可用构建块。例如,系统可以更新一个或多个OCS交换机的路由表,以移除工作负载集群的其他构建块与已故障的构建块之间的连接。系统还可以更新一个或多个OCS交换机的路由表,以将所识别的构建块连接到工作负载集群的其他构建块。
系统可以在逻辑上将所识别的构建块排列在已故障的构建块点的逻辑点中。如上所述,OCS交换机的路由表可以将连接到构建块的分段的OCS交换机的物理端口映射到连接到另一个构建块的对应分段的OCS交换机的物理端口。在该示例中,系统可以通过将映射更新为所识别的可用构建块而不是已故障的构建块的相应分段来进行替换。
例如,假设用于已故障的构建块的特定x维度分段的输入外部链接连接到OCS交换机的第一端口,并且所识别的可用构建块的对应x维度分段的输入外部链接连接到OCS交换机的第二端口。还假设路由表将OCS交换机的第一端口映射到第三端口,该OCS交换机连接到另一个构建块的相应x维度分段。为了进行替换,系统可以更新路由表的映射以将第二端口映射到第三端口,而不是将第一端口映射到第三端口。系统可以对故障构建块的每个分段执行此操作。
本说明书中描述的主题和操作的实施方式可以在数字电子电路中,或在计算机软件、固件或硬件中实施,包括在本说明书中公开的结构及其等同结构,或者以它们的一种或多种的组合来实施。本说明书中描述的主题的实施例可以被实现为一种或多种计算机程序,即,计算机程序指令的一个或多个模块,其被编码在计算机存储介质上以由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置以通过数据处理装置来执行。计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备或它们中的一个或多个的组合中。此外,尽管计算机存储介质不是传播信号,但是计算机存储介质可以是以人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备)或包括在其中。
本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收到的数据执行的操作。
术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机、片上系统、或以上的多个或组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,例如网络服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译或解释语言、声明性或过程语言)编写,并且可以部署为任何形式,包括作为独立程序或作为模块、组件、子例程、对象或其他适合在计算环境中使用的单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),专用于所讨论程序的单个文件或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)。可以将计算机程序部署为在一台计算机上执行,或者在位于一个站点上或分布在多个站点上并通过通信网络互连的多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。处理和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁,磁光盘或光盘)接收数据或将数据传输到一个或多个大容量存储设备或将数据传输到一个或多个大容量存储设备,或两者。但是,计算机不必具有此类设备。此外,计算机可以嵌入到另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)等。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,可以在具有显示设备的计算机上实现本说明书中描述的主题的实施例,该显示设备例如是CRT(阴极射线管)或LCD(液晶显示)监视器,用于向用户显示信息以及键盘和指点设备(例如鼠标或轨迹球),用户可以通过它们向计算机提供输入。其他种类的设备也可以用于提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户进行交互,例如,通过响应于从网页浏览器接收到的请求,将网页发送到用户客户端设备上的网页浏览器。
本说明书中描述的主题的实施例可以在包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面的客户端计算机或Web浏览器,用户可通过该Web浏览器与本说明书中描述的主题的实现进行交互),或者一种或多种此类后端、中间件或前端组件的任何组合的计算系统中实现。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网络间(例如互联网)和对等网络(例如ad hoc对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过在各自计算机上运行并彼此具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,出于向与客户端设备交互的用户显示数据并从用户接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
尽管本说明书包括许多特定的实施细节,但是这些不应被解释为对任何发明或可要求保护的范围的限制,而是对特定发明的特定实施例的特定特征的描述。在单独的实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此声称,但是在某些情况下可以从组合中切除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的效果。结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或打包成多个软件产品。
因此,已经描述了本主题的特定实施例。其他实施例在所附权利要求的范围内。在某些情况下,可以以不同的顺序执行权利要求中记载的动作,并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。
机译: 用于重新配置多层逻辑网络的设备,用于重新配置多层逻辑网络的方法,用于修改逻辑网络的设备以及可重新配置的多层逻辑网络
机译: 用于配置/重新配置的模块,任意拓扑可重新配置的光网络,网络节点和用于配置/重新配置光网络的方法
机译: 使用对等网络到主机/外围设备适配器在主机/外围计算平台上自动配置外围设备,以实现对等网络连接