CN109844722B - 分解式结构交换计算平台 - Google Patents
分解式结构交换计算平台 Download PDFInfo
- Publication number
- CN109844722B CN109844722B CN201780063313.3A CN201780063313A CN109844722B CN 109844722 B CN109844722 B CN 109844722B CN 201780063313 A CN201780063313 A CN 201780063313A CN 109844722 B CN109844722 B CN 109844722B
- Authority
- CN
- China
- Prior art keywords
- pcie
- compute
- computing
- peripheral component
- fabric
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 claims abstract description 158
- 239000004744 fabric Substances 0.000 claims abstract description 123
- 238000005192 partition Methods 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 40
- 230000002093 peripheral effect Effects 0.000 claims abstract description 38
- 238000007726 management method Methods 0.000 claims description 119
- 238000004891 communication Methods 0.000 claims description 45
- 238000002955 isolation Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 9
- 239000000203 mixture Substances 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 16
- 230000011664 signaling Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000012546 transfer Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 239000002184 metal Substances 0.000 description 7
- 239000007787 solid Substances 0.000 description 7
- 238000000638 solvent extraction Methods 0.000 description 7
- 230000013011 mating Effects 0.000 description 6
- 239000003990 capacitor Substances 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004146 energy storage Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001154 acute effect Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- -1 batteries Substances 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04803—Split screen, i.e. subdividing the display area or the window area into separate subareas
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
Abstract
本文提供了分解式计算架构、平台和***。在一个实施例中,提出了一种操作分解式计算架构的方法。该方法包括:接收用户命令以在多个物理计算部件中建立计算单元,每个所述计算单元包括从中央处理单元(CPU)、图形处理单元(GPU)、存储模块和网络接口模块中选择的、所述多个物理计算部件中的一个或多个。该方法还包括至少基于高速外设部件互连(PCIe)结构内的逻辑分区形成所述计算单元,所述PCIe结构通信地耦合所述多个物理计算部件,其中每个所述计算单元具有通过所述PCIe结构对使用所述PCIe结构内的所述逻辑分区分配给相关联的计算单元的所述多个物理计算部件中的所述一个或多个的可见性。
Description
相关的申请
本申请特此要求于2016年8月12日提交的标题为“DISAGGREGATED MODULARCOMPUTING PLATFORM”的美国临时专利申请62/374,573的权益和优先权,并且还要求于2017年3月7日提交的标题为“FABRIC-SWITCHED GRAPHICS PROCESSING UNIT(GPU)PLATFORM”的美国临时专利申请62/468,231的权益和优先权,这两个专利申请均特此通过引用全部内容被并入本文。
背景技术
计算机***通常包括大容量(bulk)存储***,诸如磁盘驱动器(drive)、光学存储设备、磁带驱动器或固态存储驱动器以及其他存储***。随着这些计算机***中的存储需要增加,已经引入了网络化存储***,所述网络化存储***在与最终用户计算机设备物理上分离的存储环境中存储大量数据。这些网络化存储***通常通过一个或多个网络接口向最终用户或其他外部***提供对大容量数据存储的访问。除了数据存储之外,远程计算***还包括可以向最终用户提供远程计算资源的各种处理***。可以在高密度设施(诸如机架式环境)中包括这些网络化存储***和远程计算***。
然而,随着网络存储***和远程计算***的密度增加,可能达到各种物理极限。这些极限包括基于底层存储技术的密度极限,例如在大的旋转磁介质存储***阵列的实施例中。这些极限还可以包括基于网络互连的各种物理空间要求以及环境气候控制***的大空间要求的计算密度极限。
除了物理空间限制之外,这些大容量存储***传统上受限于每个主机可以包括的设备的数量,这在需要更高容量、冗余度和可靠性的存储环境中可能是有问题的。随着网络、云和企业环境中不断增长的数据存储和检索需求,这些缺点可能尤为突出。
概述
本文提供了分解式计算架构、平台和***。在一个实施例中,提出了一种操作分解式计算架构的方法。该方法包括:接收用户命令以在多个物理计算部件中建立计算单元,每个所述计算单元包括从中央处理单元(CPU)、图形处理单元(GPU)、存储模块和网络接口模块中选择的、所述多个物理计算部件中的一个或多个。该方法还包括至少基于高速外设部件互连(Peripheral Component Interconnect Express,***部件高速互连,PCIe)结构(fabric)内的逻辑分区形成所述计算单元,所述PCIe结构通信地耦合所述多个物理计算部件,其中每个所述计算单元具有通过所述PCIe结构对使用所述PCIe结构内的所述逻辑分区分配给相关联的计算单元的所述多个物理计算部件中的所述一个或多个的可见性。
提供本概述是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。可以理解的是,该概述不旨在识别所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
参考以下附图可以更好地理解本公开内容的许多方面。附图中的部件不一定按比例绘制,而是将重点放在清楚地说明本公开内容的原理上。此外,在附图中,相同的附图标记在所有若干视图中标示相应的零件。虽然结合这些附图描述了若干实施方案,但是本公开内容不限于本文中公开的实施方案。相反,目的是涵盖所有替代方案、改型和等同物。
图1是示出按一种实现方式的计算平台的图。
图2是示出按一种实现方式的计算平台的管理的图。
图3是示出按一种实现方式的管理处理器的框图。
图4示出按一种实现方式的操作计算平台的流程图。
图5是示出按一种实现方式的计算平台的部件的图。
图6是示出按一种实现方式的计算平台的部件的图。
图7示出示例性集群管理实现方式。
图8示出示例性集群管理实现方式。
图9示出示例性集群管理实现方式。
图10示出示例性集群管理实现方式。
图11示出按一种实现方式的集群管理图形用户界面。
图12示出按一种实现方式的集群管理图形用户界面。
图13示出按一种实现方式的集群管理图形用户界面。
图14示出按一种实现方式的集群管理图形用户界面。
具体实施方式
图1是示出计算平台100的***图。计算平台100包括一个或多个管理处理器110和多个物理计算部件。物理计算部件包括CPU即处理模块120、存储元件130、网络元件140、高速外设部件互连(PCIe)交换元件150和图形处理单元(GPU)170。这些物理计算部件通过由PCIe交换元件150和各相应的PCIe链路形成的PCIe结构151通信地耦合。PCIe结构151被配置为通信地耦合多个物理计算部件,并使用PCIe结构内的逻辑分区建立计算单元。这些计算单元在图1中被称为机器160,每个计算单元可由任意数量的CPU即处理模块120、存储单元130、网络接口140模块和GPU 170——包括零个任意模块——组成。
平台100的部件可以被包括在一个或多个物理外壳(enclosure)中,所述物理外壳例如可以进一步被包括在搁架(shelving)或机架(rack)单元中的可架装的单元。平台100的预定数量的部件可以被***或安装到一个物理外壳中,所述物理外壳例如其中可以根据特定最终用户的需要***和移除模块的模块化框架。封装的模块化***,例如平台100,可包括物理支撑结构和外壳,该物理支撑结构和外壳包括电路、印刷电路板、半导体***和结构元件。包括平台100的部件的模块是从架装式外壳可***和移除的。在一些示例中,图1的元件被包括在2U机箱(chassis,机壳)中,用于安装在更大的架装式环境中。应当理解的是,图1的元件可以被包括在任意物理安装环境中,并且不需要包括任何相关联的外壳或架装式元件。
一旦平台100的部件已经***到一个或多个外壳中,这些部件可以通过PCIe结构耦合并且逻辑地被隔离成称为“机器”或计算块的任何数量的单独计算单元。PCIe结构可以由管理处理器110配置,以选择性地在特定处理器模块的部件之间以及与外部***路由通信量,同时保持不被包括在特定处理器模块中的部件之间的逻辑隔离。以这种方式,可以在平台100的部件之间建立灵活的“裸机”配置。各个计算块可以与外部用户或客户机相关联,该外部用户或客户机可以利用计算块的计算、存储、网络或图形处理资源。此外,可以将任意数量的计算块分组为计算块的“集群”,以获得更大的并行性和容量。尽管为清楚起见未在图1中示出,但是还可以包括各种电源模块和相关联的电力和控制分配链路。
现在转到平台100的部件,管理处理器110可以包括一个或多个微处理器和其他处理电路,其从相关联的存储***检索和执行软件,例如用户接口112和管理操作***111。处理器110可以在单个处理设备内实现,但也可以分布在协作执行程序指令的多个处理设备或子***中。处理器110的示例包括通用中央处理单元、专用处理器和逻辑设备,以及任何其他类型的处理设备,其组合或变体。在一些示例中,处理器110包括或微处理器、微处理器、FPGA、ASIC、专用处理器或其他微处理器或处理元件。
在图1中,处理器110提供接口113。接口113包括处理器110和耦合到PCIe结构151的任何部件之间的通信链路。该接口应用通过PCIe链路传输的以太网通信量。另外,图1中的每个处理模块120配置有驱动器141,该驱动器141为通过PCIe链路的以太网通信创造条件。因此,处理模块120和管理处理器110中的任何一个都可以通过以太网进行通信,该以太网通过PCIe结构进行传输。下面讨论通过PCIe配置的这种以太网的进一步论述。
多个处理模块120被包括在平台100中。每个处理模块120包括一个或多个CPU或微处理器以及其他处理电路,其从相关联的存储***检索和执行软件,例如驱动器141和任何数量的最终用户应用程序。每个处理模块120可以在单个处理设备内实现,但也可以分布在协作执行程序指令的多个处理设备或子***上。每个处理模块120的示例包括通用中央处理单元、专用处理器和逻辑设备,以及任何其他类型的处理设备,其组合或变体。在一些示例中,每个处理模块120包括或微处理器、微处理器、图形处理器、计算核心、图形核心、专用集成电路(ASIC)或其他微处理器或处理元件。每个处理模块120也可以与其他计算单元通信,所述其他计算单元例如相同存储组件/外壳中的或通过一个或多个PCIe接口和PCIe结构151在另一个存储组件/外壳中的计算单元。
多个存储单元130被包括在平台100中。每个存储单元130包括一个或多个存储驱动器,例如在一些示例中的固态驱动器。每个存储单元130还包括PCIe接口、控制处理器和电力***元件。每个存储单元130还包括用于通信量统计和状态监视以及其他操作的滑动处理器或控制***。每个存储单元130包括具有PCIe接口的一个或多个固态存储器设备。在又一些示例中,每个存储单元130包括一个或多个单独的固态驱动器(SSD)或磁硬盘驱动器(HDD)以及相关联的外壳和电路。
多个图形处理单元(GPU)170被包括在平台100中。每个GPU包括可以被分配给一个或多个计算单元的图形处理资源。GPU可包括图形处理器、着色器、像素渲染元件、帧缓冲器、纹理映射器、图形核心、图形管道、图形存储器或其他图形处理和处理元件。在一些示例中,每个GPU 170包括图形“卡”,该图形“卡”包括支持GPU芯片的电路。示例GPU卡包括Jetson卡,该Jetson卡包括图形处理元件和计算元件,以及各种支持电路、连接器和其他元件。在另外的示例中,可以采用其他样式的图形处理单元或图形处理组件,例如机器学习处理单元、张量处理单元(TPU)或可以包括类似于GPU的元件但是缺少聚焦处理的渲染部件和针对数据处理的存储器资源的其他专用处理器。
网络接口140包括用于通过TCP/IP(传输控制协议(TCP)/网际协议)网络进行通信或用于承载用户通信量的网络接口卡,所述用户通信量例如用于存储单元130的iSCSI(因特网小型计算机***接口)或NVMe(NVM Express)通信量或用于处理模块120的其他TCP/IP通信量。网络接口140可以包括以太网接口设备,并且可以通过有线、光或无线链路进行通信。通过网络接口140提供的分组网络链路提供对平台100的部件的外部访问。网络接口140通过相关联的PCIe链路和PCIe结构151与平台100的其他部件通信,例如与处理模块120和存储单元130通信。在一些示例中,提供网络接口用于***内网络通信以通过以太网进行通信,以用于在处理模块120中任一和管理处理器110之间交换通信。
每个PCIe交换机150通过相关联的PCIe链路进行通信。在图1的示例中,PCIe交换机150可用于在网络接口140、存储模块130和处理模块120之间承载用户数据。每个PCIe交换机150包括PCIe交叉连接交换机,以用于在由每个PCIe交换机150处理的任意PCIe接口之间建立交换连接。在一些示例中,每个PCIe交换机150包括PLX技术PEX8725 10端口、24通道PCIe交换机芯片。在其他示例中,每个PCIe交换机150包括PLX技术PEX8796 24端口、96通道PCIe交换机芯片。
本文讨论的PCIe交换机可以包括PCIe交叉点交换机,该PCIe交叉点交换机至少基于每个PCIe链路承载的通信量逻辑地互连相关联的PCIe链路中的各个。在这些示例中,可以包括基于域的PCIe信令分发,其允许根据用户定义的组来进行PCIe交换机的PCIe端口的隔离。用户定义的组可以由处理器110管理,处理器110将部件逻辑地集成到特定集群的相关联的计算单元160中,并且在不同集群之间逻辑地隔离部件和计算单元。除了基于域的隔离之外或相对于基于域的隔离作为另外一种选择,每个PCIe交换机端口可以是非透明(NT)或透明端口。NT端口可以允许端点之间的某种逻辑隔离,非常类似于桥,而透明端口不允许逻辑隔离,并且具有在纯交换配置中连接端点的效果。通过一个NT端口或多个端口的访问可以包括PCIe交换机和发起端点之间的额外握手,以选择特定的NT端口或允许通过NT端口的可见性。
有利地,这种基于NT端口的隔离或基于域的隔离可以允许仅物理部件(即,CPU、GPU、存储、网络)具有对经由隔离/分区包括的那些部件的可见性。因此,在PCIe结构之间使用逻辑分区可以实现多个物理部件之间的分组。这种分区本质上是可扩展的,并且在需要时可由管理处理器或其他控制元件动态地改变。管理处理器可以控制包括PCIe结构的PCIe交换机电路,以改变PCIe端口之间的逻辑分区或隔离,并且因此改变物理部件的分组的组成。在本文中称为计算单元的这些分组可以单独地形成“机器”,并且可以进一步分组为许多计算单元/机器的集群。物理部件,例如存储驱动器、处理器或网络接口,可以根据通过用户接口接收的用户指令,动态地响应于加载/空载条件,或者先发地由于预期的需要,以及本文讨论的其他考虑因素,而被添加或从计算单元移除。
PCIe可以支持多个总线宽度,例如x1、x4、x8、x16和x32,其中每重总线宽度包括用于数据传送的附加“通道”。PCIe还支持边带信令例如***管理总线(SMBus)接口和联合测试行动组(JTAG)接口,以及相关联的时钟、电力和引导(bootstrapping,自举)及其他信令的传送。尽管图1中使用了PCIe,但应该理解的是,可以改为使用不同的通信链路或总线,例如NVMe、以太网、串行连接SCSI(SAS)、FibreChannel(光纤信道)、Thunderbolt(雷电接口,雷雳接口)、串行连接ATA Express(SATA Express),以及其他互连、网络和链路接口。图1中的任何链路各自可使用各种通信介质,例如空气、空间、金属、光纤或某种其他信号传播路径,包括其组合。图1中的任何链路都可以包括任意数量的PCIe链路或通道配置。图1中的任何链路各自可以是直接链路,或者可以包括各种装备、中间部件、***和网络。图1中的任何链路各自可以是公共链路、共享链路、聚合链路,或者可以由分立的单独的链路组成。
在图1中,任何处理模块120具有对如由PCIe结构逻辑地隔离的任何/所有存储单元130或GPU 170的可配置的逻辑可见性。任何处理模块120都可以传送数据以便存储在任何存储单元130上和检索存储在任何存储单元130上的数据。因此,“m”个存储驱动器可以与“n”个处理器耦合,以允许具有高度冗余度和高密度的大的可扩展的架构。此外,任何处理模块120可以传送数据以用于由任何GPU 170处理或将对任何GPU的控制移交给另一个处理模块120。
为了提供每个处理模块120对任何存储单元130或GPU 170的可见性,可以采用各种技术。在第一个实施例中,管理处理器110建立包括一个或多个计算单元160的集群。这些计算单元包括一个或多个处理模块120元件、零个或更多个存储单元130、零个或更多个网络接口单元140,以及零个或更多个图形处理单位170。这些计算单元的元件通过PCIe结构151的部分通信地耦合。一旦计算单元160已被分配给特定集群,可以将更多资源分配给该集群,例如存储资源、图形处理资源和网络接口资源,以及其他资源。管理处理器110可以将平台100的存储资源总量的一个子集数量实例化/绑定到特定集群,并供该集群的一个或多个计算单元160使用。例如,跨4个存储单元的16个存储驱动器可以被分配给集群中的一组两个计算单元160。分配给集群的计算单元160然后处理该存储单元子集的事务(transaction),例如读和写事务。
每个计算单元160,特别是计算单元的处理器,可以具有对该集群内的存储单元或图形单元的存储器映射的或基于路由表的可见性,而在被授予逻辑可见性之前,不与集群相关联的其他单元通常是计算单元不可访问的。此外,每个计算单元可能仅管理相关联的集群的存储或图形单元的一个子集。然而,由第二计算单元管理存储操作或图形处理操作可以通过与第一计算单元相关联的网络接口接收。当存储操作或图形处理操作是不由第一计算单元管理(即,由第二计算单元管理)的资源单元所期望的时,第一计算单元使用存储器映射的访问或基于路由表的可见性来经由第二计算单元将该操作引导到该事务的适当资源单元。事务可以被传送和转至管理与该事务的数据相关联的那个资源单元的适当计算单元。对于存储操作,PCIe结构用于在集群的计算单元/处理器之间传送数据,使得特定计算单元/处理器可以将数据存储在由该特定计算单元/处理器管理的存储单元或存储驱动器中,即使该数据可能是通过与不同计算单元/处理器相关联的网络接口接收。对于图形处理操作,PCIe结构用于在集群的计算单元/处理器之间传送图形数据和图形处理命令,使得特定计算单元/处理器可以控制由该特定计算单元/处理器管理的一个或多个GPU,即使该数据可能是通过与不同计算单元/处理器相关联的网络接口接收。因此,虽然集群的每个特定计算单元实际上管理全部资源单元(例如存储单元中的存储驱动器或图形单元中的图形处理器)的一个子集,但是集群的所有计算单元都具有对集群的任何资源单元的可见性,并且可以发起到集群的任何资源单元的事务。通过至少使用存储器映射的地址空间或路由表来建立哪些处理模块处理针对特定存储单元集合的存储操作,管理特定资源单元的管理计算单元可以接收来自发起计算单元的重新传送的事务和任何相关联的数据。
在图形处理示例中,交换PCIe结构中的NT分区或基于域的分区可以由具有NT端口或基于域的特征的PCIe交换机中的一个或多个提供。该分区可以确保GPU可以与期望的计算单元互联,并且确保不止一个GPU,例如不止八(8)个GPU,可以与特定计算单元相关联。此外,动态GPU-计算单元关系可以使用PCIe结构上的分区在运行中(on-the-fly,在传输中)调整。共享网络资源也可以跨计算单元应用于图形处理元件。例如,当第一计算处理器确定第一计算处理器没有物理地管理与接收的图形操作相关联的图形单元时,则第一计算处理器通过PCIe结构将该图形操作传送到的确管理该图形单元的该集群的另一计算处理器。
在另外的示例中,可以在各个CPU/GPU对之间形成存储器映射的直接存储器存取(DMA)管道。除了其他配置之外,该存储器映射可以在PCIe结构地址空间上进行。为了在包括许多CPU和GPU的共享PCIe结构上提供这些DMA管道,可以使用本文描述的逻辑分区。具体而言,PCIe交换机上的NT端口或基于域的分区可以隔离相关联的CPU/GPU之间的各个DMA管道。
在存储操作例如写操作中,数据可以由特定集群的特定处理器通过该集群的网络接口140接收。负载平衡或其他因素可以允许该集群的任何网络接口接收针对该集群的任何处理器以及用于该集群的任何存储单元的存储操作。例如,写操作可以是通过第一集群的第一网络接口140从采用iSCSI协议或NVMe协议的最终用户接收的写操作。该集群的第一处理器可以接收该写操作,并且确定第一处理器是否管理与该写操作相关联的一个或多个存储驱动器,并且如果第一处理器管理与该写操作相关联的一个或多个存储驱动器,则第一处理器通过PCIe结构传送数据以便存储在存储单元的相关联的存储驱动器上。PCIe结构的各个PCIe交换机150可以被配置为在集群的各存储、处理器和网络元件之间路由与集群相关联的PCIe通信量,例如使用基于域的路由或NT端口。如果第一处理器确定第一处理器不物理地管理与该写操作相关联的一个或多个存储驱动器,则第一处理器通过PCIe结构将该写操作传送到集群的的确管理该一个或多个存储驱动器的另一个处理器。任何处理器都可以采用数据条带化(data striping,数据带区化,数据分段处理)来在任何数量的存储驱动器或存储单元上(例如在集群的存储单元中的一个或多个上)对特定写入事务的数据进行条带化。
在该示例中,与平台100相关联的PCIe结构151具有64位地址空间,其允许264字节的可寻址空间,导致至少16艾字节(exbibyte)的字节可寻址存储器。64位PCIe地址空间可以由所有计算单元共享,或者在形成集群的各计算单元之间进行分离,以实现到资源单元的适当的存储器映射。PCIe结构的各个PCIe交换机150可以被配置为在特定集群的各存储、计算、图形处理和网络元件之间分离和路由与该集群相关联的PCIe通信量。这种分离和路由可以是使用基于域的路由或NT端口来建立以在PCIe结构的各PCIe交换机之间建立交叉点连接。还可以建立冗余和故障转移(failover)路径,使得当PCIe交换机中的一个或多个出现故障或变得无响应时,仍可以在该集群的元件之间路由该集群的通信量。在一些示例中,网状配置由PCIe结构的PCIe交换机形成,以确保PCIe通信量的冗余路由。
管理处理器110通过一个或多个接口控制PCIe交换机150和PCIe结构151的操作,所述接口可以包括通信地耦合PCIe结构的每个PCIe交换机的集成电路总线(inter-integrated circuit,I2C,内置集成电路)接口。管理处理器110可以使用PCIe交换机150在PCIe地址空间之间建立基于NT或基于域的隔离。每个PCIe交换机可以被配置为隔离PCIe地址空间的部分以建立集群特定的分区。管理处理器110可以改变每个PCIe交换机的各种配置设置,以建立域和集群分离。在一些示例中,管理处理器110可以包括PCIe接口,并且通过在PCIe协议信令内传输的边带接口或PCIe接口来通信/配置PCIe交换机。
管理操作***(OS)111由管理处理器110执行,并为平台100的资源的管理创造条件。管理包括创建、改变和监视一个或多个包括一个或多个计算单元的集群。管理OS 111为管理处理器110提供本文描述的功能和操作。
管理处理器110还包括用户接口112,用户接口112可以向一个或多个用户呈现图形用户界面(GUI)170。最终用户或管理员可以使用用户接口112和GUI 170来建立集群,将资产(计算单元/机器)分配给每个集群。在图1中,GUI 170允许最终用户创建和管理集群以及将一个或多个机器/计算单元分配给集群。GUI 170例如在一个或多个状态界面或状态视图中,向最终用户提供***100的操作的遥测信息。可以通过GUI 170监视***100的各部件或元件的状态,例如处理器/CPU状态、网络状态、存储单元状态、PCIe元件状态等。图11-14中示出了示例GUI布局。用户接口112可以提供除GUI 170之外的其他用户界面,例如命令行界面、应用程序编程界面(API)或其他界面。在一些示例中,GUI 170通过基于网络接口(websocket)的接口提供。
可以在***中包括不止一个管理处理器,例如当每个管理处理器可以管理预定数量的集群或计算单元的资源时。用户命令,例如通过GUI接收的用户命令,可以被接收到***的任意管理处理器中,并由接收管理处理器发送到处理管理处理器。每个管理处理器可以具有唯一的或预先分配的标识符,该标识符可以帮助将用户命令递送给适当的管理处理器。另外,管理处理器可以彼此通信,例如使用信箱进程(mailbox process)或其他数据交换技术。此通信可以通过专用边带接口(例如I2C接口)进行,或可以通过耦合每个管理处理器的PCIe或以太网接口进行。
管理OS 111还包括仿真网络接口113。仿真网络接口113包括用于通过一个或多个PCIe接口传输网络通信量的传输机制。仿真网络接口113可以对管理处理器110模拟网络设备例如以太网设备,使得管理处理器110可以通过PCIe接口与任何处理模块120交互/接口连接,就像处理器在通过网络接口进行通信一样。仿真网络接口113可以包括内核级(kernel-level)元件或模块,该内核级元件或模块允许管理OS 111使用以太网式命令和驱动器进行接口连接。仿真网络接口113允许应用程序或OS级进程与模拟网络设备进行通信,而不会产生相关联的延迟和与网络堆栈相关联的处理开销。仿真网络接口113包括软件部件,例如驱动程序、模块、内核级模块或对由处理器设备执行的应用级和***级软件表现为网络设备的其他软件部件。
在本文的示例中,网络接口113有利地不需要网络堆栈处理来传送通信。反而,仿真网络接口113通过PCIe接口或PCIe结构将通信作为相关联的通信量传送到另一个仿真网络设备。仿真网络接口113不采用网络堆栈处理,但仍然对相关联的处理器的操作***表现为网络设备,使得相关联的处理器的用户软件或操作***元件可以与网络接口113交互,并且使用现有的面向网络的通信方法通过PCIe结构进行通信,所述通信方法例如以太网通信。
仿真网络接口113将PCIe通信量转换为网络设备通信量,反之亦然。通过网络堆栈传送到网络设备的处理通信被省略,其中对于所提出的网络设备/接口类型通常会应用网络堆栈。例如,网络设备可以对操作***或应用程序呈现为以太网设备。从操作***或应用程序接收的通信将由网络设备传送到一个或多个目的地。然而,仿真网络接口113不包括用于处理从应用层向下到链路层的向下通信的网络堆栈。反而,仿真网络接口113自从操作***或应用程序接收的通信中提取有效载荷数据和目的地,并且将有效载荷数据和目的地转换成PCIe通信量,例如通过使用与目的地相关联的寻址将有效载荷数据封装成PCIe帧。
管理驱动器141被包括在每个处理模块120上。管理驱动器141可以包括仿真网络接口,例如针对仿真网络接口113所讨论的。另外,管理驱动器141监视相关联的处理模块120和由CPU即处理模块120执行的软件的操作,并且向管理处理器110提供该操作的遥测数据。因此,可以由CPU即处理模块120执行任何用户提供的软件,例如用户提供的操作***(Windows、Linux、MacOS、Android、iOS等……)或用户应用软件和驱动程序。管理驱动器141提供允许每个处理模块120参与相关联的计算单元和/或集群的功能,以及向相关联的管理处理器提供遥测数据。每个处理模块120还可以通过仿真网络设备彼此通信,该仿真网络设备通过PCIe结构传输网络通信量。驱动器141还为用户软件和操作***提供API,以与驱动器141进行交互以及与管理处理器110交换控制/遥测信令。
图2是包括关于来自图1的元件的进一步细节的***图。***200包括处理模块120以及管理处理器110的实现方式的详细视图。
在图2中,处理模块120可以是集群的任何计算单元或机器中的示例性处理器。详细视图201示出了处理模块120的若干层。第一层121是处理器处理模块120的硬件层或“金属”机器基础结构。第二层122提供OS以及管理驱动器141和API 125。最后,第三层124提供用户级应用程序。视图201显示用户应用程序可以访问集群的存储、处理(CPU或GPU)和通信资源,例如当用户应用程序包括集群存储***或集群处理***时。
如上所述,驱动器141提供仿真网络设备,用于通过PCIe结构与管理处理器110(或其他处理器元件)通信。这在图2中显示为通过PCIe传输的以太网通信量。然而,在驱动器141中不使用网络堆栈来通过PCIe传输通信量。反而,驱动器141对操作***表现为网络或对每个处理模块120表现为内核。用户级服务/应用/软件可以与仿真网络设备交互而无需相对于普通或物理网络设备的修改。然而,与仿真网络设备相关联的通信量通过PCIe链路或PCIe结构传输,如所示。API 113可以提供标准化接口用于管理通信量,例如用于控制指令、控制响应、遥测数据、状态信息或其他数据。
图3是示出管理处理器300的框图。管理处理器300示出了本文所讨论的任意管理处理器的示例,例如图1的处理器110的示例。管理处理器300包括通信接口302、用户接口303和处理***310。处理***310包括处理电路311、随机存取存储器(RAM)312和存储装置313,但是可以包括另外的元件。
处理电路311可以在单个处理设备内实现,但也可以分布在协作执行程序指令的多个处理设备或子***上。处理电路311的示例包括通用中央处理单元、微处理器、专用处理器和逻辑设备,以及任何其他类型的处理设备。在一些示例中,处理电路311包括物理分布式处理设备,例如云计算***。
通信接口302包括通过通信链路、网络(例如分组网络、因特网等)进行通信的一个或多个通信和网络接口。通信接口可以包括PCIe接口、以太网接口、串行接口、串行外设接口(SPI)链路、集成电路总线(I2C)接口、通用串行总线(USB)接口、UART接口、无线接口或可以通过以太网或因特网协议(IP)链路进行通信的一个或多个局域或广域网通信接口。通信接口302可以包括被配置为使用一个或多个网络地址进行通信的网络接口,该一个或多个网络地址可以与不同的网络链路相关联。通信接口302的示例包括网络接口卡装备、收发器、调制解调器和其他通信电路。
用户接口303可以包括触摸屏、键盘、鼠标、语音输入设备、音频输入设备或用于接收来自用户的输入的其他触摸输入设备。输出设备,例如显示器、扬声器、web接口、终端接口和其他类型的输出设备,也可以被包括在用户接口303中。用户接口303可以通过网络接口例如通信接口302提供输出和接收输入。在网络示例中,用户接口303可以通过经由一个或多个网络接口耦合的显示***或计算***来打包显示或图形数据以供远程显示。用户接口303的物理或逻辑元件可以向用户或其他操作员提供警报或视觉输出。用户接口303还可以包括可由处理***310执行的相关联的用户接口软件,以支持上面讨论的各种用户输入和输出设备。用户接口软件和用户接口设备单独地或彼此相结合以及与其他硬件和软件元件相结合,可以支持图形用户界面、自然用户界面或任何其他类型的用户界面。
RAM 312和存储装置313一起可以包括非暂时性数据存储***,尽管变化是可能的。RAM 312和存储装置313每个可以包括可由处理电路311读取并且能够存储软件的任何存储介质。RAM 312可以包括以任何方法或技术实现的易失性和非易失性、移动式和非移动式介质,用于存储信息,所述信息例如计算机可读指令、数据结构、程序模块或其他数据。存储装置313可包括非易失性存储介质,例如固态存储介质、闪存、相变存储器或磁存储器,包括其组合。RAM 312和存储装置313各自可以实现为单个存储设备,但也可以跨多个存储设备或子***实现。RAM 312和存储装置313各自可以包括能够与处理电路311通信的附加元件,例如控制器。
存储在RAM 312或存储装置313上或中的软件可包括计算机程序指令、固件或某种其他形式的机器可读处理指令,其具有在被执行时处理***指示处理器300如本文所述地操作的进程。例如,软件320可以驱动处理器300接收用户命令,以在包括处理模块、存储模块和网络模块的多个物理计算部件之中建立包括计算块的集群。软件320可以驱动处理器300接收和监视遥测数据、统计信息、操作数据和其他数据,以向用户提供遥测数据和根据遥测数据或其他数据改变集群的操作。软件320可以驱动处理器300来管理集群和计算/图形单元资源,在PCIe结构元件之中建立域分区或NT分区,以及与各个PCIe交换机接口连接,以及进行其他操作。该软件还可以包括用户软件应用程序、应用程序编程接口(API)或用户接口。该软件可以实现为单个应用程序或多个应用程序。通常,软件在被加载到处理***中并被执行时,软件可以将处理***从通用设备转换成如本文所述定制的专用设备。
***软件320示出了RAM 312的示例配置的详细视图。应该理解的是,不同的配置是可能的。***软件320包括应用程序321和操作***(OS)322。软件应用程序323-326各自包括可执行指令,所述可执行指令可由处理器300执行以根据本文所讨论的操作来操作集群控制器或其他电路。
具体地,集群管理应用程序323在计算平台的各硬件元件之中建立和维护集群和计算单元,如在图1中所见。用户接口应用程序324为最终用户提供一个或多个图形或其他用户接口以管理相关联的集群和计算单元以及监视集群和计算单元的操作。模块间通信应用程序325在其他处理器300元件之间提供通信,例如通过I2C、以太网、仿真网络设备或PCIe接口。用户CPU接口327提供通信、API和仿真网络设备,用于与计算单元的处理器及其专用驱动器元件进行通信。PCIe结构接口328在PCIe交换元件之中建立各种逻辑分区或域,控制PCIe交换元件的操作,以及从PCIe交换元件接收遥测数据。
软件320可以在处理器300的执行和操作期间驻留在RAM 312中,并且可以在断电状态期间驻留在存储***313中,以及其他位置和状态。如针对计算机操作***和应用程序所描述的,在启动或引导(boot)过程期间软件320可以被加载到RAM 312中。软件320可以通过用户接口303接收用户输入。该用户输入可以包括用户命令以及其他输入,包括其组合。
存储***313可以包括闪存例如NAND闪存或NOR闪存、相变存储器、磁存储器,以及其他固态存储技术。如图3中所示,存储***313包括软件320。如上所述,在处理器300的断电状态期间,软件320连同其他操作软件一起可以处于用于应用程序和OS的非易失性存储空间中。
处理器300通常意在表示用以部署和执行至少软件320以渲染或以其他方式实施本文中描述的操作的计算***。然而,处理器300也可以表示任何如下的计算***:在该计算***上至少软件320可以被分级,并且软件320可以从该计算***被分发、被输送、被下载或以其他方式被提供给又一个计算***以用于部署和执行或又另外的分发。
图4包括示出本文所讨论的任何***的操作示例的流程图,所述操作示例例如图1的平台100、图2的***200或图3的处理器300的操作示例。在图4中,将在图1和图2的元件的上下文中讨论操作,尽管该操作也可以应用于图3中的元件。
管理处理器110向集群管理服务呈现(401)用户接口。该用户接口可以包括GUI170或其他用户接口。用户接口允许用户创建集群(402)并且向其分配资源。根据已经分配了哪些资源可以图形化地表示集群,并且集群可以具有由用户指定的或由***预先确定的相关联的名称或标识符。然后,用户可以建立计算块(403)并将这些计算块分配给集群。计算块可以具有资源元件/单元,例如处理元件、图形处理元件、存储元件和网络接口元件,以及其他元件。
一旦用户指定了这些各个集群和集群内的计算块,则管理处理器110可以实施(404)指令。该实施可以包括将资源分配给由处理器110维护的分配表或数据结构内的特定集群和计算单元。该实施还可以包括配置PCIe结构的PCIe交换元件以将资源逻辑地划分为PCIe结构的路由域。该实施还可以包括初始化处理器、存储驱动器、GPU、存储器设备和网络元件,以使这些元件进入操作状态并且将这些元件与特定的集群或计算单元相关联。此外,初始化可以包括将用户软件部署到处理器,为网络接口配置以相关联的地址和网络参数,以及在各存储元件之中建立分区或逻辑单元(LUN)。一旦已经将这些资源分配给集群/计算单元并将其初始化,然后可以使它们是用户可用的以执行用户操作***、用户应用程序和用于用户存储过程以及其他用户目的。
图4中进一步示出了连续的操作,例如用于用户监视或修改现有集群或计算单元的操作。在用户可以监视和修改元件以及这些元件可以被重新分配、聚合到集群中或者从集群分解的地方,可以进行迭代过程。
在操作411中,根据用户指定的配置,例如图4中所讨论的那些,来操作集群。操作可以包括执行用户操作***、用户应用程序、用户存储过程、图形操作以及其他用户操作。在操作期间,处理器110从各集群元件接收(412)遥测数据,所述各集群元件例如PCIe交换元件、处理元件、存储元件、网络接口元件和其他元件,包括由计算元件执行的用户软件。遥测数据可以通过用户接口被向用户提供(413),存储在一个或多个数据结构中,以及用于提示进一步的用户指令(操作402)或修改集群的操作。
本文讨论的***和操作为计算资源、图形处理资源、网络资源或存储资源向计算集群的动态分配创造条件。计算单元在由***的用户分配之前,从任何特定的集群或计算单元分解。管理处理器可以控制集群的操作,并且向由管理处理器执行的软件提供的集群管理服务提供用户接口。集群包括至少一个“机器”或计算单元,而计算单元包括至少处理器元件。计算单元还可以包括网络接口元件、图形处理元件和存储元件,但这些元件不是计算单元所要求的。
处理资源和其他元件(图形处理、网络、存储)可以在运行中被调入和调出计算单元和相关联的集群,并且可以将这些资源分配给其他计算单元或集群。在一个示例中,图形处理资源可以由第一计算资源/CPU调度/编排,并且随后向另一计算单元/CPU提供图形处理状态/结果。在另一示例中,当资源经历故障、挂起、过载状况时,则可以将额外的资源引入计算单元和集群以补充资源。
处理资源可以具有分配给其的唯一标识符,以用于由管理处理器识别和用于在PCIe结构上识别。当将处理资源添加到计算单元之后初始化处理资源时,根据需要可以将用户提供的软件(例如操作***和应用程序)部署到处理资源,并且当从计算单元移除处理资源时,可以从该资源移除该用户提供的软件。可以从存储***部署用户软件,管理处理器可以访问该存储***以进行该部署。存储资源,例如存储驱动器、存储设备和其他存储资源,可以在计算单元/集群之间进行分配和细分。这些存储资源可以跨不同的或类似的存储驱动器或设备,并且可以具有任意数量的逻辑单元(LUN)、逻辑目标、分区或其他逻辑排列。这些逻辑排列可以包括一个或多个LUN、iSCSI LUN、NVMe目标或其他逻辑分区。可以采用存储资源的阵列,例如镜像、条带化、独立磁盘冗余阵列(RAID)阵列,或者可以采用跨存储资源的其他阵列配置。网络资源,例如网络接口卡,可以使用桥接或跨越技术在集群的计算单元之间共享。通过PCIe结构和PCIe交换机使用NT分区或基于域的分区,可以在集群的不止一个计算单元之间共享图形资源,例如GPU。
图5是示出计算平台500的资源元件的框图,计算平台500例如计算平台110。资源元件通过由结构模块520提供的PCIe结构耦合。PCIe结构链路501-507各自提供包括计算平台500的外壳内部的PCIe链路。集群PCIe结构链路508包括用于互连包括集群的各个外壳的外部PCIe链路。
通常提供资源单元510、530、540和550的多个实例,并且这多个实例可以通过由结构模块520建立的PCIe结构逻辑地耦合。不止一个结构模块520可以被包括以实现PCIe结构,部分取决于资源单元510、530、540和550的数量。
图5的模块各自包括一个或多个PCIe交换机(511,521,531,541,551)、具有相关联的保持电路(513,523,533,543,553)的一个或多个功率控制模块(512,522,532,542,552)、电力链路(518,528,538,548,558)和内部PCIe链路(517,527,537,547,557)。应当理解的是,变化是可能的,并且可以省略每个模块的部件中的一个或多个。
结构模块520提供包括PCIe链路501-508的高速外设部件互连(PCIe)结构的至少一部分。PCIe链路508为计算/存储集群的设备提供外部互连,例如以互连各计算/存储架装式模块。PCIe链路501-507提供内部PCIe通信链路并且互连一个或多个PCIe交换机521。结构模块520还经由网络交换机525提供一个或多个以太网网络链路526。也可以在结构模块520中采用各种边带或辅助链路527,例如***管理总线(SMBus)链路、联合测试行动组(JTAG)链路、集成电路总线(I2C)链路、串行外设接口(SPI)、控制器局域网(CAN)接口、通用异步收发器(UART)接口、通用串行总线(USB)接口或任何其他通信接口。可以包括为清楚起见而未在图5中示出的另外的通信链路。
链路501-508中的每个可以包括各种宽度或通道的PCIe信令。PCIe可以支持多个总线宽度,例如x1、x4、x8、x16和x32,其中每重总线宽度包括用于数据传送的附加“通道”。PCIe还支持边带信令例如SMBus和JTAG,以及相关联的时钟、电力和引导及其他信令的传送。例如,链路501-508中的每一个可以包括具有四个通道的PCIe链路即“x4”PCIe链路、具有八个通道的PCIe链路即“x8”PCIe链路或具有16个通道的PCIe链路即“x16”PCIe链路,以及其他通道宽度。
功率控制模块(512,522,532,542,552)可以被包括在每个模块中。功率控制模块通过相关联的输入电力链路(519,529,539,549,559)接收源输入电力,并转换/调节输入电力以供相关联的模块的元件使用。功率控制模块通过相关联的电力链路将电力分配给相关联的模块的每个元件。功率控制模块包括选择性地和单独地向相关联的模块的任意元件提供电力的电路。电源控制模块可以通过相关联的PCIe链路或边带链路(为清楚起见未在图5中示出)接收来自可选控制处理器的控制指令。在一些示例中,功率控制模块的操作由针对控制处理器524讨论的处理元件提供。功率控制模块可包括各种电源电子器件,例如功率调节器、升压转换器、降压转换器、降压-升压转换器、功率因数校正电路,以及其他功率电子器件。各种磁、固态和其他电子部件通常根据特定应用的最大功率消耗来定尺寸,并且这些部件被附加于相关联的电路板。
保持电路(513,523,533,543,553)包括能量存储设备,用于存储通过电力链路接收的电力以用于在电力中断事件(例如输入电力丧失)期间使用。保持电路可以包括电容存储设备,例如电容器阵列,以及其他能量存储设备。过量的或剩余的保持电力可以被保持以供将来使用、被泄放到虚负载中,或通过PCIe电力链路或其他电力链路重新分配给其他设备。
每个PCIe交换机(511,521,531,541,551)包括一个或多个PCIe交叉点交换机,所述PCIe交叉点交换机至少基于由相关联的PCIe链路承载的通信量逻辑地互连相关联的PCIe链路中的各个PCIe链路。每个PCIe交换机在由每个PCIe交换机处理的任意PCIe接口之间建立交换连接。在一些示例中,PCIe交换机中的PCIe交换机包括PLX技术PEX8796 24端口、96通道PCIe交换机芯片或PLX技术PEX8725 10端口、24通道PCIe交换机芯片。在一些示例中,经由一个或多个PCIe交换机建立冗余度,例如在PCIe交换机中具有主和辅/备用PCIe交换机。从主PCIe交换机到辅/备用PCIe交换机的故障转移可以由至少控制处理器524处理。在一些示例中,可以使用到不同PCIe交换机的冗余PCIe链路在该不同PCIe交换机中提供主和辅功能。在其他示例中,可以使用到同一PCIe交换机的冗余链路在同一PCIe交换机中提供主和辅功能。
PCIe交换机521各自包括集群互连接口508,集群互连接口508用于互连在另外的外壳中的存储***的另外的模块。集群互连通过相关联的外部连接器和外部布线在外部***(例如其他存储***)之间提供PCIe互连。这些连接可以是由所包括的PCIe交换机以及未示出的其他PCIe交换机中的任一提供的PCIe链路,用于经由PCIe链路互连存储***的其他模块。用于集群互连的PCIe链路可以在外部连接器处终止,所述外部连接器例如微型串行连接SCSI(SAS)连接器或四元小形状因数可插拔(Quad Small Form Factor Pluggable,QSFFP)或QSFP/QSFP+插孔,其用于通过相关联的布线——例如微型SAS或QSFFP布线——承载PCIe信令。在另外的示例中,采用MiniSAS HD电缆,与6Gb/s的标准SAS电缆相对,MiniSASHD电缆驱动12Gb/s。12Gb/s可以支持至少PCIe第3代。
PCIe链路501-508还可以承载由主机处理器或主机***发出的NVMe(NVMExpress)通信量。NVMe(NVM Express)是用于大容量存储设备的接口标准,所述大容量存储设备例如硬盘驱动器和固态存储设备。NVMe可以取代串行ATA(SATA)接口,用于与个人计算机和服务器环境中的大容量存储设备接口连接。然而,这些NVMe接口限于一对一的主机驱动器关系,类似于SATA设备。在本文讨论的示例中,PCIe接口可以用于传输NVMe通信量,并且将包括许多存储驱动器的多驱动器***在PCIe接口上呈现为一个或多个NVMe虚拟逻辑单元号(VLUN)。
图5的每个资源单元还包括相关联的资源元件。存储模块510包括一个或多个存储驱动器514。处理器模块530包括一个或多个中央处理单元(CPU)534、存储***535和软件536。图形模块540包括一个或多个图形处理单元(GPU)544。网络模块550包括一个或多个网络接口卡(NIC)554。应该理解的是,每个资源单元中可以包括其他元件,包括存储器设备、辅助处理设备、支持电路、电路板、连接器、模块外壳/机箱和其他元件。
图6是示出存储***600的框图。图6是示出先前图的与中平面(midplane,中板)有关的各模块的框图。图6的元件被示出为物理地配合到中平面组件。中平面组件640包括电路板元件和多个物理连接器,用于与任何相关联的***器组件615、存储子外壳610、结构模块520、处理器模块530、图形模块540、网络模块550或电源模块650配合。中平面640包括一个或多个印刷电路板、连接器、物理支撑构件、机箱元件、结构元件和相关联的链路,作为金属迹线或光学链路用于互连图6的各元件。中平面640可以用作底板,但不是如在单端底板示例中那样使滑板(sled)或模块配合在仅一侧上,中平面640具有在至少两侧即前面和后面上配合的滑板或模块。图6的元件可以对应于本文中的附图的类似元件,例如计算平台100,尽管变化是可能的。
图6示出了被包括在1U外壳601中的许多元件。外壳可以改为具有标准化计算机机架高度的任何倍数,例如1U、2U、3U、4U、5U、6U、7U等,并且可以包括相关联的机箱、物理支撑件、冷却***、安装特征、壳体(case)和其他的外壳元件。通常,每个滑板或模块将装配到被包括在外壳601的机箱部分中的相关联的槽(slot)或切口(groove)特征部中,以滑入预定的槽并引导与每个滑板相关联的一个或多个连接器与中平面640上的一个或多个相关联的连接器配合。***600使得能够实现任何模块或滑板的热插拔(hot-swapping),并且可以包括其他特征,例如电源灯、活动指示器、外部管理接口等。
存储滑板510各自具有相关联的连接器616,该连接器616配合到相关联的***器组件615的配合连接器中。每个***器组件615具有相关联的连接器681,该连接器681与中平面640上的一个或多个连接器配合。在该示例中,最多达八个存储滑板510可以***单个***器组件615中,该***器组件615随后配合到中平面640上的多个连接器。这些连接器可以为由处理器模块530和连接器683使用的共用或共享样式(style)/类型(type)。另外,每批存储滑板510和***器组件615可以被包括在子组件或子外壳610中,该子组件或子外壳610可以模块化方式***中平面640中。处理器模块530各自具有相关联的连接器683,该连接器683可以是与***器组件615类似类型的连接器。在一些示例中,例如在上面的示例中,处理器模块530各自***中平面640上的不止一个配合连接器。
结构模块520经由连接器682耦合到中平面640,并且通过集群互连链路693提供对***600的存储和处理部件的集群范围访问。结构模块520通过控制面链路692提供其他1U***的控制器模块之间的控制面访问。在操作中,结构模块520各自经由链路682和中平面640通过PCIe网与处理器模块530、图形模块540和存储模块510通信地耦合,如图6中所示。
图形模块540包括一个或多个图形处理单元(GPU)以及任何相关联的支持电路、存储器元件和通用处理元件。图形模块540经由连接器684耦合到中平面640。
网络模块550包括一个或多个网络接口卡(NIC)元件,该网络接口卡元件可以进一步包括收发器、变压器、隔离电路、缓冲器等。网络模块550可以包括吉比特以太网接口电路,其可以承载以太网流量以及任何相关联的因特网协议(IP)和传输控制协议(TCP)通信量,以及其他网络通信格式和协议。网络模块550经由连接器685耦合到中平面640。
集群互连链路693可以包括PCIe链路或其他链路和连接器。用于外部互连的PCIe链路可以终止于外部连接器,例如微型SAS或微型SAS HD插孔或连接器——其用于通过微型SAS布线承载PCIe信令。在另外的示例中,采用微型SAS HD电缆,与6Gb/s的标准SAS电缆相对,微型SAS HD电缆驱动12Gb/s。12Gb/s可以支持PCIe第三代。四元(4通道)小形状因数可插拔(QSFP或QSFP+)连接器或插孔也可用于承载PCIe信令。
控制面链路692可以包括用于承载控制面通信的以太网链路。相关联的以太网插孔可以支持10吉比特以太网(10GbE)以及其他吞吐量。另外的外部接口可包括PCIe连接、FiberChannel连接、管理控制台连接、边带接口例如USB、RS-232、视频接口例如视频图形阵列(VGA)、高密度媒体接口(HDMI)、数字视频接口(DVI),以及其他,例如键盘/鼠标连接。
外部链路695可以包括网络链路,该网络链路可以包括以太网、TCP/IP、Infiniband(无限带宽)、iSCSI或其他外部接口。外部链路695可以包括用于与外部***通信的链路,所述外部***例如主机***、管理***、最终用户设备、因特网***、分组网络、服务器或包括类似于***600的其他外壳的其他计算***。外部链路695可以包括承载至少40GbE信令的四元小形状因数可插拔(QSFFP)或四元(4通道)小形状因数可插拔(QSFP或QSFP+)插孔。
在一些示例中,***600包括壳体或外壳元件、机箱和中平面组件,其可以适应滑板和相关联的电路卡的灵活配置和布置。尽管图6示出了在中平面组件640的第一侧上的存储滑板配合和控制器模块以及在中平面组件640的第二侧上配合的各种模块,但是应当理解的是,其他配置是可能的。
***600可以包括机箱以适应各种配置,前装载配置或后装载配置。这些配置可以包括每个包含多个SSD的存储模块;包含HHHL卡(半高半长PCIe卡)或FHHL卡(全高半长PCIe卡)的模块,其可包括图形卡或图形处理单元(GPU)、PCIe存储卡、PCIe网络适配器或主机总线适配器;具有包括控制器模块的PCIe卡(全高全长PCIe卡)的模块,其可包括Tesla、Jetson或Phi处理器卡;包含2.5英寸PCIe SSD的模块;交叉连接模块;***器模块;和控制元件,以及其他模块和配置。
另外,***600的各滑板的功率和相关联的功率控制信令由一个或多个电源模块650通过相关联的链路681提供,该相关联的链路681可包括一个或多个不同电压电平的链路,所述不同电压电平例如+12VDC或+5VDC等。尽管在图6中电源模块650被示出为被包括在***600中,但是应该理解的是,电源模块650可以替代地被包括在单独的外壳中,例如被包括在单独的1U外壳中。每个电源节点650还包括用于从电源——例如AC或DC输入电力——接收电力的电力链路690。
另外,电力保持电路可以被包括在保持模块651中,该保持模块651可以响应于链路690中的电力丧失或者来自电源模块650的故障而通过链路680递送保持电力。电力保持电路也可以被包括在每个滑板或模块中。该电力保持电路可用于在电力中断期间——例如当从电源丧失主输入或***电力时,向相关联的滑板或模块提供临时电力。另外,在使用保持电力期间,根据使用统计以及其他考虑因素,可以采用每个滑板或模块的处理部分来选择性地使每个滑板的部分断电。该保持电路可以在电力中断或电力丧失事件期间提供足够的电力以提交正在处理的(in-flight,飞行中)写入数据。这些电力中断和电力丧失事件可以包括来自电源的电力丧失,或者可以包括从中平面640上的相关联的插座或连接器移除滑板或模块。该保持电路可以包括电容器阵列、超级电容器(super-capacitor)、超级电容器(ultra-capacitor)、电池、燃料电池、飞轮或其他储能部件,以及任何相关联的功率控制、转换、调节和监控电路。
图7-10包括关于分解式计算架构的进一步细节,例如本文在图1中针对计算平台100所讨论的。图7-10详述了示例配置和操作分解式计算架构的方法。这些示例包括在集群环境中操作计算单元。可以使用一个或多个计算单元来形成集群,每个计算单元包括通过高速外设部件互连(PCIe)结构通信地耦合的多个物理计算部件。
物理计算部件包括至少中央处理单元(CPU)、存储模块、图形处理模块(GPU)和网络接口模块。这些物理计算部件全都通过PCIe结构通信地耦合。PCIe结构可以使用PCIe结构内的逻辑分区将计算单元彼此隔离或在集群环境中将集群内的计算单元隔离。此外,响应于计算单元的形成,管理处理器可以将软件部件部署到每个计算单元内的至少相关联的CPU。各种监视功能可以被包括在部署的软件部件中,并且可以向管理处理器报告与计算单元的操作有关的遥测数据。
在一些示例中,包括软件部件的网络驱动器功能,该网络驱动器功能对计算单元的相关联的CPU的操作***模拟网络接口(例如以太网接口)的操作,用于通过PCIe结构将包括至少遥测数据的通信传送到管理处理器。网络驱动器功能可以包括如下功能:该功能用于通过PCIe结构传送通信以便递送到管理处理器而无需通过网络堆栈处理该通信。
至少基于PCIe结构的逻辑分区,计算单元具有通过PCIe结构对分配给PCIe结构内的每个计算单元的多个物理计算部件的仅一个子集的可见性。每个特定计算单元缺乏通过PCIe结构对通过PCIe结构通信地耦合并且未被分配给该特定计算单元的其他物理计算部件的可见性。然而,逻辑分区也可以被配置为形成计算单元的集群,其中集群的计算单元通过PCIe结构可以具有对该集群的其他计算单元的可见性,但是被分隔为不具有对不属于该集群的计算单元的可见性。通常,管理处理器被配置为至少通过在包括PCIe结构的PCIe交换机的端口之间形成基于域的PCIe隔离来指示PCIe结构在PCIe结构内建立逻辑分区。然而,管理处理器可以被配置为至少通过在包括PCIe结构的PCIe交换机的端口之间形成基于非透明(NT)端口的PCIe隔离来指示PCIe结构在PCIe结构内建立逻辑分区。
还可以实现对计算单元和计算集群的组成的动态改变。这些动态改变可以响应于用户指令、从用户接收的图形用户接口指示,或者通过检测计算单元和计算集群的性能的自动化过程。例如,响应于管理处理器对逻辑分区的改变,分解式平台改变计算单元内的多个物理计算部件的组成。可以改变计算单元内的多个物理计算部件的组成以包括至少多一个CPU、GPU、存储模块和网络接口模块。可以改变计算单元内的多个物理计算部件的组成以减少计算单元中包括的CPU、GPU、存储模块和网络接口模块的数量。
此外,可以改变集群以增加或减少其中包括的计算单元的数量,例如以通过在运行中添加更多计算单元来增加集群的处理能力。因此,可以动态管理计算单元和集群,以增强对工作负荷、用户要求、调度和其他考虑因素的响应性。因为物理计算部件全都经由灵活且可配置的PCIe结构耦合,物理计算部件可根据需要、响应于各种状况和要求启动(spin-up,旋转加快)和关闭(spin-down,旋转减慢)。在特定示例中,计算单元最初可能未被形成为具有GPU,但是稍后的要求或工作负荷变化可能授权将一个GPU或不止一个GPU包括进计算单元。可以在运行中改变PCIe结构分区,以允许一个或多个GPU与特定计算单元的一个或多个CPU相关联。
图7示出了突出显示由管理处理器执行的集群管理操作***(OS)710和PCIe结构720的控制的分解式基础结构700。管理OS为基于PCIe的结构上的存储、计算、GPU和网络元件的管理、自动化和编排创造条件。例如,存储元件734、中央处理元件(CPU)733、图形处理元件(GPU)732和网络接口卡(NIC)元件731全都能够通过PCIe结构720通信地耦合。PCIe结构通过提供可分区的通信介质用于将各元件耦合到计算单元中和将计算单元分组成集群,使得能够实现分解式架构。
为了提供该分解式架构,图7示出了尚未被分配给特定“机器”740或计算单元的自由元件(731-734)池。自由元件物理上存在于相关联的***中,但保持空闲或未被分配给特定集群/机器/计算单元。管理OS可以在自由元件中进行选择,并将自由元件中的所选择的自由元件分配给机器。管理OS可以处理对机器的要求——例如机器正被用于哪些任务,以帮助在自由的计算、GPU、网络和存储元件中选择适当的元件。用户可以与允许定义或指示要求或其他用户目标的图形或命令行接口接口连接。
管理OS可以学习识别对元件的各种请求并从自由池中选择合适的元件。例如,管理OS可以识别在集群上运行的特定用户提供的操作***或用户提供的应用程序,并基于该识别选择某些自由元件以包括在一个或多个机器中。在一个示例中,待由特定机器执行的操作***可以由用户指定为Linux操作***。可以从自由池中选择特定元件,以使机器能够运行Linux操作***。可以使用用户应用程序、操作***、存储要求、接口或通信量要求或其他考虑因素来选择要包括在每个机器中的元件。
图8示出了动态机器服务提供配置800期间的分解式基础结构。图9示出了先发分配配置900期间的分解式基础结构。图8-9示出了动态“裸机”编排期间的操作。示出了几个机器,每个机器具有由元件/资源组成的相关联的机器。集群使用PCIe结构电隔离,并且可以动态地从自由元件池中汲取元件/资源。因此,物理外壳,例如架装式外壳***,可以具有预定数量的元件(即,若干处理器、网络接口、GPU和存储驱动器),并且这些元件可以在任意数量的集群和相关联的计算单元/机器之间动态分配。
例如,在管理处理器上运行的管理OS 810可以基于用户要求或当前工作负荷要求,先发地或按需地将来自自由池830的自由元件分配给特定机器(841-842)。管理OS 810可以至少基于各机器和机器集群的资源需求,基于那些机器和集群当前和过去的性能、工作负荷或活动,来进行预测性选择901。当管理OS确定将需要资源时,管理OS可以预测性地(901)并且先发地分配(902)自由资源830给这些机器。这在运行中为机器提供了按需的额外资源。随着机器增加工作负荷,可以自动提供额外的资源。同样,当机器减少工作负荷时,可以将多余的资源放回到自由元件池中以供其他机器使用。因此,可以实现CPU、存储、GPU和网络接口资源的有效使用,尤其是当物理***支持不止一个集群时。每个集群在运行中都可以具有按需的处理、网络、GPU和存储容量,并且可以释放多余的容量。
在图9中,示出机器“x”具有一个网络接口资源、一个CPU资源、两个GPU资源和一个或多个存储资源。机器“y”和机器“z”都被示出为已分配有一个CPU资源、一个网络接口资源和一个或多个存储资源。
图10示出了动态“裸机”编排期间的集群操作。为每个集群示出了几个机器,其中相关联的机器由物理元件/资源1040组成,所述物理元件/资源例如CPU、GPU、NIC和存储驱动器。使用PCIe结构1020使集群电隔离,并且管理***可以动态地从自由元件池中汲取元件/资源,如图7-9中所见。因此,一个或多个物理外壳,例如机架式硬件装置,可以具有许多元件(即,若干处理器、网络接口、GPU和存储驱动器),并且这些元件可以在任意数量的集群和相关联的计算单元/机器中动态分配。
图10示出了三个示例集群1-N,其中可能集群的任何数量取决于待分配给集群的机器的资源的可用性。虽然每个集群具有三个机器,但应该理解的是,每个集群可以使用多于或少于三个机器。此外,每个集群中的每个机器指示分配给其的示例元件。这些分配的元件可以根据基于策略的管理、用户命令、用户指令、先发或预测性分配、基于空载/关闭的移除或其他考虑因素动态地改变。一个或多个管理服务或控制处理器可以被配置为使用PCIe结构作为媒介动态地耦合各元件来执行机器和集群的这种建立和改变。
为了提供对本文讨论的分解式基础结构示例的进一步控制和监视,以及提供对任何相关联的管理服务或处理器的用户控制,可以提供各种用户接口。图11-14呈现了用于控制分解式基础结构的一个或多个集群、机器和资源的若干示例用户接口元件。
图11-14详述了各种图形用户界面和操作分解式计算平台的图形用户界面***的方法。在图11-14中,用户接口可以通过集群界面部分接收用户输入以建立包括用于在其上执行用户软件的计算单元的计算集群。用户接口可以接收另外的用户输入以将物理资源添加到通过PCIe结构耦合的一个或多个计算单元中,并将该一个或多个计算单元与计算集群中相关联的计算集群相关联。物理资源包括处理资源、存储资源、图形处理资源和网络接口资源。响应于在PCIe结构中形成计算单元和计算集群,用户接口可以将物理资源的形成的指示呈现到计算单元中并且将计算单元呈现到计算集群中,并且呈现与至少计算单元的操作有关的遥测数据。
现在转到第一示例,图11示出了由管理处理器/OS提供的计算服务的图形用户界面(GUI)的一种实现方式。图11示出了用于管理集群和集群内的机器的示例“主屏幕”1100。GUI提供集群的操作状态的图形表示,并且用户可以在GUI的第一部分中在各集群中进行选择。一旦选择了集群(1120),该集群的属性和状态就呈现在GUI的另一部分中(1121)。各种元件(处理、网络、存储)以图形方式示出,并根据当前到特定机器的分配进行布置。可以选择机器,并且可以向用户呈现另外的状态和属性(1125)。可以为任何元件、机器或集群呈现实时统计数据和历史使用统计数据。可以选择度量,可以提示GUI呈现与度量中的所选度量相关的图形信息(1124)。在GUI中指示自由元件/资源(1122),并且可以通过用户动作将这些元件/资源分配给现有的或新的机器和集群,所述用户动作例如将资源/元件拖动到与机器相关联的池中。用户界面可以包括图形用户界面和命令行(1114)界面,并且这些界面可以通过显示器、网络链路、分组链路、web接口、终端控制台或其他接口来提供。
在一个特定示例中,图11中提供了图形用户界面1100的集群界面部分1120。该集群界面部分可以显示当前集群和用于这些集群的识别信息。用户可以选择集群中的一个以获得更多细节和配置选项。一旦被选择,“活动”集群1119就被显示在图形用户界面的另外的部分中。一个另外的用户界面部分是计算块部分1121,该计算块部分1121包括机器列表以及指示相关联的机器的属性和状态。机器列表呈现一个画布,其包括一个或多个当前为集群分配的机器。这些机器可以由各种图标表示,这些图标可以根据角色或状态进行定制。当前选择的机器1110可以具有在机器统计表1111中呈现的进一步细节和规范。该统计表可以包括当前工作负荷信息、能力、识别信息或与所选机器的当前状态或操作有关的其他信息。
此外,可以经由计算块部分1121向用户呈现选项1112以将更多机器添加到集群中。图12更详细地讨论了该操作。在图11中,可以在元件池1122中查看未分配的元件1115,其中元件类型切换1116在当前未被分配到机器中的各种类型的元件(即,CPU、GPU、NIC、存储)之间切换。在视图1123中提供所选的未分配元件1117的细节,以允许用户查看关于当前选择的未分配元件的状态、统计数据或其他信息。元件生成标识(ID)1118可以允许用户改变属性、名称或与当前选择的未分配元件相关的其他信息。
可以通过监视界面部分1133来提供各种遥测数据,该监视界面部分1133可以经由菜单1124用来查看各种属性、状态、操作信息,以及与全部集群、机器、管理服务或处理器以及其他部件相关的其他信息。除了其他部分之外,监视界面部分1133可以呈现与至少机器/计算单元的操作有关的此遥测数据,并且该遥测数据通常至少指示在分配给计算单元的物理资源中的使用级别,并且还可以指示准备好分配给一个或多个计算单元的一定数量的自由物理资源(参见图13中的部分1311)。
图形用户界面可以被配置为接收描述一个或多个计算单元的使用要求的用户定义的目标,并且这些用户定义的目标可以是确定要包括在至少一个相关联的机器中以满足使用要求的物理资源中的一些的过程。可以将相关联的物理资源指示给管理服务/处理器以使用PCIe结构中的逻辑分区实现上述一个或多个计算单元。此外,图形用户界面可以被配置为接收与计算单元的操作有关的用户阈值,其中该用户阈值指示计算单元的活动水平,针对其将一个或多个物理资源添加到计算单元中的超过用户阈值的计算单元中。可以从用户接收指示何时将更多资源添加到机器或集群中的上阈值。该阈值可以基于处理器利用、存储器/RAM利用、存储空间利用、网络带宽利用或其他阈值。还可以从用户接收指示何时基于缺少上面指出的各种利用来从机器或集群移除资源的下阈值。还可以接收指示在实施对机器或集群的更改之前等待的延迟的定时阈值或属性。
图12示出了使用GUI呈现操作以向机器分配资源/元件的示例GUI1200。GUI 1200可以呈现至少CPU、存储元件、GPU和网络接口元件的图形表示,以便响应于相关联的用户输入由用户引入计算单元/机器中。在右下部分(1212)中选择特定集群之后,用户可以在GUI的左上部分(1210)中选择特定机器。如图11中提到的,用户也可以创建新机器。来自自由元件池的自由元件显示在右上部分(1213)中,并且可以点击这些元件并将其拖入用于特定机器的位置(slot,存放位置)中(1211)。此外,可以将用户输入接收到GUI 1200中,该用户输入包括指示用于引入用于执行用户软件的目标计算集群的至少一个机器的用户指令。
一旦将选择的元件拖动到机器,则GUI或GUI***的管理接口部分可以提示管理OS,以启动将选择的元件与机器相关联并且同样与集群相关联的过程。例如,响应于接收将选择的元件添加到机器中(或者同样地将机器添加到集群中)的用户指令,可以向管理服务/处理器指示用户指令以实施用户指令来根据用户指令改变PCIe架构中的逻辑分区。相关联的管理处理器解释用户选择并且将控制信息发送到计算***的另外部分以将选择的元件分配给机器/集群。PCIe结构被配置为允许选择的元件与机器/集群的其他元件通信,并且执行选择的元件本身的任意初始化。此外,当要将用户软件部署到机器或集群时,一旦管理服务/进程已经相应地配置了PCIe结构,则可以将用户软件部署到机器或集群。其他软件,例如操作***、监视模块或网络驱动模块,也可以被部署到机器或集群。此外,当使用虚拟化容器、Docker(应用容器引擎)或其他元件时,可以将这些元件部署到机器或集群。该部署通常通过PCIe结构或替代地通过如图1-2中所示的边带接口进行。
图13示出了示例性GUI 1300,其呈现例如监视界面部分所提供的、***的元件的使用统计数据。可以选择在GUI的右上部分(1320)中列出的机器以指示当前的自由元件池或当前使用的元件的状态。在该示例中,呈现条线图(1311)指示裸机资产(元件)的当前分配百分比。这些元件包括存储、计算/处理、内存/RAM和网络。其他元件,例如图形处理元件,可以被包括在另外的示例中。用户可以在条线图/统计视图和元件本身的视图之间切换(1310)以便分配(经由拖放或其他用户界面技术)到机器中。
图14示出了示例GUI 1400内的示例替代界面,即在命令中心主菜单1410的右上部分(1411)中呈现的命令行界面。用户可以键入命令和指令以供管理处理器/OS使用而不是点击/拖动,或允许文本呈现集群/机器的状态和属性。脚本和代码输入可以通过命令行界面来促进,例如以通过脚本创建集群/机器或通过脚本处理状态信息以及将该信息传送到各个目的地。与许多命令行界面一样,提供行滚动特征(1412)以滚动通过命令行的历史。还可以呈现视图设置切换1411以改变命令行界面的字体/字体大小、类型、颜色、间距或其他视图属性。
附图中提供的功能框图、操作场景和序列以及流程图表示用于执行本公开内容的新颖方面的示例性***、环境和方法。虽然出于简化说明的目的,本文包括的方法可以是功能图、操作场景或序列或流程图的形式,并且可以被描述为一系列动作,但应该理解和意识到的是,方法不受动作的顺序限制,因为一些行为根据其可以与本文所示和所描述的不同的顺序进行和/或与其他行为同时进行。例如,本领域技术人员将理解并意识到,方法可以替代地被表示为一系列相互关联的状态或事件,例如在状态图中。此外,并非在方法中示出的所有动作都可能是新颖实现方式所需的。
本文所包括的描述和图描绘了具体实施方式,以教导本领域技术人员如何作出和使用最佳选项。出于教导发明原理的目的,已经简化或省略了一些常规方面。本领域技术人员将理解落入本公开内容范围内的这些实施方式的变体。本领域技术人员还将理解,上文描述的特征可以以各种方式组合以形成多个实施方式。因此,本发明不限于上文描述的具体实施方式,而是仅由权利要求及其等同物限制。
Claims (19)
1.一种分解式计算平台,包括:
管理处理器,被配置为接收用户命令以从未被分配的物理计算部件池中建立计算单元,每个所述计算单元包括从中央处理单元、图形处理单元、存储模块和网络接口模块中选择的一个或多个物理计算部件;
高速外设部件互连结构(PCIe结构),根据所述管理处理器对配置设置的控制,所述高速外设部件互连结构被配置为通信地耦合相应的物理计算部件以使用所述高速外设部件互连结构内的逻辑分区形成所述计算单元,其中每个所述计算单元使用所述逻辑分区彼此隔离,并且每个所述计算单元具有通过所述高速外设部件互连结构对使用所述高速外设部件互连结构内的所述逻辑分区分配给相关联的计算单元的所述物理计算部件池中的仅所述相应的物理计算部件的可见性。
2.根据权利要求1所述的分解式计算平台,包括:
所述管理处理器被配置为通过至少在包括所述高速外设部件互连结构的PCIe交换机的端口之间形成基于域的PCIe隔离来指示所述高速外设部件互连结构在所述高速外设部件互连结构内建立所述逻辑分区。
3.根据权利要求1所述的分解式计算平台,包括:
所述管理处理器被配置为通过至少在包括所述高速外设部件互连结构的PCIe交换机的端口之间形成基于非透明(NT)端口的PCIe隔离来指示所述高速外设部件互连结构在所述高速外设部件互连结构内建立所述逻辑分区。
4.根据权利要求1所述的分解式计算平台,包括:
所述管理处理器被配置为通过响应于所述用户命令至少改变所述高速外设部件互连结构内的所述逻辑分区来改变所述计算单元内的所述物理计算部件的组成。
5.根据权利要求1所述的分解式计算平台,其中,第一计算单元包括至少一个中央处理单元、至少一个存储模块和至少一个网络接口模块。
6.根据权利要求1所述的分解式计算平台,其中,第一计算单元包括至少一个中央处理单元、至少一个图形处理单元、至少一个存储模块和至少一个网络接口模块。
7.根据权利要求1所述的分解式计算平台,包括:
响应于形成每个所述计算单元,所述管理处理器被配置为将软件部件部署到每个所述计算单元内的至少相关联的中央处理单元。
8.根据权利要求7所述的分解式计算平台,其中,所述软件部件包括监视功能,所述监视功能被配置为向所述管理处理器报告与相关联的计算单元的操作有关的遥测数据。
9.根据权利要求7所述的分解式计算平台,其中,所述软件部件包括驱动器功能,所述驱动器功能被配置为对所述相关联的中央处理单元的操作***模拟以太网接口的操作,以通过所述高速外设部件互连结构与所述管理处理器通信。
10.根据权利要求9所述的分解式计算平台,其中,所述驱动器功能还被配置为通过所述高速外设部件互连结构传送通信以递送至所述管理处理器,而不通过网络堆栈处理所述通信。
11.一种操作分解式计算平台的方法,所述方法包括:
在管理处理器中,接收用户命令以从未被分配的物理计算部件池中建立计算单元,每个所述计算单元包括从中央处理单元、图形处理单元、存储模块和网络接口模块中选择的一个或多个物理计算部件;
至少基于高速外设部件互连结构(PCIe结构)内的逻辑分区形成所述计算单元,所述高速外设部件互连结构通信地耦合相应的物理计算部件,其中每个所述计算单元使用所述逻辑分区彼此隔离,并且每个所述计算单元具有通过所述高速外设部件互连结构对使用所述高速外设部件互连结构内的所述逻辑分区分配给相关联的计算单元的所述物理计算部件池中的所述相应的物理计算部件的可见性。
12.根据权利要求11所述的方法,还包括:
在所述管理处理器中,通过至少在包括所述高速外设部件互连结构的PCIe交换机的端口之间形成基于域的PCIe隔离来指示所述高速外设部件互连结构在所述高速外设部件互连结构内建立所述逻辑分区。
13.根据权利要求11所述的方法,还包括:
在所述管理处理器中,通过至少在包括所述高速外设部件互连结构的PCIe交换机的端口之间形成基于非透明(NT)端口的PCIe隔离来指示所述高速外设部件互连结构在所述高速外设部件互连结构内建立所述逻辑分区。
14.根据权利要求11所述的方法,还包括:
通过响应于所述用户命令至少改变所述高速外设部件互连结构内的所述逻辑分区来改变所述计算单元内的所述物理计算部件的组成。
15.根据权利要求11所述的方法,还包括:
响应于形成每个所述计算单元,将软件部件部署到每个所述计算单元内的至少相关联的中央处理单元。
16.根据权利要求15所述的方法,其中,所述软件部件包括监视功能,所述监视功能被配置为向所述管理处理器报告与相关联的计算单元的操作有关的遥测数据。
17.根据权利要求15所述的方法,其中,所述软件部件包括驱动器功能,所述驱动器功能被配置为对所述相关联的中央处理单元的操作***模拟以太网接口的操作,以通过所述高速外设部件互连结构与所述管理处理器通信,其中所述驱动器功能还被配置为通过所述高速外设部件互连结构传送通信以递送至所述管理处理器,而不通过网络堆栈处理所述通信。
18.一种计算设备,包括:
一个或多个计算机可读存储介质;
处理***,其与所述一个或多个计算机可读存储介质可操作地耦合;以及
存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令在由所述处理***执行时指示所述处理***以至少:
接收用户命令以从未被分配的物理计算部件池中建立计算单元,每个所述计算单元包括从中央处理单元、图形处理单元、存储模块和网络接口模块中选择的一个或多个物理计算部件;和
至少基于高速外设部件互连结构(PCIe结构)内的逻辑分区形成所述计算单元,所述高速外设部件互连结构通信地耦合相应的物理计算部件,其中每个所述计算单元使用所述逻辑分区彼此隔离,并且每个所述计算单元具有通过所述高速外设部件互连结构对使用所述高速外设部件互连结构内的所述逻辑分区分配给相关联的计算单元的所述物理计算部件池中的所述相应的物理计算部件的可见性。
19.根据权利要求18所述的计算设备,包括另外的程序指令,所述另外的程序指令在由所述处理***执行时指示所述处理***以至少:
响应于形成每个所述计算单元,将软件部件部署到每个所述计算单元内的至少相关联的中央处理单元;
其中,所述软件部件包括驱动器功能,所述驱动器功能被配置为对所述相关联的中央处理单元的操作***模拟以太网接口的操作,以通过所述高速外设部件互连结构与管理处理器通信;并且,
其中所述驱动器功能还被配置为通过所述高速外设部件互连结构传送通信以递送至所述管理处理器,而不通过网络堆栈处理所述通信。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662374573P | 2016-08-12 | 2016-08-12 | |
US62/374,573 | 2016-08-12 | ||
US201762468231P | 2017-03-07 | 2017-03-07 | |
US62/468,231 | 2017-03-07 | ||
PCT/US2017/046602 WO2018031937A1 (en) | 2016-08-12 | 2017-08-11 | Disaggregated fabric-switched computing platform |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109844722A CN109844722A (zh) | 2019-06-04 |
CN109844722B true CN109844722B (zh) | 2022-09-27 |
Family
ID=61158923
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780063313.3A Expired - Fee Related CN109844722B (zh) | 2016-08-12 | 2017-08-11 | 分解式结构交换计算平台 |
CN201780063131.6A Expired - Fee Related CN109891394B (zh) | 2016-08-12 | 2017-08-11 | 计算单元、操作计算单元的方法以及计算设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780063131.6A Expired - Fee Related CN109891394B (zh) | 2016-08-12 | 2017-08-11 | 计算单元、操作计算单元的方法以及计算设备 |
Country Status (4)
Country | Link |
---|---|
US (6) | US10642659B2 (zh) |
EP (2) | EP3497571B1 (zh) |
CN (2) | CN109844722B (zh) |
WO (2) | WO2018031937A1 (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10318461B2 (en) * | 2017-08-04 | 2019-06-11 | Dell Products L.P. | Systems and methods for interconnecting GPU accelerated compute nodes of an information handling system |
US10728172B2 (en) * | 2018-03-28 | 2020-07-28 | Quanta Computer Inc. | Method and system for allocating system resources |
US11650849B2 (en) * | 2018-09-25 | 2023-05-16 | International Business Machines Corporation | Efficient component communication through accelerator switching in disaggregated datacenters |
US10831580B2 (en) | 2018-09-26 | 2020-11-10 | International Business Machines Corporation | Diagnostic health checking and replacement of resources in disaggregated data centers |
US10838803B2 (en) | 2018-09-26 | 2020-11-17 | International Business Machines Corporation | Resource provisioning and replacement according to a resource failure analysis in disaggregated data centers |
US11050637B2 (en) | 2018-09-26 | 2021-06-29 | International Business Machines Corporation | Resource lifecycle optimization in disaggregated data centers |
US10754720B2 (en) | 2018-09-26 | 2020-08-25 | International Business Machines Corporation | Health check diagnostics of resources by instantiating workloads in disaggregated data centers |
US11188408B2 (en) | 2018-09-26 | 2021-11-30 | International Business Machines Corporation | Preemptive resource replacement according to failure pattern analysis in disaggregated data centers |
US10761915B2 (en) | 2018-09-26 | 2020-09-01 | International Business Machines Corporation | Preemptive deep diagnostics and health checking of resources in disaggregated data centers |
JP7257537B2 (ja) * | 2018-10-31 | 2023-04-13 | インフォブロックス・インコーポレーテッド | 分離型クラウドネイティブネットワークアーキテクチャ |
US10747280B2 (en) * | 2018-11-27 | 2020-08-18 | International Business Machines Corporation | Reconfigurble CPU/GPU interconnect to mitigate power/thermal throttling |
US10540185B1 (en) * | 2019-01-11 | 2020-01-21 | Liqid Inc. | Software deployment in disaggregated computing platforms |
US11392525B2 (en) | 2019-02-01 | 2022-07-19 | Liqid Inc. | Specialized device instantiation onto PCIe fabrics |
US11954326B2 (en) | 2019-02-01 | 2024-04-09 | Liqid Inc. | Memory device instantiation onto communication fabrics |
US10585827B1 (en) | 2019-02-05 | 2020-03-10 | Liqid Inc. | PCIe fabric enabled peer-to-peer communications |
USD910050S1 (en) * | 2019-03-22 | 2021-02-09 | Apple Inc. | Electronic device with graphical user interface |
WO2020219798A1 (en) * | 2019-04-25 | 2020-10-29 | Liqid Inc. | Policy-based dynamic compute unit adjustments |
US11973650B2 (en) * | 2019-04-25 | 2024-04-30 | Liqid Inc. | Multi-protocol communication fabric control |
EP3959604A4 (en) * | 2019-04-25 | 2023-01-18 | Liqid Inc. | MACHINE TEMPLATES FOR DEDICATED COMPUTING UNITS |
CN110415160B (zh) * | 2019-06-29 | 2022-06-07 | 苏州浪潮智能科技有限公司 | 一种gpu拓扑分区方法与装置 |
CN110362279B (zh) * | 2019-08-08 | 2024-02-09 | 西安中飞航空测试技术发展有限公司 | 基于机载高速总线的数据实时处理与存储*** |
CN110727520B (zh) * | 2019-10-23 | 2022-05-03 | 四川长虹电器股份有限公司 | 一种优化Android帧动画的实现方法 |
CN111124967A (zh) * | 2019-11-20 | 2020-05-08 | 安徽中骄智能科技有限公司 | 基于高通量计算平台的可局部强化互连的扩展*** |
WO2021118639A1 (en) | 2019-12-12 | 2021-06-17 | NewSpace Networks, Inc. | Satellite edge networks |
CN113468090B (zh) * | 2020-03-30 | 2024-04-05 | 浙江宇视科技有限公司 | 一种PCIe通信方法、装置、电子设备及可读存储介质 |
CN112019598A (zh) * | 2020-07-31 | 2020-12-01 | 深圳华云信息***有限公司 | 一种分布式云计算*** |
US11442776B2 (en) | 2020-12-11 | 2022-09-13 | Liqid Inc. | Execution job compute unit composition in computing clusters |
US11573917B2 (en) | 2021-03-04 | 2023-02-07 | Liqid Inc. | Low latency computing architecture |
US11531629B2 (en) | 2021-03-04 | 2022-12-20 | Liqid Inc. | High density peripheral card chassis |
CN114500413B (zh) * | 2021-12-17 | 2024-04-16 | 阿里巴巴(中国)有限公司 | 设备连接方法及装置、设备连接芯片 |
US20220156211A1 (en) * | 2021-12-22 | 2022-05-19 | Intel Corporation | Dynamic provisioning of pcie devices at run time for bare metal servers |
US11811681B1 (en) | 2022-07-12 | 2023-11-07 | T-Mobile Usa, Inc. | Generating and deploying software architectures using telecommunication resources |
Family Cites Families (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828207A (en) | 1993-04-20 | 1998-10-27 | The United States Of America As Represented By The Secretary Of The Navy | Hold-up circuit with safety discharge for preventing shut-down by momentary power interruption |
US6061750A (en) | 1998-02-20 | 2000-05-09 | International Business Machines Corporation | Failover system for a DASD storage controller reconfiguring a first processor, a bridge, a second host adaptor, and a second device adaptor upon a second processor failure |
US6208345B1 (en) * | 1998-04-15 | 2001-03-27 | Adc Telecommunications, Inc. | Visual data integration system and method |
US6411986B1 (en) | 1998-11-10 | 2002-06-25 | Netscaler, Inc. | Internet client-server multiplexer |
US7877542B2 (en) | 2000-01-06 | 2011-01-25 | Super Talent Electronics, Inc. | High integration of intelligent non-volatile memory device |
US7934074B2 (en) | 1999-08-04 | 2011-04-26 | Super Talent Electronics | Flash module with plane-interleaved sequential writes to restricted-write flash chips |
US6325636B1 (en) | 2000-07-20 | 2001-12-04 | Rlx Technologies, Inc. | Passive midplane for coupling web server processing cards with a network interface(s) |
US6889332B2 (en) | 2001-12-11 | 2005-05-03 | Advanced Micro Devices, Inc. | Variable maximum die temperature based on performance state |
US6931559B2 (en) | 2001-12-28 | 2005-08-16 | Intel Corporation | Multiple mode power throttle mechanism |
US20030220781A1 (en) | 2002-02-25 | 2003-11-27 | Oak Technology, Inc. | Communication architecture utilizing emulator interface |
EP1529384B1 (de) | 2002-08-14 | 2010-10-20 | Nokia Siemens Networks GmbH & Co. KG | Zugangskontrolle bei paketorientierten netzen |
US7243145B1 (en) | 2002-09-30 | 2007-07-10 | Electronic Data Systems Corporation | Generation of computer resource utilization data per computer application |
WO2004079583A1 (ja) | 2003-03-05 | 2004-09-16 | Fujitsu Limited | データ転送制御装置およびdmaデータ転送制御方法 |
JP3944176B2 (ja) * | 2004-02-20 | 2007-07-11 | 株式会社東芝 | 探索要求送信装置およびプログラム |
US7272736B2 (en) | 2004-03-03 | 2007-09-18 | Intel Corporation | Method and system for fast frequency switch for a power throttle in an integrated device |
US7606960B2 (en) | 2004-03-26 | 2009-10-20 | Intel Corporation | Apparatus for adjusting a clock frequency of a variable speed bus |
US7340578B1 (en) * | 2004-04-28 | 2008-03-04 | Sun Microsystems, Inc. | Method and apparatus for maintaining an accurate inventory of storage capacity in a clustered data processing system |
JP2006318012A (ja) * | 2005-05-10 | 2006-11-24 | Hitachi Ltd | ディスク制御システム |
US20060277206A1 (en) | 2005-06-02 | 2006-12-07 | Bailey Philip G | Automated reporting of computer system metrics |
JP4394624B2 (ja) * | 2005-09-21 | 2010-01-06 | 株式会社日立製作所 | 計算機システム及びi/oブリッジ |
US8189603B2 (en) * | 2005-10-04 | 2012-05-29 | Mammen Thomas | PCI express to PCI express based low latency interconnect scheme for clustering systems |
US7260487B2 (en) | 2005-11-29 | 2007-08-21 | International Business Machines Corporation | Histogram difference method and system for power/performance measurement and management |
US7822594B2 (en) * | 2006-08-07 | 2010-10-26 | Voltaire Ltd. | Service-oriented infrastructure management |
US8344475B2 (en) | 2006-11-29 | 2013-01-01 | Rambus Inc. | Integrated circuit heating to effect in-situ annealing |
US8150800B2 (en) | 2007-03-28 | 2012-04-03 | Netapp, Inc. | Advanced clock synchronization technique |
US8584131B2 (en) * | 2007-03-30 | 2013-11-12 | International Business Machines Corporation | Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment |
US8706914B2 (en) | 2007-04-23 | 2014-04-22 | David D. Duchesneau | Computing infrastructure |
US20080281938A1 (en) | 2007-05-09 | 2008-11-13 | Oracle International Corporation | Selecting a master node in a multi-node computer system |
US8671179B2 (en) * | 2007-06-19 | 2014-03-11 | International Business Machines Corporation | Dynamically adding best suited servers into clusters of application servers |
US7890811B2 (en) | 2007-06-29 | 2011-02-15 | Intel Corporation | Method and apparatus for improved memory reliability, availability and serviceability |
US9146892B2 (en) | 2007-10-11 | 2015-09-29 | Broadcom Corporation | Method and system for improving PCI-E L1 ASPM exit latency |
US7925826B2 (en) | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency |
US7930470B2 (en) | 2008-01-24 | 2011-04-19 | International Business Machines Corporation | System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller |
US7925824B2 (en) | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency |
US8473594B2 (en) * | 2008-05-02 | 2013-06-25 | Skytap | Multitenant hosted virtual machine infrastructure |
US8359415B2 (en) * | 2008-05-05 | 2013-01-22 | International Business Machines Corporation | Multi-root I/O virtualization using separate management facilities of multiple logical partitions |
US8103810B2 (en) | 2008-05-05 | 2012-01-24 | International Business Machines Corporation | Native and non-native I/O virtualization in a single adapter |
US8954685B2 (en) * | 2008-06-23 | 2015-02-10 | International Business Machines Corporation | Virtualized SAS adapter with logic unit partitioning |
KR101515525B1 (ko) | 2008-10-02 | 2015-04-28 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 동작 방법 |
US7792916B2 (en) * | 2008-10-20 | 2010-09-07 | International Business Machines Corporation | Management of cluster-wide resources with shared variables |
US8656117B1 (en) | 2008-10-30 | 2014-02-18 | Nvidia Corporation | Read completion data management |
US20100138768A1 (en) * | 2008-12-02 | 2010-06-03 | Nvidia Corporation | Simplifying Configuration Of Multiple Display Units For Common Use |
US8473681B2 (en) | 2009-02-17 | 2013-06-25 | Rambus Inc. | Atomic-operation coalescing technique in multi-chip systems |
US8125919B1 (en) | 2009-03-24 | 2012-02-28 | Sprint Spectrum L.P. | Method and system for selectively releasing network resources |
US8732349B2 (en) * | 2009-11-18 | 2014-05-20 | Fusion-Io, Inc. | Assignment of resources in an input/output (I/O) virtualization system |
US8589613B2 (en) * | 2010-06-02 | 2013-11-19 | Intel Corporation | Method and system to improve the operations of an integrated non-transparent bridge device |
US8677180B2 (en) | 2010-06-23 | 2014-03-18 | International Business Machines Corporation | Switch failover control in a multiprocessor computer system |
US20120030544A1 (en) | 2010-07-27 | 2012-02-02 | Fisher-Jeffes Timothy Perrin | Accessing Memory for Data Decoding |
US8688926B2 (en) | 2010-10-10 | 2014-04-01 | Liqid Inc. | Systems and methods for optimizing data storage among a plurality of solid state memory subsystems |
CN103262054B (zh) | 2010-12-13 | 2015-11-25 | 桑迪士克科技股份有限公司 | 用于自动提交存储器的装置、***和方法 |
US8589723B2 (en) | 2010-12-22 | 2013-11-19 | Intel Corporation | Method and apparatus to provide a high availability solid state drive |
US8954798B2 (en) | 2011-02-11 | 2015-02-10 | Taejin Info Tech Co., Ltd. | Alarm-based backup and restoration for a semiconductor storage device |
US8712975B2 (en) | 2011-03-08 | 2014-04-29 | Rackspace Us, Inc. | Modification of an object replica |
US8792273B2 (en) | 2011-06-13 | 2014-07-29 | SMART Storage Systems, Inc. | Data storage system with power cycle management and method of operation thereof |
GB2493132B (en) | 2011-07-11 | 2018-02-28 | Metaswitch Networks Ltd | Controlling an apparatus in a LAN by selecting between first and second hardware interfaces for performing data communication |
US10037272B2 (en) | 2012-08-08 | 2018-07-31 | Avalanche Technology, Inc. | Storage system employing MRAM and array of solid state disks with integrated switch |
US9767058B2 (en) | 2011-11-17 | 2017-09-19 | Futurewei Technologies, Inc. | Method and apparatus for scalable low latency solid state drive interface |
US9292403B2 (en) * | 2011-12-14 | 2016-03-22 | International Business Machines Corporation | System-wide topology and performance monitoring GUI tool with per-partition views |
US8953644B2 (en) | 2011-12-27 | 2015-02-10 | Intel Corporation | Multi-protocol I/O interconnect time synchronization |
US9135092B2 (en) * | 2012-02-02 | 2015-09-15 | International Business Machines Corporation | Multicast message filtering in virtual environments |
US10110367B2 (en) | 2012-08-21 | 2018-10-23 | Artesyn Embedded Computing, Inc. | High precision timer in CPU cluster |
US9086919B2 (en) * | 2012-08-23 | 2015-07-21 | Dell Products, Lp | Fabric independent PCIe cluster manager |
US9003220B2 (en) | 2012-09-07 | 2015-04-07 | National Instruments Corporation | Switch for clock synchronization over a switched fabric |
US9602437B1 (en) | 2012-10-03 | 2017-03-21 | Tracey M. Bernath | System and method for accelerating network applications using an enhanced network interface and massively parallel distributed processing |
US9007087B2 (en) | 2012-10-11 | 2015-04-14 | Hamilton Sundstrand Corporation | System and method for automated failure detection of hold-up power storage devices |
US20140108846A1 (en) | 2012-10-15 | 2014-04-17 | Dell Products L.P. | Supplemental power system for power excursions |
US8880771B2 (en) * | 2012-10-25 | 2014-11-04 | Plx Technology, Inc. | Method and apparatus for securing and segregating host to host messaging on PCIe fabric |
US10230794B2 (en) * | 2013-03-15 | 2019-03-12 | Oracle International Corporation | System and method for efficient virtualization in lossless interconnection networks |
US8983967B2 (en) | 2013-03-15 | 2015-03-17 | Datadirect Networks, Inc. | Data storage system having mutable objects incorporating time |
US10324642B2 (en) | 2013-06-07 | 2019-06-18 | Sanmina Corporation | Peripheral component interconnect express (PCIe) solid state drive (SSD) accelerator |
US9672167B2 (en) * | 2013-07-22 | 2017-06-06 | Futurewei Technologies, Inc. | Resource management for peripheral component interconnect-express domains |
US20150067128A1 (en) * | 2013-08-27 | 2015-03-05 | Connectloud, Inc. | Method and apparratus for dynamic determination of quotas for software defined cloud catalog services |
US9152591B2 (en) * | 2013-09-06 | 2015-10-06 | Cisco Technology | Universal PCI express port |
US20150212755A1 (en) | 2014-01-30 | 2015-07-30 | Avalanche Technology, Inc. | Method of managing throughput of redundant array of independent disks (raid) groups in a solid state disk array |
WO2015162660A1 (ja) | 2014-04-21 | 2015-10-29 | 株式会社日立製作所 | 計算機システム |
JPWO2015194534A1 (ja) * | 2014-06-17 | 2017-04-20 | 日本電気株式会社 | スイッチ装置とコンピュータシステムと方法並びにプログラム |
US9684575B2 (en) | 2014-06-23 | 2017-06-20 | Liqid Inc. | Failover handling in modular switched fabric for data storage systems |
WO2016106600A1 (zh) * | 2014-12-30 | 2016-07-07 | 华为技术有限公司 | 一种话权控制方法及装置 |
CN104657330A (zh) * | 2015-03-05 | 2015-05-27 | 浪潮电子信息产业股份有限公司 | 一种基于x86架构处理器和FPGA的高性能异构计算平台 |
JP6392978B2 (ja) * | 2015-04-22 | 2018-09-19 | 株式会社日立製作所 | 計算機システムの管理システム |
US10348574B2 (en) * | 2015-08-17 | 2019-07-09 | Vmware, Inc. | Hardware management systems for disaggregated rack architectures in virtual server rack deployments |
US10536349B1 (en) * | 2015-12-31 | 2020-01-14 | VCE IP Holding Company LLC | Configuration system and method for an integrated computing system |
-
2017
- 2017-08-11 EP EP17840371.3A patent/EP3497571B1/en active Active
- 2017-08-11 US US15/675,410 patent/US10642659B2/en active Active
- 2017-08-11 US US15/675,431 patent/US20180046338A1/en not_active Abandoned
- 2017-08-11 WO PCT/US2017/046602 patent/WO2018031937A1/en unknown
- 2017-08-11 WO PCT/US2017/046607 patent/WO2018031939A1/en unknown
- 2017-08-11 EP EP17840373.9A patent/EP3497572B1/en active Active
- 2017-08-11 US US15/675,377 patent/US10592291B2/en active Active
- 2017-08-11 CN CN201780063313.3A patent/CN109844722B/zh not_active Expired - Fee Related
- 2017-08-11 CN CN201780063131.6A patent/CN109891394B/zh not_active Expired - Fee Related
-
2020
- 2020-03-16 US US16/819,646 patent/US10983834B2/en active Active
-
2021
- 2021-04-19 US US17/233,711 patent/US11922218B2/en active Active
-
2024
- 2024-02-08 US US18/436,283 patent/US20240184634A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN109891394A (zh) | 2019-06-14 |
EP3497572A4 (en) | 2020-03-18 |
EP3497572A1 (en) | 2019-06-19 |
WO2018031937A1 (en) | 2018-02-15 |
EP3497571A1 (en) | 2019-06-19 |
EP3497571B1 (en) | 2021-12-29 |
WO2018031939A1 (en) | 2018-02-15 |
EP3497572B1 (en) | 2021-12-29 |
US20200218578A1 (en) | 2020-07-09 |
US10983834B2 (en) | 2021-04-20 |
US10592291B2 (en) | 2020-03-17 |
US20210240538A1 (en) | 2021-08-05 |
US11922218B2 (en) | 2024-03-05 |
US20180046514A1 (en) | 2018-02-15 |
US20180046513A1 (en) | 2018-02-15 |
US20180046338A1 (en) | 2018-02-15 |
EP3497571A4 (en) | 2020-03-18 |
CN109891394B (zh) | 2022-10-25 |
WO2018031939A9 (en) | 2018-03-22 |
US10642659B2 (en) | 2020-05-05 |
US20240184634A1 (en) | 2024-06-06 |
CN109844722A (zh) | 2019-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109844722B (zh) | 分解式结构交换计算平台 | |
US11314677B2 (en) | Peer-to-peer device arrangements in communication fabrics | |
US11294839B2 (en) | Emulated telemetry interfaces for fabric-coupled computing units | |
US10540185B1 (en) | Software deployment in disaggregated computing platforms | |
US11880326B2 (en) | Emulated telemetry interfaces for computing units |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220927 |