武汉大学信息安全研究所 集群小组资料一 1 目录第1章.高性能的 Linux 集群: 集群基础..............................................................21.1HPC 体系架构的类型.................................................................................21.1.1对称多处理器(SMP)....................................................................21.1.2向量处理器........................................................................................21.1.3集群....................................................................................................21.2集群定义......................................................................................................21.2.1故障迁移集群....................................................................................21.2.2负载均衡集群....................................................................................21.2.3高性能集群........................................................................................31.3高性能集群的常见用途..............................................................................31.3.1生命科学研究....................................................................................31.3.2石油和天然气勘探............................................................................41.3.3图像呈现............................................................................................41.4Linux 和集群如何改变了 HPC...................................................................41.5理解硬件:向量机与集群..........................................................................41.6并行编程和 Amdahl 法则.........................................................................61.7并行编程的方法..........................................................................................71.7.1分布式内存方法................................................................................71.7.2共享式内存方法................................................................................71.8当文件 I/O 成为瓶颈时怎么办?.............................................................71.9参考资料......................................................................................................8第2章.高性能的 Linux 集群: 构建一个工作集群............................................102.1集群和并行编程平台................................................................................102.2创建一个简单的 Linux 集群...................................................................102.3开放源码软件集群应用程序资源............................................................122.4使用 OSCAR 创建 Linux 集群................................................................132.5管理集群....................................................................................................142.5.1作业调度..........................................................................................142.5.2监视..................................................................................................152.6并行算法....................................................................................................152.7使用 MPI 进行并行编程来实现矩阵与向量的乘法..............................152.8性能测试....................................................................................................172.9对 Linux 集群进行基准测试...................................................................182.10IBM Blue Gene/L.....................................................................................192.11参考资料.................................................................................................20武汉大学信息安全研究所 集群小组资料一 2 第1章.高性能的Linux集群:集群基础1.1HPC体系架构的类型1.1.1对称多处理器(SMP)SMP是HPC采用的体系架构之一,其中有多个处理器会共享内存。(在集群中,这也称为大规模并行处理器(massivelyparallelprocessor,MPP),它们并不需要共享内存;稍后我们将更详细介绍这方面的内容。)与MPP相比,SMP通常成本更高,而且可伸缩性较差。1.1.2向量处理器顾名思义,在向量处理器中,CPU被优化以便很好地处理向量数组的运算。向量处理器系统的性能很高,在20世纪80年代到90年代早期一度在HPC体系架构中占有统治地位,但是最近几年以来,集群变得更加流行了。1.1.3集群集群是最近几年中最为主要的一种HPC硬件:集群(cluster)就是一组MPP的集合。集群中的处理器通常被称为节点,它具有自己的CPU、内存、操作系统、I/O子系统,并且可以与其他节点进行通信。目前有很多地方都使用常见的工作站运行Linux和其他开放源码软件来充当集群中的节点。1.2集群定义1.2.1故障迁移集群最简单的故障迁移集群有两个节点:一个节点是活动的,另外一个节点是备用的,不过它会一直对活动节点进行监视。一旦活动节点出现故障,备用节点就会接管它的工作,这样就能使得关键的系统能够持续工作。1.2.2负载均衡集群负载均衡集群通常会在非常繁忙的Web站点上采用,它们有多个节点来承担相同站点的工作,每个获取Web页面的新请求都被动态路由到一个负载较低的节点上。武汉大学信息安全研究所 集群小组资料一 3 1.2.3高性能集群高性能集群用来运行那些对时间敏感的并行程序,它们对于科学社区来说具有特殊的意义。高性能集群通常会运行一些模拟程序和其他对CPU非常敏感的程序,这些程序在普通的硬件上运行需要花费大量的时间。图1解释了一个基本的集群。本系列文章的第2部分将展示如何创建这种集群,并为其编写程序。图1.基本的集群网格计算是一个更为广泛的术语,通常用来代表利用松耦合系统之间的协作来实现面向服务的架构(SOA)。基于集群的HPC是网格计算的一个特例,其中节点之间都是紧耦合的。网格计算的一个成功的、众所周知的项目是SETI@home,即搜索外星智慧的项目,它使用了大约一百万台家用PC在屏保时的空闲CPU周期来分析无线电天文望远镜的数据。另外一个类似的成功项目是Folding@Home项目,用来进行蛋白质的折叠计算。1.3高性能集群的常见用途几乎所有的产业界都需要快速的处理能力。随着越来越便宜而且快速的计算机的出现,更多公司表现出了对利用这些技术优势的兴趣。人们对于计算处理能力的需求是没有上限的;尽管处理能力在迅速提高,但是人们的需求仍然超出计算能力所能提供的范围。1.3.1生命科学研究蛋白质分子是非常复杂的链,实际上可以表示为无数个3D图形。实际上,在将蛋白质放到某种溶液中时,它们会快速“折叠”成自己的自然状态。不正确的折叠会导致很多疾病,例如Alzheimer病;因此,对于蛋白质折叠的研究非常重要。科学家试图理解蛋白质折叠的一种方式是通过在计算机上进行模拟。实际上,蛋白质的折叠进行得