文摘

为了适应不断更新硬件和super-large-scale异构并行计算环境和解决编程水平低的问题和困难的开发、修改和调试的常用解决方案,作者提出了一个应用程序通信优化方法和基于异构集群计算机大数据管理。介绍了一门新语言机制来描述多维规则结构,安排,和沟通模式数据和线程;和软件不同类型的异构系统之间的迁移和优化方法的基础上,提出了新的语言机制。并采取直接法湍流模拟作为一个例子。实验结果表明,基于Parray机制,仅用了一个星期完成的快速迁移在天河1 a湍流模拟应用程序系统,并成功地运行在一个规模8192立方米。结论。该方法实现沟通在不同的异构系统优化和快速移植。

1。介绍

近年来,深等各种技能培训已成功实现了绘画和自然语言处理,如图1。时间很长,通常几天甚至几周时间,为了提高深度培训的定位标准,测量的数据太多,培训所需的时间也会增加,计算机的计算能力是有限的,不能满足需求。为了提高系统培训的效率,分布式训练进行了近年来在集群上,原来的单台机器上和训练过程分布到多台计算机上并行执行,提高了处理速度的数据样本,大大缩短了训练时间,例如,最近,华为云ModelArts使用16节点和8 v100 gpu集群中的每个节点训练ResNet-50分布式的方式,和只花了10分钟28秒收敛ImageNet数据集。分布式深度学习的必要手段应对数据和模型的规模越来越大,成为一个关键问题在学术界和产业界[1]。

当执行分布式训练在异构集群中,由于计算和网络性能的巨大差异不同的机器,不同的迭代时间工人节点相同的工作负载也有很大区别。当使用BSP算法,因为每次迭代需要等待所有工人节点完成,分布式训练的性能受限于最慢的工人节点(2]。当使用ASP算法,每个工人独立节点更新参数,完成一些迭代之后,它就可以开始下一个迭代没有等待其他工作节点,但这将使每个工人节点基于不同的参数训练,尤其是一些工人节点明显比其他人慢,慢的工人节点完成多个迭代和更新参数在一个迭代,而缓慢的工人仍然节点计算基于旧的参数之前,然而,梯度更新参数获得的训练和过时的参数会导致参数偏离最优解,导致不正确的收敛,从而减缓了收敛速度(3]。

2。文献综述

王等人创建了一个软件图书馆能够支持c++应用程序,使用一个混合的麦克风协处理器实现,与SCIF里面进行数据传输和同步交流。尽管COI和SCIF里面有自己的研究工作和编程指导,到目前为止,还没有研究人员提出了一个使用COI和SCIF混合编程方法。许多核心算法程序和实际应用研究了麦克风协处理器(4]。贾古玛等人总结了关键技术获得高性能的麦克风coprocessing [5]。许等人移植现有的科学计算应用和微核数一个麦克风协处理器(6]。李等人开发了SIMD分子动力学的应用程序在一个麦克风协处理器(7]。戈登伯格等人加速大规模稀疏线性系统PQMRCGSTAB迭代算法,图像和视频压缩IDCT算法,应用分子动力学模拟,麦克风coprocessing等,研究了自动转换方法和优化卸载代码从OpenACC英特尔卸载模式方法(8]。

编程框架研究而言,Bachiller等人提出了Uintah软件计算框架和解决交互问题解决多个流体结构的适应性结构化网格(9]。Uintah,解决复杂问题的多尺度和多重物理量场进行了研究,通过整合各种仿真组件,用户可以通过DAG图描述组件之间的依赖关系,自动生成并行代码和处理负载平衡。流体结构联合交互仿真(Uintah AMR MPMICE)由coprocessing踩踏加速进行,通过使用点对点MPI通讯,MPI过程分别运行在主机CPU和协处理器,该设备被认为是一个独立的节点,通过MPI通讯,它执行合作计算。MPI程序在设备上开发多核CPU或协处理器许多核心通过Pthreads多线程并行性。主机的每个节点在这项研究开始一个MPI的过程,每个MPI流程开发16 Openmp线程,和协处理器边是两个MPI的进程,每个MPI进程发展六十Openmp线程。应用量表16个节点,每一个都有麦克风协处理器。然而,Uintah对异构系统负载不平衡的问题,甚至影响在近60%的情况下计算性能。

