使用集体操作建模的消息传递接口调谐的制作方法

文档序号:6485466阅读:253来源:国知局
使用集体操作建模的消息传递接口调谐的制作方法
【专利摘要】公开了自动调谐通信协议的方法、机器可读介质和并行计算系统的说明性实施例。在一些实施例中,方法可包含:选择由并行计算系统的消息传递接口(MPI)实现的集体操作,其中MPI配置成使用多个算法中的至少一个算法实现集体操作;将多个算法中的每个算法建模为对应多个点对点操作;使用其对应多个点对点操作确定多个算法中的每个算法的传输速率;从多个算法中选择一个或多个算法,一个或多个选择的算法比一个或多个未选择的算法具有更高的传输速率;以及用多个配置参数测试一个或多个选择的算法的性能以确定用于实现集体操作的至少一个优化算法。
【专利说明】使用集体操作建模的消息传递接口调谐
【背景技术】
[0001]并行计算系统包括多个节点。比如,并行计算系统可包含多个处理器和/或多个处理器核。并行计算系统的每个节点能够独立于并行计算系统的其它节点而执行数据计算。对于并行计算系统所写的应用通过将它们的工作负荷分布在多个节点上来利用这种并行性。并行计算系统的每个节点都可独立执行一个或多个过程(每个过程是运行在并行计算系统上的更大应用的一部分)。在此类并行计算系统中,过程与其它过程通信以共享数据。并行计算系统通常使用通信协议实现此数据共享。
[0002]消息传递接口(MPI)是由许多并行计算系统使用的语言独立的通信协议。MPI可用任何数量的编程语言实现。MPI提供了过程集合之间的虚拟拓扑、同步和通信功能性。除此之外还有其它操作,MPI通常支持过程之间的点对点和集体通信。点对点操作涉及两个过程之间的数据通信。集体操作涉及过程组(其可包含运行在并行计算系统上的所有过程或过程的应用定义的子集)中所有过程之间的数据通信。
[0003]为了增加性能,通信协议(诸如MPI)的参数可对于具体应用和/或具体并行计算系统进行调谐。这些配置参数的人工测试和选择经常需要许多小时乏味的调谐工作。这种调谐工作必须对于运行在并行计算系统上的每个独特应用进行重复。对应用或并行计算系统的成分(例如节点数)的任何改变可能还需要重新调谐通信协议的配置参数。
【专利附图】

