1、机群系统的组成
  机群系统是利用高速网络将一组高性能工作站或高档PC机连接起来,在并行程序设计以及可视化人机交互集成开发环境支持下,统一调度,协调处理,实现高效并行处理的系统。从结构和结点间的通信方式来看,属于分布存储系统。机群系统中的主机和网络可以是同构的,也可以是异构的。
  微处理机技术、网络技术和并行编程环境的发展使得机群系统这一新的并行处理系统形式正成为当前研究的热点。
  下面三个因素促使机群系统逐渐成为并行处理的主流:
  (1) 微处理器的性能不断提高。
  (2) 网络技术的进步使得松散耦合系统的通信瓶颈逐步得到缓解。
  (3) 并行编程环境的开发使得新编并行程序或改写串行程序更为容易。

  2、机群系统的特点
  (1) 系统开发周期短。
  (2) 用户投资风险小。
  (3) 系统价格低。
  (4) 节约系统资源。
  (5)系统扩展性好。
  (6) 用户编程方便。
  UC Berkeley计算机系100多台工作站的使用情况调查表明,一般单机系统的使用率不到10%,而机群系统中的资源利用率可达到80%左右。

  3、机群系统的关键技术
  (1)采用高效的精简通信系统
  (2) 采用消息传递并行编程环境
  PVM(Parallel Virtual Machine),由美国橡树岭国家实验室(ORNL)等单位联合开发的一套并行计算工具软件,支持多用户及多任务运行;支持多种结构的计算机,工作站、并行机以及向量机等;支持C、C++和Fortran语言;PVM属于自由软件,使用非常广泛;编程模型可以是SPMD或MPMD;具有一定的容错功能。
  MPI(Message Passing Interface)在1992年11月至1994年元月产生。能用于大多数并行计算机、计算机机群和异构网络环境,支持C和Fortran两种语言,编程模型采用SPMD。MPI本身是一个标准,它有多种实现,是目前最流行的并行编程软件
  · Express由美国Parasoft公司推出,能在不同的硬件环境上运行,支持C和Fortran两种程序设计语言。
  · Linda由美国Yale大学与科学计算协会共同研制,通过函数扩充现并行程序的设计,C-Linda、Fortran-Linda等。
  (3) 并行程序设计语言
  在多处理机系统中,必须用并行程序设计语言编写程序。或者把已经用串行语言编写的程序转换成并行语言程序之后,才能在多处理机系统上运行。
  把传统串行语言程序转换成并行语言程序的过程称为并行编译。有两种并行编译方式:全自动并行编译与半自动并行编译:全自动并行编译是方向,但实现起来很困难。
  半自动并行编译又称为交互式并行编译。程序员通过多次与机器对话,找到串行程序中可以并行执行的部分。
  并行编译器生成代码的形式有多种:并行高级语言程序,并行中间语言程序和并行目标语言程序。
  (4) 负载平衡技术
  一个大任务可以分解为多个子任务,把多个子任务分配到各个处理结点上并行执行的技术称为负载平衡技术。
对于由异构处理结点构成的并行系统,相同的负载在各结点上的运行时间可能不同。因此,准确的负载定义应是负载量与结点处理能力的比值。
  负载平衡技术的核心就是调度算法,即将各个任务比较均衡地分布到不同的处理结点上并行计算,从而使各结点的利用率达到最大。
  负载平衡技术分为静态和动态两大类:
  静态方法就是在编译时针对用户程序中的各种信息(任务的计算量和通信关系等)以及并行系统本身的状况(网络结构、各处理结点的计算能力等)对用户程序中的并行任务作出静态分配决策。
  动态负载平衡方法是在程序运行过程中实现负载平衡的。它通过分析并行系统的实时负载信息,动态地将任务在各处理机之间进行分配和调整,以消除系统中负载分布的不均匀性。
  动态负载平衡的特点是算法简单,实时控制,但增加了系统的额外开销。
  (5) 并行程序调试技术
  用并行程序设计语言编写程序,比用串行程序设计语言更容易出错,因此,在多处理机系统中,用并行程序设计语言编写程序更加依赖于并行调试工具。
  并行程序调试的主要困难:并行程序的执行过程不能重现。
  (6)高可用技术
  在多处理机上运行的程序通常比较大,程序执行时间很长(几十个小时或几十天)。如果在程序执行过程中出现偶然故障(如电源调电、磁盘满、某一台处理机故障等),则整个运算过程要从头开始。可以通过定时设置检查点,保存现场信息。当出现故障时,只要回卷到上一个检查点重新恢复执行,而不必从头开始执行,节省了大量计算资源。