CN115244900A - 配置三维网格拓扑中的计算节点 - Google Patents
配置三维网格拓扑中的计算节点 Download PDFInfo
- Publication number
- CN115244900A CN115244900A CN202180019188.2A CN202180019188A CN115244900A CN 115244900 A CN115244900 A CN 115244900A CN 202180019188 A CN202180019188 A CN 202180019188A CN 115244900 A CN115244900 A CN 115244900A
- Authority
- CN
- China
- Prior art keywords
- node
- computing nodes
- topology
- computer
- nodes
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000004364 calculation method Methods 0.000 claims abstract description 14
- 238000003860 storage Methods 0.000 claims description 66
- 238000012545 processing Methods 0.000 claims description 65
- 238000004590 computer program Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 10
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/247—Multipath using M:N active or standby paths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Advance Control (AREA)
Abstract
提供了一种计算机实现的方法,用于与具有以N×M×Z拓扑的网格布置的计算节点的集合的可重配置计算设备一起使用,该计算节点包括计算硬件,其中Z<N并且Z<M,并且其中N和M至少等于4。方法包括使用计算设备来执行计算,计算的特征在于(i)初始系统I/O带宽和(ii)初始系统节点到节点延迟;将该设备重新配置为N'×M'×Z'拓扑的网格,其中,N、M和Z值中的至少两个与它们对应的N'、M'和Z'值不同,并且其中,N×M×Z等于N'×M'×Z';以及使用该设备来执行计算,计算的特征在于(i)修改的系统I/O带宽和(ii)修改的系统节点到节点延迟。
Description
技术领域
本发明涉及并行处理系统,更具体地,本发明涉及优化并行处理系统内的输入/输出(I/O)带宽和节点到节点延迟。
背景技术
并行处理系统对于对许多不同类型和数量的数据执行计算是有用的。例如,并行处理系统可以用于实现一个或多个神经网络。然而,并行处理系统当前不能响应于变化的工作负载需求而调整其性能特性。
发明内容
根据一个实施例的计算机实现的方法包括:识别要由处理设备执行的预定操作,处理设备最初具有以N×M×Z拓扑的三维(3D)网格布置的多个计算节点,其中Z<N并且Z<M,并且其中N和M至少等于4;确定在执行预定操作期间要使用的多个计算节点的最优输入/输出(I/O)带宽和/或最优节点到节点延迟;调整3D网格拓扑的尺寸以获得被调整的3D网格拓扑,被调整的3D网格拓扑实现多个计算节点的最优I/O带宽和最优节点到节点延迟,其中调整包括将多个计算节点重新配置为N'×M'×Z'拓扑的3D网格,其中N、M和Z值中的至少两个不同于它们对应的N'、M'和Z'值,并且其中N×M×Z等于N'×M'×Z';以及用被布置在N'×M'×Z'拓扑的经调整的3D网格中的多个计算节点执行预定操作。
根据另一实施例,用于配置三维(3D)网格拓扑中的计算节点的计算机程序产品包括具有随其体现的程序指令的计算机可读存储介质,其中计算机可读存储介质本身不是暂时性信号,并且其中程序指令可由处理器执行以使处理器执行方法,该方法包括由处理设备识别将由最初具有布置在N×M×Z拓扑的三维(3D)网格中的多个计算节点的处理设备执行的预定操作,其中Z<N并且Z<M,并且其中N和M至少等于4;由处理设备确定在预定操作的执行期间要使用的多个计算节点的最优输入/输出(I/O)带宽和/或最优节点到节点延迟;由处理设备调整3D网格拓扑的尺寸以获得被调整的3D网格拓扑,被调整的3D网格拓扑实现最优I/O带宽和最优节点到节点
用于多个计算节点的延迟,其中调整包括由处理装置将多个计算节点重新配置为N'×M'×Z'拓扑的网格,其中N、M和Z值中的至少两个不同于它们对应的N'、M'和Z'值,并且其中N×M×Z等于N'×M'×Z';以及由具有布置在N'×M'×Z'拓扑的经调整的3D网格中的多个计算节点的处理设备执行预定操作。
根据另一实施例,系统包括布置在N×M×Z拓扑的网格中的计算节点的集合,节点包括计算硬件,其中Z<N且Z<M,且其中N和M至少等于4;与网格的多个侧面中的一个侧面接口连接的I/O连接的集合,该侧面具有N×M个节点,I/O连接中的每一个与该侧面中的节点中的唯一一个节点相连;以及与I/O连接相连的I/O卡。
根据另一个实施例,提供了计算机实现的方法,用于与具有以N×M×Z拓扑的网格布置的计算节点的集合的可重配置计算设备一起使用,计算节点包括计算硬件,其中Z<N并且Z<M,并且其中N和M至少等于4。方法包括使用计算设备来执行计算,计算的特征在于(i)初始系统I/O带宽和(ii)初始系统节点到节点延迟;将设备重新配置为N'×M'×Z'拓扑的网格,其中,N、M和Z值中的至少两个与它们对应的N'、M'和Z'值不同,并且其中,N×M×Z等于N'×M'×Z';以及使用设备来执行计算,计算的特征在于(i)修改的系统I/O带宽和(ii)修改的系统节点到节点延迟。
从以下详细描述中,本发明的其它方面和实施例将变得显而易见,当结合附图时,以下详细描述通过示例的方式示出了本发明的原理。
附图说明
图1示出了根据本发明的一个实施例的网络架构。
图2示出了根据本发明的一个实施例的可以与图1的服务器和/或客户端相关联的代表性硬件环境。
图3示出了根据本发明的一个实施例的分层数据存储系统。
图4示出了根据本发明的一个实施例的单个硬件卡的示例性3×3网格拓扑。
图5示出了根据本发明的一个实施例的示例性12×12×3网格拓扑。
图6示出了根据本发明的一个实施例的通用高带宽连接卡的示例性实现。
图7示出了根据本发明的一个实施例的示例性3D网格拓扑,经由该3D网格拓扑的面中的一面接收输入。
图8示出了根据本发明的一个实施例的用于配置三维(3D)网格拓扑中的计算节点的方法。
图9示出了根据本发明的一个实施例的用于重新配置计算设备的方法,该计算设备具有以N×M×Z拓扑的网格布置的计算节点的集合。
具体实施方式
以下描述是为了说明本发明的一般原理,而不是为了限制本文所要求保护的发明概念。此外,本文所描述的特定特征可与其它描述的特征以各种可能的组合和排列组合使用。
除本文另有明确定义外,所有术语将被给予其最广泛的可能解释,包括说明书中暗示的含义以及本领域技术人员理解的和/或词典、论文等中定义的含义。
还必须注意,除非另有说明,如在说明书和所附权利要求中所使用的,单数形式“一”、“一个”和“该”包括复数对象。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
以下描述公开了用于配置在三维(3D)网格拓扑中的计算节点的系统、方法和计算机程序产品的若干优选实施例。
在一个一般实施例中,计算机实现的方法包括:识别要由处理设备执行的预定操作,处理设备最初具有以N×M×Z拓扑的三维(3D)网格布置的多个计算节点,其中Z<N并且Z<M,并且其中N和M至少等于4;确定在执行预定操作期间要使用的多个计算节点的最优输入/输出(I/O)带宽和/或最优节点到节点延迟;调整3D网格拓扑的尺寸以获得被调整的3D网格拓扑,被调整的3D网格拓扑实现多个计算节点的最优I/O带宽和最优节点到节点延迟,其中调整包括将多个计算节点重新配置为N'×M'×Z'拓扑的3D网格,其中N、M和Z值中的至少两个不同于它们对应的N'、M'和Z'值,并且其中N×M×Z等于N'×M'×Z';以及用被布置在N'×M'×Z'拓扑的经调整的3D网格中的多个计算节点执行预定操作。
在另一个一般性实施例中,用于配置三维(3D)网格拓扑中的计算节点的计算机程序产品包括具有随其体现的程序指令的计算机可读存储介质,其中计算机可读存储介质本身不是暂时性信号,并且其中程序指令可由处理器执行以使处理器执行方法,该方法包括由处理设备识别将由最初具有布置在N×M×Z拓扑的三维(3D)网格中的多个计算节点的处理设备执行的预定操作,其中Z<N并且Z<M,并且其中N和M至少等于4;由处理设备确定在预定操作的执行期间要使用的多个计算节点的最优输入/输出(I/O)带宽和/或最优节点到节点延迟;由处理设备调整3D网格拓扑的尺寸以获得被调整的3D网格拓扑,被调整的3D网格拓扑实现多个计算节点的最优I/O带宽和最优节点到节点延迟,其中该调整包括由处理设备将多个计算节点重新配置为N'×M'×Z'拓扑的网格,其中N、M和Z值中的至少两个不同于它们对应的N'、M'和Z'值,并且其中N×M×Z等于N'×M'×Z';以及由具有布置在N'×M'×Z'拓扑的经调整的3D网格中的多个计算节点的处理设备执行预定操作。
在另一个一般实施例中,系统包括布置在N×M×Z拓扑的网格中的计算节点的集合,节点包括计算硬件,其中Z<N且Z<M,且其中N和M至少等于4;与网格的多个侧面中的一个侧面接口连接的I/O连接的集合,该侧面具有N×M个节点,I/O连接中的每一个与该侧面中的节点中的唯一一个节点相连;以及与I/O连接相连的I/O卡。
在另一个通用实施例中,提供了计算机实现的方法,用于与具有以N×M×Z拓扑的网格布置的计算节点的集合的可重配置计算设备一起使用,计算节点包括计算硬件,其中Z<N并且Z<M,并且其中N和M至少等于4。方法包括使用计算设备来执行计算,计算的特征在于(i)初始系统I/O带宽和(ii)初始系统节点到节点延迟;将设备重新配置为N'×M'×Z'拓扑的网格,其中,N、M和Z值中的至少两个与它们对应的N'、M'和Z'值不同,并且其中,N×M×Z等于N'×M'×Z';以及使用设备来执行计算,计算的特征在于(i)修改的系统I/O带宽和(ii)修改的系统节点到节点延迟。
图1示出了根据一个实施例的架构100。如图1所示,提供了多个远程网络102,包括第一远程网络104和第二远程网络106。可以在远程网络102和邻近网络108之间耦合网关101。在本架构100的上下文中,网络104、106可以各自采取任何形式,包括但不限于LAN、诸如因特网的WAN、公共交换电话网(PSTN)、内部电话网等。
在使用中,网关101用作从远程网络102到邻近网络108的入口点。这样,网关101可以用作路由器和交换机,路由器能够引导到达网关101的给定数据分组,交换机为给定分组提供进出网关101的实际路径。
还包括耦合到邻近网络108的至少一个数据服务器114,并且其可经由网关101从远程网络102访问。可以注意,数据服务器114可以包括任何类型的计算设备/群件。多个用户设备116耦合到每个数据服务器114。用户设备116还可以通过网络104、106、108中的一个网络直接连接。该用户设备116可以包括台式计算机、膝上型计算机、手持式计算机、打印机或任何其他类型的逻辑。可以注意,在一个实施例中,用户设备111也可以直接耦合到任何网络。
外围设备120或一系列外围设备120(例如传真机、打印机、联网和/或本地存储单元或系统等)可以耦合到网络104、106、108中的一个或多个。可以注意,数据库和/或附加组件可以利用耦合到网络104、106、108的任何类型的网络元件来使用,或者集成到其中。在本说明书的上下文中,网络元件可以指网络的任何组件。
根据一些方法,可以利用虚拟系统和/或仿真一个或多个其他系统的系统和/或在其上实现本文描述的方法和系统,该一个或多个其他系统诸如仿真IBM z/OS环境的UNIX系统、虚拟地托管MICROSOFT WINDOWS环境的UNIX系统、仿真IBM z/OS环境的MICROSOFTWINDOWS系统等。在一些实施例中,可以通过使用VMWARE软件来增强这种虚拟化和/或仿真。
在更多方式中,一个或多个网络104、106、108可表示被共同称为“云”的系统的集群。在云计算中,共享资源(诸如处理能力、外围设备、软件、数据、服务器等)以按需关系被提供给云中的任何系统,从而允许服务跨许多计算系统的访问和分布。云计算通常涉及在云中操作的系统之间的因特网连接,但是也可以使用连接系统的其他技术。
图2示出了根据一个实施例的与图1的用户设备116和/或服务器114相关联的代表性硬件环境。该图示出了工作站的典型硬件配置,该工作站具有诸如微处理器的中央处理单元210和经由系统总线212互连的多个其它单元。
图2所示的工作站包括随机存取存储器(RAM)214、只读存储器(ROM)216、用于将诸如盘存储单元220的外围设备连接到总线212的I/O适配器218、用于将键盘224、鼠标226、扬声器228、麦克风232和/或其它用户接口设备(诸如触摸屏和数字相机(未示出))连接到总线212的用户接口适配器222、用于将工作站连接到通信网络235(例如,数据处理网络)的通信适配器234、以及用于将总线212连接到显示设备238的显示适配器236。
工作站上可以驻留有操作系统,例如Microsoft Windows操作系统(OS)、MACOS、UNIX OS等。可以理解,优选实施例也可以在除了所提及的那些之外的平台和操作系统上实现。优选实施例可以使用XML、C和/或C++语言或其它编程语言以及面向对象的编程方法来编写。可以使用面向对象编程(OOP),其变得越来越多地用于开发复杂应用。
现在参考图3,示出了根据一个实施例的存储系统300。注意,根据各种实施例,图3中所示的一些元件可以被实现为硬件和/或软件。存储系统300可以包括存储系统管理器312,用于与至少一个更高存储层302和至少一个更低存储层306上的多个介质通信。(多个)更高存储层302优选地可以包括一个或多个随机存取和/或直接存取介质304,例如硬盘驱动器(HDD)中的硬盘、非易失性存储器(NVM)、固态驱动器(SSD)中的固态存储器、闪存、SSD阵列、闪存阵列等和/或本文中提到的或本领域已知的其它介质。(多个)更低存储层306可优选地包括一个或多个更低性能存储介质308,包括顺序存取介质,例如磁带驱动器中的磁带和/或光学介质、更慢存取HDD、更慢存取SSD等和/或本文所述或本领域已知的其它介质。一个或多个附加存储层316可以包括系统300的设计者所期望的存储存储器介质的任意组合。而且,更高存储层302和/或更低存储层306中的任何一个可以包括存储设备和/或存储介质的某种组合。
存储系统管理器312可以通过网络310(例如图3所示的存储区域网络(SAN))或一些其它适当的网络类型与(多个)更高存储层302和(多个)更低存储层306上的存储介质304、308通信。存储系统管理器312还可以通过主机接口314与一个或多个主机系统(未示出)通信,该主机接口314可以是或者可以不是存储系统管理器312的一部分。存储系统管理器312和/或存储系统300的任何其它组件可以以硬件和/或软件来实现,并且可以利用用于执行本领域已知类型的命令的处理器(未示出),诸如中央处理单元(CPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。当然,可以使用存储系统的任何布置,如本领域技术人员在阅读本说明书时将显而易见的。
在更多实施例中,存储系统300可以包括任意数量的数据存储层,并且可以在每个存储层内包括相同或不同的存储存储器介质。例如,每个数据存储层可以包括相同类型的存储存储器介质,例如HDD、SSD、顺序存取介质(磁带驱动器中的磁带、光盘驱动器中的光盘等)、直接存取介质(CD-ROM、DVD-ROM等)、或介质存储类型的任何组合。在一个这样的配置中,更高存储层302可以包括用于在更高性能存储环境中存储数据的大部分的SSD存储介质,并且包括更低存储层306和附加存储层316的其余存储层可以包括用于在更低性能存储环境中存储数据的SSD、HDD、磁带驱动器等的任何组合。这样,更频繁访问的数据、具有更高优先级的数据、需要更快访问的数据等可以存储到更高存储层302,而不具有这些属性之一的数据可以存储到包括更低存储层306的附加存储层316。当然,本领域技术人员在阅读本说明书时,可以根据本文所呈现的实施例设计存储介质类型的许多其他组合以实现为不同的存储机制。
根据一些实施例,存储系统(诸如300)可以包括被配置为接收打开数据集的请求的逻辑、被配置为确定所请求的数据集是否在多个相关联的部分中被存储到分层数据存储系统300的更低存储层306的逻辑、被配置为将所请求的数据集的每个相关联的部分移动到分层数据存储系统300的更高存储层302的逻辑、以及被配置为将所请求的数据集从相关联的部分组合到分层数据存储系统300的更高存储层302上的逻辑。
当然,根据各种实施例,该逻辑可以被实现为任何设备和/或系统上的方法或计算机程序产品。
示例性多节点系统
一个示例性硬件多节点系统包括具有在3D网格网络拓扑中互连的计算节点的大型、高度可扩展的并行处理系统。每个计算节点可包括ARM A9 CPU和同一管芯(片上系统)上的FPGA逻辑,以及1GB的专用存储器。每个节点上的FPGA资源的可用性允许应用特定的处理器卸载。
实现3D网格拓扑的通信网络是使用连接到FPGA硬件的单跨和多跨SERDES(串行器-解串器)链路来实现的。当FPGA逻辑能够访问这些物理链路时,可以基于最适合应用的通信模式来构建定制的网络控制器。优化应用代码、中间件、系统软件和硬件上的系统性能的能力是系统的一个示例性特征。
在一个实施例中,具有使节点彼此交换信号/消息的能力的分布式存储器和计算资源的这种3D拓扑可以使能可以以无数方式使用的硬件平台来推进诸如机器智能的计算领域。
一个示例性系统可包括用于新兴机器智能算法的开发平台。它可以包括具有在高带宽3D网格网络中组织的大量计算节点的并行处理系统。该示例性平台被设计为高度灵活的。在每个节点内是在同一管芯上的双核Cortex A9 ARM处理器和FPGA,允许基于每个节点重新配置系统。每个节点还包括1GB的专用DRAM,其可以用作程序和数据空间,并且可以从处理器和FPGA访问。响应于接收到高性能学习任务,可以在FPGA上卸载和优化许多性能关键步骤,而ARM仅提供辅助支持(例如,初始化、诊断、输出传输等)。
在一个实施例中,可以通过一个或多个FPGA进行对系统的物理通信链路的访问。另外,可以建立多个不同的通信“逻辑”信道,所有这些信道都使用相同的基础SERDES链路。以此方式,可将网络接口设计(且甚至渐进地优化)为最优地适合在INC上执行的应用程序。
硬件卡
系统的一个示例性构建块是硬件卡。在一个实施例中,每个卡包括布置在3×3立方体中的二十七个节点。在另一实施例中,可以用1到N个卡来构建系统(例如,512个卡将包括13,824个节点)。
图4示出根据一个示例性实施例的单个硬件卡的示例性3×3网格拓扑400。网格拓扑400内的节点以使逻辑上相邻的节点之间的连接长度最小化的方式被放置在卡上。除了三个例外之外,单个卡上的所有节点可以是相同的。第一节点402包括以太网端口,并且用作将在FPGA上实现的内部以太网网络连接到传统外部网络的网关。第二节点404是包括可以连接到主机PC的4通道PCIe 2.0连接的控制器节点。第二节点404也具有串行连接,该串行连接可以在引导时间期间用作控制台或者可以被转发到卡上的其它节点。第三节点406能够支持PCIe接口。
图5示出根据一个示例性实施例的示例性12×12×3网格拓扑500。如图所示,十六个硬件卡通过底板连接以形成12×12×3网格拓扑500,每个硬件卡实现3×3×3立方网格(例如,参见图4)。
背板、箱体和机架
在一个示例性系统中,各个卡插入底板中。每个底板可以支持预定数量的卡(例如,十六个),并且底板布线将卡的节点布置成预定网格(例如,十六个卡产生12×12×3网格)。底板和卡可以被封闭在卡机架中。底板背面上的连接器允许垂直连接机架。
图6示出了根据一个实施例的通用高带宽连接卡602的示例性实现600。如图所示,通用高带宽连接卡602直接连接到底板604,底板604支持以三维(3D)网格拓扑布置的多个计算节点。通用高带宽连接卡602还经由诸如信息带(Infiniband)612、高速以太网614和高带宽连接616的连接连接到外部数据源606、外部存储器608和外部服务器610。以此方式,通用高带宽连接卡602可以促进在以三维(3D)网格拓扑布置的多个计算节点与外部数据源606、外部存储装置608和外部服务器610之间的通信。
图7示出了根据一个示例性实施例的示例性3D网格拓扑700,其经由其面702之一接收输入。如图所示,3D网格拓扑700的顶面702执行3D网格拓扑700内的多个计算节点的I/O操作,从而示出3D网格拓扑700的约束。
物理链路
卡上的每个节点可以通过单跨接链路连接到其最近的正交邻居,其中每个节点具有预定数量(例如,六个)的双向单跨接链路。立方体的面上的节点(即,除了中心节点之外的所有节点等)具有离开卡的单跨接链路,并且该节点可以具有系统中的其他卡上的最近邻居。除了单跨接链路之外,六个双向多跨接链路允许更大系统中的更有效通信。多跨接链路连接在任何一个正交方向上分开三部分的节点,并且可以在不同的卡上开始和终止。在一个实施例中,在总共432个链路离开或进入卡且每链路每秒1千兆字节(GB)的情况下,可每卡获得每秒432GB的潜在最大带宽。
通信链路可以包括高速、串行、单向SERDES链路。链路可以具有两条导线(例如,差分数据线)。链路可以由信用机制控制以确保不会发生超限错误并且不会丢失数据。接收链路(经由其配对的传输链路)发送它愿意接收多少字节数据的计数。发送链路将在发送数据时递减其计数,并且可以从不发送比其从接收器保存信用更多的数据。接收侧将在释放缓冲器空间时增加信用余额。该信用系统完全在硬件结构中实现,并且可以不涉及ARM处理器或软件。
分组路由
在一个实施例中,通信网络可以支持定向和广播分组路由机制,以及多播或网络缺陷避免机制。
在定向路由模式中,可以将源自计算节点的处理器复合体或FPGA部分的分组路由到单个目的地。单跨接链路和多跨接链路都可用于路由,并且将以最小数量的跳(hop)来递送分组。分组路由机制可以完全在FPGA构造上实现,并且ARM处理器可以仅被包括在源和目的地节点处。
在一个实施例中,广播分组可以从源节点向所有方向辐射出去,并且可以被递送到系统中的每个节点。为了路由的简化,广播分组仅使用系统中的单跨接链路。根据哪个链路接收到广播分组,接收节点可以选择a)转发到所有其它链路,b)转发到链路的子集,或者c)停止转发。通过仔细地选择这三种情况的规则,可以确保系统中的所有节点确切接收到广播分组的一个副本。
连接性和通信
多个虚拟信道可以被设计为位于上述底层路由器逻辑的顶上,以向处理器和FPGA逻辑提供到通信网络的不同虚拟或逻辑接口。
示例性配置
现在参考图8,示出了根据一个实施例的用于配置三维(3D)网格拓扑中的计算节点的方法800的流程图。根据本发明,可以在图1-7中描述的任何环境中执行方法800。当然,如本领域技术人员在阅读本说明书时将理解的,方法800中可以包括比图8中具体描述的操作更多或更少的操作。
方法800的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法800可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法800的一个或多个步骤。说明性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合、或本领域已知的任何其它合适的计算设备。
如图8所示,方法800可以以操作802开始,其中识别将由处理设备执行的预定操作,该处理设备最初具有以三维(3D)N×M×Z网格拓扑布置的多个计算节点,其中Z<N并且Z<M,并且其中N和M至少等于4。在一个实施例中,多个计算节点中的每一个可以包括可编程集成电路(例如,现场可编程门阵列(FPGA)、中央处理单元(CPU)、图形处理单元(GPU)等)。在另一实施例中,计算节点可以使用印刷电路板(PCB)布线物理地布置在一个或多个硬件卡上。
另外,在一个实施例中,包含计算节点的多个硬件卡可以使用一个或多个底板互连。例如,每个底板可以实现单独的硬件卡组之间的通信。在另一个实施例中,计算节点可以经由底板和连接卡与外部数据源通信。例如,通用高带宽连接卡可以实现多个计算节点(经由底板)与诸如外部存储装置、服务器等的外部数据源(经由诸如信息带、高速以太网等的一个或多个连接)之间的通信。
此外,在一个实施例中,3D网格拓扑可以包括多个计算节点的三维分组。例如,3D网格拓扑可以具有高度尺寸(N)、宽度尺寸(M)和深度尺寸(Z)。在另一实施例中,预定操作可以包括能够由多个计算节点执行的任何处理操作。
例如,预定操作可以包括数据创建、数据修改、数据删除、数据传送、数据复制等中的一个或多个。在另一示例中,预定操作可以由一个或多个预定应用发送到多个计算节点。在又一示例中,预定操作可以被包括在神经网络实现内。
此外,在一个实施例中,可以从一个或多个外部数据源(例如,一个或多个外部服务器等)发送预定操作。
此外,方法800可以继续进行操作804,其中,针对要在执行预定操作期间使用的多个计算节点,确定最优输入/输出(I/O)带宽和/或最优节点到节点延迟。在一个实施例中,3D网格拓扑可以具有六个面(例如,这六个面中的每一个可以是3D网格拓扑的一个侧面)。在另一实施例中,3D网格拓扑可以具有基于3D网格拓扑的物理构造的预定约束。
例如,与多个计算节点通信的底板可以仅与3D网格的单个面通信(例如,执行I/O操作)。在另一个示例中,底板可以实现与外部数据源的通信。例如,通信可以包括从外部数据源接收预定操作、将由那些预定操作产生的数据输出到外部数据源等。在另一示例中,多个计算节点中的每一个可以仅与3D网格拓扑内的节点的直接邻居对话。
此外,在一个实施例中,I/O带宽可以指示经由可用底板去往和来自多个计算节点的最大带宽。在另一实施例中,节点到节点延迟可以指示在3D网格拓扑内具有最远距离的计算节点之间的最坏情况延迟。在又一个实施例中,最优输入/输出(I/O)带宽和最优节点到节点延迟可以包括针对预定操作确定的预定带宽和延迟数目,其优化由多个计算节点执行预定操作的性能。
此外,方法800可以继续进行操作806,其中调整3D网格拓扑的尺寸以获得被调整的3D网格拓扑,该被调整的3D网格拓扑实现多个计算节点的最优I/O带宽和最优节点到节点延迟,其中该调整包括将多个计算节点重新配置为N'×M'×Z'拓扑的网格,其中N、M和Z值中的至少两个与它们对应的N'、M'和Z'值不同,并且其中N×M×Z等于N'×M'×Z'。在一个实施例中,鉴于3D网格拓扑的预定约束,可以对3D网格拓扑的大小进行调整,这改变了多个计算节点的I/O带宽和节点到节点延迟。
此外,在一个实施例中,可以将原始3D网格拓扑中的多个计算节点的当前I/O带宽与最优I/O带宽进行比较。在另一实施例中,响应于确定最优I/O带宽大于当前I/O带宽,可以增加执行I/O的3D网格拓扑的面的大小,以便增加多个计算节点的I/O带宽。
例如,可以通过将预定操作从外部数据源经由背板引导到3D网格拓扑内的增加数量的计算节点来扩大3D网格拓扑的面的大小。在另一示例中,3D网格拓扑内的每个计算节点可以具有一个或多个I/O连接。在又一示例中,通过经由底板将预定操作从外部数据源发送到增加数量的计算节点,参与与外部数据源的I/O的节点的数量可增加,这可增加经由底板通信的3D网格的单个面的大小。在又一示例中,增加执行I/O的3D网格拓扑的面的大小也可增加3D网格拓扑内的最远计算节点之间的距离,这可增加节点到节点延迟。
此外,在一个实施例中,响应于确定最优I/O带宽小于当前I/O带宽,当前3D网格拓扑可以不变。
另外,在一个实施例中,可以将原始3D网格拓扑中的多个计算节点的当前节点到节点延迟与最优节点到节点延迟进行比较。在另一实施例中,响应于确定最优节点到节点延迟小于当前节点到节点延迟,可以减小3D网格拓扑内的最远计算节点之间的距离,以便减小多个计算节点内的节点到节点延迟。
例如,3D网格拓扑内的最远计算节点之间的距离可以通过调整3D网格拓扑内的每个面的大小来调整。在另一示例中,当3D网格拓扑的每个面的大小相等时,3D网格拓扑内的最远计算节点之间的距离被最小化。在又一示例中,执行I/O的3D网格拓扑的面的大小可以在大小上增加或减小(例如,使用以上技术),以使该面的大小更接近3D网格拓扑的其它面的大小,从而最小化3D网格拓扑内的最远计算节点之间的距离。在又一示例中,减小执行I/O的3D网格拓扑的面的大小可以减小多个计算节点的I/O带宽。
此外,在一个实施例中,响应于确定最优的节点到节点延迟大于当前的节点到节点延迟,当前的3D网格拓扑可以不变。
此外,方法800可以继续进行操作808,其中,用被布置在被调整的N'×M'×Z'拓扑的3D网格中的多个计算节点执行预定操作。在一个实施例中,预定操作可以作为输入被发送到以被调整的3D网格拓扑布置的多个计算节点。在另一个实施例中,可以利用连接卡、一个或多个底板等将预定操作发送到计算节点。
例如,预定操作可以从外部数据源发送到连接卡,连接卡依次经由底板将操作发送到计算节点。在另一个示例中,由多个计算节点产生的任何输出可以经由底板和连接卡被发送回外部数据源(或另一个外部数据源)。
这样,当执行预定操作时,多个计算节点可以以优化的方式动态地布置。该优化布置可以改进由多个计算节点对预定操作的实现,这进而可以减少多个计算节点所需的处理量和/或功率。结果,可以提高多个计算节点的性能。
现在参考图9,根据一个实施例示出了用于重新配置具有以N×M×Z拓扑的网格布置的计算节点的集合的计算设备的方法900的流程图。在一个实施例中,节点包括计算硬件,Z<N和Z<M,并且N和M至少等于4。方法900可以根据本发明在图1-7中所描述的任何环境(除其它外)中执行。当然,如本领域技术人员在阅读本说明书时将理解的,在方法900中可以包括比图9中具体描述的操作更多或更少的操作。
方法900的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法900可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法900的一个或多个步骤。说明性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合、或本领域已知的任何其它合适的计算设备。
如图9所示,方法900可以开始于操作902,其中设备用于执行计算,该计算由以下来特征化:(i)初始系统I/O带宽和(ii)初始系统节点到节点延迟。另外,方法900可以继续进行操作904,其中设备被重新配置为N'×M'×Z'拓扑的网格,其中N、M和Z值中的至少两个与它们对应的N'、M'和Z'值不同,并且其中N×M×Z等于N'×M'×Z'。
此外,方法900可以继续进行操作906,其中设备用于执行计算,该计算由以下来特征化:(i)修改的系统I/O带宽和(ii)修改的系统节点到节点延迟。在一个实施例中,修改的I/O带宽大于初始I/O带宽。在另一实施例中,修改的系统节点到节点延迟小于初始系统节点到节点延迟。
在一个实施例中,系统包括布置在N×M×Z拓扑的网格中的计算节点的集合,该节点包括计算硬件,其中Z<N且Z<M,并且其中N和M至少等于4。系统还包括与网格的多个侧面中的一个侧面接口连接的I/O连接的集合,该侧面具有N×M个节点,多个连接中的每一个连接被绑定到该侧面中的节点中的唯一一个节点。此外,该系统包括与I/O连接相连的I/O卡。在一个实施例中,计算硬件是从组中选择的,该组包括CPU、GPU、FPGA和存储器元件。
另外,在一个实施例中,系统包括被布置在N×M×Z拓扑的网格中的计算节点的集合,该节点包括计算硬件,其中(i)Z≤N/2且Z≤M/2;(ii)N和M至少等于4。这种拓扑的示例包括12×12×6网格拓扑和16×16×3网格拓扑。该配置可以通过最大化执行I/O的3D网格拓扑的面来改进系统的I/O性能。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),该计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
此外,根据各种实施例的系统可以包括处理器和与处理器集成和/或可由处理器执行的逻辑,该逻辑被配置为执行本文所述的过程步骤中的一个或多个。处理器可以是如本文所述的任何配置,例如分立处理器或包括诸如处理硬件、存储器、I/O接口等许多组件的处理电路。所谓与其集成,是指处理器具有与其一起嵌入的逻辑作为硬件逻辑,诸如专用集成电路(ASIC)、FPGA等。通过可由处理器执行,意味着逻辑是硬件逻辑;软件逻辑,例如固件、操作系统的一部分、应用程序的一部分;等等,或者硬件和软件逻辑的某种组合,其可由处理器访问并且被配置成使处理器在由处理器执行时执行某种功能。软件逻辑可以存储在任何存储器类型的本地和/或远程存储器上,如本领域所公知的。可以使用本领域已知的任何处理器,诸如软件处理器模块和/或硬件处理器,诸如ASIC、FPGA、中央处理单元(CPU)、集成电路(IC)、图形处理单元(GPU)等。
很清楚,前述系统和/或方法的各种特征可以以任何方式组合,从而从以上所呈现的描述中产生多个组合。
还可以理解,本发明的实施例可以以代表客户部署的服务的形式提供,以便按需提供服务。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
Claims (24)
1.一种计算机实现的方法,包括:
识别要由处理设备执行的预定操作,所述处理设备最初具有以N×M×Z拓扑的三维(3D)网格布置的多个计算节点,其中Z<N并且Z<M,并且其中N和M至少等于4;
确定在执行所述预定操作期间要被使用的所述多个计算节点的最优输入/输出(I/O)带宽和/或最优节点到节点延迟;
调整所述3D网格拓扑的尺寸以获得被调整的3D网格拓扑,所述被调整的3D网格拓扑实现所述多个计算节点的最优I/O带宽和最优节点到节点延迟,其中所述调整包括将所述多个计算节点重新配置为N'×M'×Z'拓扑的3D网格,其中N、M和Z值中的至少两个与它们对应的N'、M'和Z'值不同,并且其中N×M×Z等于N'×M'×Z';以及
用被布置在所述被调整的N'×M'×Z'拓扑的3D网格中的所述多个计算节点执行所述预定操作。
2.根据权利要求1所述的计算机实现的方法,其中,所述多个计算节点中的每个计算节点是从组中选择的,所述组包括:
现场可编程门阵列(FPGA),
中央处理器(CPU),以及
图形处理单元(GPU)。
3.根据权利要求1所述的计算机实现的方法,其中,使用印刷电路板(PCB)布线将所述多个计算节点物理地布置在多个硬件卡上,并且所述多个硬件卡使用一个或多个底板互连。
4.根据权利要求1所述的计算机实现的方法,包括:
响应于(i)确定所述最优I/O带宽大于当前I/O带宽,(ii)增大所述3D网格拓扑的执行I/O的面的大小,从而增大所述多个计算节点的所述I/O带宽。
5.根据权利要求1所述的计算机实现的方法,包括:
响应于(i)确定所述最优节点到节点延迟小于当前节点到节点延迟,(ii)减小所述3D网格拓扑内的最远计算节点之间的距离,以减小所述多个计算节点内的节点到节点延迟,
其中,通过调整所述3D网格拓扑内的每个面的大小来调整所述3D网格拓扑内的最远计算节点之间的距离,从而经由背板将所述预定操作从外部数据源引导到所述3D网格拓扑内的增加或减少数量的计算节点。
6.根据权利要求1所述的计算机实现的方法,其中,所述预定操作作为输入被发送到以所述被调整的3D网格拓扑布置的所述多个计算节点。
7.根据权利要求1所述的计算机实现的方法,其中,利用连接卡和一个或多个底板将所述预定操作发送到所述多个计算节点。
8.根据权利要求1所述的计算机实现的方法,包括经由底板和连接卡将由所述多个计算节点产生的输出发送到外部数据源。
9.一种计算机程序产品,用于配置三维(3D)网格拓扑中的计算节点,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,其中所述计算机可读存储介质本身不是暂时性信号,所述程序指令可由处理设备执行以使所述处理设备执行方法,所述方法包括:
由所述处理设备识别要由所述处理设备执行的预定操作,所述处理设备最初具有以N×M×Z拓扑的所述三维(3D)网格布置的多个计算节点,其中Z<N并且Z<M,并且其中N和M至少等于4;
由所述处理设备确定在所述预定操作的执行期间要被使用的所述多个计算节点的最优输入/输出(I/O)带宽和/或最优节点到节点延迟;
由所述处理设备调整所述3D网格拓扑的尺寸以获得被调整的3D网格拓扑,所述被调整的3D网格拓扑实现所述多个计算节点的最优I/O带宽和最优节点到节点延迟,其中所述调整包括由所述处理设备将所述多个计算节点重新配置为N'×M'×Z'拓扑的网格,其中N、M和Z值中的至少两个与它们对应的N'、M'和Z'值不同,并且其中N×M×Z等于N'×M'×Z';以及
由具有被布置在被调整的N'×M'×Z'拓扑的3D网格中的所述多个计算节点的所述处理设备执行所述预定操作。
10.根据权利要求9所述的计算机程序产品,其中所述多个计算节点中的每个计算节点是从组中选择的,所述组包括:
现场可编程门阵列(FPGA),
中央处理器(CPU),以及
图形处理单元(GPU)。
11.根据权利要求9所述的计算机程序产品,其中,使用印刷电路板(PCB)布线将所述多个计算节点物理地布置在多个硬件卡上,并且所述多个硬件卡使用一个或多个底板互连。
12.根据权利要求9所述的计算机程序产品,包括:
响应于(i)确定所述最优I/O带宽大于当前I/O带宽,(ii)增大所述3D网格拓扑的执行I/O的面的大小,从而增大所述多个计算节点的所述I/O带宽。
13.根据权利要求9所述的计算机程序产品,包括:
响应于(i)确定所述最优节点到节点延迟小于当前节点到节点延迟,(ii)减小所述3D网格拓扑内的最远计算节点之间的距离,以减小所述多个计算节点内的节点到节点延迟,
其中,通过调整所述3D网格拓扑内的每个面的大小来调整所述3D网格拓扑内的最远计算节点之间的距离,从而经由背板将所述预定操作从外部数据源引导到所述3D网格拓扑内的增加或减少数量的计算节点。
14.根据权利要求9所述的计算机程序产品,其中,所述预定操作作为输入被发送到以所述被调整的3D网格拓扑布置的所述多个计算节点。
15.根据权利要求9所述的计算机程序产品,其中,利用连接卡和一个或多个底板将所述预定操作发送到所述多个计算节点。
16.根据权利要求9所述的计算机程序产品,包括经由底板和连接卡将由所述多个计算节点产生的输出发送到外部数据源。
17.一种系统,包括:
被布置在N×M×Z拓扑的网格中的计算节点的集合,所述节点包括计算硬件,其中Z<N并且Z<M,并且其中N和M至少等于4;
与所述网格的多个侧面中的一个侧面进行接口连接的I/O连接的集合,所述侧面具有N×M个节点,所述I/O连接中的每一个与所述侧面中的节点中的唯一一个节点相连;以及
与所述I/O连接相连的I/O卡。
18.根据权利要求17所述的系统,其中,所述计算硬件是从组中选择的,所述组包括中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)和存储器元件。
19.根据权利要求17所述的系统,其中Z≤N/2,Z≤M/2。
20.一种用于与可重配置计算设备一起使用的计算机实现的方法,所述可重配置计算设备具有以N×M×Z拓扑的网格布置的计算节点的集合,所述计算节点包括计算硬件,其中Z<N并且Z<M,并且其中N和M至少等于4,所述方法包括:
使用所述计算设备来执行计算,所述计算由以下来特征化:(i)初始系统I/O带宽和(ii)初始系统节点到节点延迟;
将所述设备重新配置为N'×M'×Z'拓扑的网格,其中,N、M和Z值中的至少两个与它们对应的N'、M'和Z'值不同,并且其中,N×M×Z等于N'×M'×Z';以及
使用所述设备来执行计算,所述计算由以下来特征化:(i)修改的系统I/O带宽和(ii)修改的系统节点到节点延迟。
21.根据权利要求20所述的计算机实现的方法,其中,所述修改的系统I/O带宽大于所述初始系统I/O带宽。
22.根据权利要求20所述的计算机实现的方法,其中,所述修改的系统节点到节点延迟小于所述初始系统节点到节点延迟。
23.根据权利要求20所述的计算机实现的方法,其中,所述计算硬件从组中选择,所述组包括CPU、GPU、FPGA和存储器元件。
24.根据权利要求20所述的计算机实施的方法,其中Z≤N/2且Z≤M/2。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/812,053 | 2020-03-06 | ||
US16/812,053 US11184245B2 (en) | 2020-03-06 | 2020-03-06 | Configuring computing nodes in a three-dimensional mesh topology |
PCT/IB2021/050535 WO2021176279A1 (en) | 2020-03-06 | 2021-01-25 | Configuring computing nodes in a three-dimensional mesh topology |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115244900A true CN115244900A (zh) | 2022-10-25 |
CN115244900B CN115244900B (zh) | 2024-02-09 |
Family
ID=77556274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180019188.2A Active CN115244900B (zh) | 2020-03-06 | 2021-01-25 | 用于配置三维网格拓扑中的计算节点的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11184245B2 (zh) |
JP (1) | JP2023517172A (zh) |
CN (1) | CN115244900B (zh) |
DE (1) | DE112021001470T5 (zh) |
GB (1) | GB2608556A (zh) |
WO (1) | WO2021176279A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11184245B2 (en) | 2020-03-06 | 2021-11-23 | International Business Machines Corporation | Configuring computing nodes in a three-dimensional mesh topology |
CN115514642B (zh) * | 2022-09-22 | 2023-11-17 | 湖南泛联新安信息科技有限公司 | 一种基于分割通信需求的多fpga平台网络拓扑优化方法 |
CN115797572B (zh) * | 2023-01-20 | 2023-04-21 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种空间网格生成方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101055535A (zh) * | 2006-04-13 | 2007-10-17 | 国际商业机器公司 | 并行计算机和定位并行计算机中硬件故障的方法 |
US20160112506A1 (en) * | 2014-10-16 | 2016-04-21 | Fujitsu Limited | Computer system, processing method, and computer-readable recording medium having job processing program |
CN107959643A (zh) * | 2017-12-29 | 2018-04-24 | 曙光信息产业(北京)有限公司 | 一种通过交换芯片构建的交换系统及其路由算法 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2227341A (en) | 1989-01-18 | 1990-07-25 | Intel Corp | Message routing in a multiprocessor computer system |
US6647428B1 (en) | 2000-05-05 | 2003-11-11 | Luminous Networks, Inc. | Architecture for transport of multiple services in connectionless packet-based communication networks |
US7075892B2 (en) | 2000-11-03 | 2006-07-11 | Telecommunications Research Laboratories | Topological design of survivable mesh-based transport networks |
US8335909B2 (en) | 2004-04-15 | 2012-12-18 | Raytheon Company | Coupling processors to each other for high performance computing (HPC) |
US20080101395A1 (en) | 2006-10-30 | 2008-05-01 | Raytheon Company | System and Method for Networking Computer Clusters |
US8160061B2 (en) | 2006-12-29 | 2012-04-17 | Raytheon Company | Redundant network shared switch |
US9071246B2 (en) | 2007-09-14 | 2015-06-30 | Agate Logic, Inc. | Memory controller for heterogeneous configurable integrated circuits |
JP2011517220A (ja) | 2008-04-10 | 2011-05-26 | アルカテル−ルーセント ユーエスエー インコーポレーテッド | トポロジ抽出方法、トポロジ抽出装置、およびルートコントローラ |
US20110103391A1 (en) | 2009-10-30 | 2011-05-05 | Smooth-Stone, Inc. C/O Barry Evans | System and method for high-performance, low-power data center interconnect fabric |
US8774632B2 (en) | 2010-04-27 | 2014-07-08 | Ciena Corporation | Reconfigurable optical add drop multiplexer node automated topology discovery systems and methods |
IT1403031B1 (it) | 2010-11-19 | 2013-09-27 | Eurotech S P A | Apparecchiatura di rete unificata per sistemi di supercalcolo scalabili |
US8830873B2 (en) | 2011-05-08 | 2014-09-09 | Infinetics Technologies, Inc. | Flexible radix switch |
EP2568673A1 (en) | 2011-08-30 | 2013-03-13 | ABB Technology AG | Parallel Redundancy Protocol, PRP, packet duplication over VLANs based on Spanning Tree instances. |
US8891360B2 (en) | 2012-05-04 | 2014-11-18 | Infinera Corporation | Optimal segment identification for shared mesh protection |
EP2688342B1 (en) | 2012-07-19 | 2018-02-21 | TerraNet AB | Soft Topology Reconfiguration for Improved Robustness in a Mesh Network |
EP3142016B1 (en) | 2012-11-21 | 2021-10-13 | Coherent Logix Incorporated | Processing system with interspersed processors dma-fifo |
KR101769757B1 (ko) | 2013-06-28 | 2017-08-21 | 인텔 코포레이션 | 소스 동기식 회선 교환 네트워크 온 칩(noc)을 위한 방법, 장치 및 시스템 |
US20150301964A1 (en) | 2014-02-18 | 2015-10-22 | Alistair Mark Brinicombe | Methods and systems of multi-memory, control and data plane architecture |
US20150261724A1 (en) | 2014-03-14 | 2015-09-17 | Emilio Billi | Massive parallel exascale storage system architecture |
US9558143B2 (en) | 2014-05-09 | 2017-01-31 | Micron Technology, Inc. | Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device |
WO2017009859A1 (en) | 2015-07-10 | 2017-01-19 | Prasad Lalathuputhanpura Kochukunju | Amicro data center (mdc) in a box system and method thereof |
EP3400688B1 (en) | 2016-01-04 | 2020-05-20 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications |
US10374885B2 (en) | 2016-12-13 | 2019-08-06 | Amazon Technologies, Inc. | Reconfigurable server including a reconfigurable adapter device |
WO2018151640A1 (en) | 2017-02-17 | 2018-08-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Network node and method therein for transmitting a message in a mesh network |
US10496561B2 (en) | 2017-04-18 | 2019-12-03 | Advanced Micro Devices, Inc. | Resilient vertical stacked chip network for routing memory requests to a plurality of memory dies |
US10674558B2 (en) | 2017-05-24 | 2020-06-02 | Vivint Wireless, Inc. | Mesh topology radio |
US10394747B1 (en) | 2017-05-31 | 2019-08-27 | Mellanox Technologies Ltd. | Implementing hierarchical PCI express switch topology over coherent mesh interconnect |
CN110915173B (zh) | 2017-07-10 | 2022-04-29 | 芬基波尔有限责任公司 | 用于计算节点和存储节点的数据处理单元 |
US10477288B2 (en) | 2018-02-05 | 2019-11-12 | David I-Keong Wong | Data center interconnect as a switch |
US20190236038A1 (en) | 2018-12-20 | 2019-08-01 | Swadesh Choudhary | Buffered interconnect for highly scalable on-die fabric |
US11184245B2 (en) | 2020-03-06 | 2021-11-23 | International Business Machines Corporation | Configuring computing nodes in a three-dimensional mesh topology |
-
2020
- 2020-03-06 US US16/812,053 patent/US11184245B2/en active Active
-
2021
- 2021-01-25 DE DE112021001470.6T patent/DE112021001470T5/de active Pending
- 2021-01-25 JP JP2022546577A patent/JP2023517172A/ja active Pending
- 2021-01-25 WO PCT/IB2021/050535 patent/WO2021176279A1/en active Application Filing
- 2021-01-25 GB GB2214679.9A patent/GB2608556A/en active Pending
- 2021-01-25 CN CN202180019188.2A patent/CN115244900B/zh active Active
- 2021-09-21 US US17/480,956 patent/US11646944B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101055535A (zh) * | 2006-04-13 | 2007-10-17 | 国际商业机器公司 | 并行计算机和定位并行计算机中硬件故障的方法 |
US20160112506A1 (en) * | 2014-10-16 | 2016-04-21 | Fujitsu Limited | Computer system, processing method, and computer-readable recording medium having job processing program |
CN107959643A (zh) * | 2017-12-29 | 2018-04-24 | 曙光信息产业(北京)有限公司 | 一种通过交换芯片构建的交换系统及其路由算法 |
Non-Patent Citations (1)
Title |
---|
BRETT STANLEY FEERO 等: "Networks-on-Chip in a Three-Dimensional Environment: A Performance Evaluation", IEEE TRANSACTIONS ON COMPUTERS, vol. 58, no. 1 * |
Also Published As
Publication number | Publication date |
---|---|
CN115244900B (zh) | 2024-02-09 |
WO2021176279A1 (en) | 2021-09-10 |
US11184245B2 (en) | 2021-11-23 |
GB202214679D0 (en) | 2022-11-23 |
GB2608556A (en) | 2023-01-04 |
JP2023517172A (ja) | 2023-04-24 |
US20210281488A1 (en) | 2021-09-09 |
DE112021001470T5 (de) | 2023-01-05 |
US11646944B2 (en) | 2023-05-09 |
US20220006702A1 (en) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115244900B (zh) | 用于配置三维网格拓扑中的计算节点的方法和系统 | |
US10996879B2 (en) | Locality-based load balancing of input-output paths | |
TWI677791B (zh) | 非揮發性快閃記憶體刀鋒及相關聯的多卡模組、以及用於組態及操作模組化非揮發性快閃記憶體刀鋒的方法 | |
US8433770B2 (en) | Combined local and network storage interface | |
US9678912B2 (en) | Pass-through converged network adaptor (CNA) using existing ethernet switching device | |
JP7010598B2 (ja) | 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法、管理システム、及び管理装置 | |
US9720864B2 (en) | Flexible server system | |
JP2021530813A (ja) | 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間 | |
JP7442523B2 (ja) | ワークロードの特性を使用したストレージ層間のデータ転送によるデータ性能の向上 | |
US11379127B2 (en) | Method and system for enhancing a distributed storage system by decoupling computation and network tasks | |
US11050825B1 (en) | Storage system port usage information sharing between host devices | |
US20210232468A1 (en) | Fast multipath failover | |
US11003607B2 (en) | NVMF storage to NIC card coupling over a dedicated bus | |
US20190243796A1 (en) | Data storage module and modular storage system including one or more data storage modules | |
US11061931B2 (en) | Scalable and balanced distribution of asynchronous operations in data replication systems | |
US20070121621A1 (en) | Integrated active-active fibre channel capability in SATA and SAS devices | |
US11368399B2 (en) | Congestion aware multipathing based on network congestion notifications | |
US11194742B2 (en) | Detecting potentially overlapping input/output queues | |
Chou et al. | Sharma et al. | |
US11698878B1 (en) | Highspeed shared-memory optical network interfaces and topology | |
KR101914833B1 (ko) | 과학적 계산을 위한 저장 프로세서 어레이 | |
EP2300925A1 (en) | System to connect a serial scsi array controller to a storage area network | |
US20180323859A1 (en) | Wireless data transfer between servers | |
US11726660B1 (en) | Techniques for flexible physical drive expansion using a loop back connection | |
Harnish et al. | Storage Area Networks in Embedded Processing |
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 |