




已阅读5页,还剩53页未读, 继续免费阅读
(计算机系统结构专业论文)基于web的并行程序集成开发环境研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 i 摘 要 现有的高性能计算服务大多数只是提供了一个在集群内部进行任务调度的任务 管理器以及本地的集群管理命令行接口。 基于 web 的并行程序集成开发环境提供一个 组织在并行程序开发过程中所需要用到的服务: 基于 web 的集成开发服务提供并行程 序的远程开发能力;集群管理服务对集群的状态进行远程监控和管理。整套系统具有 很高的实际应用价值。 具有系统管理权限并且安全的框架设计是研究中的一个难点。以数据库为中心的 数据存储及通过模拟 tcp 连接的方式有效的保证了交互过程的安全性。 通过设计模块 化的设计,充分考虑到可扩展性,通过形式化的手段,有效实现了配置过程的可管理 性,屏蔽底层的实现细节,为远程的任务管理和集群监控提供了解决方法。 基于 web 的集成开发环境以 web2.0 的技术潮流为背景,提出了并行程序设计的 全部流程的服务化。 通过提供基于 web 的图形开发界面, 对比于传统的命令行界面开 发模式,极大的提高了开发效率。其中远程动态树技术为远程文件的操作和编辑提供 了一个通用的方法。 一般的任务调度是为了达到资源利用率的最大化,而对于开发环境的任务调度来 说,实时性更加重要。对于不同的用户,他们对自己任务执行完成的时间都会有一个 预期,通过设计良好的算法,在最大的程度上满足用户的这种预期,称为基于用户预 期的资源调度算法。 关键字:高性能计算;任务提交;并行计算;开发环境;集群;用户管理 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 ii abstract abstract most of the existing hpc (high performance computing) only provide a local task manager and cluster management cli (command line interface) in the clusters. the web-based integrated development environment for parallel programming is able to provide all the services in the parallel programming process: the web-based integrated development service providing services to the long-range development of parallel programs; cluster management services privides remote monitoring of the cluster state. the research is of high practical value. the design of the framework with system management authority is a hard nut to crack in this research. data storage by database and simulated tcp is an effective way to ensure the safety of interactive processes. through modular design, taking scalability fully into account, effectively implement the management of the configuration, shield the bottom details, and provides a cluster solution for remote monitoring of the task management. the web-based integrated development environment backed by the technical trend of web2.0, prepose a parallel program design process all of the services. through the development of web-based graphical interface, as compared to the traditional command line interface mode, it greatly improves the development efficiency. the dynamic tree provide a definitive solution to implement remote file operations and editing documents. to achieve a general sense, task scheduling is to maximize the utilization of resources. but for the development of task scheduling, real-time is more important. for different users, they will have an anticipation time to the complete time of their tasks, an algorithm called expect-based alogrithem is design through to meet user expectations to the greatest extent. key words: high performance computing; task submit; parellel computing; develop environment; cluster; user management 独创性声明独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集 体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中 以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保 留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本 人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_年解密后适用本授权书。 本论文属于 不保密。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 1 1 绪论 本章从高性能计算的使用现状和研究背景入手,指出研究并行计算开发环境的意 义和主要研究内容。接着分析现有的高性能计算开发环境的国内外研究现状及现有系 统存在的问题,在此基础上提出系统的设计目标和技术特色,最后介绍全文的组织结 构。 1.1 研究背景 以往,对于高性能计算讨论往往仅限于其在科学计算方面的应用。而目前在这个 领域在技术创新上处于非常活跃的阶段,在应用上具有相当大的开发潜力,尤其是在 企业级商业应用方面。曾有人评价:hpc (high performance computing)已成为继理论 和实验科学之后,人类认识未知世界的第三大方法。在对高性能计算不断认知的过程 中,可以看到,高性能计算不仅成为驱动经济和社会发展的一种生产力,更成为衡量 一个国家核心竞争力的关键指标。在国内,高性能计算不仅在石油、气象、生物、科 研、国防等科学工程计算领域扮演着重要的角色,而且在金融证券、商业、企业、政 府、教育等信息服务领域也得到越来越广泛的应用。据 idc 预测,到 2008 年,全球 高性能计算机的市场容量将达到 76 亿美元。 在上个世纪,高性能计算的前身是超级计算,其主要追求的目标就是强大的运算 速度,一种以 cray 公司为代表,其任务就是制造世界上最快的计算机。随着超级计 算应用面的扩大,上世纪 80 年代后期开始出现高性能计算的概念,把超级计算推向 了各个领域,对超级计算追求单一计算指标转变为追求高性能的综合指标。应用于数 值计算和数据处理。数据库技术的成熟,生物基因技术的发展,历史数据的几何级膨 胀把超级计算推向数据处理领域。 更倾向于走产业化发展道路。用户群的扩大,价 格的敏感度,pc 机产品化的成熟,迫使高性能计算采用高性能的产品化部件构成高 性能的产品化计算机系统,也促使高性能计算技术走向开放。 多核时代的到来,一方面意味着随着硬件性能的提升带来软件效率提高时代已经 终结,同时也意味着高性能计算系统正在向桌面计算机靠近。其中,并行编程的可编 程性和用户并行编程能力的提高是多核时代程序性能的两大关键问题。并行编程要达 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 2 到良好的可编程性,必须解决结构性、通用性和可移植性问题。并行化编译器、自动 并行化、用户指导和运行时间并行化最大的难题是要解决数据依赖和控制依赖问题, 几十年来始终处于研究过程中,没有达到 ms-dos 到 windows 量级的提高。因此, 在可以预见的将来,并行程序设计将很有可能成为多核时代软件技能中的一项基本技 能。 随着网格计算1的兴起,研究人员大多关注于如何将异构的资源聚集起来,使用 户能够透明地获得强大的计算资源。具体地说就是将属于各个独立机构的超级计算机 聚集起来作为一个整体透明地为科学计算提供强大的超级计算服务一些实验室在使 用高性能计算服务是,则更多的将他们的注意力集中在系统的应用的两个重要方面: 第一个方面,如何更加有效的使用他们现有的资源,这些资源可以是位于某一个地方 的一个集群,也有可能是相邻,但是并不是集中位于某处的一些计算节点,由此引申 出来的实际应用就是一个内部的网格结构2。第二个方面,如何使研究人员更加方便 的使用这些资源,比如说,能不能不通过ssh的方式,而使用更加简便的界面的使用 我现有的系统,由此则引申出任务的提交客户端或者是针对特定计算的嵌入在web中 的计算界面。 1.2 国内外研究动态 1.2.1 oscar oscar 3是由开源社区所维护的一个集群软件包。这个项目的研究内容主要集 中在如何构建一个高性能计算集群。在任务调度方面,oscar 采用了 openpbs 作为 任务管理器。openpbs 主要包括三个模块:在调度节点上启动的 pbs_server 和 pbs_sched,在计算节点上启动的 pbs_mom。其中 pbs_server 负责接收需要调 度的任务,pbs_sched 负责将这些任务按照一定的策略进行排序,监控计算节点, 然后将这些任务自动的匹配到各计算节点去运行。在集群管理方面,oscar 采用了 c3 作为统计的集群管理接口。 c3 的主要实现机制是通过 ssh 复制并启动一个客户端 的监听程序到执行节点,然后服务器再发送要执行的命令到该客户端,客户端返回命 令的执行结果。通过配置,c3 能够一次性的在不同的多台节点上执行同一条命令, 并返回执行结果。对于大规模集群来说,极大的方便了管理员的管理。 oscar 还实现了通过配置 dhcp(dynamic host configuration protocol)和 tftp 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 3 (trival file transport protocol)来网络安装计算节点。oscar 中的 sis(system install suite)首先通过操作系统的安装文件创建一个完整的系统映象,其系统的文件目录结 构与安装好的操作系统是完全相同的。这时,计算节点通过 dhcp 服务器来引导机 器的 bios,bios 有一个内建的 dhcp 客户机,它含有一个很小的操作系统映像, 并使用 tftp 将其从 dhcp 服务器传输到要引导的机器上。然后这个操作系统通过 rsyn 来获得完整的操作系统映象,并重写 mbr。 oscar 使用一个 mysql 作为系统信息配置数据库,在安装过程中,oscar 都 会通过一个测试脚本来检查现阶段的系统状态,并将这些信息写入数据库。每一个阶 段完成都会将状态进行刷新,并显示出来。但是,只要是任何一个阶段出现错误,都 会导致失败,并且不能够绕过一些细小的、不重要的错误。 1.2.2 pbsweb pbsweb 软件包通过使用 web 浏览器和服务器软件基础设施4,可以同时支持本 地和远程的用户。它维护了一个简单的历史数据库来保存以前的的任务参数,并且隐 藏了之后复杂的调度细节。pbsweb 的主要功能是可以远程将任务提交到远程服务器 进行一些计算任务,其界面如图 1.1 所示。 图 1.1 pbsweb 系统截图 pbsweb 的可以上传已经打包的 tar 文件到服务器,并自动进行解压;可以对上 传的工程进行编译,但必须保证这个工程是可编译的。它也可以通过用户手动的配置 来产生任务提交的脚本,并且能够察看运行中的任务队列。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 4 1.2.3 rocks rocks 提供了一个安装和升级 linux 集群的软件包5,同时,也提供了适应于以 太网和令牌环网的标准集群工具如批处理系统 pbs,sge,mpich。rocks 通过图 形化的框架来描述所有组成集群所有节点的类型。rocks 是一个集成了大量软件包 的集群操作系统安装包,其特征是,这个操作系统本身就是为集群量身订制,在系统 安装完成之后就具有一个集群前端机的功能,只需要通过简单的配置,就能够自动后 端计算节点的操作系统, 而组成一个完整的集群。 通过已经部署过的成百上千的集群, rocks 被证明非常适应不同的硬件和逻辑节点的配置。 由于其安装的简便和稳定性, rocks 是现在商用高性能计算集群的首选。 1.2.4 ghpcc 贵州大学高性能计算化学实验室 ghpcc6所采用的基于 web 的使用界面十分友好。 在系统计算能力允许的情况下,只要认真在线填写有关表格,按照提示完成每一步提 交操作, 即可十分容易地得到所需的量子化学计算结果,并可通过观看计算结果的 2d 分子结构图和 3d 分子虚拟现实模型来分析计算结果。ghpcc 所支持算法包括: hartree-fock(freq 计算) ;密度泛函理论 dft(freq 计算) ;moller-plesset 微扰 理论 mp2; 半经验方法 mndo, am1, mndo-pm3, cndo, indo。 1.2.5 现有研究总结 以上是在高性能计算领域比较有代表性的一些应用平台和构建平台的软件包。其 中 rocks 和 oscar 是用来构建通用高性能计算集群的两个最具代表性的软件包。他们 最大的区别在于构建集群系统的方式不同。 rocks 的发布版本包括 10 张光盘,其中包 含了操作系统,rocks 通过使用 readhat 的 kickstart 作为安装引导程序,安装完毕 则包含了支持高性能计算的一系列软件。 而 oscar 是构建于操作系统之上的: 安装时, 先要有 linux 操作系统,然后编译安装 oscar 即可完成整个系统的安装7。pbsweb 和 ghpcc 则是构建于高性能计算平台之上的应用系统:pbsweb 为通用的任务提交系统, 可以针对已有源代码的任务进行编译,不能够支持即时的代码修改,以及工程组织形 式。ghpcc 则是针对特定的化学领域应用,通过 web 方式得到计算所得的结果。 根据笔者的调查, 现在国内需要高性能计算的研究机构, 或者企业在应用层面上, 或者应用水平上有着非常重大的区别,在此,可以将他们使用计算资源的方式简单的 归为一下几类: (1)计划式的简单使用计算资源。在这类方式中,研究机构购买的高性能计算 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 5 服务器仍然只是离散的计算节点,节点之间不存在关联,甚至没有使用资源管理器来 对计算资源做统一的调度。用户通过 ssh 登陆系统之后,使用一个通用的脚本模版, 并作简单的修改来提交作业。这种情况下,可能导致的问题的,计算节点容易被分时 共享,每个任务获得的计算能力有限,影响作业运行的时间。 (2)采用资源管理器来管理计算资源。在此类方式中,用户仍然是 ssh 登陆系 统,使用 pbs 来提交作业,这种方式下,资源能够得到有效利用,但是,仍然需要非 计算机背景的人去了解 linux 系统。 因为需要比较专业的人去维护和构建这样的系统, 这种使用方式现在仍然不是很多。 (3)使用 web 界面,实现对某些特定的应用输入,可以很快在 web 输出这些结 果。这种方式在化学和生物的实验室比较常见,因为在这两个领域,算法的成熟度比 较高。而且在发表文章的时候,可能会遇到实验真实性的检查,这时候,ssh 登陆会 有延迟,用户检查等一系列的问题。而使用 web 的界面,更利于用来应付这种检查。 (4)使用了小范围内的异构系统。这种方式在某种程度上可以说就是一个小型 的网格。但是他们使用这样的系统,更大程度上是由于真实应用的驱动。比如,由于 机器并不完全属于自己,采用借用的方式。或者某个大型企业,其分布范围本来就很 大,各个部门之间需要进行协调。 从上面的情况看来,在国内的研究机构中,资源管理器已经有一定的接受度,但 是,也存在系统带有资源管理器,而无人使用的情况。计算中心管理集群的一般方式 仍然是通过人为的发布信息,分配帐号和密码,通过这些帐号登陆系统,ftp 上传程 序,然后提交任务。总体说来,在对集群的管理上缺乏一套自动化的流程,系统的使 用方式对用户也不友好。 1.3 基于 web 的并行程序 ide 的意义和研究内容 1.3.1 并行程序集成开发环境的研究意义 高性能计算在某种意义上可以说是一门交叉学科。其中在计算机领域的研究是为 了提供更强大的计算能力和更好的服务质量,而在计算的应用领域,则是为了通过计 算得到的数据来证明某个理论,解决某个问题,或是从事某种设计8。 为了让高性能计算能够更好的服务于其他学科领域,探索一种简易的,能够迅速 被接受的并行程序的开发方式,是非常有意义的。同时,通过在高性能计算的实验教 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 6 育领域的开拓,也能够让更多的人的接受并了解高性能计算。 1.3.2 并行程序集成开发环境的主要目标 并行程序集成开发环境的最终目标是能够提供开发并行程序所需要的一切服务, 其中主要是面向使用高性能计算的群体提供这些服务,图 1.2 描述了开发环境的使用 场景。 首先是面向 高性能计算教学这一用户群体。该用户群体往往是计算机专业或需 要用到高性能计算专业的老师及学生。为了强调教学平台的特性,需要着重设计系统 的编译交互功能。因此用户通过直接登录到任务提交节点,编写编译程序,最终执行 程序。为了达到学生直观理解学习高性能计算的目的,用户应当直接登录到节点上, 例如,采用 ssh 方式远程登录。为了方便老师的管理,需要加强用户管理的功能,方 便老师对学生学习的了解。该群体的另一个需求是,大量任务的并发执行,以及复杂 的用户管理。 图 1.2 使用场景 其次是面向一些需要小规模高性能计算的科研单位,该用户群体往往是非计算机 专业的专家, 他们关心的是高性能程序的设计和实现, 而且通过远程登录 (web 方式) , 访问集群,最终访问计算资源。因此系统需要考虑提交方便、运行稳定、结果易读等 特性。而且提交的任务单一,基本上没有多个任务同时执行。 1.3.3 并行程序集成开发环境的研发任务 并行程序集成开发环境是为了满足高性能计算中的易用性,稳定性,可靠性以及 易管理性,因此,并行程序集成开发环境的设计和开发主要包括以下内容: (1)基于 web 的并行程序开发环境。在目前普通程序的开发过程中,一般是通 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 7 过本地的 ide(integrated develop environment)来开发程序,然后通过类似 cvs(concurrent version system)这样的版本系统进行代码的同步控制。但是,并行程 序的开发意味着开发的代码要提交到能够支持并行计算的集群或计算服务器上去进 行编译,执行。因此,直接通过 web 的界面方式来组织程序,并直接通过该界面进行 开发,而在服务器端进行编译和任务提交是一个很好的方式。随着在 ie 的内嵌脚本 的逐步强大,现在已经能够以 b/s9的方式,进行代码的呈现,修改,并远程提交作 业。 (2)为高性能计算定制的集群监控及管理软件。管理员能做到足不出户,就能 方便地管理整个集群。对于集群的管理过程,设计一套公用的接口,使对于管理过程 的扩展更加简便。 (3)设计适应于多种场合的用户角色模型。并行程序集成开发环境应该满足通 用的高性能计算需求,包括应用于教学与实验室的科学计算。因此,为各种应用场合 归纳出统一,通用的用户模型也是开发环境必须支持的功能之一。 (4)设计能够满足基于 web 的系统交互框架,以满足大量的系统与 http 服务 之间的交互。 (5)设计适应于 web 服务的任务调度策略,特别是针对并行程序的开发过程, 优化并行程序在调式和试运行过程的性能,满足用户对于服务的等待时间的预期。 1.3.4 并行程序集成开发环境的设计目标 综合考虑上述服务用户群体特性,开发环境应该具有以下特征: (1)图形化的集群管理;支持管理员远程登录集群,管理集群的用户,作业和 节点等资源。管理界面为图形化的界面,管理员可以直观地获得相关的信息。 (2)图形化的作业提交;提供方便、安全的用户登录和作业提交界面。针对非 计算机专业人士的作业管理界面,使得任何人能够方便提交计算任务。安全的用户登 录和用户管理,防止恶意用户的登陆,或者对系统的破坏。 (3)作业的动态调度;根据节点的负载情况,作业的优先级,作业的计算量, 动态选择参与计算的节点数目及节点,达到动态调度作业的目的。 (4)集群的分区管理;根据用户角色的不同,系统将相应角色用户的作业调度 到与该角色对应的计算节点。这样能够隔离重要的用户和普通的用户,并适应不同的 应用场合,保证系统能够区分重要与不重要的服务,提供有差别的服务质量。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 8 1.4 本文的组织 本文各章的内容安排如下: 第 1 章概述了基于 web 的并行程序集成开发环境的研究背景, 然后介绍了系统的 意义、主要任务、系统特色以及实现难点,最后讲述未来发展方向和本论文的研究内 容。 第 2 章介绍了系统的整体架构,包括其层次结构和各个组成模块的主要功能,然 后介绍其数据共享方式和服务的逻辑结构。 第 3 章介绍了系统的交互框架。基于该框架,可以实现远程管理和保证任务的安 全执行。 第 4 章介绍了系统的 web 集成开发环境,及其实现的功能和主要技术特色。 第5章提出了一种基于用户预期的调度算法, 其目的是为了实现更好的用户体验, 其实质则是短作业优先和公平调度的折衷,并采用一种量化的方式来定义调度的目 标。通过模拟测试表明,该算法具有很好的预期性能。 第 6 章系统测试包括功能测试和性能测试,通过自行开发的压力测试程序测试系 统所能承受的服务负载。 第 7 章对全文进行总结并展望了未来的工作,对 widem 的进一步改进提出了设 想,并初步规划了将来在集成环境的优化上所要做的工作。 最后是致谢和参考文献。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 9 2 并行程序开发环境 widem 的系统设计 本章首先阐述 widem(web-based integrated development environment for mpi) 的整体结构设计,包括从底层计算服务所需的组件和这些组件的功能。通过对集群中 几类不同数据的共享,阐述了共享在高性能计算系统中的重要作用。通过介绍系统可 能的逻辑结构,阐述系统能够适应不同的集群架构。然后是提出系统在设计上存在的 难点。 2.1 widem 概述 widem 的目标是为了给高性能计算的集群软件提供一整套的软件解决方案。 widem 不仅仅是实现了一个并行程序开发环境,及其管理系统,而且对已有的高性 能计算的基础构建过程实施了一系列的改进,比如计算节点的系统启动情况方式,将 监控与任务提交系统的内在整合,系统安装方式的定制化,系统的可配置性等。通过 这些方面的改进,系统能够适应更多的计算环境。 从系统的安装方式上来说,我们提供了两种安装方式:第一种方式是在所有节点 都具有操作系统的情况下,通过在服务器上安装服务器软件,在计算节点上安装计算 节点软件包,然后构建成一个整合的系统。第二种方式是在服务器节点具有操作系统 且硬件同构的情况下,先安装服务器软件包,在通过 sis 产生计算节点映象10,然后 远程克隆到计算节点上。 从系统的服务配置上看,我们也可以提供两种方式,第一种是服务与调度节点一 致的服务模式,另一种是外部服务与调度节点分开,形成服务-调度-计算三层的结构, 形成耦合度更低的的系统。下面分别从组件结构,数据共享,逻辑结构等方面来阐述 系统的构成。 2.2 组件结构 从功能上看,系统主要分为两个大的部分:第一个部分是用于高性能计算的基础 设施,在 widem 中,就是 oscar 经过改进之后的计算环境。第二个部分是面向用 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 10 户所提供的开发环境及其配套设施。如图 2.1 所示,计算基础设施主要由 c311, mpich12, openpbs13, maui,ganglia ,nfs14共同组成。 wui(基于web的用户开发接口) os apachemysql c3ganglia maui nfssshsisntp cmd dispatcher cmd excuter 交互框架 mpichpfilter 基于用户预期的调度 oscar widem 图 2.1 widem 组件图 c3(cluster command control)是 ornl(oak ridge nation lib)开发用来管理和使 用自己的 hightorc cluster 的一套工具。他为集群的系统管理提供了一个命令行界 面(command line interface),是ornl正在开发的帮助用户对 pc cluster 进行系统管理 的接口的一部分,主要是在全 cluster 范围内的进行命令执行15。 mpich (message passing interface)是消息传递并行程序设计的标准之一,是由全 球工业、政府和科研部门联合推出的一大类并行机的标准消息传递并行程序设计平 台。它包含 3 层结构:最上层是 mpi 的 api,基本是点到点通信和在点到点通信基础 上构造的集群通信(collective communica-tion)16;中间层是 adi 层(abstract device interface),其中 device 可以简单地理解为某一种底层通信库,adi 就是对各种不同的 底层通信库的不同接口的统一标准。 pfilter17为集群提供安全屏障。当 pfilter 开启的时候,系统内部各个节点间允许 任何的网络连接, 而和系统外部尸允许 ssh 和 http 访问, 这大大提高了系统的安全性。 外部网络和集群之间的通信只被限制在从内到外的通信(cluster to outside)中, 从外到 内的通信被 pfilter 阻塞掉了。如果我们想开启从外到内的通信,就必须修改 pfilter 的 配置文件。 ntp (network time protocol)是用来和外部资源同步计算时钟的工具。 ntpd 守护进 程可以在 client 和 server 节点上分别运行,其作用分别为在远程节点上获得当前时间 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 11 和向远程节点提供当前时间。这里利用 ntp 去实现两种时钟同步:server 节点和外 部资源的时钟同步;client 节点和 server 节点的时钟同步。对于 oscar server 来说, 它会努力地去与外部时钟同步。 nfs(network file system)18是由 sun 公司开发, 并於 1984 年推出, nfs 是一 个 rpc 服务, 它使我们能够达到文件的共享。在 mpi 程序的运行过程中,由于各计算 节点需要具有一个统一的存储映象, 以保证程序能在各主机上并行的执行程序, 因此, nfs 在高性能计算系统中有着非常广泛的应用。 pbs (portable batch system)19是一个资源管理器,是一种可伸缩性的任务队列和 工作管理系统。它是在网络的、多平台的 unix 系统环境下工作的。openpbs 是 pbs 的开源版本。pbs 自身包括了一个叫做 fifo 的作业调度策略管理器,但是 oscar 缺省地关掉了 fifo, 而使用了一个更加鲁棒的开放源代码作业调度策略管理器 maui。 ganglia 是一个开源的集群监控软件,被广泛地应用于高性能计算系统中。它设 计了一套出色的多播协议来实现节点的动态加入和退出,另外,ganglia 使用时空数 据库 rrd 来记录随时间变化的监控信息,而通过 php 脚本将监控信息绘制为监控图 像。ganglia 的层次化的监控体系使它能够很轻易的应用于网格。 wui(web user develop interface)是在项目中实现的一个友好的面向用户的集 成开发环境的用户界面, 该界面主要提供的功能包括使用户能够在 web 界面上传, 编 辑,编译,配置一个工程,并通过一个命令通信协议与底层的系统交互,完成任务的 提交,系统的管理等。 command dispatcher 是 wui 与底层通信的桥梁,它通过识别 wui 发送过 来的命令,然后派送到相应的模块去执行。 command excuter 是执行命令的主要部分,它包含三个子模块,分别是用 户管理,系统管理和任务提交三个命令执行部分。它在命令执行完成之后会遵循协议 将完成后的结果保存在数据库或其他配置所指定的位置。 apache 和 mysql 分别是用来提供服务的 web 服务器和数据库服务器。 2.3 数据共享 为了支持程序的并行执行,有大量的数据需要共享。在小规模的集群中,一般使 用 nfs 来共享这些数据。这些数据对于各节点来说,都有一个统一的访问路径,以保 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 12 证节点之间的同构。以下是几类需要共享的重要数据: 执行程序的共享。在并行程序的执行过程中,在没有类似资源管理器调度作业的 情况下,必须在每个节点的相同路径下都由该执行程序的副本,同时,节点之间必须 默认开启 rsh(remote shell) ,当执行命令 mpirun 时,并行程序环境会首先读取 节点列表的配置,然后通过 rsh 来配置的节点中依次执行该程序20。 用户密钥的共享。由于 rsh 的安全性存在问题,现在的并行计算中一般都舍弃 了 rsh 作为远程命令执行环境,而代之以 ssh。普通的 ssh 存在登陆时需要交互式 的输入密码问题21,但是,通过保证系统用户文件配置的一致性,然后通过 nfs 共 享用户密钥,当从具有共同密钥的用户从一个节点 ssh 登陆到另一个节点时,ssh 会首先查看用户目录中的密钥,相同的密钥能使用户不需要输入密码就能够直接登陆 另一个节点,从而代替了 rsh 的命令执行方式。 系统映像的共享。某些计算节点的整个系统可以统一放置在开启了 dhcp, tftp 等协议的服务器上。当计算节点的系统启动时,会通过 tftp 协议获得系统的启动过 程,并通过读取共享在网络文件服务器上的系统来执行。在这种情况下,系统可以更 好的断点恢复能力22。 高性能计算从本质上来说,就是一个共享的结构,通过多个 cpu 来做同一个运 算,通过一定的消息机制来同步、协调这些运算。 2.4 逻辑结构 从节点所实现的功能看系统主要分为三部分:服务提供节点、作业管理节点和任 务运算节点。 服务提供节点主要负责提供 http 服务, 主要实现用户使用系统的接口, 为用户提供方便的开发环境和管理环境。作业管理节点主要负责接受用户提交的作 业,调度作业到后台运算节点;用户的管理,批量用户的加入、删除;作业的管理, 各个活动作业状态的监控;节点的监控,节点负载信息的收集,被调度节点的判断。 该节点需要配置 mpi 环境,并作为主节点运行 mpi 程序,负责将消息的分发和收集。 任务运算节点负责运行具体的程序, 主要是 mpi 程序。 各个节点的系统根据需要可以 有不同的启动方式。 系统支持两套硬件配置方式:服务作业管理计算和服务管理计算两种结构 的系统配置方式,由于管理节点不承担运算任务,一般将服务和管理节点合并为一个 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 13 节点,充分利用系统资源。系统的两种配置方式如图 2.2 所示。 s d hewlett packard sd hewlett packard sd hewlett packard sd hewlett packard service node schedule node compute node sd hewlett packard sd hewlett packard sd hewlett packard sd hewlett packard service node compute node sd hewlett packard sd hewlett packard sd hewlett packard sd hewlett packard sd hewlett packard schedule node 图 2.2 逻辑结构 现在已部署的 widem 包括在蓝星科技股份有限公司的 3 个节点的试验集群,和 在实验室威胜刀片机上部署的试运行集群,这两套系统就采用了两种不同的系统启动 方式,公司的宝德集群用的是远程克隆节点,而威胜集群用的是网络启动,挂载的 nfsroot23 作为系统根目录的远程系统映象。 2.5 实现难点 在 widem 集成开发环境的设计过程中,主要需要解决三个方面的问题: 第一个问题是 apache 服务器的用户权限问题, 由于 apache 默认的是非根用户权 限,而所有的 web 后台都是以 apache 的权限执行命令,因此,必须要通过一定的机 制来跨越 apache 的权限来安全的执行只有根用户才能执行的命令。 第二个问题是任务提交的安全性。 就是必须保证用户在 web 上所提交的任务在系 统中与之对应的是相同的用户名,且该任务的所有权限应该只属于该用户,且不可被 其他用户所修改。 第三个问题是用户管理中的组管理员的越权管理和批量添加问题,越权管理是指 在系统中,只有根用户才能添加,删除用户,而现在,要赋予组管理员相应的权限。 批量添加则是考虑到在系统的用户添加过程中,单个操作的失败,要通过可靠的方式 处理在数据库操作之外的事务处理,使这些操作不会因为单个操作的失败导致系统出 现不一致性和发生没有预计到的故障。 第四个问题是如何通过 web 来实现对远程文件的编辑和操作, 如何对远程工程进 行管理,以及怎样与任务提交系统无缝的结合起来。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 14 在第三章和第四章中,将详细讨论系统通过怎样的设计来处理这些问题。 2.6 小结 widem 采用了 oscar 做为底层计算服务的基础设施,通过交互框架对底层接 口的调用来实现整个系统的服务架构。整个架构涉及到对十多个开源软件的整合及配 置,其中最重要的是对底层管理接口 c3 的扩展,使系统的统一管理更加方便。在数 据共享上,使用了 nfs 文件系统,并将配置数据,文档数据及程序数据分离,使系统 的耦合度进一步降低。从逻辑结构上来看,系统还实现了调度和服务提供者的分拆, 提高了系统的适应性和可扩展性。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 15 3 系统交互框架 本章分析整个系统所要完成的功能,和要完成这些功能在实现上的难点,然后通 过提出了一种交互机制来解决这些问题。 这种框架的交互过程类似于 tcp 连接, 但是 与 tcp 连接不同的是,这个交互框架更加简单,并且更加适合于 web 后台与系统的 交互。最后,介绍了在这个交互框架下这些难点的具体实现。 3.1 问题描述 widem 最重要的实现就是为了提供给用户一个易于使用、易于管理的界面,因 此,widem 的用户接口就成为设计中的重中之重。widem 需要面向多类用户的, 分别提供相应的界面。 对于并行程序设计者而言, 要在 web 上提供一个与本地程序开 发一个相似的环境;对于集群的管理者而言,要提供对系统的整体的监控,并能够执 行一些常用的操作,方便管理整个集群;对于组管理员来说,就是要提供对组,对用 户的管理。 对于这些不同的操作,提供一个统一的用户界面对于系统来说是必不可少的。这 个界面并非是一般的 web 程序, 他不仅仅是向数据库写信息和读信息, 还要根据用户 从浏览传来的操作,实施系统调用,维护数据库与系统信息的一致。linux 操作系统 对于用户的权限有着非常严格的界定,其中大部分的操作都必须以根用户的身份来完 成。因此,交互框架的目标之一就是能够提升 http 服务器的执行权限,或者通过交 互执行的方式,间接的以根用户权限来执行。 另一个问题是交互结果最终将显示在浏览器上,信息的持久化也是该框架必须满 足的要求之一。 由于一般的 tcp 连接的交互方式并不能保存执行过程的中间信息, 所 以必须通过数据库来保存中间结果, 以方便 php 程序能够读取这些数据。 在交互过程 中,数据库总是占据信息中转的中心地位。 3.2 交互框架结构 在 b/s 模式的系统级应用中,一般具有如下特征: 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 16 (1)系统的事件触发源有两类。一类是用户的行为所触发的事件,如点击某个按 钮,一级级的往下通知,而引发一系列的执行过程,这个执行过程应该实现对用户行 为的反应,不论该执行过程是否经历了系统的调用。另一类是系统本身的事件,如任 务完成,如某个节点启动,某个任务的完成。这两类事件的数据最终流向都指向用户 界面。而对用户界面来说,最容易存储信息和读取信息的就是数据库,因此,事件的 产生所导致的信息变化都将被存储到数据库中。 (2)消息流向较为复杂,导致对错误的处理也比较复杂。在一般的 b/s 架构中, 要处理的信息基本上是 web 服务器到数据库一个交互过程。 但是在系统管理中, 情况 就会复杂很多,数据通过数据库作为中转,而消息要经过 php 脚本,命令分派器,处 理过程,系统调用,在此过程中,对于错误的处理,又要一级级的返回,因而,一般 的调用返回过程不适于用来做为此类系统的框架。 通过研究现有的一类集群管理工具,会发现有两类代表性的实现,一类以 webmin24为代表。 这类工具自己实现了一个 web 服务器, 不依赖于任何的外部实现。 一类以 ganglia 为代表,除具有自己的 gmond、gmetad 和 web 组件之外,还使用了 apache、rrd、php25等已有软件。特别是受到 ganglia 实现框架的启发,系统框架 采用了一个非常松散的架构,并且借助已有的软件来实现显示、数据存储、提供 web 服务和消息中转。 图 3.1 交互框架 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 17 在系统中,要处理三种方式的数据流:第一种是由用户引发的行为过程,并获得 该过程的反馈。第二种是系统事件触发的执行过程。第三种是后台程序定期执行,不 断的产生确定性的事件。 在图中所示的框架之内, 我们主要通过 php 与数据库和命令 分派器之间的通信,命令处理过程与数据库的通信两个主要的通信过程来实现上述所 说的命令处理,其主要过程如图 3.1 所示。 第一步,用户会向 web 服务器提交一个请求。 第二步,php 将会处理该请求。如果是一般的请求,php 通过读取数据库,即可 返回用户所需的页面。 第三步,php 处理该请求过程中,如果发现这是一个带有命令,执行某项功能的 请求,php 就会先将数据写入数据库,然后通知命令分派器,表明有请求过来。 第四步,命令分派器会解析该请求,将该命名继续传递给具体的处理过程。如果 是用户管理的,则提交给 user serve
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辅警法律知识培训
- 农业银行2025秋招结构化面试经典题及参考答案甘肃地区
- 建设银行2025神农架林区秋招笔试价值观测评题专练及答案
- 中国银行2025东营市笔试英文行测高频题含答案
- 2025年3D打印的金属材料性能优化
- 2025年3D打印的食品制造
- 2025可再生能源的全球合作机制
- 2025新兴行业商业模式创新实践
- 商业项目代理合同3篇
- 中国银行2025锡林郭勒盟秋招笔试EPI能力测试题专练及答案
- 2025保密教育线上培训考试题库(含答案)
- 护栏供应及安装合同范本
- 2025年反假货币试题题库及答案
- 2025宁波宁海县国有企业招聘52人考试参考试题及答案解析
- 2025年本科院校团委笔试备考手册
- GB/T 45940-2025网络安全技术网络安全运维实施指南
- 2024年仙桃市高新技术产业投资有限公司招聘笔试真题
- 敦煌课件讲解稿子
- 2025年环境工程师初级职称考试试题及答案解析
- 眼科特检基础知识培训课件
- 统编版高中思想政治必修1第一课社会主义从空想到科学、从理论到实践的发展1.2科学社会主义的理论与实践 教学课件
评论
0/150
提交评论