用于并行计算机中的集体操作协议选择的方法和系统.pdf

上传人:a3 文档编号:1566148 上传时间:2018-06-25 格式:PDF 页数:26 大小:6.19MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210281401.X

申请日:

2012.08.09

公开号:

CN103150144A

公开日:

2013.06.12

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/38申请日:20120809|||公开

IPC分类号:

G06F9/38

主分类号:

G06F9/38

申请人:

国际商业机器公司

发明人:

C·J·阿奇; M·A·布劳克瑟姆; J·D·拉特曼; B·E·史密斯

地址:

美国纽约

优先权:

2011.08.09 US 13/206,116

专利代理机构:

中国国际贸易促进委员会专利商标事务所 11038

代理人:

付建军

PDF下载: PDF下载
内容摘要

本发明涉及用于并行计算机中的集体操作协议选择的方法和系统。可以通过调用具有操作参数的集体操作、选择用于执行该操作的协议以及利用选择的协议执行该操作,来执行包括计算节点的并行计算机中的集体操作协议选择。选择协议包括反复执行如下操作直到一个预期协议满足预定性能标准:向用于该预期协议的协议性能函数提供所述操作参数;通过评估预定义性能拟合方程以及计算针对所述操作参数的协议的性能度量,来确定该预期协议是否满足预定义性能标准;仅当计算的性能度量大于预定义最小性能阈值时,才确定该预期协议满足预定性能标准并且选择该协议用于执行所述操作。

权利要求书

权利要求书一种用于并行计算机中的集体操作协议选择的方法,所述并行计算机包括多个计算节点,所述方法包括:
调用具有一个或多个操作参数的集体操作;
选择用于执行该集体操作的多个协议之一,包括针对从第一预期协议开始直到满足预定性能标准的预期协议的每个协议,反复地执行如下操作:
向用于该预期协议的协议性能函数提供所述集体操作的操作参数;
通过性能函数确定针对所述操作参数该预期协议是否满足预定义性能标准,包括利用所述操作参数评估针对该预期协议的预定义性能拟合方程,计算针对所述操作参数的该预期协议的性能度量;以及
仅当计算的性能度量大于预定义最小性能阈值时,确定该预期协议满足预定性能标准并且选择该预期协议作为用于执行所述集体操作的协议;以及
利用选择的协议执行所述集体操作。
权利要求1的方法,其中:
集体操作的每个协议与元数据关联,针对每个集体操作的元数据包括指向协议的性能函数的指针;以及
向用于该预期协议的协议性能函数提供所述集体操作的操作参数还包括从该预期协议的元数据取回指向该预期协议的性能函数的指针。
权利要求1的方法,还包括:
在协议选择之前,针对所述集体操作的一组或多组操作参数以及一个或多个预期协议:确定该预期协议是否满足预定性能标准;以及
当建立计算节点的工作组时缓存满足预定性能标准的预期协议的每个确定,
其中,选择用于执行所述集体操作的多个协议之一还包括:
针对所述集体操作的操作参数,确定是否存在缓存的满足预定性能标准的预期协议的确定;以及
如果存在缓存的满足预定性能标准的预期协议的确定,则选择该预期协议作为用于执行所述集体操作的协议,而不在协议选择期间计算针对所述操作参数的预期协议的性能度量。
权利要求1的方法,还包括:
针对所述集体操作的每个协议,建立预定义性能拟合方程,包括:
针对多组操作参数中的每一组执行一次该协议;
针对每次执行,记录性能度量;以及
为记录的性能度量计算拟合方程。
权利要求1的方法,其中,为记录的性能度量计算拟合方程还包括计算以下之一:
线性近似拟合方程;
立方近似拟合方程;以及
四次近似拟合方程。
权利要求1的方法,其中,为记录的性能度量计算拟合方程还包括为所有可能的操作参数计算确切函数。
一种用于并行计算机中的集体操作协议选择的设备,所述并行计算机包括多个计算节点,所述设备包括计算机处理器、可操作地耦合到计算机处理器的计算机存储器,该计算机存储器内设置有计算机程序指令,所述计算机程序指令当由计算机处理器执行时使得所述设备执行如下步骤:
调用具有一个或多个操作参数的集体操作;
选择用于执行该集体操作的多个协议之一,包括针对从第一预期协议开始直到满足预定性能标准的预期协议的每个协议,反复地执行如下操作:
向用于该预期协议的协议性能函数提供所述集体操作的操作参数;
通过性能函数确定针对所述操作参数该预期协议是否满足预定义性能标准,包括利用所述操作参数评估针对该预期协议的预定义性能拟合方程,计算针对所述操作参数的该预期协议的性能度量;以及
仅当计算的性能度量大于预定义最小性能阈值时,确定该预期协议满足预定性能标准并且选择该预期协议作为用于执行所述集体操作的协议;以及
利用选择的协议执行所述集体操作。
权利要求7的设备,其中:
集体操作的每个协议与元数据关联,针对每个集体操作的元数据包括指向协议的性能函数的指针;以及
向用于该预期协议的协议性能函数提供所述集体操作的操作参数还包括从该预期协议的元数据取回指向该预期协议的性能函数的指针。
权利要求7的设备,还包括计算机程序指令,所述计算机程序指令当由计算机处理器执行时使所述设备执行如下步骤:
在协议选择之前,针对所述集体操作的一组或多组操作参数以及一个或多个预期协议:确定该预期协议是否满足预定性能标准;以及
当建立计算节点的工作组时缓存满足预定性能标准的预期协议的每个确定,
其中,选择用于执行所述集体操作的多个协议之一还包括:
针对所述集体操作的操作参数,确定是否存在缓存的满足预定性能标准的预期协议的确定;以及
如果存在缓存的满足预定性能标准的预期协议的确定,则选择该预期协议作为用于执行所述集体操作的协议,而不在协议选择期间计算针对所述操作参数的预期协议的性能度量。
权利要求7的设备,还包括计算机程序指令,所述计算机程序指令当由计算机处理器执行时使所述设备执行如下步骤:
针对所述集体操作的每个协议,建立预定义性能拟合方程,包括:
针对多组操作参数中的每一组执行一次该协议;
针对每次执行,记录性能度量;以及
为记录的性能度量计算拟合方程。
权利要求7的设备,其中,为记录的性能度量计算拟合方程还包括计算以下之一:
线性近似拟合方程;
立方近似拟合方程;以及
四次近似拟合方程。
权利要求7的设备,其中,为记录的性能度量计算拟合方程还包括为所有可能的操作参数计算确切函数。

说明书

