第八章 并行处理机和多处理机

  (3) 负载平衡系统设计的考虑因素
  下面我们对机群系统中的网络、机器结构、系统利用率、可靠性以及编程模式等方面对负载平衡系统设计的影响作一个分析。
  1) 网络
  当前,常用的局域网络技术有两类。一类是共享介质网络,最常见的是用10/100Mbps的Ethernet连成的总线结构的系统,其价格便宜。另一类是开关网络,如155Mbps ATM,其性能优异,但价格很高。对于共享介质网络,结点之间点到点通信要占用整个传输介质。而实现广播的开销则与点到点相同。这就是说,采用集中式负载平衡系统(每个结点定时向调度结点发送负载信息)与采用合作式分布负载平衡系统(每个结点定时向其它结点广播自己的负载信息)的网络开销相当,因此在选择负载平衡系统时要考虑的问题主要是由于网络冲突可能性带来的网络性能下降,解决的途径是合理调整结点间的负载信息交换时机(如定时通讯或调度时通讯)。对于开关网络,采用集中式负载平衡系统会产生通讯瓶颈(与调度结点频繁通讯),并直接影响到并行系统的可扩展性,所以通常选择非合作式分布系统,这时要考虑的问题在于如何利用不完整的局域负载信息在可以容忍的时间内达到整个并行系统的负载平衡,以及如何避免负载颠簸(Thrashing)。
  2) 机器结构
  机群系统分为同构(Homogeneity )和异构(Heterogeneity )两类。同构机群系统各结点为运行同一操作系统的同一型号的主机,且内部配置相同。各结点从处理能力、数据内部表示法到内核映象等都是一致的,这给资源比较、负载评价、数据传递、进程迁移的实现带来了方便。但在实际环境中,大多数机群系统都是异构机群系统,这就要求并行计算环境不仅要能够准确地评价各结点的处理能力、负载状况,还要求提供正确的数据通信机制,完成不同数据表示法之间透明的转化。对异构机群系统来说,任务迁移是很难实现的,因为不能象在同构机之间那样将内核映象直接复制,而必须采用更高层次上的迁移,即源代码在目标机上重新编译,并将环境恢复到迁移点的状态。
  3) 系统利用状况
  指使用机群系统的用户数量、系统的平均负载量、负载方差、及通讯量等状况。系统利用率高、平均负载重、网络的响应时间长、通讯量大,则网络拥挤,易造成并行任务间的同步等待时间长。负载方差大说明负载分布不均衡,负载平衡系统对性能影响就大。另外,由于机群系统是多用户系统,负载平衡系统应保证各用户的任务响应时间不能太长,这意味着对于负载较重的结点,应尽量减少负载平衡系统本身带来的开销。
  4) 系统的可靠性
  系统内工作站结点的软、硬件故障以及网络故障均会导致系统部分结点失效,不仅使系统功能下降,更重要的是正在进行的计算任务将会失败。这要求负载平衡系统提供容错机制。首先是系统本身不能因为故障而崩溃,要做到这一点,一个分布式系统远比集中式系统要好。其次,要能迅速发现并登记故障,以避免故障结点对正常结点的影响,且不再向故障结点分配任务。一般采取的方法是超时判定法,即当在一定时间内不能收到某结点发的消息,则认为该结点失效。需要指出的是:这种机制在集中式系统中实现较为简单,因为它有唯一的一个管理结点可以直接判断出超时的结点并修改系统配置;而在分布管理的系统中则不易实现,需要结点间经过协商才能确定一个失效结点。因此,究竟采用分布式还是集中式系统,还要视具体情况而定。
  5) 编程模型
  机群系统并行计算编程模型分为共享存储模式(Shared Memory)和消息传递模式(Message-passing)两类。共享存储模式的典型实现如Linda和CSL(Calypso Source Language): Linda通过元组操作来提供并行任务间的信息交换,CSL则向用户提供一组并发原语。在共享存储模式中,任务划分由编译器完成。因此,负载平衡的实现大部分在编译时完成。使用消息传递模式的实用系统有P4、PVM、Express和MPI等,其中PVM比较典型。它是一个在异构型网络环境中模拟一个通用的分布式存储多处理机的软件系统,提供一个基于消息传递的、对用户透明的并行编程运转环境。消息传递模式由于其灵活性及实用性在并行计算领域被广泛采用。对于消息传递模式,负载平衡系统独立于用户程序,主要是通过对运行时系统的扩充来实现的。