以直接湍流模拟方法为例,作者讨论了新软件,应该使用在这个角度的计算软件兼容性,编程过程中,算法设计和实现,在各种应用程序和软件支持,并提供经验交流软件(10]。

3所示。研究方法

现有的复合句子中经常使用母语组。表1列出了现有的编程段落的特点。其中,第一行是如何使用语言分类:(1)的操作实现数据通信和共享库的形式,而其他的操作都是由传统的串行语言元素;(2)平行语义表达显式或隐式语言结构或原语。第二列分类语言根据地址空间可见每个并行程序的执行元素:在MPI,流程只能从本地节点直接访问数据。其他编程模型允许线程访问全局数据在任何节点。第三行描述了不同的语言资源管理(11]。

数据访问的性能,如易于操作,可分为带宽约束(如存储带宽和通信带宽)、数据约束和外部内存。在计算过程中,重要的数据可以存储在一个大的内存,多个加速卡,或其他内存。多核处理器现在适合重型似乎有高性能的应用程序。计算密集型任务适合许多核心加速度(如密度矩阵乘法和LINPACK)通常可以达到令人满意的性能在许多核心集群利用率,和数据存储位置对性能影响不大。

然而,存储带宽高,但数据区域是好的。设计低带宽通信功能(如计数差异)需要大内存的数据直接在加速卡和网络连接12,13]。使用高带宽通信FFT等数据可以直接在内存中存储和计算由多个卡加速器。这类的应用程序需要PCI总线的带宽匹配网络带宽;否则,整个系统的瓶颈将出现在最窄的带宽。

高带宽通信,如fft算法,每个乐队的性能通常是由节点网络带宽有限,多个PCI接口的带宽,加速器性能,GPU计算速度,等等。网络之间的数据传输的速度和PCI总线的远远超过卡。这样的问题不会表面上受益很多核心加速度,但许多核心集群FFT的实现表明,许多核心集群架构有利于增加单节点的有效总带宽内存和处理单元。此外,卡片可以存储多CPU缓存,这意味着大型操作可以发送到内存,运行速度,减少数据的平均水平(14]。如何让一个处理器对于高带宽应用,优化非齐次并行计算算法通常集中在减少数据传输的数量从内存到内存处理器。

新的3 d第一GPU集群将FFT算法 尺寸为 - - - - - -大小的三维数据 通过 节点和 2 d页面的内存( 是一个严格的配置)。每一页被发送到GPU的二维FFT计算和回大内存。所有节点需要重新组装 在每个节点维度,然后交换大数据在GPU上像Alltoall FFT计算。GPU内存通常范围从3 GB到6 GB,大于CPU缓存,允许它获得非常大的块从主存为单个操作和收费。允许有限的带宽主要的PCI总线。PCI总线的带宽限制主内存和GPU之间的补偿。相比之下,做文件屏蔽时,CPU需要访问关键内存超过大缓存。

上述方案的困难需要改变矩阵的大小除以每个集群。异构集群有更多的多层结构比传统系统(15]。以GPU集群为例,如图2,存储在内存中的数据是非常重要的,但包括GPU,数据必须存储在GPU内存;与此同时,为了利用GPU高性能计算,有必要考虑GPU的共享内存和寄存器结构和执行目标编程。因此,许多团体有了更多的选择对大型矩阵的变化在FFT比现有的关键内存模型组。

