高性能计算机往往采用多个处理节点。其根本思想就是将要完成的任务尽量分布到各个处理节点并发执行,在最理想的情况下高性能计算机的性能是所有节点计算性能的简单相加。但是由于节点间存在着通信延时和各个节点间的同步关系,使得系统的整体性能通常达不到理想情况。比如在某些MPP上其持续速度只是峰值速度的3%~10%。
另一方面,随着单个工作站(或微机)的性价比越来越高以及商业宽带网络的高速发展,集群系统(Cluster)得到了广泛的应用。同时,高性能计算也逐步向着松耦合(loosely Coupled)和复杂化的方向发展。大量的SMP集群(CLUMPs)的出现,使得高性能计算机内部节点与节点间的通信瓶颈愈发明显。因此,解决高性能计算机的通信问题也就成为了一个研究的热点,包括减小通信延时、任务粒度划分、负载平衡和调度等。
基本互联方式和通信协议
在高性能计算机内部,各个节点通过互联网络进行连接并通信,以实现协同工作。根据高性能计算机内部节点耦合方式的不同,节点与节点间的通信连接方式也不同:
紧耦合(Tightly Coupled)计算机,如SMP系统,各个节点通常以共享内存的方式完成互联通信操作。这种共享内存的联接方式允许单一节点获得较高的内存访问吞吐量,且易于编程。但是随着节点数目、节点间通信量的增加以及操作系统切换进程等额外开销的增加,共享内存将成为系统性能的瓶颈,例如一个双路SMP系统,单节点拥有足够的处理能力但却经常出现内存或I/O总线竞争的情况。为此,现在一些SMP系统除了共享内存总线外还增加一些专用的消息通路,以减少共享内存的竞争和增加节点间的通信能力。不过,这种紧耦合的通信方式仍然限制了整个计算机节点数目的规模,一般的SMP系统只采用2~4个节点且扩展性差。
松耦合(Loosely Coupled)计算机,如集群(Cluster),其每个节点拥有自己的存储器,节点之间使用一些专用的或者通用的互联网络进行连接。它避免了共享内存所出现的资源竞争,有助于提高节点利用率,但节点间的互联网络速度较慢并有较大的通信延时。
目前一些商用集群的节点间连接通常使用快速以太网(Fast Ethernet)、千兆以太网(Gigabit Ethernet)、Myrinet等。其中快速以太网可以提供100Mbps的链路带宽,千兆以太网可提供1Gbps带宽,这两者可以通过交换机或路由器直接到桌面;而Myrinet由一系列交换开关组成,交换开关内部使用流水线机制,目前其带宽已经达到2Gbps以上。在通信网络的协议选择上可以使用普通的TCP/IP协议,也可以使用等效TCP/IP协议的精简协议,如Active Message、Fast Message、VIA(Virtual Intece Architecture)等。
网络拓扑结构与基本通信方式
由于网络通信延时的关系,通信网络的拓扑结构对高性能计算机的性能有着非常重要的影响。不同拓扑结构的功能特性、网络时延、带宽、硬件复杂性、可扩展性和可靠性也不相同。下面是三种基本的连接方式:
● 2D或3D网络(2D、3D Mesh):连接方式非常简单,在同时对节点与其邻近节点交换数据频繁的应用场合非常有效。这种网络的性能主要取决于网络中路由器的性能。
● 超立方体(Hypercube)网络:这种连接的主要思想是减小任意两个节点间通信的“Hop”数。它的扩张性能较差,随着超立方体维数的增加所需要的节点数目按指数增长。
● 交换网络:所有的节点都直接与一个或多个高速交换开关相连,属于动态连接方式且速度很快。
在大型计算机中通信网络的拓扑结构可能更为复杂,因此在节点通信时往往使用一些寻径算法,这好比在IP网上面的分组路由操作。这些典型算法有存储转发、虚拟直通、线路交换、虫蚀寻径等。此外,与IP路由类似,在寻找路径时往往会遇到死锁、冲突、消息拥塞等现象。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-26149-5.html
就放在支付宝里的余额宝已比银行划算
这样的“优质资源”当然他自己享受了
难道真的就这样被践踏吗