面向数据通信优化的并行程序执行模型

时间:2022-10-30 03:59:02

面向数据通信优化的并行程序执行模型

摘 要:随着人们高效率、快速度、高精度数据处理要求的提出,传统单机处理器越来越无法满足当前计算机工作需求,让越来越多的业界工作者对数据通信实时性提出了更高要求。基于此,以并行计算为核心的数据计算理念逐渐被人们关注,成为当今业界研究重点所在。本文就面向数据通信优化的并行程序执行元件设计工作要点做了简单分析,旨在为同行工作提供参考。

关键词:计算机;数据通信;并行程序;执行模型;优化设计

并行计算模型是当今计算机领域、信息领域的研究重点,尤其是在近些年来,伴随高性能计算机技术的出现和发展,并行计算软件、硬件结构也变得更加复杂。这些发展规律给并行程序的执行系统提出了新的要求,让整个执行元件和执行数据的运行变得更加复杂,面对这种背景,如何更好的保证执行元件的运行稳定性、持续性已成为当今研究重点。下面我们就结合并行程序计算时间设计等方面内容提出了相关重点。

1 并行程序的计算时间设计

计算时间的设计是整个并行计算程序的核心内容,在计算机数据通信领域也有着不可忽视的作用。究其原因,主要是计算机数据通信并行程序在运行的时候,不同处理器在运行中需要的程序都是一致的,同步的,因此为了更好的保证通信实时性,必须要在设计中采取正确、科学的计算时间。通常而言,在并行程序计算时间的设定上,是将同步时间、通信时间以及操作时间组合在一起的,但事实并非如此,在具体设计中应当将重点放在操作时间和聚合操作时间两个方面。

同步时间是不同计算机进程间的同步计算时间,在实现点对点的通信过程中,n个节点要实现同步要经过logn步通信,在第k步通信中,进程i发送给消息给进程(i+2k)%n,并接收从进程(i-2k+n)%n发来的消息。其同步操作的性能是由点对点通信的性能和所使用的算法以及通信拓扑结构共同决定的。而聚合时间也是指点对点通信的实现时间。这些聚合操作的性能也是由点对点通信的性能和其算法所使用的通信拓扑结构来决定的。因而可以说,同步时间和聚合操作时间都可以认为是点对点通信时间,因此在并行程序的执行模型设计中,应当重点优化点对点通信时间的设计。

2 并行计算程序的数据通信过程

近年来,传统的单处理器因为能耗、物理定律以及容量等方面的因素而逐渐被淘汰出计算机、通信市场。与此同时,以计算机数学、计算化学、计算机物力为核心的新技术学科方兴未艾,给计算机运行速度的提升提出了新的要求的同时,也给并行程序执行元件设计给出了指导。在并行程序的执行模块设计中,我们可以将数据通信过程中的所有环节分为三个阶段,即数据准备阶段、通信准备阶段和数据传输阶段。其各自的设计内容分别如下所示:

2.1 数据准备阶段

数据准备阶段的工作包含了执行数据的整理和筛选、数据的压缩、数据接收与发送等不同的环节。在具体的设计中,要根据数据收集、筛选、整理要求进行处理,将那些冗余的数据直接清除掉,然后再利用数据出按顺序来实现设计优化目标,让整个数据的设计变得更加持续、一致。而且为了保证数据的传输效率,在压缩环节需要对压缩速度、强度进行全面处理,以达到提高通信效率和工作质量的目的。发送空间或接收空间的申请环节中,可以通过减少系统内存申请函数的调用频率来实现数据通信的优化。而数据内存间的拷贝环节中,则可以通过尽量减少拷贝次数来避免出现重复作业,从而提高数据通信系统的运行速度。

2.2 通信准备阶段

通信准备过程包含了套接字的初始化以及设置过程,通信信道以及通信拓扑的建立过程,通信信道以及通信拓扑的管理等。

程序在进行通信之前需要对通信信道进行初始化,这在不同的网络设备/网络协议下其过程和操作也不一样,例如在以太网TCP/IP环境下,就需要首先建立套接字,并设置套接字的各种属性(发送/接收的buffe:大小,是否禁用Nagle算法以及是否非阻塞模式等)。另外上文已经提到,MPI程序中经过TCP三路握手之后并不代表这个信道已经建立好了,因为在MPI程序中是使用进程编号值而不是IP地址或主机名来标示每个进程,因此监听在端口上的接收方只知道对方的IP地址或主机名,并不知道对方的进程编号,因此通信发起的一方还需要再发送其进程编号给接收方。

此外,通信信道的管理也是相当重要的一个方面,因为程序在运行时,其通信拓扑会随着其通信操作的不同而变化,因此每个进程都有可能会与其它任意结点进行直接通信,在大规模并行系统上每个结点潜在的通信对象就会高达数万甚至数十万,因此如何高效的管理这些结点也是并行计算的研究内容之一。

2.3 数据传输阶段

数据传输过程的性能牵涉到系统的I/O多路复用的效率,readv/writev函数的效率,网卡驱动/内核的效率,网络协议,路由协议以及网络设备硬件等性能。因为牵涉到许多软件、硬件以及软硬件之间的交互,因此整个数据传输过程是极其复杂和难以预测的。

I/O多路复用的效率严重影响着整个传输的效率,在同时管理多个网络连接的时候,I/0多路复用很大程度上决定着网络连接的延迟,MPICH2实现中的连接状态机能高效运行的前提便是其poll函数能快速的响应各套接字的状态变化。在不同的平台上,系统的I/O多路复用函数也不一样,当然其效率也各有差别,选择一个高效的I/0多路复用函数也是MPI实现的前提保障,例如OpenMPI中,使用了epoll而不是poll来提高管理大量套接字的响应时间,是考虑了在结点数目巨大,每个结点需要管理很多套接字时,epoll的效率要远远高于poll的效率。

另外,ready/writev函数的效率以及内核的效率也毋庸置疑的影响着传输的效率。进程在内核态与用户态之间过度的交替必然导致传输效率的低下,网卡的驱动程序也是影响着整个传输的重要因素。需要一些策略来进行拼包处理,否则必然导致整个机器性能的下降。这些策略以及实现都是由网卡驱动和系统内核来实现的,这也是影响数据传输性能的重要原因。

结束语

总之,计算机并行程序的数据通信系统本身就是一个具有较高复杂性的系统,在其数据通信的优化过程中,首先需要注重对其并行时间的合理设计和计算,以保证点与点之间的通信效率。另外还要分别从数据准备阶段、通信准备阶段和数据传输阶段等整个数据通信的全过程中的每个环节出发,积极找出提高数据通信效率和可靠性的优化方法,以此来综合提升数据通信优化的并行程序执行效果。当然,面向数据通信的并行程序执行模型设计优化过程中还有很多问题需要解决,本文只是简单研究了其中的一部分问题,还有很多实质性问题需要在具体案例中进行针对性分析,因此数据通信的优化问题还需要我们继续研究和探索。

参考文献

[1]吕海.多核处理器芯片计算平台中并行程序性能优化的研究[D].北京:北京工业大学,2012.

[2]胡悦.并行计算时间与存储空间关系研究[D].上海:上海大学,2011.

[3]计永昶,丁卫群,陈国良,安虹.一种实用的并行计算模型[J].计算机学报,2001(4).

上一篇:大倾角松软煤层综放面矿压规律及控制 下一篇:关于通信传输网络发展的几点思考