说明书用于并行计算机中的集体操作协议选择的方法和系统
技术领域
本发明的领域是数据处理,或者更具体地讲是用于并行计算机中的集体操作协议选择的方法、设备和产品。
背景技术
1948年的EDVAC计算机系统的开发常被引述为计算机时代的开启。从那时开始,计算机系统已经演化成极端复杂的装置。与例如EDVAC的早期系统相比,今天的计算机更加精密复杂。计算机系统通常包括硬件和软件组件的组合、应用程序、操作系统、处理器、总线、存储器、输入/输出装置等。由于半导体加工和计算机架构的进步将计算机的性能推升得越来越高,更加精密复杂的计算机软件已经进化为利用硬件的更高性能,使得当今的计算机系统与仅仅几年前相比强大得多。
并行计算是经历了进步的计算机技术的领域。并行计算是在多个处理器上同时执行同一任务(该任务被分解并且被专门调整)以更快获得结果。并行计算基于如下事实:求解一个问题的过程通常能够被划分成多个更小的任务,这些更小的任务能够通过某种协调被同时执行。
并行计算机执行并行算法。并行算法能够被分解从而在许多不同处理装置上每次执行一份,然后最终再次汇总在一起以获得数据处理结果。一些算法易于分解成多个份。可以例如如下执行对检查从1到十万的所有数字以查看哪些是质数的作业进行分解:向每个可用处理器分配这些数字的子集并且然后将肯定结果的列表汇总在一起。在本说明书中,执行并行程序的各个份的多个处理装置被称作“计算节点”。并行计算机由计算节点以及例如包括输入/输出(I/O)节点和服务节点的其它处理节点构成。
并行算法是有价值的,因为由于现代处理器工作的方式使得经由并行算法执行某些大的计算任务与经由串行(非并行)算法相比更快。与采用多个慢速处理器相比,采用单个快速处理器构造相同处理能力(throughput)的计算机要困难得多。串行处理器的潜在速度也存在某些理论限制。另一方面,每个并行算法具有串行部分并且因此并行算法具有饱和点。在该点后,增加更多处理器不会产生任何更多的处理能力而只会增加开销和开销。
并行算法还被设计为优化并行计算机的节点之间进行数据通信所要求的又一个资源。存在两种并行处理器进行通信的方式:共享存储器或者消息传递。共享存储器处理需要针对数据的额外锁定并且强加额外处理器和总线周期的开销并且还将算法的某部分串行化。
消息传递处理利用高速数据通信网络和消息缓冲器,但是这种通信增加了数据通信网络上的传送开销、以及消息缓冲器所需的额外存储器和节点之间的数据通信的等待时间(latency)。并行计算机的设计利用专门设计的数据通信链路以使得通信开销较小,然而正是并行算法决定通信量。
许多数据通信网络架构用于并行计算机中的节点之间的消息传递。例如,可以在网络中将计算节点组织为“环(torus)”或“网格(mesh)”。另外,可以在网络中将计算节点组织为树。环网络通过缠绕链路以三维网格连接节点。每个节点通过这种环网络连接到它的六个邻居,并且每个节点按其在网格中的x、y和z坐标来表示地址。按照这种方式,环网络将它自身用于点对点操作。在树网络中,节点通常连接成二叉树:每个节点具有一个父辈和两个孩子(但是某些节点可以仅具有零个孩子或一个孩子,这取决于硬件结构)。尽管树网络通常在点对点通信中低效,但是树网络对所有计算节点同时参与的某些集体操作、消息传送操作(例如,全收集(allgather)操作),提供高带宽和低等待时间。在使用环网络和树网络的计算机中,这两个网络通常彼此独立地实现,具有分离的路由回路、分离的物理链路和分离的消息缓冲器。
并行计算机中的计算节点还可以被组织成工作组以执行集体并行操作。通过工作组的计算节点之间的数据通信实现集体操作。集体操作是涉及一个工作组的所有计算节点的那些功能。集体操作是一种同时(即,近似同一时间)由计算节点的工作组中的所有计算节点执行的操作、消息传递计算机程序指令。“广播”是用于在工作组的计算节点之间移动数据的集体操作的例子。“归约(reduce)”操作是对分布在工作组的计算节点之中的数据执行算术或逻辑函数的集体操作的例子。用于集体操作的协议可以针对特定操作参数(执行集体操作的参数)进行调整或优化。这些参数的例子可以是:要执行的逻辑或者算术函数的类型、数据类型、数据大小、节点的数目等。集体操作协议可以针对特定的操作参数集合进行优化,因为本领域的读者可以想到,所述协议与其它协议相比更高效,与其它协议相比在执行期间消耗更少功率,与其它协议相比使用更少资源,与其它协议相比执行得更快等。因此,提高为集体操作选择优化协议的准确度有利于并行计算系统中的数据处理。
发明内容
在本说明书中描述了用于并行计算机中的集体操作协议选择的方法、设备和产品。并行计算机包括许多计算节点。这种集体操作协议选择包括:调用具有一个或多个操作参数的集体操作,选择用于执行该集体操作的多个协议之一,以及利用选择的协议执行该集体操作。在本发明的实施例中,对于从第一预期协议开始直到满足预定性能标准的预期协议,反复执行选择多个协议之一,选择多个协议之一包括:向用于该预期协议的协议性能函数提供集体操作的操作参数;通过该性能函数确定针对所述操作参数该预期协议是否满足预定性能标准,包括针对该预期协议通过所述操作参数评估预定义性能拟合方程以及计算针对所述操作参数的该预期协议的性能度量;以及仅当计算的性能度量大于预定义最小性能阈值时,确定该预期协议满足预定性能标准并且选择该预期协议作为用于执行集体操作的协议。
基于附图中所示的本发明的示例性实施例的下面更加具体的描述,本发明的上述以及其它目标、特征和优点将变得清楚,在附图中相似标号一般表示本发明的示例性实施例的相似部件。
附图说明
图1示出了根据本发明的实施例的用于并行计算机中的集体操作协议选择的示例性系统。
图2阐述了用于并行计算机中的能够执行根据本发明的实施例的集体操作协议选择的示例计算节点(102)的框图。
图3A阐述了用于根据本发明的实施例的并行计算机中的集体操作协议选择的系统中的示例点对点适配器的框图。
图3B阐述了用于根据本发明的实施例的并行计算机中的集体操作协议选择的系统中的示例全局组合网络适配器的框图。
图4阐述了示出用于能够执行根据本发明的实施例的并行计算机中的集体操作协议选择的系统的针对点对点操作进行优化的示例数据通信网络的线路图。
图5阐述了示出用于能够执行根据本发明的实施例的并行计算机中的集体操作协议选择的系统的示例全局组合网络的线路图。
图6阐述了示出用于根据本发明的实施例的并行计算机中的集体操作协议选择的示例方法的流程图。
图7阐述了示出用于根据本发明的实施例的并行计算机中的集体操作协议选择的另一示例方法的流程图。
图8阐述了示出用于根据本发明的实施例的并行计算机中的集体操作协议选择的另一示例方法的流程图。
具体实施方式
从图1开始,参照附图描述根据本发明的用于并行计算机中的集体操作协议选择的示例性方法、设备和产品。图1示出了根据本发明的实施例的用于并行计算机中的集体操作协议选择的示例性系统。图1的系统包括并行计算机(100)、数据存储装置(118)形式的计算机的非易失性存储器、打印机(120)形式的计算机的输出装置、和计算机终端(122)形式的计算机的输入/输出装置。
图1的示例中的并行计算机(100)包括多个计算节点(102)。通过多个独立的数据通信网络(包括高速以太网(174)、联合测试行动组(JTAG)网络(104)、使用二叉树网络拓扑针对集体操作进行优化的全局组合网络(106)和使用环网络拓扑针对点对点操作进行优化的点对点网络(108)),计算节点(102)进行耦合以进行数据通信。全局组合网络(106)是包括连接到计算节点(102)以把计算节点(102)组织为二叉树的数据通信链路的数据通信网络。通过计算节点(102)之间的数据通信链路实现每个数据通信网络。数据通信链路为并行计算机(100)的计算节点(102)之间的并行操作提供数据通信。
并行计算机(100)的计算节点(102)被组织成用于并行计算机(100)上的集体并行操作的计算节点的至少一个工作组(132)。计算节点的每个工作组(132)是执行集体并行操作的计算节点的集合。工作组(132)中的每个计算节点被分配唯一级别,用于识别工作组(132)中的特定计算机节点。通过工作组的计算节点之间的数据通信实现集体操作。集体操作是涉及一个工作组(132)的所有计算节点的那些功能。集体操作是一种同时(即,近似同一时间)由计算节点的工作组(132)中的所有计算节点执行的操作、消息传递计算机程序指令。这种工作组(132)可以包括并行计算机(100)中的所有计算节点(102)或者所有计算节点(102)的子集。常常围绕点对点操作建立集体操作。集体操作要求工作组(132)内的所有计算节点上的所有处理调用具有匹配参数的同一集体操作。“广播”是在工作组的计算节点之间移动数据的集体操作的示例。“归约”操作是对分布在工作组(132)的计算节点之中的数据执行算术或逻辑函数的集体操作的示例。例如,工作组(132)可被实现为MPI“通信器”。
“MPI”是指“消息传递接口(Message Passing Interface)”、现有技术的并行通信库、并行计算机上进行数据通信的计算机程序指令的模块。可被改进以应用于根据本发明的实施例构造的系统中的现有技术并行通信库的示例包括MPI和“并行虚拟机”(PVM)库。PVM是由田纳西大学、Oak Ridge国家实验室和埃默里大学开发的。MPI由MPI论坛进行发布,MPI论坛是一个具有来自定义并维护MPI标准的许多组织的代表的开放群。撰写此文时的MPI是在分布式存储器并行计算机上运行并行程序的计算节点之间进行通信的事实标准。为了易于进行解释,本说明书有时使用MPI术语,但是这样使用MPI不是本发明的要求或限制。
某些集体操作具有在工作组(132)中的特定计算节点上运行的一个发起或接收过程。例如,在“广播”集体操作中,向所有其它计算节点分发数据的计算节点上的过程是发起过程。在“收集(gather)”操作中,例如,从其它计算节点接收所有数据的计算节点上的过程是接收过程。运行这种发起或接收过程的计算节点被称作逻辑根。
大多数集体操作是如下四种基本操作的变型或组合:广播、收集、分散和归约。用于这些集体操作的接口在由MPI论坛发布的MPI标准中进行定义。然而,用于执行集体操作的算法没有在MPI标准中进行定义。在广播操作中,所有过程指定其缓冲器内容将被发送的同一根过程。除根之外的过程指定接收缓冲器。在该操作后,所有缓冲器包含来自根过程的消息。
与广播操作一样,分散操作也是一对多集体操作。在分散操作中,逻辑根将根上的数据划分成段并且将不同段分配给工作组(132)中的各个计算节点。在分散操作中,所有过程通常指定相同接收计数。发送参数只对其缓冲器实际包含给定数据类型的发送计数(sendcount)*N个元素的根过程有意义,其中,N是给定的计算节点组中的过程的数目。发送缓冲器被分割并且分散给所有过程(包括逻辑根上的过程)。每个计算节点被分配称作“级别(rank)”的连续标识符。在该操作后,根已经按照上升级别顺序向每个过程发送了sendcount个数据元素。级别0从发送缓冲器接收前sendcount个数据元素。级别1从发送缓冲器接收接下来的sendcount个数据元素,依此类推。
收集操作是多对一集体操作,即,分散操作的说明的完全逆转。也就是说,收集是一种多对一集体操作,其中,一数据类型的元素被从分级别的计算节点收集到根节点中的接收缓冲器中。
归约操作也是一种多对一集体操作,包括对两个数据元素执行的算术或逻辑函数。所有过程指定相同“计数(count)”和相同算术或逻辑函数。在归约后,所有过程已经将count个数据元素从计算节点发送缓冲器发送到根过程。在归约操作中,来自对应发送缓冲器位置的数据元素通过算术或逻辑运算被成对组合以在根过程的接收缓冲器中生成单个对应元素。专用归约操作能够在运行时进行定义。并行通信库可以支持预定义操作。例如,MPI提供下面的预定义归约操作:
MPI_MAX最大
MPI_MIN最小
MPI_SUM和
MPI_PROD乘积
MPI_LAND逻辑与
MPI_BAND位与
MPI_LOR逻辑或
MPI_BOR位或
MPI_LXOR逻辑异或
MPI_BXOR位异或
除了计算节点以外,并行计算机(100)包括经由全局组合网络(106)与计算节点(102)耦合的输入/输出(I/O)节点(110、114)。并行计算机(100)中的计算节点(102)可以被划分成多个处理组以使得一个处理组中的每个计算节点为进行数据通信而连接到同一I/O节点。因此,每个处理组由一个I/O节点和计算节点(102)的子集构成。整个系统中的计算节点的数目与I/O节点的数目的比率通常取决于并行计算机(102)的硬件结构。例如,在一些结构中,每个处理组可由八个计算节点和一个I/O节点构成。在一些其它结构中,每个处理组可由64个计算节点和一个I/O节点构成。这些示例仅仅用于说明,而非用于限制。每个I/O节点在它的处理组的计算节点(102)与一组I/O装置之间提供I/O服务。在图1的示例中,I/O节点(110、114)经由使用高速以太网实现的局域网(LAN)(130)连接到I/O装置(118、120、122)以进行数据通信。
图1的并行计算机(100)还包括经由网络之一(104)耦合到计算节点的服务节点(116)。服务节点(116)提供对多个计算节点相同的服务,管理计算节点的配置,向计算节点中加载程序,启动计算节点上的程序执行,取回计算节点上程序操作的结果,等等。服务节点(116)运行服务应用(124)并且经由在计算机终端(122)上运行的服务应用接口(126)与用户(128)进行通信。
图1的并行计算机(100)通常采用根据本发明的实施例的许多计算节点进行操作以进行集体操作协议选择。为了清楚地进行说明,在本文中作为工作组中的一个计算节点的示例描述了计算节点(102a)。本技术领域的读者应该明白,工作组中的其它计算节点将具有相似的级别、数据元素、数据结构、过程、函数,并且将按照与该示例计算节点(102a)相似的方式工作。
计算节点(102a)包括级别(212)‑MPI通信器(即工作组(132))中的过程。级别(212)调用具有一个或多个操作参数(214)的集体操作(220)。作为在本说明书中使用的术语的操作参数可以是为了执行集体操作的目的而被传递给该集体操作的任何参数。这些操作参数的示例包括本技术领域的读者可以想到的消息大小、数据类型、目标节点的数目和标识符等。
集体操作(220)(这里未示出的计算机程序指令的某其它模块)然后可以选择用于执行集体操作的多个协议(222)之一。根据本发明的实施例,对于从第一预期协议开始直到满足预定的性能标准的预期协议的每个协议(222),反复地执行这种选择。预定的性能标准是可被预定用于表示“性能”的可接受水平的任何值。各个性能标准类型的示例包括本技术领域的读者可以想到的执行速度、执行中利用的资源的数目等。
协议选择的每次重复包括:向用于该预期协议的协议性能函数(228)提供集体操作的操作参数(214),并且通过该性能函数(228)确定该预期协议(222)针对所述操作参数是否满足预定义性能标准。协议的性能函数是一个计算机程序指令的函数或者子例程,当被执行时确定该协议针对一组特定操作参数是否生成优化性能结果。在一些实施例中,例如,协议的性能函数的返回值是“良好拟合(good fit)”或“较差拟合(bad fit)”结果。
在图1的示例中,集体操作根据用于预期协议的或者与预期协议关联的元数据(224),识别并调用协议性能功能(228)。即,通过元数据在图1的示例中描述可供选择的每个协议。这种元数据可描述协议的许多不同属性。在本发明的实施例中,例如,每个协议的元数据(224)可以包括指向协议的性能函数(228)的指针。
通过针对该预期协议利用操作参数(214)评估预定义性能拟合方程(230)从而计算针对所述操作参数的预期协议的性能度量,性能函数(228)可以确定针对所述操作参数,预期协议(222)是否满足预定义性能标准。通过拟合方程描述、指定或定义通过该协议的性能函数(228)的在图1的示例中的相对于操作参数组的每个协议的性能。可以通过先前测量的性能数据的线性、二次或四次回归分析产生这种拟合方程。即,利用多个不同的操作参数组,每个协议可以被执行许多次,测量并存储每次执行所产生的性能数据。然后,可以采用测量和存储的性能数据执行回归分析以建立近似描述协议的性能质量的拟合方程。每个拟合方程然后返回针对一组特定操作参数的计算的性能度量(218)。
在实时协议选择期间,如果计算的性能度量(218)大于预定义的最小性能阈值(图1的示例中的性能标准(216)),则集体协议(220)确定该预期协议满足预定性能标准并且选择该预期协议作为用于执行集体操作的协议。如果计算的性能度量(218)不大于预定义的最小性能阈值,则选择过程针对另一个预期协议进行下一次重复。一旦被选择,集体操作(220)利用所选择的协议执行。
组成图1中所示的示例设备的节点、网络以及I/O装置的布置只是用于解释本发明而非进行限制。被构造为用于根据本发明的实施例的并行计算机中的集体操作协议选择的系统可以包括本领域技术人员可想到的图1未示出的另外的节点、网络、装置和架构。图1的示例中的并行计算机(100)包括16个计算节点(102);被构造为用于根据本发明的实施例的集体操作协议选择的并行计算机有时候包括几千个计算节点。除了以太网(174)和JTAG(104)以外,这种数据处理系统中的网络可以支持许多数据通信协议,例如包括TCP(传输控制协议)、IP(互联网协议)、以及本领域技术人员可想到的其它协议。还可以在图1所示的硬件平台之外的各种硬件平台上实现本发明的各种实施例。
通常在包括通过至少一个数据通信网络组织用于集体操作的多个计算节点的并行计算机上实现根据本发明的实施例的集体操作协议选择。实际上,这些计算机可以包括成千个这种计算节点。每个计算节点自身又是一种由一个或多个计算机处理核、它自己的计算机存储器和它自己的输入/输出适配器组成的计算机。因此,为了进一步的说明,图2阐述了用于能够进行根据本发明的实施例的集体操作协议选择的并行计算机中的示例计算节点(102)的框图。图2的计算节点(102)包括多个处理核(165)以及RAM(156)。可以在一个或多个集成电路芯片上构造图2的处理核(165)。处理核(165)通过高速内存总线(155)连接到RAM(156)并且通过总线适配器(194)和扩展总线(168)连接到计算节点的其它部件。在RAM(156)中存储了应用程序(159),即,使用并行算法执行并行、用户级数据处理的计算机程序指令的模块。
在RAM(156)中还存储了并行通信库(161),即,在计算节点之间执行并行通信(包括点对点操作和集体操作)的计算机程序指令的库。可以使用例如C编程语言的常规编程语言以及使用常规编程方法编写在两个独立数据通信网络上在节点之间发送和接收数据的并行通信例程,从头开发并行通信例程的库以用于根据本发明的实施例的系统中。或者,可以改进现存的现有库以根据本发明的实施例进行工作。现有并行通信库的示例包括“消息传递接口,Message Passing Interface”(MPI)库和“并行虚拟机,Parallel Virtual Machine”(PVM)库。
在RAM中还存储了级别(212),即MPI通信器中的过程。当级别(212)和并行通信库(161)被执行时,使得计算节点(102)总体上工作以进行根据本发明的实施例的集体操作协议选择。在图2的示例中,级别(212)调用具有一个或多个操作参数(214)的集体操作(220)并且并行通信库(161)开始针对该集体操作(220)的协议(222)选择。并行通信库(161)可以在反复过程中选择用于执行该集体操作的协议(222)之一,从第一预期协议开始,一直持续到满足预定性能标准的预期协议。选择过程的每次重复包括向用于由存储在协议的元数据(224)中的指针(226)引用的预期协议的协议性能函数(228)提供所述集体操作(220)的操作参数(214)。通过针对预期协议(222)采用所述操作参数(214)评估预定义性能拟合方程(230)从而计算针对所述操作参数(214)的该预期协议(222)的性能度量(218),性能函数(228)确定针对所述操作参数(214)该预期协议是否满足预定义性能标准(216)。如果计算的性能度量(218)大于在性能标准(216)中阐述的预定义最小性能阈值,则性能函数确定该预期协议满足预定性能标准(216)并且选择该预期协议(222)作为用于执行所述集体操作(220)的协议。并行通信库(161)然后利用所选择的协议执行所述集体操作。
在RAM(156)中还存储了操作系统(162),即,用于应用程序访问计算节点的其它资源的计算机程序指令和例程的模块。通常,并行计算机的计算机节点中的应用程序和并行通信库在无用户登录且无安全问题的情况下进行单线程执行,因为该线程被授权完全访问该节点的所有资源。因此,要由并行计算机中的计算节点上的操作系统执行的任务的数目和复杂度要比许多线程同时运行的串行计算机上的操作系统的情况更少和更简单。此外,在图2的计算节点(102)上没有视频I/O,这是降低对操作系统的需求的另一个因素。因此,与通用计算机的操作系统(精简版本)或特别为特定并行计算机上的操作开发的操作系统相比,操作系统(162)可以是非常轻载的。可有用地进行改进、简化以应用于计算节点的操作系统包括UNIXTM、LinuxTM、Windows XPTM、AIXTM、IBM的i5/OSTM以及本领域技术人员可想到的其它操作系统。
图2的示例计算节点(102)包括与并行计算机的其它节点进行数据通信的几个通信适配器(172、176、180、188)。这些数据通信可以通过RS‑232连接、通过例如USB的外部总线、通过例如IP网络的数据通信网络以及本领域技术人员可以想到的其它方式串行地执行。通信适配器实现硬件水平的数据通信,通过该通信适配器,一个计算机直接或通过网络向另一个计算机发送数据通信。可应用于能够执行并行计算机中的集体操作协议选择的设备中的通信适配器的示例包括用于有线通信的调制解调器、用于有线网络通信的以太网(IEEE 802.3)适配器和用于无线网络通信的802.11b适配器。
图2的示例中的数据通信适配器包括吉比特以太网适配器(172),用于将示例计算节点(102)耦合到吉比特以太网(174)以进行数据通信。吉比特以太网是在IEEE 802.3标准中定义的提供每秒十亿比特(一吉比特)的数据率的网络传输标准。吉比特以太网是在多模光纤光缆、单模光纤光缆或未屏蔽双绞线上工作的以太网的变型。
图2的示例中的数据通信适配器包括JTAG从电路(176),用于将示例计算节点(102)耦合到JTAG主电路(178)以进行数据通信。JTAG是用于使用边界扫描来测试印刷线路板的测试访问端口的、标题为标准测试访问端口和边界扫描架构的IEEE 1149.1标准的常用名称。JTAG的适用范围如此广泛以致此时边界扫描或多或少与JTAG同义。JTAG不仅用于印刷线路板,还用于执行集成电路的边界扫描,并且还用作用于调试嵌入式系统、在该系统中提供便利的另选接入点的机制。图2的示例计算节点可以是所有这三个:它通常包括安装在印刷线路板上的一个或多个集成电路并且可以被实现为具有它自己的处理核、它自己的存储器和它自己的I/O能力的嵌入式系统。通过JTAG从(176)的JTAG边界扫描可高效地配置计算节点(102)中的处理核寄存器和存储器,用于动态地向用于根据本发明的实施例的并行计算机中的集体操作协议选择的系统中的一批计算节点重分配连接的节点。
图2的示例中的数据通信适配器包括点对点网络适配器(180),用于将示例计算节点(102)耦合到对于进行点对点消息传递操作最优的网络(108)(例如,被构造为三维环或网格的网络)以进行数据通信。点对点适配器(180)通过6个双向链路+x(181)、‑x(182)、+y(183)、‑y(184)、+z(185)和‑z(186),在三个通信轴x、y和z上的6个方向上提供数据通信。
图2的示例中的数据通信适配器包括全局组合网络适配器(188),用于将示例计算节点(102)耦合到对于集体消息传递操作最佳的全局组合网络(106)(例如被构造为二叉树的网络)以进行数据通信。全局组合网络适配器(188)经由三个双向链路为全局组合网络适配器(188)支持的每个全局组合网络(106)提供数据通信。在图2的示例中,全局组合网络适配器(188)通过三个双向链路为全局组合网络(106)提供数据通信:两个到达孩子节点(190),一个到达父节点(192)。
示例计算节点(102)包括多个算术逻辑单元(ALU)。每个处理核(165)包括ALU(166),并且单独的ALU(170)专用于全局组合网络适配器(188)以用于执行包括allreduce操作的归约操作的算术和逻辑函数。并行通信库(161)中的归约例程的计算机程序指令可以将算术或逻辑函数的指令锁存到指令寄存器(169)。当归约操作的算术或逻辑函数是“和”或“逻辑或”时,例如,集体操作适配器(188)可以通过使用处理核(165)中的ALU(166)执行算术或逻辑操作或者通过使用专用ALU(170)使用由全局组合网络(106)上的节点(190、192)提供的数据和由计算节点(102)上的处理核(165)提供的数据通常快得多地执行算术或逻辑操作。
然而,常常当在全局组合网络适配器(188)中执行算术操作时,全局组合网络适配器(188)仅仅用于组合从孩子节点(190)接收的数据并且将结果沿网络(106)向上传递给父节点(192)。类似地,全局组合网络适配器(188)可以仅仅用于发送从父节点(192)接收的数据并且将数据沿网络(106)向下传递给孩子节点(190)。即,计算节点(102)上的处理核(165)都没有贡献改变ALU(170)的输出并且然后被向上或向下通过全局组合网络(106)传递的数据。由于ALU(170)通常直到ALU(170)从处理核(165)之一接收到输入才在网络(106)上输出数据,所以处理核(165)可以将身份元素注入专用ALU(170)以用于在ALU(170)中执行特定算术操作以防止ALU(170)的输出被改变。然而,将身份元素注入ALU常常消耗大量处理周期。为了进一步增强这些情况下的性能,示例计算节点(102)包括专用硬件(171),用于将身份元素注入ALU(170)以减少防止ALU输出的改变所需的处理核资源的量。专用硬件(171)注入与由ALU执行的特定算术操作对应的身份元素。例如,当全局组合网络适配器(188)对从孩子节点(190)接收的数据执行位或时,专用硬件(171)可以将零注入到ALU(170)以提高整个全局组合网络(106)的性能。
为了进一步进行解释,图3A阐述了用于根据本发明的实施例的并行计算机中的集体操作协议选择的系统的示例点对点适配器(180)的框图。点对点适配器(180)被设计用于针对点对点操作而优化的数据通信网络、以三维环或网格组织计算机节点的网络。图3A的示例中的点对点适配器(180)沿x轴经由四个单向数据通信链路,向以及自‑x方向(182)上的下一个节点提供数据通信,并且向以及自+x方向(181)上的下一个节点提供数据通信。图3A的点对点适配器(180)还沿y轴通过四个单向数据通信链路,向以及自‑y方向(184)上的下一个节点提供数据通信并且向以及自+y方向(183)上的下一个节点提供数据通信。图3A的点对点适配器(180)还沿z轴通过四个单向数据通信链路,向以及自‑z方向(186)上的下一个节点提供数据通信并且向以及自+z方向(185)上的下一个节点提供数据通信。
为了进一步解释,图3B阐述了用于根据本发明的实施例的并行计算机中的集体操作协议选择的系统中的示例全局组合网络适配器(188)的框图。全局组合网络适配器(188)被设计用于针对集体操作进行优化的网络、以二叉树组织并行计算机的计算节点的网络。图3B的示例中的全局组合网络适配器(188)通过四个单向数据通信链路(190)提供去往和来自全局组合网络的孩子节点的数据通信,还通过两个单向数据通信链路(192)提供去往和来自全局组合网络的父节点的数据通信。
为了进一步解释,图4阐述了示出用于能够执行根据本发明的实施例的并行计算机中的集体操作协议选择的系统的针对点对点操作进行优化的示例数据通信网络(108)的线路图。在图4的示例中,点表示并行计算机的计算节点(102),点之间的虚线表示计算节点之间的数据通信链路(103)。通过与例如图3A所示相似的点对点数据通信适配器实现所述数据通信链路,其中,所述数据通信链路在三个轴x、y和z上并且在+x(181)、‑x(182)、+y(183)、‑y(184)、+z(185)和‑z(186)这六个方向上往返。这些链路和计算节点被针对点对点操作进行优化的这个数据通信网络组织成三维网格(105)。网格(105)具有每个轴上的缠绕链路,用于连接网格(105)的相对侧的网格(105)中的最外计算节点。这些缠绕链路形成环(107)。环中的每个计算节点在环中的位置由一个x、y和z坐标组唯一指定。读者将明白,为了清楚,y和z方向的缠绕链路已经被省去,但是以与在x方向上所示的缠绕链路相似的方式构造。为了清楚地进行解释,图4的数据通信网络仅仅示出了27个计算节点,但是读者应该明白,用于根据本发明的实施例的并行计算机中的集体操作协议选择的针对点对点操作进行优化的数据通信网络可以仅仅包含几个计算节点或者可以包含几千个计算节点。为了易于进行解释,图4的数据通信网络仅仅以三维示出,但是读者应该明白,用于根据本发明的实施例的并行计算机中的集体操作协议选择的针对点对点操作进行优化的数据通信网络实际上能够以二维、四维、五维等进行实现。几个超级计算机现在使用五维网格或环网络,例如包括IBM的Blue Gene QTM。
为了进一步进行解释,图5阐述了示出用于能够执行根据本发明的实施例的并行计算机中的集体操作协议选择的系统中的示例全局组合网络(106)的线路图。图5的示例数据通信网络包括连接到计算节点以将计算节点组织成树的数据通信链路(103)。在图5的示例中,点表示并行计算机的计算节点(102),点之间的虚线(103)表示计算节点之间的数据通信链路。通过与例如图3B中所示相似的全局组合网络适配器实现所述数据通信链路,其中,除了一些例外情况,每个节点通常提供去往和来自两个孩子节点的数据通信以及去往和来自父节点的数据通信。全局组合网络(106)中的节点可以被刻画为物理根节点(202)、分支节点(204)和叶节点(206)。物理根(202)具有两个孩子但没有父辈并且之所以如此称呼是因为物理根节点(202)是在二叉树的顶部物理构造的节点。叶节点(206)均具有父辈但叶节点没有孩子。分支节点(204)均具有父辈和两个孩子。这些链路和计算节点由此被针对集体操作进行优化的这个数据通信网络组织成二叉树(106)。为了清楚地进行解释,图5的数据通信网络仅仅示出了31个计算节点,但是读者应该明白,用于根据本发明的实施例的并行计算机中的集体操作协议选择的针对集体操作进行优化的全局组合网络(106)可以仅仅包含几个计算节点或者可以包含几千个计算节点。
在图5的示例中,树中的每个节点被分配称作“级别”(250)的单元标识符。该级别实际上识别执行根据本发明的实施例的并行操作的任务或过程。使用级别来识别节点假定了在每个节点上正在执行仅仅一个这样的任务。在超过一个参与任务在一个节点上执行的程度上,该级别如此识别任务而不是节点。级别唯一地识别用于树网络中的点对点操作和集体操作两者的树网络中的任务的位置。这个示例中的级别被分配为从0开始的整数,其中,0被分配给根任务或根节点(202),1被分配给树的第二层中的第一节点,2被分配给树的第二层中的第二节点,3被分配给树的第三层中的第一节点,4被分配给树的第三层中的第二节点,依此类推。为了易于进行显示,这里仅仅示出了树的前三层的级别,但是树网络中的所有计算节点都被分配一个唯一级别。
为了进一步进行解释,图6阐述了示出用于根据本发明的实施例的并行计算机中的集体操作协议选择的示例方法的流程图。在例如与图1所示的并行计算机(100)相似的包括多个计算节点的并行计算机中执行图6的方法。
图6的方法包括调用(602)具有一个或多个操作参数的集体操作。通过对由并行通信库提供的函数执行函数调用可以执行调用(602)具有一个或多个操作参数的集体操作,其中,所述函数表示特定类型的集体操作。集体操作的示例包括归约操作、广播操作、收集操作等。
每个集体操作可以以各种方式执行。执行集体操作的每种方式被称作协议。即,每个集体操作可以包括多个协议,其中,每个协议被构造为实现或执行该集体操作。为此,图6的方法包括选择(604)用于执行集体操作的多个协议之一。这种选择(604)是反复的过程,该反复过程针对集体操作的每个预期协议执行一次,从第一预期协议开始并且当一个预期协议满足预定性能标准时结束。
为此,图6的方法包括向用于预期协议的协议性能函数提供集体操作的操作参数(606)。向用于预期协议的性能函数提供集体操作的操作参数(606)可以通过传递操作参数作为对性能函数的函数调用的参数来执行。考虑对归约集体操作的第一预期协议的性能函数进行下面的示例函数调用:
bool ProtocolFit=(*Perf_Func_Reduce_Protocol1)(MsgSize,MsgType);在以上的示例函数调用中,指针*Perf_Func_Reduce_Protocol1是指向归约操作的第一协议的性能函数的指针。这个指针可以存储在与该预期协议关联并且描述该预期协议的元数据中。执行协议的选择(604)的并行通信库可以从协议的元数据取回函数指针以执行函数调用。
向性能函数传递的参数包括MsgSize(即,在归约操作中传递的消息的消息大小)和MsgType(即,在归约操作中传递的消息的类型)。在这个示例中,MsgSize和MsgType是集体操作自身的相同操作参数。性能函数的返回值是作为变量“ProtocolFit”进行存储的布尔值。ProtocolFit的值为真指示针对该集体操作和参数组该协议满足预定义性能标准,并且ProtocolFit的值为假指示针对该集体操作和参数组该协议不满足预定义性能标准。
性能函数通过确定(608)针对所述操作参数该预期协议是否满足预定义性能标准来确定是返回真值还是假值。预定义性能标准可以是表示特定协议的优选最小性能水平的任何标准。可使用的性能的类型的示例是包括集体操作的执行时间、执行集体操作的网络带宽利用率、执行集体操作的存储器资源利用率、执行集体操作的处理器资源利用率等的标准。
预定义性能标准的值可以被提供给性能函数,作为对性能标准的函数调用的参数。即,对于协议选择,每个集体操作或者每个集体操作的每个实例可以具有要满足的独立的不同的性能标准。或者,预定义性能标准可以是所有集体操作的所有协议的性能函数可用的单个全局可访问值。
在图6的方法中,针对操作参数确定(608)预期协议是否满足预定义性能标准包括通过所述操作参数评估预期协议的预定义性能拟合方程。预定义性能拟合方程是定义在一定范围的不同操作参数组上的协议的性能度量的方程。该拟合方程可以是通过回归分析(即,实际性能的近似)建立的方程。在图6的方法中评估(610)这种拟合方程包括计算(612)针对所述操作参数的该预期协议的性能度量。
通过确定(614)计算的性能度量是否大于预定义最小性能阈值,确定(608)针对所述操作参数该预期协议是否满足预定义性能标准的操作继续。预定义最小性能阈值是由预定性能标准指定的值。即,在大多数实施例中,预定性能标准是预定义最小性能阈值。
如果计算的性能度量不大于预定义最小性能阈值,则图6的方法在选择(604)过程的另一次反复中利用另一个预期协议继续(616)。如果计算的性能度量大于预定义最小性能阈值,则图6的方法通过选择(618)该预期协议作为用于执行集体操作的协议并且利用选择的协议执行(620)集体操作而继续。
为了进一步进行解释,图7阐述了示出用于根据本发明的实施例的并行计算机中的集体操作协议选择的另一个示例方法的流程图。图7的示例方法与图6的示例方法的相似之处在于也包括:调用(602)具有操作参数的集体操作;选择(604)协议,包括:向协议性能函数提供(606)操作参数,确定(608)预期协议是否满足预定义性能标准,评估(610)预定义性能拟合方程,计算(612)性能度量,仅当计算的性能度量大于预定义最小性能阈值才选择(618)该预期协议;以及利用选择的协议执行(620)集体操作。
然而,图7的方法与图6的方法的不同之处在于,图7的方法包括在实际协议选择之前(即,在调用集体操作之前)执行的协议性能确定的缓存过程。换言之,在协议选择(604)之前针对集体操作的一组或多组操作参数以及一个或多个预期协议执行图7的方法中的缓存过程。对于每组操作参数和每个预期协议,图7的方法包括确定(702)预期协议是否满足预定性能标准。在计算节点的工作组的建立(704)过程中,图7的方法包括缓存(708)满足预定性能标准的预期协议的每个确定,而不缓存(708)不满足预定性能标准的预期协议的确定。作为示例考虑在建立(704)计算节点的工作组之前用户利用10组操作参数针对单个集体操作(即,归约操作)启动缓存过程。对于归约操作的每个协议以及对于10组操作参数中的每一组,图7的缓存过程将确定针对该组操作参数该协议是否满足预定义性能标准。对于每个肯定确定(即,协议针对一组特定操作参数满足预定义性能标准的确定),在建立(704)计算节点的工作组时,缓存过程将缓存该确定。可以通过各种方式执行缓存确定,这些方式例如包括,将每个确定存储在存储器中并且将指向该确定的指针插入到对应协议的元数据中,将确定插入存储在公知的存储位置的表或其它数据结构中,以及本技术领域的读者可以想到的其它等等。
一旦计算节点的工作组被建立(704)并且满足性能标准的集体操作的协议的肯定确定已经被缓存,选择(604)用于执行集体操作的协议的过程包括针对集体操作的操作参数确定是否存在缓存的满足预定性能标准的预期协议的确定。如果存在缓存的满足预定性能标准的预期协议的确定,则选择(604)选择(712)该预期协议作为用于执行集体操作的协议,而不在协议选择过程中计算针对操作参数的预期协议的性能度量。即,不是完成向性能函数提供(606)操作参数、评估性能函数、计算性能度量等这样的一个个反复,图7的方法包括基于缓存的确定选择协议(绕开这些反复)。当缓存的确定可用时,这里在图7中阐述的缓存确定可以通过绕开一次或多次反复而提高选择(604)用于执行集体操作的协议的速度和效率。
为了进一步进行解释,图8阐述了示出根据本发明的实施例的并行计算机中的集体操作协议选择的另一个示例方法的流程图。图8的示例方法与图6的示例方法的相似之处在于也包括:调用(602)具有操作参数的集体操作;选择(604)协议,包括:向协议性能函数提供(606)操作参数,确定(608)预期协议是否满足预定义性能标准,评估(610)预定义性能拟合方程,计算(612)性能度量,仅当计算的性能度量大于预定义最小性能阈值才选择(618)该预期协议;以及利用选择的协议执行(620)集体操作。
然而,图8的方法与图6的方法不同,在图8的方法中包括为集体操作的每个协议建立(802)预定义性能拟合方程。在图8的方法中,建立(802)预定义性能拟合方程包括:对于多组操作参数中的每一组执行一次该协议,对每次执行记录(806)性能度量,以及针记录的性能度量计算(808)拟合方程。可以通过各种方式执行针对记录的性能度量计算(808)拟合方程,这些方式例如包括计算线性近似拟合方程、立方近似拟合方程和四次近似拟合方程。可以执行回归分析以计算拟合方程。
本技术领域的读者将认识到,当特定协议的性能有些可变时,这种通过拟合方程的近似是有用的。与之相比,在一些情形下,可以确切地知道特定协议的性能。即,一些协议的性能实质上是确定性的。在这种实施例中,针对记录的性能度量计算(808)拟合方程可以包括针对所有可能的操作参数计算确切函数。
本领域技术人员应该明白,本发明的各方面可以被实施为系统、方法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微码等)或组合软件和硬件方面的实施例的形式,在这里它们全部总体上可以被称作“电路”、“模块”或“系统”。另外,本发明的各方面可以采取计算机程序产品的形式,该计算机程序产品在一个或多个计算机可读介质中实施,在该计算机可读介质上实施有计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读传输介质或计算机可读存储介质。计算机可读存储介质例如可以是但不限于电子、磁性、光学、电磁、红外或半导体系统、设备、或装置或者上述的任何合适组合。计算机可读存储介质的更具体示例(非穷尽性列表)将包括如下:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD‑ROM)、光存储装置、磁存储装置或者上述的任何合适组合。在本文的上下文中,计算机可读存储介质可以是能够包含或存储由指令执行系统、设备或装置使用或者与它们结合使用的程序的任何有形介质。
计算机可读传输介质可以包括例如在基带中或者作为载波的一部分传播的数据信号,在该数据信号内实施了计算机可读程序码。这种传播的信号可以采用各种形式的任何一种,包括但不限于电磁、光学、或者它们的任何合适组合。计算机可读传输介质可以是并非计算机可读存储介质并且能够传送、传播或传输由指令执行系统、设备或装置使用或与它们结合使用的程序的任何计算机可读介质。
可以使用任何适合的介质发送在计算机可读介质上实施的程序码,该介质包括但不限于无线、有线、光纤、RF等或者上述的任何合适组合。
可以通过一种或多种编程语言的任何组合编写用于执行本发明的各方面的操作的计算机程序码,这些编程语言包括诸如Java、Smalttalk、C++等的面向对象编程语言和诸如“C”编程语言或相似编程语言的传统过程编程语言。该程序码可以完全在用户的计算机上、部分在用户的计算机上、作为单机软件包、部分在用户的计算机上且部分在远程计算机上或者完全在远程计算机或服务器上执行。在后者的情形下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。
在上文中参照根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应该明白,流程图和/或框图的每个块以及流程图和/或框图中的块的组合能够由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或者其它可编程数据处理设备的处理器以生成一机器,从而经由计算机或其它可编程数据处理设备的处理器执行的指令建立实现在流程图和/或框图块中指定的功能/动作的装置。
这些计算机程序指令还可以存储在计算机可读介质中以能够引导计算机、其它可编程数据处理设备或其它装置以特定方式工作,从而存储在计算机可读介质中的指令生成包括实现在流程图和/或框图块中指定的功能/动作的指令的制品。
计算机程序指令还可以加载到计算机、其它可编程数据处理设备或其它装置上以使得在计算机、其它可编程设备或其它装置上执行一系列操作步骤以生成计算机实现的过程,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块中指定的功能/动作的过程。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。关于此,流程图或框图中的每个块可以表示包括用于实现指定的逻辑功能的一个或多个可执行指令的代码的模块、段或部分。还应该注意,在一些另选实施方式中,块中注释的功能可以不按附图中注释的顺序发生。例如,接连示出的两个块实际上可以基本上同时执行,或者这些块有时候可以以相反顺序执行,这取决于涉及的功能。还应注意,框图和/或流程图的每个块以及框图和/或流程图中的块的组合能够由执行指定功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合进行实现。
从上述描述应该明白,在不脱离本发明的真实精神的情况下可以在本发明的各种实施例中执行变型和改变。本说明书中的说明仅仅用于例示的目的而非以限制意义进行解释。本发明的范围仅由权利要求的语言进行限制。