有几种方法来识别集群分布的变化在不同的组:(1)等大型通信接口Alltoall可以切换从节点位置;(2)主内存可以携带数以GB的数据交换规模;(3)GPU可以携带高速小矩阵开关(16,17]。修复所有网络通信的好处,有内存带宽仍不到GPU内存带宽,不是算法优化的关键,但如何减少内存性能。的主要创新是进一步将数据划分为块在数据传输过程中,调整数据块的相对偏移量,这之间的联系“抵消开关”和GPU换位只能完成了三个小时的大,中,小。无记忆的转置在主函数。注意:不同的通信系统有不同的通信规则的粒度(如数据段的长度)。例如,一个PCI从关键的记忆转移到GPU需要超过2 MB的存储几乎达到峰值,而最优密度Infiniband网络需要超过10000字节。因为数据共享可以减少关系的复杂性,保存基本内存的最佳策略必须考虑到人际关系的复杂性。

作者进行验证实验一小GPU集群在北大McClus决定使用数据移动的想法FFT组和调整数据块的相对方差最小化内存关键功能(18]。尽管集群只有16个节点,它有一个独特的体系结构,如图3。每个节点有两个IOHs,每个连接到GPU和Infiniband网卡。

设计双GPU和双Infiniband网卡在北大McClus GPU集团,我们开发的详细过程变化的分布数据的过程2 GPU /计数和使用2 Infiniband网卡通信集成数据跨多个通道(直接通过IB /动词通过通信模块)。

维度转变PKUFFT这北大McClus GPU集群算法如下。把阵列数据分成16段根据X的长度,并将他们划分为16个节点。因为他们各有2个gpu,数据节点分成2额外的部分。另外,分解的 长度是一样的分解 长度。首先,每个GPU执行128 ( )二维fft算法和计算数据 - - - - - - - - - - - -尺寸说明。128二维fft算法分为32组,每一组是4的二维fft算法 循环执行32倍,将一组文件发送到GPU和2 d。计算FFT,并把结果Infiniband输出,与GPU。在写作的过程中从Infiniband输出到输出缓冲区Infiniband的其他节点,项目转置 维度和 维度;在Infiniband的数据输出相应的GPU的固定内存,尺寸调整;最后,重复在GPU内存转换前1 d FFT的X维度从内存数据转移后GPU内存的关键。注意:在随后的实现中,GPUDiReCe使用技术,所以Infiniband输出缓冲区中的数据可以直接上传到GPU设备内存,从而实现一个完整的无头换位操作。

4所示。分析的结果

4.1。天河1 a集群FFT算法及其Parray描述

天河一号集团和北京大学McClus GPU两组,但模型是完全不同的:每个天河一号组有一个GPU和只有一个通信卡。虽然北大McClus FFT算法的实现有一个类似的概念,它需要为每个会话提供数据共享和重复沟通的表示19,20.]。作者只描述了实现FFT算法的天河一号集群。

我们使用Parray表示算法的伪代码。为简单起见,伪代码只认识到数组类型,而不是真正的交换对象。作为一个指标,我们采用一个单精度复杂float2(8个字节长度)到复杂的(C2C)变换和假设数据交流和FFT计算后回到的地方。

在上面的虚拟代码,“2 dcufft”是指调用CUFFT库来执行 二维FFT在 维度,而“1 dbatched CUFFT”是指执行FFT计算大小 伪代码也给时间估计为每个步骤。 代表理想的数据传输带宽从主存到GPU卡(约5 GB / s)。 是数据传输的带宽回主内存(大约4 GB / s)。 是数据传输的带宽在GPU卡(约100 GB / s)。 是所有节点的平均带宽通信同时每个端口(1.2 GB / s为整个天河机)。FFT是合理规模的单精度浮点FFT在GPU(单个长度浮点FFT的总数是5 Mlog M)计算速度(大约200 gflops / s)。三维FFT的耗时的估计的大小为14336的全部7168个节点天河如下:

我们测量在天河35年代整个机器。