【附图说明】
[0004]本文描述的发明在附图中作为示例而非作为限制进行了图示。为了图示的简单和清楚,在附图中图示的元素不一定按比例绘制。例如,为了清楚起见,一些元素的尺寸可能相对于其它元素放大。进一步说,在认为适当的情况下,附图标记已经在附图之间重复以指示对应或类似元素。
[0005]图1是并行计算系统的至少一个实施例的简化框图;
图2是图1并行计算系统的软件环境的至少一个实施例的简化框图;
图3是用于自动调谐图1并行计算系统的通信协议的软件环境的至少一个实施例的简化框图;以及
图4是用于自动调谐图1并行计算系统的通信协议的方法的至少一个实施例的简化框图。
【具体实施方式】
[0006]虽然本公开的概念易受到各种修改和备选形式,其特定示范实施例已经在附图中作为示例示出,并且在本文详细描述。然而,应该理解,没有意图将本公开的概念局限于所公开的具体形式,而相反,意图是本发明覆盖落入由所附权利要求书所定义的本发明的精神和范围内的所有修改、等效和备选。
[0007]在如下描述中,阐述了众多特定细节,诸如逻辑实现、操作码、规定操作数的设备、资源划分/共享/复制实现、系统组件的类型和相互关系以及逻辑划分/集成选择,以便提供本公开的更透彻理解。然而,本领域技术人员会认识到,没有这些特定细节也可实行本公开的实施例。在其它实例中,控制结构、门级电路和完整软件指令序列未详细示出,以免使本发明模糊不清。本领域普通技术人员用所包含的描述将能够实现适当的功能性而无需过多实验。
[0008]在说明书中提到“ 一个实施例”、“实施例”、“说明性实施例”等指示所描述的实施例可包含具体特征、结构或特性,但每一个实施例可能不一定包含该具体特征、结构或特性。而且,此类短语不一定是指同一实施例。进一步说,当结合一实施例描述具体特征、结构或特性时,认为结合无论是否明确描述的其它实施例来实现此类特征、结构或特性在本领域技术人员的知识范围内。
[0009]本发明的实施例可用硬件、固件、软件或其任何组合来实现。在并行计算系统中实现的本发明实施例可包含组件之间的一个或多个基于总线的互连和/或组件之间的一个或多个点对点互连。本发明的实施例也可实现为存储在一个或多个非暂态机器可读介质、机器可读介质上的多个指令,所述指令可由一个或多个处理器读取和执行。机器可读介质可包含用于存储和传送由机器(例如计算装置)可读的形式的信息的任何机制。例如,机器可读介质可包含只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存装置及其它中的任一个或组合。
[0010]本公开一般涉及用于自动调谐在并行计算系统(作为示例诸如在图1中图示的并行计算系统100)中使用的通信协议的配置参数的方法和系统。根据本公开,并行计算系统可包含自动调谐通信协议(诸如消息传递接口(MPI))的配置参数的模块(其可实施为硬件、固件、软件或它们的任何组合)。如,在图2和图3中示出的说明性实施例中,调谐模块212可自动调谐并行计算系统100的MPI 208的配置参数。因此,调谐模块212可优化MPI 208以在并行计算系统100上执行具体应用。当使用术语“优化”(或者其变型)时,本公开考虑确定MPI 208的设置,这些设置与设置的某个其它组相比导致改进的性能。
[0011]虽然此类自动调谐提供了实质利益,但调谐过程仍可能花大量时间,因为调谐模块一般必须测试可与通信协议一起使用以便确定给出具体并行计算系统上具体应用的最优性能的配置参数集合的配置参数的每一个可能组合。最突出的是,MPI的集体操作(其通常占许多高性能计算应用中的总MPI执行时间的很大比率)由于可用于实现每个集体操作的众多算法而经常需要相当大的调谐时间。根据本公开,自动调谐过程的速度可通过使用点对点操作对MPI的集体操作建模来增加。使用这些模型,用于在具体境况下实现集体操作的比较慢的算法可被忽视,并且因此,在自动调谐过程期间要搜索的解决方案空间可被缩小。用于使用此类集体操作建模自动调谐MPI的一个说明性实施例在图4的简化流程图中示出,并将在下面进一步讨论。
[0012]现在参考图1,可利用本公开自动调谐过程的并行计算系统100的一个说明性实施例被显示为简化框图。说明性并行计算系统100包含多个计算装置102和以通信方式耦合所述多个计算装置102的网络104。如图1所示,所述多个计算装置102中的每个计算装置102都包括并行计算系统100的节点。本领域技术人员将认识到,并行计算系统100可包括任何数量的计算装置102 (并且因此包括任何数量的节点)。尽管在图1中仅图示一个计算装置102的组件,但可想到,多个计算装置102中的每个计算装置102可包含类似组件。还可想到,多个计算装置102中的任何一个可包含附加组件或比图1所示组件更少的组件。
[0013]多个计算装置102中的每个计算装置102可被实施为能够执行本文描述的功能的任何类型电子装置。作为示例,每个计算装置102可被实施为个人计算机、工作站、膝上型计算机、手持计算机、移动因特网装置、蜂窝电话、个人数据助理、电话装置、网络器具、虚拟化装置、存储装置控制器或其它基于计算机的装置。在图1所示的说明性实施例中,每个计算装置102包含处理器110、I/O子系统112、系统存储器114和通信电路116。每个计算装置102还可选地包含一个或多个外围装置118和一个或多个数据存储装置120。在一些实施例中,上述组件中的几个组件可被合并在每个计算装置102的母板上,而其它组件可以通信方式例如经由一个或多个外围端口耦合到母板。而且,应该认识到,每个计算装置102可包含通常在计算机和/或计算装置中发现的其它组件、子组件和装置,为了描述的清楚起见,它们在图1中未图示。
[0014]计算装置102的处理器110可以是能够执行软件/固件(诸如微处理器、数字信号处理器、微控制器等)的任何类型处理器。处理器110说明性地实施为具有多个处理器核122的多核处理器。然而,在其它实施例中,处理器110可实施为具有单个处理器核122的单核处理器。因此,可想到,处理器110可具有任何数量的处理器核122。此外,每个计算装置102可包含具有一个或多个处理器核122的附加处理器110。在说明性实施例中,每个计算装置102的每个处理器核122能够独立于其它处理器核122来执行数据计算,向并行计算系统100提供进一步并行性。每个计算装置102的处理器核122可使用任何组合总线、纵横开关、片上网状网络等进行互连。
[0015]处理器110以通信方式经由若干信号路径耦合到I/O子系统112。这些信号路径(以及在图1中图示的其它信号路径)可实施为能够便于每个计算装置102的组件之间通信的任何类型信号路径。例如,信号路径可实施为任何数量的电线、电缆、光导、印刷电路板迹线、通孔、总线、中间装置和/或类似物。每个计算装置102的I/O子系统112可实施为电路和/或组件,以便于与处理器110和/或计算装置102的其它组件的输入/输出操作。在一些实施例中,I/O子系统112可实施为存储器控制器集线器(MCH或“北桥”)、输入/输出控制器集线器(ICH或“南桥”)以及固件装置。在其它实施例中,可使用具有其它配置的I/O子系统。例如,在一些实施例中,I/O子系统112可实施为平台控制器集线器(PCH)。在此类实施例中,存储器控制器集线器(MCH)可合并在处理器110中或以其它方式与之关联,并且处理器110可直接与系统存储器114通信(如图1中的点划线所示)。在又一些实施例中,I/O子系统112可形成片上系统(SoC)的一部分,并与处理器110和计算装置102的其它组件一起合并在单个集成电路芯片上。
[0016]每个计算装置102的系统存储器114也以通信方式经由若干信号路径耦合到I/O子系统112。系统存储器114可实施为一个或多个存储器装置或数据存储位置,例如包含动态随机存取存储器装置(DRAM)、同步动态随机存取存储器装置(SDRAM)、双数据速率同步动态随机存取存储器装置(DDR SDRAM)、闪速存储器装置和/或其它易失性存储器装置。此夕卜,尽管在图1中仅图示了单个系统存储器装置114,但在其它实施例中,每个计算装置102可包含附加系统存储器装置。在图1的说明性实施例中,每个计算装置102实施为对称微处理器系统,其中每个处理器核122利用系统存储器114作为共享存储器。因此,并行计算系统100的多个计算装置102说明性地实施为对称多处理器集群。[0017]每个计算装置102的通信电路116可实施为使能够通过网络104在多个计算装置102之间的通信的任何数量的装置和电路。网络104可实施为任何类型有线和/或无线网络,诸如局域网、广域网、公共可用的全球网络(例如因特网)和/或其它网络。网络104可包含任何数量的附加装置,以便于多个计算装置102(诸如路由器、交换机、中间计算机等)之间的通信。附加地或备选地,网络104可采用开关组构(fabric)拓扑,作为示例诸如InfiniBand?或光纤信道。通信电路116可包含一个或多个有线和/或无线网络接口以便于通过网络104的有线和/或无线部分的通信。通信电路116也以通信方式经由若干信号路径耦合到I/O子系统112,从而允许处理器110访问网络104。
[0018]每个计算装置102还可选地包含一个或多个外围装置118和一个或多个数据存储装置120。作为说明性示例,外围装置118可包含显示器、鼠标、键盘和/或一个或多个外部扬声器。每个计算装置102中包含的具体外围装置118例如可取决于那个计算装置102的预期使用。数据存储装置120可说明性地实施为配置用于数据的短期存储或长期存储的任何类型装置,诸如例如存储器装置和电路、存储卡、硬盘驱动器、固态驱动器或其它数据存储装置。当存在时,外围装置118和数据存储装置120各自经由若干信号路径以通信方式耦合到I/O子系统112,从而允许I/O子系统112和/或处理器110从外围装置118和/或数据存储装置120接收输入并向外围装置118和/或数据存储装置120发送输出。
[0019]现在参考图2,并行计算系统100的软件环境200的一个说明性实施例被示出为简化框图。如上面所讨论的,并行计算系统100包括经由一个或多个通信组构204以通信方式耦合的多个节点202。通信组构204可包含任何数量和任何类型的通信链路,包含上面参考网络104描述的链路。再一次,本领域技术人员将认识到,并行计算系统100可包括任何数量的节点102。尽管在图2的软件环境200中仅详细图示了一个节点202,但是可想到,多个节点202中的每个节点可包含类似组件。还可想到,任何节点202可包含附加组件或比图2所示组件更少的组件。
[0020]并行计算系统100的每个节点202能够独立于其它节点202而执行数据计算。因此,每个节点202可被分配执行一个或多个过程206的任务。每个过程206表示运行在并行计算系统100上的较大应用的一部分,并且可执行总应用工作负荷的一小部分。在图2的说明性实施例中,其中每个节点202表示包含具有多处理器核122的处理器110的计算装置102,每个节点202可同时执行多个过程206。
[0021]在执行期间,每个过程206可需要来自其它过程206的数据,或者可能需要向其它过程206传送其数据。为了实现此数据共享,并行计算系统100包含消息传递接口(MPI) 2080可想到,在其它实施例中,并行计算系统100可利用实现另一通信协议的不同接口。MPI 208可说明性地实施为库,诸如从加利福尼亚州圣科拉拉的英特尔公司可得到的Intel?MPI库,其采用专业化函数调用以在过程206之间传递数据。比如,MPI 208可包含可由过程206调用的多个点对点操作和多个集体操作。在一些实施例中,MPI 208的库可在编译时间链接到应用二进制。在其它实施例中,虚拟机和/或解释器可被用作功能等效物。MPI 208也可支持多个节点202内和跨多个节点202的共享存储器环境。
[0022]在图2的说明性实施例中,并行计算系统100包含性能分析器210。性能分析器210可捕获与MPI 208相关的信息(包含但不限于带宽和开销参数),并且可将此信息传递到调谐模块212。性能分析器210可被实现为MPI 208的扩展或实现为单独的编译程序。附加地或备选地,性能分析器210可被嵌入在硬件中,并且可以能够与并行计算系统100物理对接。
[0023]并行计算系统100还包含调谐模块212。调谐模块212配置成从MPI 208以及性能分析器210接收输入,以执行必要的计算和/或模拟,并输出用于MPI 208的优化配置参数。调谐模块212可驻留在并行计算系统100的单个节点202 (例如服务器)上,或者可将其功能分布在多个节点202上。同样,调谐模块212可说明性地实施为在并行计算系统100的一个或多个计算装置102的处理器110上执行的软件程序。附加地或备选地,调谐模块212可包括位于一个或多个节点202的一个或多个专用硬件装置和/或能够与一个或多个通信组构204对接的独立装置。下面将参考图3和图4进一步描述调谐模块212的操作。
[0024]在图3中示出了允许调谐模块212自动调谐MPI 208配置参数的软件环境300的一个说明性实施例的简化框图。如图3中所图示的,自动调谐过程包括三个级302-306。在输入级302期间,环境信息310和调谐规则312可作为到调谐模块212的输入收集和提供。在调谐级304期间,调谐模块212可利用这些输入并与测试内核314对接以分析用于MPI208的多个配置参数。在输出级306期间,调谐模块212可将优化配置参数提供给一个或多个配置文件318以供MPI 208使用。
[0025]在输入级302期间收集的环境信息310和调谐规则312提供了在自动调谐过程期间对调谐模块212的约束。环境信息310可包含表示并行计算系统100的特征的数据。在一些实施例中,环境信息310可包含与并行计算系统100中的节点202的数量、每个节点202的处理器110和/或处理器核122的数量、可用的通信组构204、操作系统信息等相关的数据。环境信息310可使用标准硬件和软件检测技术来自动捕获,或者可在人工创建的文件中事先规定。
[0026]调谐规则312可规定要优化的MPI 208的一个或多个配置参数。在一些实施例中,调谐规则312可进一步规定用于优化一个或多个配置参数的优先次序。这些配置参数作为示例可影响MPI 208的一个或多个操作的带宽和/或等待时间。说明性配置参数可包含布尔变量、数值变量(例如分组大小)以及枚举变量(例如可用通信组构204以及MPI 208可用于实现具体操作的算法的索引列表)。除了要优化的一个或多个配置参数,调谐规则312还可包含启发法。比如,调谐规则312可包含过程替换启发法或过程锁定(pinning)启发法,要求特定过程206不分散在多个节点202上,或被约束到具体节点202。在一些实施例中,一些或所有调谐规程312可以是用户规定的。附加地或备选地,一些或所有调谐规则312可响应于环境信息310和/或应用信息而自动从预先定义的简档中选择。
[0027]在接收到环境信息310和调谐规则312之后,调谐模块212可分析在调谐级304期间用于MPI 208的多个配置参数。除其它操作之外,调谐模块212可与测试内核314对接,以使用多个配置参数运行模拟,以确定给出用于并行计算系统100上的具体应用的最优性能的配置参数集合。在一些实施例中,测试内核314可以是设计成模拟MPI 208要对其优化的较大应用的相对小的程序。在其它实施例中,测试内核314本身可以是应用。在又一些实施例中,测试内核314可以是用于测试通信协议的标准通信模式(即基准)。
[0028]调谐模块212可通过使用多个配置参数的每一个可能组合而在测试内核314上运行模拟来确定用于一些配置参数的最优设置。在每个模拟期间,调谐模块212可从性能分析器210接收MPI 208的带宽、等待时间和/或其它特性的测量。调谐模块212然后可通过比较从性能分析器210接收的所有测量来确定MPI 208的最优配置参数。然而,如上面所指出的,使用此“强力”方法调谐MPI 208的集体操作由于可用于实现每个集体操作的众多算法而是低效的。根据本公开,调谐模块212可替代地利用方法400,其使用点对点操作(下面参考图4更详细地描述)对集体操作建模以更有效地调谐MPI 208的集体操作。
[0029]在调谐过程完成之后,调谐模块212可在输出级306期间将一个或多个优化的配置参数存储在一个或多个配置文件318中。当实现由过程206调用的操作时,存储在配置文件318中的配置参数可由MP I 208引用。附加地或备选地,存储在配置文件318中的配置参数可以是用于发送到并行计算系统100硬件的指令的参量。在一些实施例中,调谐模块212可将一个或多个优化的配置参数直接传递到MPI 208,以便与应用一起使用(避免使用配置文件318)。尽管前述调谐过程一般已经被描述为在执行应用之前执行,但也可想到,在应用由并行计算系统100执行的同时调谐模块212可执行调谐过程。此类动态调谐可适应在各种通信协议使用条件下运行的应用。
[0030]现在参考图4,用于自动调谐并行计算系统100的MPI 208的方法400的说明性实施例被示出为简化框图。方法400可由调谐模块212 (连同MPI 208和/或测试内核314)执行以确定用于通过MPI 208实现集体操作的至少一个优化算法。方法400被图示为图4中的若干块402-414。在一些实施例中,块406-410可用于执行块404的操作,并且因此,在图4中的剖视图中指示。
[0031]方法400开始于402,其中调谐模块212选择要由并行计算系统100的MPI 208实现的集体操作。比如,在块402,调谐模块212可选择MPI 208的广播操作。作为另一示例,在块402,调谐模块212可选择MPI 208的全减少操作。将认识到,调谐模块212可选择许多其它集体操作来使用方法400进行优化。在一些实施例中,调谐模块212可配置成对于要由MPI 208实现的多个集体操作中的每个操作迭代地执行方法400。
[0032]如上面所指出的,MPI 208通常可使用多个不同算法来实现每个集体操作。比如,MPI 208可使用二叉树算法、递归加倍算法、环算法、Shumilin环算法或类似算法来实现广播操作。同样,MPI 208可使用Rabenseifner算法、二叉树算法、递归加倍算法、环算法、Shumi I in环算法或类似算法来实现全减少操作。用于实现集体操作的最优算法经常将取决于并行计算系统100的特征,诸如节点202的数量、每个节点202的处理器110和/或处理器核122的数量、可用通信组构204等等(即环境信息310)。
[0033]而且,用于实现集体操作的最优算法也可随要由集体操作处置的消息大小(即消息长度)而变。从而,对于具体并行计算系统100,集体操作的最优性能可使用分段函数获得,诸如:
集体操作={ algo @m<rni ; algi @mi <m<m2;…;a〖gn @ mn < m },
其中[algl,alg2,...,algn]表示用于实现集体操作的不同算法,m表示消息大小,并且[InlllH2,...,mn]表示定义分段函数子域的消息大小。换句话说,上面的分段函数对于要由集体操作处置的每个消息大小都规定了要由MPI 208使用的优化算法。从而,在方法400的一些实施例中,调谐模块212可确定用于实现集体操作的多个优化算法。
[0034]在块402之后,方法400继续进行块404,其中调谐模块212确定MPI 208可用于实现在块402中选择的集体操作的多个算法中的每个算法的传输速率。每个可能算法的传输速率表示算法完成集体操作所需的时间。如将在下面进一步讨论的,在执行剩余算法的更时间密集的模拟之前,确定每个可能算法的传输速率允许调谐模块212忽略比较慢的算法(即具有较慢传输速率的算法)。在块404,调谐模块212通过将每个算法建模为对应多个点对点操作来确定多个算法中的每个算法的传输速率。换句话说,调谐模块212将每个可能算法表示为点对点操作的预先确定的序列,并且在并行计算系统100上测量那些点对点操作的性能特性。在说明性实施例中,调谐模块212将多个算法中的每个算法建模为对应多个双向发送-接收(SendRecv)操作。可以想到,在其它实施例中,可使用其它点对点操作对MPI 208可用于实现集体操作的每一个算法建模。
[0035]在方法400的一些实施例中,调谐模块212可通过执行在块406-410中阐述的操作来确定多个算法中的每个算法的传输速率,如图4中所图示的。在此类实施例中,方法400进行到块406,其中调谐模块212使MPI 208执行包含在可能算法的模型中的每个点对点操作。在块406期间,对于要由集体操作处置的每个消息大小执行每个点对点操作。在块406的一些实施例中,调谐模块212可使MPI 208执行位于彼此相距各种距离D的过程206之间的点对点操作,包括:位于同一套接字(socket)上(D=O)的过程206、位于同一节点202的不同套接字上(D=I)的过程206以及位于不同节点202上(D=2)的过程206。在块406的一些实施例中,调谐模块212还可使MPI 208对于每个可能的过程密度d (即在并行计算系统100的每个节点202上执行的过程206的数量)执行点对点操作。
[0036]方法400还可包含块408,其中性能分析器210测量完成在块408中执行的每个点对点操作所需的时间。性能分析器210向调谐模块212发送测量数据。在块408,调谐模块212使用此测量数据确定用于每个执行的点对点操作的点对点开销参数和带宽参数。在块406中执行的点对点操作在各种距离上、针对各种消息大小并且针对各种过程密度的实施例中,调谐模块212可使用具有如下通用形式的分段线性函数来近似完成每个点对点操作所需的时间t:
【权利要求】
1.一种方法,包括: 选择由并行计算系统的消息传递接口(MPI)实现的集体操作,其中所述MPI配置成使用多个算法中的至少一个算法实现所述集体操作; 将所述多个算法中的每个算法建模为对应多个点对点操作; 使用其对应多个点对点操作确定所述多个算法中的每个算法的传输速率; 从所述多个算法中选择一个或多个算法,所述一个或多个选择的算法比一个或多个未选择的算法具有更高的传输速率;以及 用多个配置参数测试所述一个或多个选择的算法的性能以确定用于实现所述集体操作的至少一个优化算法。
2.如权利要求1所述的方法,其中确定所述多个算法中的每个算法的所述传输速率包括: 执行用于要由所述集体操作处置的每个消息大小的所述对应多个点对点操作的每个点对点操作;以及 测量用于每个执行的点对点操作的点对点开销参数和带宽参数。
3.如权利要求2所述 的方法,其中执行所述对应多个点对点操作的每个点对点操作包括: 执行位于所述并行计算系统的单个套接字上的过程之间的至少一个点对点操作;执行位于所述并行计算系统的单个节点的不同套接字上的过程之间的至少一个点对点操作;以及 执行位于所述并行计算系统的不同节点上的过程之间的至少一个点对点操作。
4.如权利要求3所述的方法,其中执行所述对应多个点对点操作的每个点对点操作进一步包括:执行用于所述并行计算系统的每个可能过程密度的每个点对点操作。
5.如权利要求2所述的方法,其中确定所述多个算法中的每个算法的所述传输速率进一步包括:对沿所述对应多个点对点操作的关键路径的每个点对点操作的带宽参数求和。
6.如权利要求5所述的方法,其中确定所述多个算法中每个算法的所述传输速率进一步包括组合集体开销参数与所述多个算法中每个算法的合计的带宽参数,其中所述集体开销参数包括沿所述关键路径的所述点对点操作的最大点对点开销参数以及算法特定系数。
7.如权利要求1-6中任一项所述的方法,其中对所述多个算法中的每个算法建模包括:将所述多个算法中的每个算法建模为对应多个双向发送-接收操作。
8.如权利要求1所述的方法,其中测试所述一个或多个选择的算法的性能包括:在测试内核上用多个配置参数的每个可能组合执行所述一个或多个选择的算法中的每个算法。
9.如权利要求1所述的方法,进一步包括:响应于测试所述一个或多个选择的算法的性能而确定用于实现所述集体操作的分段函数,所述分段函数规定要由所述集体操作处置的每个消息大小的优化算法。
10.如权利要求1所述的方法,其中选择所述集体操作包括选择广播操作,并且其中所述多个算法包括二叉树算法、递归加倍算法、环算法和Shumilin环算法中的两个或更多个。
11.如权利要求1所述的方法,其中选择所述集体操作包括选择全减少操作,并且其中所述多个算法包括Rabenseifner算法、二叉树减少-分散算法、递归加倍算法、环算法和Shumilin环算法中的两个或更多个。
12.如权利要求1-6和8-11中任一项所述的方法,其中选择所述集体操作包括选择要由对称多处理器集群的MPI实现的集体操作。
13.—个或多个机器可读介质,包括多个指令,所述指令响应于被执行而引起并行计算系统的调谐模块执行如下操作: 选择由所述并行计算系统的消息传递接口(MPI)实现的集体操作,其中所述MPI配置成使用多个算法中的至少一个算法实现所述集体操作; 通过将所述多个算法中的每个算法建模为对应多个点对点操作来确定所述多个算法中的每个算法的传输速率; 从所述多个算法中选择一个或多个算法,所述一个或多个选择的算法比一个或多个未选择的算法具有更高的传输速率;以及 用多个配置参数测试所述一个或多个选择的算法的性能以确定用于实现所述集体操作的至少一个优化算法。
14.如权利要求13所述的一个或多个机器可读介质,其中所述多个指令引起所述调谐模块确定所述多个算法中的每个算法的所述传输速率,至少部分通过: 使所述MPI执行用于要由所述集体操作处置的每个消息大小的所述对应多个点对点操作的每个点对点操作; 以及 测量用于每个执行的点对点操作的点对点开销参数和带宽参数。
15.如权利要求14所述的一个或多个机器可读介质,其中所述多个指令引起所述调谐模块使所述MPI: 执行位于所述并行计算系统的单个套接字上的过程之间的至少一个点对点操作; 执行位于所述并行计算系统的单个节点的不同套接字上的过程之间的至少一个点对点操作;以及 执行位于所述并行计算系统的不同节点上的过程之间的至少一个点对点操作。
16.如权利要求15所述的一个或多个机器可读介质,其中所述多个指令引起所述调谐模块使所述MPI执行所述并行计算系统的每个可能过程密度的每个点对点操作。
17.如权利要求14所述的一个或多个机器可读介质,其中所述多个指令进一步引起所述调谐模块确定所述多个算法中的每个算法的所述传输速率,至少部分通过:对沿所述对应多个点对点操作的关键路径的每个点对点操作的带宽参数求和。
18.如权利要求17所述的一个或多个机器可读介质,其中所述多个指令进一步引起所述调谐模块确定所述多个算法中每个算法的所述传输速率,至少部分通过:组合集体开销参数与所述多个算法中每个算法的合计的带宽参数,其中所述集体开销参数包括沿所述关键路径的所述点对点操作的最大点对点开销参数以及算法特定系数。
19.如权利要求13-18中任一项所述的一个或多个机器可读介质,其中所述多个指令引起所述调谐模块确定所述多个算法中的每个算法的所述传输速率,至少部分通过:将所述多个算法中的每个算法建模为对应多个双向发送-接收操作。
20.如权利要求13所述的一个或多个机器可读介质,其中所述多个指令引起所述调谐模块测试所述一个或多个选择的算法的性能,至少部分通过:在测试内核上用多个配置参数的每个可能组合执行所述一个或多个选择的算法中的每个算法。
21.如权利要求13所述的一个或多个机器可读介质,其中所述多个指令进一步引起所述调谐模块响应于测试所述一个或多个选择的算法的性能而确定用于实现所述集体操作的分段函数,所述分段函数规定要由所述集体操作处置的每个消息大小的优化算法。
22.—种并行计算系统,包括: 多个节点,所述多个节点中的每个节点配置成执行一个或多个过程; 消息传递接口(MPI),配置成使用多个点对点操作和多个集体操作在过程之间传递数据;以及 调谐模块,配置成:(i)选择所述多个集体操作之一,其中所述MPI配置成使用多个算法中的至少一个算法实现选择的集体操作;(ii)通过将所述多个算法中的每个算法建模为对应多个点对点操作来确定所述多个算法中的每个算法的传输速率;(iii)从所述多个算法中选择一个或多个算法,所述一个或多个选择的算法比一个或多个未选择的算法具有更高的传输速率;以及(iv)用多个配置参数测试所述一个或多个选择的算法的性能以确定用于所述MPI实现所述集体操作的至少一个优化算法。
23.如权利要求22所述的并行计算系统,其中所述调谐模块配置成执行用于所述MPI的所述多个集体操作中每个集体操作的操作(i)-(iv)。
24.如权利要求22所述的并行计算系统,其中所述调谐模块配置成确定所述多个算法中的每个算法的所述传输速率,至少部分通过: 使所述MPI执行用于要由所述集体操作处置的每个消息大小的所述对应多个点对点操作的每个点对点操作;以及 测量用于每个执行的点对点操作的点对点开销参数和带宽参数。
25.如权利要求24所述的并行计算系统,其中所述调谐模块配置成使所述MPI: 执行位于所述并行计算系统的单个套接字上的过程之间的至少一个点对点操作; 执行位于所述多个节点之一的不同套接字上的过程之间的至少一个点对点操作;以及 执行位于所述多个节点之一的不同节点上的过程之间的至少一个点对点操作。
26.如权利要求25所述的并行计算系统,其中所述调谐模块配置成使所述MPI执行所述并行计算系统的每个可能过程密度的每个点对点操作。
27.如权利要求24所述的并行计算系统,其中所述调谐模块进一步配置成确定所述多个算法中的每个算法的所述传输速率,至少部分通过:对沿所述对应多个点对点操作的关键路径的每个点对点操作的带宽参数求和。
28.如权利要求27所述的并行计算系统,其中所述调谐模块进一步配置成确定所述多个算法中每个算法的所述传输速率,至少部分通过:组合集体开销参数与所述多个算法中每个算法的合计的带宽参数,其中所述集体开销参数包括沿所述关键路径的所述点对点操作的最大点对点开销参数以及算法特定系数。
29.如权利要求22-28中任一项所述的并行计算系统,其中所述调谐模块进一步配置成确定所述多个算法中的每个算法的所述传输速率,至少部分通过:将所述多个算法中的每个算法建模为对应多个双向发送-接收操作。
30.如权利要求22-28中任一项所述的并行计算系统,其中所述多个节点中的至少一个节点包括配置成使用共享存储器执行多个过程的对称多处理器系统。
【文档编号】G06F11/34GK104025053SQ201180076219
【公开日】2014年9月3日 申请日期:2011年11月8日 优先权日:2011年11月8日
【发明者】A.V.苏帕洛夫, M.V.楚维勒夫, D.V.当特索夫, V.D.特鲁斯钦 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1