用于并行计算机中的集体操作协议选择的方法和系统.pdf_第1页
第1页 / 共26页
用于并行计算机中的集体操作协议选择的方法和系统.pdf_第2页
第2页 / 共26页
用于并行计算机中的集体操作协议选择的方法和系统.pdf_第3页
第3页 / 共26页
点击查看更多>>
资源描述

《用于并行计算机中的集体操作协议选择的方法和系统.pdf》由会员分享,可在线阅读,更多相关《用于并行计算机中的集体操作协议选择的方法和系统.pdf(26页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103150144 A(43)申请公布日 2013.06.12CN103150144A*CN103150144A*(21)申请号 201210281401.X(22)申请日 2012.08.0913/206,116 2011.08.09 USG06F 9/38(2006.01)(71)申请人国际商业机器公司地址美国纽约(72)发明人 CJ阿奇 MA布劳克瑟姆JD拉特曼 BE史密斯(74)专利代理机构中国国际贸易促进委员会专利商标事务所 11038代理人付建军(54) 发明名称用于并行计算机中的集体操作协议选择的方法和系统(57) 摘要本发明涉及用于并行计算机中的集体操。

2、作协议选择的方法和系统。可以通过调用具有操作参数的集体操作、选择用于执行该操作的协议以及利用选择的协议执行该操作,来执行包括计算节点的并行计算机中的集体操作协议选择。选择协议包括反复执行如下操作直到一个预期协议满足预定性能标准:向用于该预期协议的协议性能函数提供所述操作参数;通过评估预定义性能拟合方程以及计算针对所述操作参数的协议的性能度量,来确定该预期协议是否满足预定义性能标准;仅当计算的性能度量大于预定义最小性能阈值时,才确定该预期协议满足预定性能标准并且选择该协议用于执行所述操作。(30)优先权数据(51)Int.Cl.权利要求书3页 说明书14页 附图8页(19)中华人民共和国国家知识。

3、产权局(12)发明专利申请权利要求书3页 说明书14页 附图8页(10)申请公布号 CN 103150144 ACN 103150144 A1/3页21.一种用于并行计算机中的集体操作协议选择的方法,所述并行计算机包括多个计算节点,所述方法包括:调用具有一个或多个操作参数的集体操作;选择用于执行该集体操作的多个协议之一,包括针对从第一预期协议开始直到满足预定性能标准的预期协议的每个协议,反复地执行如下操作:向用于该预期协议的协议性能函数提供所述集体操作的操作参数;通过性能函数确定针对所述操作参数该预期协议是否满足预定义性能标准,包括利用所述操作参数评估针对该预期协议的预定义性能拟合方程,计算针。

4、对所述操作参数的该预期协议的性能度量;以及仅当计算的性能度量大于预定义最小性能阈值时,确定该预期协议满足预定性能标准并且选择该预期协议作为用于执行所述集体操作的协议;以及利用选择的协议执行所述集体操作。2.权利要求1的方法,其中:集体操作的每个协议与元数据关联,针对每个集体操作的元数据包括指向协议的性能函数的指针;以及向用于该预期协议的协议性能函数提供所述集体操作的操作参数还包括从该预期协议的元数据取回指向该预期协议的性能函数的指针。3.权利要求1的方法,还包括:在协议选择之前,针对所述集体操作的一组或多组操作参数以及一个或多个预期协议:确定该预期协议是否满足预定性能标准;以及当建立计算节点的。

5、工作组时缓存满足预定性能标准的预期协议的每个确定,其中,选择用于执行所述集体操作的多个协议之一还包括:针对所述集体操作的操作参数,确定是否存在缓存的满足预定性能标准的预期协议的确定;以及如果存在缓存的满足预定性能标准的预期协议的确定,则选择该预期协议作为用于执行所述集体操作的协议,而不在协议选择期间计算针对所述操作参数的预期协议的性能度量。4.权利要求1的方法,还包括:针对所述集体操作的每个协议,建立预定义性能拟合方程,包括:针对多组操作参数中的每一组执行一次该协议;针对每次执行,记录性能度量;以及为记录的性能度量计算拟合方程。5.权利要求1的方法,其中,为记录的性能度量计算拟合方程还包括计算。

6、以下之一:线性近似拟合方程;立方近似拟合方程;以及四次近似拟合方程。6.权利要求1的方法,其中,为记录的性能度量计算拟合方程还包括为所有可能的操作参数计算确切函数。7.一种用于并行计算机中的集体操作协议选择的设备,所述并行计算机包括多个计算权 利 要 求 书CN 103150144 A2/3页3节点,所述设备包括计算机处理器、可操作地耦合到计算机处理器的计算机存储器,该计算机存储器内设置有计算机程序指令,所述计算机程序指令当由计算机处理器执行时使得所述设备执行如下步骤:调用具有一个或多个操作参数的集体操作;选择用于执行该集体操作的多个协议之一,包括针对从第一预期协议开始直到满足预定性能标准的预。

7、期协议的每个协议,反复地执行如下操作:向用于该预期协议的协议性能函数提供所述集体操作的操作参数;通过性能函数确定针对所述操作参数该预期协议是否满足预定义性能标准,包括利用所述操作参数评估针对该预期协议的预定义性能拟合方程,计算针对所述操作参数的该预期协议的性能度量;以及仅当计算的性能度量大于预定义最小性能阈值时,确定该预期协议满足预定性能标准并且选择该预期协议作为用于执行所述集体操作的协议;以及利用选择的协议执行所述集体操作。8.权利要求7的设备,其中:集体操作的每个协议与元数据关联,针对每个集体操作的元数据包括指向协议的性能函数的指针;以及向用于该预期协议的协议性能函数提供所述集体操作的操作。

8、参数还包括从该预期协议的元数据取回指向该预期协议的性能函数的指针。9.权利要求7的设备,还包括计算机程序指令,所述计算机程序指令当由计算机处理器执行时使所述设备执行如下步骤:在协议选择之前,针对所述集体操作的一组或多组操作参数以及一个或多个预期协议:确定该预期协议是否满足预定性能标准;以及当建立计算节点的工作组时缓存满足预定性能标准的预期协议的每个确定,其中,选择用于执行所述集体操作的多个协议之一还包括:针对所述集体操作的操作参数,确定是否存在缓存的满足预定性能标准的预期协议的确定;以及如果存在缓存的满足预定性能标准的预期协议的确定,则选择该预期协议作为用于执行所述集体操作的协议,而不在协议选。

9、择期间计算针对所述操作参数的预期协议的性能度量。10.权利要求7的设备,还包括计算机程序指令,所述计算机程序指令当由计算机处理器执行时使所述设备执行如下步骤:针对所述集体操作的每个协议,建立预定义性能拟合方程,包括:针对多组操作参数中的每一组执行一次该协议;针对每次执行,记录性能度量;以及为记录的性能度量计算拟合方程。11.权利要求7的设备,其中,为记录的性能度量计算拟合方程还包括计算以下之一:线性近似拟合方程;立方近似拟合方程;以及四次近似拟合方程。权 利 要 求 书CN 103150144 A3/3页412.权利要求7的设备,其中,为记录的性能度量计算拟合方程还包括为所有可能的操作参数计算。

10、确切函数。权 利 要 求 书CN 103150144 A1/14页5用于并行计算机中的集体操作协议选择的方法和系统技术领域0001 本发明的领域是数据处理,或者更具体地讲是用于并行计算机中的集体操作协议选择的方法、设备和产品。背景技术0002 1948年的EDVAC计算机系统的开发常被引述为计算机时代的开启。从那时开始,计算机系统已经演化成极端复杂的装置。与例如EDVAC的早期系统相比,今天的计算机更加精密复杂。计算机系统通常包括硬件和软件组件的组合、应用程序、操作系统、处理器、总线、存储器、输入/输出装置等。由于半导体加工和计算机架构的进步将计算机的性能推升得越来越高,更加精密复杂的计算机软。

11、件已经进化为利用硬件的更高性能,使得当今的计算机系统与仅仅几年前相比强大得多。0003 并行计算是经历了进步的计算机技术的领域。并行计算是在多个处理器上同时执行同一任务(该任务被分解并且被专门调整)以更快获得结果。并行计算基于如下事实:求解一个问题的过程通常能够被划分成多个更小的任务,这些更小的任务能够通过某种协调被同时执行。0004 并行计算机执行并行算法。并行算法能够被分解从而在许多不同处理装置上每次执行一份,然后最终再次汇总在一起以获得数据处理结果。一些算法易于分解成多个份。可以例如如下执行对检查从1到十万的所有数字以查看哪些是质数的作业进行分解:向每个可用处理器分配这些数字的子集并且然。

12、后将肯定结果的列表汇总在一起。在本说明书中,执行并行程序的各个份的多个处理装置被称作“计算节点”。并行计算机由计算节点以及例如包括输入/输出(I/O)节点和服务节点的其它处理节点构成。0005 并行算法是有价值的,因为由于现代处理器工作的方式使得经由并行算法执行某些大的计算任务与经由串行(非并行)算法相比更快。与采用多个慢速处理器相比,采用单个快速处理器构造相同处理能力(throughput)的计算机要困难得多。串行处理器的潜在速度也存在某些理论限制。另一方面,每个并行算法具有串行部分并且因此并行算法具有饱和点。在该点后,增加更多处理器不会产生任何更多的处理能力而只会增加开销和开销。0006 。

13、并行算法还被设计为优化并行计算机的节点之间进行数据通信所要求的又一个资源。存在两种并行处理器进行通信的方式:共享存储器或者消息传递。共享存储器处理需要针对数据的额外锁定并且强加额外处理器和总线周期的开销并且还将算法的某部分串行化。0007 消息传递处理利用高速数据通信网络和消息缓冲器,但是这种通信增加了数据通信网络上的传送开销、以及消息缓冲器所需的额外存储器和节点之间的数据通信的等待时间(latency)。并行计算机的设计利用专门设计的数据通信链路以使得通信开销较小,然而正是并行算法决定通信量。0008 许多数据通信网络架构用于并行计算机中的节点之间的消息传递。例如,可以在网络中将计算节点组织。

14、为“环(torus)”或“网格(mesh)”。另外,可以在网络中将计算节点说 明 书CN 103150144 A2/14页6组织为树。环网络通过缠绕链路以三维网格连接节点。每个节点通过这种环网络连接到它的六个邻居,并且每个节点按其在网格中的x、y和z坐标来表示地址。按照这种方式,环网络将它自身用于点对点操作。在树网络中,节点通常连接成二叉树:每个节点具有一个父辈和两个孩子(但是某些节点可以仅具有零个孩子或一个孩子,这取决于硬件结构)。尽管树网络通常在点对点通信中低效,但是树网络对所有计算节点同时参与的某些集体操作、消息传送操作(例如,全收集(allgather)操作),提供高带宽和低等待时间。。

15、在使用环网络和树网络的计算机中,这两个网络通常彼此独立地实现,具有分离的路由回路、分离的物理链路和分离的消息缓冲器。0009 并行计算机中的计算节点还可以被组织成工作组以执行集体并行操作。通过工作组的计算节点之间的数据通信实现集体操作。集体操作是涉及一个工作组的所有计算节点的那些功能。集体操作是一种同时(即,近似同一时间)由计算节点的工作组中的所有计算节点执行的操作、消息传递计算机程序指令。“广播”是用于在工作组的计算节点之间移动数据的集体操作的例子。“归约(reduce)”操作是对分布在工作组的计算节点之中的数据执行算术或逻辑函数的集体操作的例子。用于集体操作的协议可以针对特定操作参数(执行。

16、集体操作的参数)进行调整或优化。这些参数的例子可以是:要执行的逻辑或者算术函数的类型、数据类型、数据大小、节点的数目等。集体操作协议可以针对特定的操作参数集合进行优化,因为本领域的读者可以想到,所述协议与其它协议相比更高效,与其它协议相比在执行期间消耗更少功率,与其它协议相比使用更少资源,与其它协议相比执行得更快等。因此,提高为集体操作选择优化协议的准确度有利于并行计算系统中的数据处理。发明内容0010 在本说明书中描述了用于并行计算机中的集体操作协议选择的方法、设备和产品。并行计算机包括许多计算节点。这种集体操作协议选择包括:调用具有一个或多个操作参数的集体操作,选择用于执行该集体操作的多个。

17、协议之一,以及利用选择的协议执行该集体操作。在本发明的实施例中,对于从第一预期协议开始直到满足预定性能标准的预期协议,反复执行选择多个协议之一,选择多个协议之一包括:向用于该预期协议的协议性能函数提供集体操作的操作参数;通过该性能函数确定针对所述操作参数该预期协议是否满足预定性能标准,包括针对该预期协议通过所述操作参数评估预定义性能拟合方程以及计算针对所述操作参数的该预期协议的性能度量;以及仅当计算的性能度量大于预定义最小性能阈值时,确定该预期协议满足预定性能标准并且选择该预期协议作为用于执行集体操作的协议。0011 基于附图中所示的本发明的示例性实施例的下面更加具体的描述,本发明的上述以及其。

18、它目标、特征和优点将变得清楚,在附图中相似标号一般表示本发明的示例性实施例的相似部件。附图说明0012 图1示出了根据本发明的实施例的用于并行计算机中的集体操作协议选择的示例性系统。0013 图2阐述了用于并行计算机中的能够执行根据本发明的实施例的集体操作协议说 明 书CN 103150144 A3/14页7选择的示例计算节点(102)的框图。0014 图3A阐述了用于根据本发明的实施例的并行计算机中的集体操作协议选择的系统中的示例点对点适配器的框图。0015 图3B阐述了用于根据本发明的实施例的并行计算机中的集体操作协议选择的系统中的示例全局组合网络适配器的框图。0016 图4阐述了示出用于。

19、能够执行根据本发明的实施例的并行计算机中的集体操作协议选择的系统的针对点对点操作进行优化的示例数据通信网络的线路图。0017 图5阐述了示出用于能够执行根据本发明的实施例的并行计算机中的集体操作协议选择的系统的示例全局组合网络的线路图。0018 图6阐述了示出用于根据本发明的实施例的并行计算机中的集体操作协议选择的示例方法的流程图。0019 图7阐述了示出用于根据本发明的实施例的并行计算机中的集体操作协议选择的另一示例方法的流程图。0020 图8阐述了示出用于根据本发明的实施例的并行计算机中的集体操作协议选择的另一示例方法的流程图。具体实施方式0021 从图1开始,参照附图描述根据本发明的用于。

20、并行计算机中的集体操作协议选择的示例性方法、设备和产品。图1示出了根据本发明的实施例的用于并行计算机中的集体操作协议选择的示例性系统。图1的系统包括并行计算机(100)、数据存储装置(118)形式的计算机的非易失性存储器、打印机(120)形式的计算机的输出装置、和计算机终端(122)形式的计算机的输入/输出装置。0022 图1的示例中的并行计算机(100)包括多个计算节点(102)。通过多个独立的数据通信网络(包括高速以太网(174)、联合测试行动组(JTAG)网络(104)、使用二叉树网络拓扑针对集体操作进行优化的全局组合网络(106)和使用环网络拓扑针对点对点操作进行优化的点对点网络(10。

21、8),计算节点(102)进行耦合以进行数据通信。全局组合网络(106)是包括连接到计算节点(102)以把计算节点(102)组织为二叉树的数据通信链路的数据通信网络。通过计算节点(102)之间的数据通信链路实现每个数据通信网络。数据通信链路为并行计算机(100)的计算节点(102)之间的并行操作提供数据通信。0023 并行计算机(100)的计算节点(102)被组织成用于并行计算机(100)上的集体并行操作的计算节点的至少一个工作组(132)。计算节点的每个工作组(132)是执行集体并行操作的计算节点的集合。工作组(132)中的每个计算节点被分配唯一级别,用于识别工作组(132)中的特定计算机节点。

22、。通过工作组的计算节点之间的数据通信实现集体操作。集体操作是涉及一个工作组(132)的所有计算节点的那些功能。集体操作是一种同时(即,近似同一时间)由计算节点的工作组(132)中的所有计算节点执行的操作、消息传递计算机程序指令。这种工作组(132)可以包括并行计算机(100)中的所有计算节点(102)或者所有计算节点(102)的子集。常常围绕点对点操作建立集体操作。集体操作要求工作组(132)内的所有计算节点上的所有处理调用具有匹配参数的同一集体操作。“广播”是在工作组的计算节点之间移动数据的集体操作的示例。“归约”操作是对分布在工作组(132)的计算说 明 书CN 103150144 A4/。

23、14页8节点之中的数据执行算术或逻辑函数的集体操作的示例。例如,工作组(132)可被实现为MPI“通信器”。0024 “MPI”是指“消息传递接口(Message Passing Interface)”、现有技术的并行通信库、并行计算机上进行数据通信的计算机程序指令的模块。可被改进以应用于根据本发明的实施例构造的系统中的现有技术并行通信库的示例包括MPI和“并行虚拟机”(PVM)库。PVM是由田纳西大学、Oak Ridge国家实验室和埃默里大学开发的。MPI由MPI论坛进行发布,MPI论坛是一个具有来自定义并维护MPI标准的许多组织的代表的开放群。撰写此文时的MPI是在分布式存储器并行计算机上。

24、运行并行程序的计算节点之间进行通信的事实标准。为了易于进行解释,本说明书有时使用MPI术语,但是这样使用MPI不是本发明的要求或限制。0025 某些集体操作具有在工作组(132)中的特定计算节点上运行的一个发起或接收过程。例如,在“广播”集体操作中,向所有其它计算节点分发数据的计算节点上的过程是发起过程。在“收集(gather)”操作中,例如,从其它计算节点接收所有数据的计算节点上的过程是接收过程。运行这种发起或接收过程的计算节点被称作逻辑根。0026 大多数集体操作是如下四种基本操作的变型或组合:广播、收集、分散和归约。用于这些集体操作的接口在由MPI论坛发布的MPI标准中进行定义。然而,用。

25、于执行集体操作的算法没有在MPI标准中进行定义。在广播操作中,所有过程指定其缓冲器内容将被发送的同一根过程。除根之外的过程指定接收缓冲器。在该操作后,所有缓冲器包含来自根过程的消息。0027 与广播操作一样,分散操作也是一对多集体操作。在分散操作中,逻辑根将根上的数据划分成段并且将不同段分配给工作组(132)中的各个计算节点。在分散操作中,所有过程通常指定相同接收计数。发送参数只对其缓冲器实际包含给定数据类型的发送计数(sendcount)*N个元素的根过程有意义,其中,N是给定的计算节点组中的过程的数目。发送缓冲器被分割并且分散给所有过程(包括逻辑根上的过程)。每个计算节点被分配称作“级别(。

26、rank)”的连续标识符。在该操作后,根已经按照上升级别顺序向每个过程发送了sendcount个数据元素。级别0从发送缓冲器接收前sendcount个数据元素。级别1从发送缓冲器接收接下来的sendcount个数据元素,依此类推。0028 收集操作是多对一集体操作,即,分散操作的说明的完全逆转。也就是说,收集是一种多对一集体操作,其中,一数据类型的元素被从分级别的计算节点收集到根节点中的接收缓冲器中。0029 归约操作也是一种多对一集体操作,包括对两个数据元素执行的算术或逻辑函数。所有过程指定相同“计数(count)”和相同算术或逻辑函数。在归约后,所有过程已经将count个数据元素从计算节点。

27、发送缓冲器发送到根过程。在归约操作中,来自对应发送缓冲器位置的数据元素通过算术或逻辑运算被成对组合以在根过程的接收缓冲器中生成单个对应元素。专用归约操作能够在运行时进行定义。并行通信库可以支持预定义操作。例如,MPI提供下面的预定义归约操作:0030 MPI_MAX最大0031 MPI_MIN最小0032 MPI_SUM和说 明 书CN 103150144 A5/14页90033 MPI_PROD乘积0034 MPI_LAND逻辑与0035 MPI_BAND位与0036 MPI_LOR逻辑或0037 MPI_BOR位或0038 MPI_LXOR逻辑异或0039 MPI_BXOR位异或0040 。

28、除了计算节点以外,并行计算机(100)包括经由全局组合网络(106)与计算节点(102)耦合的输入/输出(I/O)节点(110、114)。并行计算机(100)中的计算节点(102)可以被划分成多个处理组以使得一个处理组中的每个计算节点为进行数据通信而连接到同一I/O节点。因此,每个处理组由一个I/O节点和计算节点(102)的子集构成。整个系统中的计算节点的数目与I/O节点的数目的比率通常取决于并行计算机(102)的硬件结构。例如,在一些结构中,每个处理组可由八个计算节点和一个I/O节点构成。在一些其它结构中,每个处理组可由64个计算节点和一个I/O节点构成。这些示例仅仅用于说明,而非用于限制。。

29、每个I/O节点在它的处理组的计算节点(102)与一组I/O装置之间提供I/O服务。在图1的示例中,I/O节点(110、114)经由使用高速以太网实现的局域网(LAN)(130)连接到I/O装置(118、120、122)以进行数据通信。0041 图1的并行计算机(100)还包括经由网络之一(104)耦合到计算节点的服务节点(116)。服务节点(116)提供对多个计算节点相同的服务,管理计算节点的配置,向计算节点中加载程序,启动计算节点上的程序执行,取回计算节点上程序操作的结果,等等。服务节点(116)运行服务应用(124)并且经由在计算机终端(122)上运行的服务应用接口(126)与用户(128。

30、)进行通信。0042 图1的并行计算机(100)通常采用根据本发明的实施例的许多计算节点进行操作以进行集体操作协议选择。为了清楚地进行说明,在本文中作为工作组中的一个计算节点的示例描述了计算节点(102a)。本技术领域的读者应该明白,工作组中的其它计算节点将具有相似的级别、数据元素、数据结构、过程、函数,并且将按照与该示例计算节点(102a)相似的方式工作。0043 计算节点(102a)包括级别(212)-MPI通信器(即工作组(132)中的过程。级别(212)调用具有一个或多个操作参数(214)的集体操作(220)。作为在本说明书中使用的术语的操作参数可以是为了执行集体操作的目的而被传递给该。

31、集体操作的任何参数。这些操作参数的示例包括本技术领域的读者可以想到的消息大小、数据类型、目标节点的数目和标识符等。0044 集体操作(220)(这里未示出的计算机程序指令的某其它模块)然后可以选择用于执行集体操作的多个协议(222)之一。根据本发明的实施例,对于从第一预期协议开始直到满足预定的性能标准的预期协议的每个协议(222),反复地执行这种选择。预定的性能标准是可被预定用于表示“性能”的可接受水平的任何值。各个性能标准类型的示例包括本技术领域的读者可以想到的执行速度、执行中利用的资源的数目等。0045 协议选择的每次重复包括:向用于该预期协议的协议性能函数(228)提供集体操作的操作参数。

32、(214),并且通过该性能函数(228)确定该预期协议(222)针对所述操作参数说 明 书CN 103150144 A6/14页10是否满足预定义性能标准。协议的性能函数是一个计算机程序指令的函数或者子例程,当被执行时确定该协议针对一组特定操作参数是否生成优化性能结果。在一些实施例中,例如,协议的性能函数的返回值是“良好拟合(good fit)”或“较差拟合(bad fit)”结果。0046 在图1的示例中,集体操作根据用于预期协议的或者与预期协议关联的元数据(224),识别并调用协议性能功能(228)。即,通过元数据在图1的示例中描述可供选择的每个协议。这种元数据可描述协议的许多不同属性。在。

33、本发明的实施例中,例如,每个协议的元数据(224)可以包括指向协议的性能函数(228)的指针。0047 通过针对该预期协议利用操作参数(214)评估预定义性能拟合方程(230)从而计算针对所述操作参数的预期协议的性能度量,性能函数(228)可以确定针对所述操作参数,预期协议(222)是否满足预定义性能标准。通过拟合方程描述、指定或定义通过该协议的性能函数(228)的在图1的示例中的相对于操作参数组的每个协议的性能。可以通过先前测量的性能数据的线性、二次或四次回归分析产生这种拟合方程。即,利用多个不同的操作参数组,每个协议可以被执行许多次,测量并存储每次执行所产生的性能数据。然后,可以采用测量和。

34、存储的性能数据执行回归分析以建立近似描述协议的性能质量的拟合方程。每个拟合方程然后返回针对一组特定操作参数的计算的性能度量(218)。0048 在实时协议选择期间,如果计算的性能度量(218)大于预定义的最小性能阈值(图1的示例中的性能标准(216),则集体协议(220)确定该预期协议满足预定性能标准并且选择该预期协议作为用于执行集体操作的协议。如果计算的性能度量(218)不大于预定义的最小性能阈值,则选择过程针对另一个预期协议进行下一次重复。一旦被选择,集体操作(220)利用所选择的协议执行。0049 组成图1中所示的示例设备的节点、网络以及I/O装置的布置只是用于解释本发明而非进行限制。被。

35、构造为用于根据本发明的实施例的并行计算机中的集体操作协议选择的系统可以包括本领域技术人员可想到的图1未示出的另外的节点、网络、装置和架构。图1的示例中的并行计算机(100)包括16个计算节点(102);被构造为用于根据本发明的实施例的集体操作协议选择的并行计算机有时候包括几千个计算节点。除了以太网(174)和JTAG(104)以外,这种数据处理系统中的网络可以支持许多数据通信协议,例如包括TCP(传输控制协议)、IP(互联网协议)、以及本领域技术人员可想到的其它协议。还可以在图1所示的硬件平台之外的各种硬件平台上实现本发明的各种实施例。0050 通常在包括通过至少一个数据通信网络组织用于集体操。

36、作的多个计算节点的并行计算机上实现根据本发明的实施例的集体操作协议选择。实际上,这些计算机可以包括成千个这种计算节点。每个计算节点自身又是一种由一个或多个计算机处理核、它自己的计算机存储器和它自己的输入/输出适配器组成的计算机。因此,为了进一步的说明,图2阐述了用于能够进行根据本发明的实施例的集体操作协议选择的并行计算机中的示例计算节点(102)的框图。图2的计算节点(102)包括多个处理核(165)以及RAM(156)。可以在一个或多个集成电路芯片上构造图2的处理核(165)。处理核(165)通过高速内存总线(155)连接到RAM(156)并且通过总线适配器(194)和扩展总线(168)连接到计算节点的其它部件。在RAM(156)中存储了应用程序(159),即,使用并行算法执行并行、用户级数据处理的计算机程序指令的模块。0051 在RAM(156)中还存储了并行通信库(161),即,在计算节点之间执行并行通信(包说 明 书CN 103150144 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1