融合通信新技术与高性能网络优化(集群通信网络结构)

中国论文网 发表于2022-11-17 16:08:24 归属于通信学论文 本文已影响311 我要投稿 手机版

       中国论文网为大家解读本文的相关内容:          

  随着大规模并行计算机处理器核数的不断增加,如何开发与并行计算机处理器核数相匹配的并行程序,从而支撑大规模乃至超大规模数值模拟,成为一个备受瞩目的重要问题。实际上,在许多成E-mail:fcst@p://:+86-10-89056056百上千处理器的高性能计算机上,相当数量的工程应用并行软件,难以获得理想的绝对计算速度和并行效率,许多并行程序甚至难以获得正向的加速效果。其中,影响应用程序计算性能发挥的主要瓶颈之一是消息传递通信,许多应用程序消息传递通信模块不合理,导致出现全局通信频率过高,或导致通信堵塞。

  要优化并行程序的集合通信性能,首先需要深刻理解集合通信开销,尤其是通信性能的可扩展性。集合通讯的性能建立在基本的通讯模型基础之上,其中被广泛使用的通信性能模型是LogP模型[1],该模型是一个针对分布式存储的多处理器模型,处理器间采用点对点通信。LogGP模型[2]在LogP模型的基础上增加了一个参数G,该参数可以描述在传递长消息时获得的带宽。考虑到集合通信中,随着消息块大小的不同,通讯延迟对集合通信性能的影响是不同的,对MPI集合通信的实现有各种形式的优化[3-10],如最为经典的采用结合二叉树模型实现bcast和reduce等操作。国内也有一些针对集合通信性能评估和优化方面的研究,包括针对Alltoall通信的测试和优化[11-14],对集合通信通信模型的评估。

  尽管对于集合通信开销的评估、优化和理论研究较多,但对于大规模并行计算机上较为全面的集合通信性能分析研究并不多见。不同类别的集合通信的性能究竟呈现什么特征?在实际大规模并行机上集合通信的性能是否与相关理论吻合,是否具备了高可扩展性?集合通信理论建模与实测性能间的差距究竟有多大?这些都需要我们对MPI集合通信性能进行全面的定量分析,以期发现大规模并行计算机通信系统运行中的问题,并为大规模并行程序通讯模式的设计提供参考。

  2集合通讯实现算法分析

  集合通讯的性能与参与的进程数,消息块的大小,系统通讯延迟和带宽相关,同时依赖于集合通讯的实现算法。以下分别对典型的集合通讯性能进行理论分析,其中p为进程数,k为消息的大小,a为通讯延迟,p为通信带宽的倒数,Y为执行Reduce操作时每字节的计算开销。

  2.1Beast和reduce实现算法

  实现Bcast最著名的算法是最小跨距算法(MST),其基本思想是把参与通讯的节点等分为两个无交集的集合,首先从不包含root节点的子集中选取一个目的节点,执行root至该目的节点的一次消息发送,然后分别以root和至该目的节点作为root节点,在这两个子集合中递归执行上面的步骤,直至所有节点都收到消息。显然,MST算法将bcast和reduce通信开销从p降到了log2(p)量级,对于大规模的集合通信,其意义是显而易见的。

  在不考虑网络冲突的前提,MST算法的开销如下:

  TMSTBcast(p,n)=「log2(p)1(«+«灼Reduce与bcast的实现类似,采用MST算法实现时的开销如下:

  TMSTBcast(p,«)=「log2(p)1(«+«户+«,)

  2.2scatter和gather实现算法scatter和gather的实现也可以采用MST算法,其中gather是scatter的逆过程,scatter和gather的开销如下:1p_1TMS!Scaffer(p,n)=艺(a+2〜灼=「log2(p)V+——冲k=「1。伽1p_1Wt加)=g

  2.3Allgather实现算法

  Allgather实现算法包括早期的环(ring)方法,其开销随进程数P的增加呈线性增长;Allgather实现算法的优化主要思路是减少通讯步数,将时间开销降低为与进程数P呈log关系,以减少通信延迟的影响,主要的实现算法有递归加倍(recursivedoubling)算法和bruck算法,与Allgather的实现类似,Allreduce可以用以及递归加倍(recursivedoubling)算法和rabenseifrer算法实现,区别在于每个通讯步Allreduce还涉及本地的规约操作。Trec-dbl=l〇g2(P)a+nl〇g2(P)P+nl〇g2(P)Y

  2.5Alltoall实现算法

  对于短消息(兰256B),Bruck算法以额外的通讯来换取p的对数级的执行步骤,是当前较好的Alltoall实现算法,对于中等长度的消息(256B至32KB之间),irecv-isend算法较好,对长消息,通常采用成对交换(pairwise-exchange)算法,其开销如下:Tbruck=「log2(P)l«+(nlog2(P)+n(P-2Llo&(P)」))PTlong=(P-l)a+np

  3测试平台及分析方法3.1测试平台

  测试平台选择某国产并行机(简称:BXJ),该系统的每个计算结点包含2颗英特尔微处理器,每颗微处理器包含6个计算核心;互联系统采用自主设计的高阶路由芯片NRC和高速网络接口芯片NIC,实现光电混合的二层胖树结构高阶路由网络互连。由于该测试平台处于生产性运行状态,测试时没有机会占用全系统,论文中相关测试的最大并行规模为8192个MPI进程。


  3.2测试和分析方法

  对于MPI各种集合通信性能的理论值,依据第2小节的相应算法进行计算,通讯延迟a,通信带宽P依据系统基本通讯的实际测试值设定为固定,为简便起见,不考虑这些参数随通讯距离、消息块大小的变化;Y参数依据微处理器的主频、SIMD位数等估算,不考虑操作的访存开销。对于MPI集合通信的性能测试,选用Intelimb测试程序,评测的集合通讯操作主要包括:Reduce、Gather、Alltoall、Bcast、Scatter、Allgather和Allreduce。测试结果取多次测试的均值。

  4基本通讯参数测试与数据分析

  首先,利用IMB中PingPong程序和Sendrecv程序测试MPI通讯延迟、传输带宽情况。结果分别。结果显示:(1)BXJ的最小延迟2.72us与系统提供的参数2.37us基本相当,但PingPong的数据量超过一个数据包64Bytes(packet)时,延迟显著上升,显然在BXJ处于生产性运行时,测试程序明显与其它程序存在通讯通道的竞争;(2)单进程MPI通讯带宽随消息块尺寸的增加而不断增加,但单MPI进程很难达到最大通讯带宽,即便传输MB量级的消息。

  每个计算节点执行8个进程和12个进程时,Sendrecv程序运行8192个进程时的延迟和带宽情况。右,考虑到Sendrecv包含send和receive操作各一次,8192进程执行时的延迟基本与BXJ的通讯参数相符;(2)每个计算节点执行8个进程时,每个进程可以获得的带宽为656.54MB/秒,即单计算节点可获得的通讯带宽为8*656.54MB/秒=5252.32MBMB/秒;每个计算节点执行12个进程时,每个进程可以获得的带宽为450.74B/秒,即该节点可获得的通讯带宽为8*450.74B/秒=5408.88MB/秒;(3)以a-卩模型估算,Sendrecv操作传输64K数据包的延迟在141.86至280.52之间(12进程/单节点),分别针对send和receive完成可以重叠及完全没有重叠,与实测数据基本吻合;Sendrecv操作传输64K数据包的延迟在98.4至193.6之间(8进程/单节点),与实测数据也基本吻合。

  中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。

返回通信学论文列表
展开剩余(