FFT湍流模拟中使用的数据值的一半以上测试,分为正向变换的复杂(R2C)和反向变换复杂真实(C2R)。现实和困难都有数字计数,所以汇率可以返回该位置没有进一步沟通结束的时候。注意:R2C的C2R CFFT库比C2C更慢,和模型的性能有很大的差异,所以C2C是必要的措施。

3 d FFT GPU的性能组Parray所使用的测试在天河1 a和与英特尔MKL 10.3.1.048 [21]。图4是不同尺度的三维FFT比较相同的硬盘(图PKUFFT GPU的三维FFT模型组所使用的天河一号Parray)。可以看出PKUFFT的性能远远超过MKL。图5表明PKUFFT MKL相比有更好的性能可伸缩性。

4.2。湍流模拟程序迁移的直接方法

各向同性直接模拟方法通常用于大型傅里叶开关。在天河1 a,整个机器的测量可以达到14336三维个位数的实数,和包装材料可以达到11结核病。动荡的系统必须有十多个阵列来表示系统的不同组件。的竞争已经从传统文化不同组的天河一号,和有必要重建分布,准备,和输出信息根据建筑物的异质群体的特点。

为核心的FFT算法用于直接竞争,尽管1天河集团的FFT算法类似于北京大学McClus的应用算法,由于产品分布的变化,数据准备和分配必须重用。它的实现需要需要重新编写普遍。有类似的问题不同的异质组的移植应用程序。应用程序开发基于Parray软件提供了一个新的机制不同类型的异构系统之间的迁移。

根据Parray编程接口,敏捷开发和修改的应用程序在异构组可以以最小的和最快的代码修改通过改变Parray程序中描述的文件类型和大小。Parray-based快速迁移应用程序通常包括以下步骤,请扫描OSID为特定的需求。(1)完善新的异构过程Parray编程接口,并提供支持新语丝和存储格式,这个过程是由程序员程序员完成(2)例如,对于GPU集群,提供GPU设备内存和支持GPU手机通过Parray编程接口,CUDA策略必须开发;同样,新类型的支持可以快速引入麦克风团队(3)使用Parray修改应用程序是由应用程序的程序员。应用程序不使用Parray使用Parray来描述他们的文件分布和分类,并比较利益相关者;为应用程序成功实现使用Parray Parray文件格式和Parray并行代码需要修改以适应不同的新需求。在传统操作,数据传输变量可以被嵌套多个抬头,清晰的描述和应用Parray数组模式(4)调试新Parray应用程序异构组。在移植的过程中湍流服务,基于MPI的原始代码,确保准确的操作异构组。这个项目不适合相同的加速度组件和网络传输类型。然后,进入Parray进程/线程阵列模式的代码,并指定当前的进程/线程并行计算模式;介绍了Parray数据数组格式来表示数据数组根据应用程序的类型数据的关系,和Parray混合数组格式显示了各种数据数组。分配的存储方法和子程序之间的通信。简化和优化传输数据通信的描述方法。对于需要复合加速度方程,thread-array类型异构中国材料,进一步考虑的最优表示数据存储分配和传输在异构计算组件和完整的线程计算的实现和移植代码的线程异构计算组件的数组

根据Parray机制,我们取得了快速转换在一周内天河- 1 a系统的热效率,达到8192立方米的测量。

5。结论

作者介绍Parray的通信模型来描述不同的模型、计划、沟通信息和消息。新的异构过程,Parray可以扩展线阵列类型,扩展数组类型的支持,并表示新的数据分布模型;同时,通过扩展和优化性能的子程序复制,将提供新的提交。多线程数组类型集成电话可以支持各种异构系统的传播。作为一个例子使用直接湍流模拟的异质群体转换,作者开发了一个敏捷方法将异质群体项目通过改变文件类型和大小,基于Parray编程接口。最小和速度比代码修改,这个过程是对使用异构组尤其重要。

数据可用性

使用的数据来支持本研究的发现可以从相应的作者。

的利益冲突

作者宣称没有利益冲突。