




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux 高性能计算集群高性能计算集群 Beowulf 集群集群 1 什么是 Beowulf 集群 Beowulf 是现存的最古老的英语史诗 Famed was this Beowulf far ew the boast of him son of Scyld in the Scandian lands So becomes it a youth to quit him well with his father s friends by fee and gift that to aid him aged in after days come warriors willing should war draw nigh liegemen loyal by lauded deeds shall an earl have honor in every clan 它歌颂了一个英雄 他拥有强壮的体魄和无人伦比的勇气 他最终战胜了魔鬼 Grendel 你可以在 找到这首史诗 我 们所说的 Beowulf 首先是一个象史诗中英雄一样强大的集群系统 在 1994 年夏 季 Thomas Sterling 和 Don Becker 在 CESDIS The Center of Excellence in Space Data and Information Sciences 用 16 个节点和以太网组成了一个计算机集群系统 并将这个系统命名为 Beowulf Beowulf 集群 Beowulf 集群提供了一 种使用 COTS Commodity off the shelf 硬件构造集群系统以满足特殊的计算需求的方法 这里的 COTS 是指象 PC 和以太网这种广为应用的标准设备 它们通常可以由多家 厂商提供 所以 通常有很高的性价比 Beowulf 集群这种方法很快从 NASA 传遍 了整个科研机构和社团 实际上 Beowulf 集群现在已被人们看作高性能计算中的 一 个分支或流派 因为几乎每个 Beowulf 集群的设计者都有自己的 Beowulf 集群的定义 恐怕很难给 Beowulf 集 群下一个确切的定义 一些人认为只有那些采用和原始的 Beowulf 集群 系统一样方法构建的系统才叫 Beowulf 集群 而另一些人则认为凡是能够在多个 工作站上运行并行代码的系统都称为 Beowulf 集群 这里我们只是列举多数 Beowulf 集群具有的特征作为 Beowulf 集群的定义 Beowulf 是一种系统结构 它使得多个计算机组成的系统能够用于并行计算 Beowulf 系统通常有一个管理节点和多个计算节点构成 它们通过以太网 或其他网络 连接 管理节点监控计算节点 通常也是计算节点的网关和控 制终端 当然它通常也是集群系统文件服务器 在大型的集群系统中 由于 特殊的需求 这些管理节点的功能也可能由多个节点分摊 Beowulf 系统通常由最常见的硬件设备组成 例如 PC 以太网卡和以太网 交换机 Beowulf 系统很少包含用户定制的特殊设备 Beowulf 系统通常采用那些廉价且广为传播的软件 例如 Linux 操作系统 并行虚拟机 PVM 和消息传递接口 MPI 2 Beowulf 集群的分类 由于一些特殊的目的如系统性能 有些 Beowulf 集群系统也采用一些用户定制的设 备 它们通常由一家厂商提供 为了区分这些特殊的系统 通常把 Beowulf 分为两 大类 2 1 第一类 Beowulf 集群 CLASS I Beowulf 这一类 Beowulf 集群全部由 COTS 设备组成 第一类 Beowulf 系统的优点是 硬件设备由多个来源 通常具有廉价和易管理维护的特点 不依赖于单个硬件供应商 所有设备驱动都由 Linux 开发社团提供 通常都是标准设备 例如 SCSI 以太网等等 当然第一类 Beowulf 集群的缺点也是非常显然的 由于所采用的硬件都没有经过性 能优化 所以其很难达到很好的性能 比如 由于以太网的高延迟和低带宽使得集 群系统中消息传递很难达到 MIMD 应用的需求 从而使整个集群系统的计算能力 大打折扣 2 2 第二类 Beowulf 集群 CLASS II Beowulf 第二类 Beowulf 集群是指那些采用了用户定制设备的 Beowulf 集群 这类集群系统 最大优点是具有很好的性能 例如 采用 Myrinet 作为集群系统的 IPC 网络可以极 大地提供进程间消息传递延迟和速度 当然它的缺点就是依赖于单个硬件提供商而 且价格高昂 不能说 哪一类集群绝对优于另一类集群 这依赖于你的集群系统的需求和预算 3 Beowulf 集群体系结构 如上所述 现实中存在形形色色的 Beowulf 集群 虽然它们都是原始 Beowulf 集群 的衍生物 但是它们的体系结构也存在各种各样微小的差异 本文以 IBM eServer Cluster 1300 为例来阐述 Beowulf 集群体系结构和系统组成 回页首回页首 图图 1 是是 Cluster 1300 上上 Beowulf 集群的系统视图集群的系统视图 图 1 是 Cluster 1300 上 Beowulf 集群的系统视图 无论是管理节点 Master Node 和 计算节点都是 Intel IA32 架构的 xSeries PC 服务器 它们通过网络 以太网和 Myrinet 相连接 所有的节点都运行 Linux 操作系统 运行在计算节点上的并行应 用程序采用 MPI 进行完成并 行进程间的通信 计算节点通过管理节点和外部 LAN 相连 整个集群系统都在一套集群管理工具监控之下 图图 2 Cluster1300 上上 Beowlf 集群组件集群组件 图 2 是 Cluster 1300 上 Beowulf 集群的组件视图 它揭示了 Beowulf 集群的组成部 分 通常 Beowulf 集群由四个层次构成 硬件 主要是指 Intel IA32 架构的 PC 服务器 网络 指用于节点间通信的局域网 普通的以太网 和并行进程间通信的高速 网 Myrinet 等高速网 软件 主要指 Linux 操作系统和用于并行通信的并行编程库 如 MPI 和 PVM 并行应用 本文的下面三个小节将分别介绍这四个层次 而本系列文章的后面两片将更详细的 介绍它们 3 1 Beowulf 集群硬件和网络 Beowulf 集群硬件和网络层次需要解决的问题是如何组织硬件使其达到最高的性价 比 为了达到很好的性价比 Beowulf 通常采用廉价的 COTS 硬件 当然有时为了 提供某些关键的性能 也会使用一些特殊的设备 从硬件组织的角度说 Beowulf 集群中的节点都是非共享内存的计算机 它们通过 消息传递进行通信 实际上 我们还有其他组织硬件完成并行计算的方式 简单地说 有两种组织硬件完成并行计算的方法 通过消息传递通信的本地内存 非共享内存 计算机系统 Beowulf 集群 通过内存访问通信的共享内存计算机系统 SMP 计算机 当 然也存在将多个本地或共享内存计算机相连并创造一个混和的共享内存计算机 系统的可能 但在最终用户看来 这种计算机系统就好像一个大型的共享内存计算 机 这种技术被我们叫做非一致内存访问 NUMA Non Uniform Memory Access 但是从底层说 一个 NUMA 计算机系统必须在节点间传递消息 当然也可以将共享内存计算机作为一个本地内存的计算机连入一个 Beowulf 集群系 统 由于 Linux 系统支持 SMP 计算机 所以 Linux 系统本身能够在 SMP 中的多个 CPU 上调度作业 所以 Beowulf 集群本身就没有必要识别集群的节点是不是共享 内存计算机了 和 SMP 系统相比 集群系统有明显的优点 关于这一点请参阅本系列文章的第一 篇 因 为 Beowulf 集群采用消息传递完成并行程序间通信 所以网络传输成了系统的 瓶颈 在实际的系统中 通常采用有两套彼此的独立的网络设备 一套是普通的 以太网 用于象系统管理和文件服务等普通的网络通信 另一套网络是用于进程间 通信的高速网 象 Myrinet 和 Giganet 和 100M 以太网相比 这 类网络具有低延 迟和高带宽的特性 还有三类设备虽然不是必须 但是对于集群管理却是非常重要的 KVM Swither KVM 是指 Keyboard Video 和 Mouse 这个设备可以让系 统管理员用一套 KVM 管理系统中的所有节点 远程电源管理设备 如 ASM 这类设备使得管理员可以在管理节点 Power on off 其他节点 Terminal Server 这种设备通过串口将节点连接起来 通过这个设备 管理 员可以在管理节点上虚拟出其他节点上的控制终端 和 KVM 相比 这种方 法不需要硬件的切换 3 2 Beowulf 集群软件 Beowulf 集群在软件层次面临的问题是如何在硬件层次上获得最大的性能 通常 Beowulf 集群采用 Linux MPI 的方式支持并行计算 MPI 是采用消息传递的方式实 现并行程序间通信 虽然也可以采用其他的通信方法 但是消息传递模式是最适合 于集群系统的 简单地说 有两种在并行程序间传递并发的方法 使用处理器间的消息传递 MPI 使用操作系统的线程 Thread 其他的方法也存在 但是这两种方法应用得最广泛 虽然存在效率和移植的问题 这两种方法都可以在 SMP NUMA 和 Cluster 上实现 消 息传递需要在 CPU 间拷贝数据 而线程却可以在 CPU 间共享数据 数据拷贝 的速度和延迟是影响消息传递效率的最关键的因素 PVM 和 MPI 是最常用的两种 消息传递 API 消息传递也可以在线程上实现 并且消息传递即可以用于集群系统 也可以用于 SMP 系统 和线程相比 在 SMP 系统上使用消息传递的优点在 于可 以很方便的把 SMP 上的应用移植到集群系统上 线程的最大特点是 线程间是共享数据 因此它在 SMP 系统上工作的更好 而且 Linux 本身也是支持 Posix 线程的 但是使用线程的最大缺点在于 很难将线程扩 展到 SMP 系统以外 虽然 NUMA 技术可以高效的做到这一点 但是那非常昂贵 而且 Linux 本身也不支持 下表概括了线程和消息传递在 SMP 和集群系统上的比较 需要昂贵的 NUMA 技术 SMP 系统性能集群系统性能扩展性 消息传递好很好很好 线程很好差 差 3 3 Beowulf 集群应用 Beowulf 集群的应用层次位于硬件和软件层次之上 它要解决的问题是如何在实际 的集群系统中并行化 PARALLEL 应用中的并发 CONCURRENT 部分 从而使集 群上的应用达到最好的性能 在阐述这部分之前 我们需要区分两个概念 PARALLEL 和 CONCURRENT 程序 的并发 CONCURRENT 部分是指程序中可以独立计算的部分 程序的并行 PARALLEL 部分是指程序中在同一时间被分别执行的并发 CONCURRENT 部分 它 们的区别是很重要的 并发是程序本身的属性 而并行是计算机系统的属性 并行的目的是获得很好的性能 限制并行性能的因素是计算节点间通信的速度和延 迟 大部分的 Benchmark 都有很高的并行性并且通信和延迟不是什么瓶颈 但是 其他应用却没有这么简单 对于这些应用 有时候使并发部分并行执行反而可能 使应用性能更低 简单的说 除非附加的通信时间代价小于并发节约的计算时间 否则并行执行反而会降低效率 程序员的任务就是决定哪些并发的部分需要并行执行 而哪些不应该并行执行 这 些决定最终会影响应用程序的执行效率
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光电领域专业知识培训课件
- 《新编单片机原理与应用实验》课件第15章
- 《计算机数据通信》课件第9章
- 《JavaWeb程序设计及实践》课件第5章JSP内置对象
- 2024年建融金服科技信息服务有限公司招聘真题
- 数控车床编程与加工 课件 5.2V带轮工序一钻孔加工G74
- 二零二五版智能交通系统建设项目合同执行监控体系
- 2025版二手车交易咨询服务合同模板(全新修订)
- 2025年租赁房屋租赁合同续租转租合同范本
- 2025版户外用品品牌代理商授权合同规范模板
- QGDW11970.1-2023输变电工程水土保持技术规程第1部分水土保持方案
- 消除“艾梅乙”医疗歧视-从我做起
- 2022年南昌市红谷滩区教育系统事业单位教师招聘考试真题及答案
- 四年级数学下册脱式计算练习题200道
- 华为性格测试攻略
- 幼儿园“1530”安全教育实施方案
- GB/T 21720-2022农贸市场管理技术规范
- GB/T 9119-2010板式平焊钢制管法兰
- 高分通过司法考试笔记之三国法
- 线路工程施工质量三级自检报告(范文)
- 广东省机动车驾驶员培训备案表【模板】
评论
0/150
提交评论