




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院学位论文 摘要 元计算( m e t a c o m p u t i n g ) 是基于网络的高性能计算技术,它通过网络连接强大的计算 资源,形成对用户透明的超级计算环境,实现分布并行计算。元计算环境是在广域网上实 现的,构成系统的计算机可以是不同种类、不同大小的,用户的程序类型也是多种多样的。 因此,研究如何使元计算环境为更多的用户接受,使元计算环境在i n t e r n e t 上广泛应用 具有非常重要的意义。 本课题的研究目标是实现j m e 元计算环境对f o r t r a n 并行程序设计的支持,实现用 户管理功能,进一步完善元计算环境j m e 的各项功能,并使用户的程序能够安全、无错的 运行于i m e 元计算环境。 本文分析比较了j a v a 和f o r t r a n 两种程序设计语言的利弊,阐述了i m e 元计算环 境支持f o r t r a n 并行程序设计的意义,并针对实现这种支持的保证工作机同构、并行编 程支持、程序的分布执行、结果回收等几个关键问题做了详细阐述;然后就用户管理功能 的实现做了讨论;最后在分析j m e 系统测试结果的基础上,对用户编程给出了一些建议。 关键字:j a v af o r t r a n元计算并行程序设计用户管理 、。 v + 国防科学技术大学研究生院学位论文 a b s 打a c t m e t a c o m p u t i n g i sak i n do fw e b b a s e dh i g hp e r f o r m a n c ec o m p u t i n gt e c h n o l o g y ,a s u p e r - c o m p u t i n ge n v i r o n m e n t ,w h i c h i sc o n s t r u c t e d b yc o n n e c t i n gp o w e r f u lc o m p u t i n g r e s o u r c e st h r o u g hn e t w o r ka n d t r a n s p a r e n tt ou s e r s ,i m p l e m e n t i n gp a r a l l e ld i s t r i b u t e dc o m p u t i n g t h em e t a c o m p u t i n ge n v i r o n m e n ti sc o n s t r u c t e do nt h eb a s i so fw i d e - a r e an e t w o r k ,a n dc a nb e c o m p o s e d o fv a r i o u sk i n d so f c o m p u t e r s a n d t h e p r o g r a m sp r e s e n t e d t or u ni nt h e m e t a c o m p u t i n ge n v i r o n m e n tm a y b ew r i t t e ni nd i f f e r e n tp r o g r a m m i n g l a n g u a g e s s o ,s t u d i e so n h o wt om a k ea m e t a c o m p u t i n ge n v i r o n m e n ta c c e p t e db ym o r e u s e r sa r eo f g r e a ti m p o r t a n c e t h eg o a lo ft h i ss t u d yi st op e r f e c tt h ef u n c t i o n so ft h ej m e ,j a v a b a s e dm e t a c o m p u t i n g e n v i r o n m e n t ,i n c l u d i n ga d d i n gs u p p o r t t o p r o g r a m w i t hf o r t r a ni nt h e j m e a n d i m p l e m e n t i n gu s e rm a n a g e m e n t ,a n dt h a t a l lu s e r s p r o g r a m sc a nr u ni nt h ej m e s a f e l ya n d c o r r e c t l y t h i s p a p e r w i l l a n a l y z e a n d c o m p a r ea d v a n t a g e s a n d d i s a d v a n t a g e s o ft h e s et w o p r o g r a m m i n gl a n g u a g e s :j a v aa n df o r t r a n ,c l a d f y t h ep r a c t i c a ls i g n i f i c a n c eo f i m p l e m e n t i n g s u p p o r t i n gf o r t r a np a r a l l e lp r o g r a m m i n g i nt h e j m e ,a n de x p a t i a t e so ns e v e r a lk e yp r o b l e m s a n dh o wt os o l v et h e s ep r o b l e m s :k e e p i n gw o r k i n gn o d e si s o m o r p h i c ,p a r a l l e lp r o g r a m m i n g , d i s t r i b u t i n g a n d e x e c u t i n gt a s k ,c o l l e c t i n gr e s u l t s ,e t c t h i sp a p e ra l s od i s c u s s e sh o wt o i m p l e m e n t u s e rm a n a g e m e n t a tl a s tt h i sp a p e rg i v e su s e r ss o m ea d v i c eo n p r o g r a m m i n g i nt h e j m e o nt h eb a s i so f a n a l y z i n gr e s u l t so f t e s t i n g j m e k e y w o r d :j a v a f o r t r a n m e t a c o m p u t i n gp a r a l l e lp r o g r a m m i n g u s e rm a n a g e m e n t 国防科学技术大学研究生院学位论文 第1 章绪论 1 1研究背景和意义 随着高性能应用需求的迅猛发展,单台高性能计算机已经不能胜任一些超大 规模应用问题的解决。这就需要将地理上分布、系统异构的多种计算资源通过高 速网络连接起来,共同解决大型应用问题。元计算( m e t a c o m p u t i n g ) 是基于网络 的高性能计算,它可以将因特网整合成一台巨大的、虚拟的超级计算机,实现计 算资源尤其是闲置计算资源的最大限度的共享。元计算也称为网格计算( g r i d c o m p u t i n g ) 。目前这方面的技术已形成了特有的体系,受到越来越广泛的重视。 元计算技术对于充分利用网络资源解决大规模应用问题具有非常重要的意义。 元计算系统具有分布式系统和并行系统的特征,具有如下几个特性: 系统本身是与平台无关的。 可扩展性。随着工作节点的不断加入,系统的规模也会随之扩大。 系统多层次的异构性。构成元计算系统的工作节点类型多样,不同类型 的工作节点在体系结构、操作系统及应用软件等多个层次上具有不同的 结构。 结构的不可预测性。与一般的局域网系统和单机的结构不同,元计算系 统由于其地域分布和系统的复杂使其整体结构经常发生变化,元计算系 统的应用必须能够适应这种不可预测的经常变化的结构。 简单地讲,传统因特网实现了计算机硬件的连通,w e b 实现了网页的连通, 而元计算试图实现互联网上所有资源的全面连通,包括计算资源、存储资源、通 信资源、软件资源、信息资源、知识资源等,最大限度的发挥网络的优势,有着 广阔的应用前景。 我们研制的j m e ( j a v a - b a s e dm e t a c o m p u t i n ge n v i r o n m e n t ) 系统是用j a v a 语 言实现的,因此系统本身是与平台无关的;但同时应该看到的是由于元计算系统 所具有的异构性以及动态性,不能简单地将现有的并行计算技术直接应用于元计 算。比如并行程序设计语言的选择。虽然j a v a 语言可以做到与平台无关,但是作 为种并行程序设计语言,j a v a 语言还存在着明显的不足。所以应在支持j a v a 并 第1 页 国防科学技术大学研究生院学位论文 行程序设计的同时,通过采用一些技术手段,添加元计算环境对f o r t r a n 语言 或者c 语言的并行程序设计支持,这样虽然损失了一些平台无关性,但是可以极 大的扩大元计算环境的客户源,推动元计算环境的实用化,也可以大大提高程序 的并行执行效率。 此外,要想把一个元计算环境推向实用化,安全机制也是一个重要的问题。 为了保证用户所提交的程序文件和运行结果只能唯一的被用户本人所操作,保证 不同用户提交同名文件时不会造成错误,有必要实现元计算环境的用户管理功能, 满足用户最基本的需求。 1 2研究目标 本课题的目标是实现j m e 元计算环境对f o r t r a n 并行程序设计的支持,以 及系统的用户管理功能。之所以使用“元计算”这个名词而不是现在最为流行的 “网格”( g r i d ) ,是为了强调我们构建j m e 元计算环境的目的是为了解决客户机 器效率低下和客户程序运算量大的矛盾,实现基于网络的并行计算。 下面简单介绍一下本课题的工作基础。 j m e 元计算环境的系统部分使用j a v a 语言编写而成,w e b 服务器使用的是 a p a c h e ,c g i 采用的是j a v as e r v l e t s ,底层消息通信机制是p v m 和i p v m ,已经实 现了对j a v a 并行程序设计的支持,并通过一些简单的矩阵乘测试程序证明系统较 之单机具有一定的加速比。没有用户管理和目录管理功能。 通过本课题的研究,j m e 系统将要达到的以下目标: 对f o r t r a n 并行程序设计的支持 在保留对j a v a 并行程序设计支持的同时,支持用户直接向服务器提交 f o r t r a n 源程序。 f o r t r a n 并行程序设计的透明性 用户在编写自己的f o r t r a n 并行程序时,不需要知道系统内部函数的 具体实现,只需知道各个函数接口即可方便的编程,这也是系统的易用 性。 用户管理功能 每个用户在服务器上都有自己的主目录,用户提交的程序、结果文件都 放在用户自己的主目录下,每个用户在自己的主目录中拥有完全的操作 第2 页 国防科学技术大学研究生院学位论文 权限,却不能进入其他用户的目录。 1 3论文结构 本文共分为七章。 第1 章介绍课题的研究背景和意义,说明课题的研究目标和研究内容。 第2 章介绍介绍课题相关的背景和相关的研究工作。着重分析介绍了几个国 内外的元计算系统。 第3 章介绍j m e 元计算环境的总体结构,对j m e 使用的技术做了概述,从 系统外部界面的角度介绍了i m e 系统的一些特性。 第4 章介绍本课题研究的实际意义,并说明了实现j m e 元计算环境对 f o r t r a n 并行程序设计支持的可行性。 第5 章论述添加j m e 元计算环境对f o r t r a n 并行程序设计支持的几个关键 问题,包括怎样保证工作机的同构性、对并行编程的支持、程序的分布与执行以 及结果文件的回收。 第6 章论述怎样实现j m e 系统的用户管理和目录管理功能,包括在j m e 元 计算环境上实现用户管理功能和单机上实现时的区别、实现用户管理功能的目标 以及技术手段。 第七章分析了两个j m e 系统测试程序的结果,并在此基础上对用户变成提出 了一些建议。 第3 页 国防科学技术大学研究生院学位论文 第2 章元计算 2 1概述 当一些高性能计算的应用需求使计算能力不可能在单一计算机上获得时,就 必须通过构建“网络虚拟超级计算机”或“元计算机”来获得超强的计算能力。2 0 世 纪9 0 年代初,根据i r l t e r a e t 上主机大量增加但利用率并不高的状况,美国国家科 学基金会( n f s ) 将其四个超级计算中心构筑成一个元计算机,逐渐发展到利用 它研究解决具有重大挑战性的并行问题。它提供统一的管理、单一的分配机制和 协调应用程序,使任务可以透明地按需要分配到系统内的各种结构的计算机中, 包括向量机、标量机、s i m d 和m i m d 型的各类计算机。n f s 元计算环境主要包 括高速的互联通信链路、全局的文件系统、普通用户接口和信息、视频电话系统、 支持分布并行的软件系统等。这还只是元计算环境的一个雏形,因为它还不能方 便地实现系统的动态构造。 元计算就是基于网络的高性能计算。元计算的产生、发展必须具备以下三个 基本条件:计算资源的广域分布、网络技术( 特别是i n t e r n e t ) 的成熟以及不断增 长的对资源共享的需求。在计算机技术发展的早期阶段,只有很少数量的大型计 算机,它们通常被安装在相互独立的计算中心内,多个计算机用户通过使用终端 来共享一台大型机的资源,但却不能同时共享多台大型机的计算资源。随着网络 技术的发展,多台大型计算机可以在局域网( l a n ) 内互连,用户通过网络便可 以同时使用多台计算机的资源。而i n t e r n e t 的飞速发展和酱及使得元计算技术的 产生成为可能。 9 0 年代中后期以来,网络的速率不断提高、连接更为广泛,接入因特网的计 算机的数目爆炸性地增长、性能也更为提高。此外,j a v a 语言和相关技术成功地 解决了困扰元计算的几个关键问题,如异构性和安全性。因此,理论上全球任意 一台装有w e b 浏览器的机器都可以进行全球计算。尽管j a v a 平台还存在效率低 等问题,但它无疑将大大影响网络计算模式的发展,使实现全球分布式计算已不 再是一个梦想。 元计算可以合理而有效地将各种闲散计算资源高效地组织起来,形成“网络虚 拟计算机”,以获得超强的计算能力。相对于机群计算环境,它具有范围更广、功 能更强大、组织和管理更复杂的特点。 第4 页 国防科学技术大学研究生院学位论文 2 2元计算的概念 元计算技术的概念处于不断的发展之中,简单的理解可以是:多个计算机共 享资源并协同工作来解决一些共同的问题。元计算机是具有些“非正式”节点 池的一个动态环境,这些节点可以按照自己的意愿加入或离开。一个元计算系统 按照功能,可以由下往上分为三个基本层次: 核心层 最底层是核心层,该层负责组成元计算环境的各个计算结点之间的通信、程 序文件的分布和执行、文件的传输等等。 管理控制层 管理控制层主要负责节点管理、问题控制、用户管理以及和其他两层的信息 交互。该层实现节点动态管理,通过下层的接口进行工作机加入、离开和容错的 处理。该层通过接收上层的消息,进行问题的管理和工作机的分配,并基于下层 的用户认证机制提供用户和文件的管理功能。 应用层 应用层主要负责用户的应用程序编程接口,提供一些最基本的函数库以及集 成化应用环境。基本的函数库提供给用户所需的并行程序设计机制,用户程序必 须了解这些函数的接口,并作为用户程序的一部分与服务器进行交互来保证用户 程序的正确执行。集成化应用环境完成从程序编制到运行结果回收的所有功能。 元计算机另一个特点是它可以使用网络异构计算资源,各节点可以使用不同 的操作系统,可以使用从单处理器到多处理器的不同计算机。归纳起来,元计算 的主要特征有如下三点: 元计算是基于网络环境下的,提出元计算的目的就是为了充分利用 i n t e r n e t 上的各种空闲计算资源,以尽可能低的成本、尽可能高效率地完 成各种计算任务。 正因为元计算是基于网络环境下的,所以元计算的一个重要特点就是应 与平台无关。 元计算的另一个重要特点就是提供给用户一个透明的并行计算环境, 第5 页 国防科学技术大学研究生院学位论文 个虚拟的分布并行计算机。 2 3相关技术介绍 虽然元计算发展到今天,已经不再是一个新概念,但是由于网络环境的异构 性、可扩展性和网络虚拟环境的动态自适应特征,使得元计算系统在开发系统、 并行工具和应用程序方面都还存在着较大的挑战,所以到目前为止国内外还没有 一个已经实用化的元计算系统,都处于研制和试验阶段;但是对元计算技术的研 究却从来也没有停止过,在近几年还有越来越热的趋势,例如现在流行的“网格 计算”( g r i dc o m p u t i n g ) 、“先进计算基础设旋”( a d v a n c e dc o m p u t a t i o n a l i n f r a s t r u c t u r e ,简称a c i ) 。下面对这两种技术作一简单介绍: 网格计算 网格是把因特网上的资源整合成一台巨大的超级计算机,实现计算资源、存 储资源、数据资源、信息资源、知识资源、专家资源的全面共享。这类研究的目 标是将跨地域的多台高性能计算机、大型数据库、贵重科研设备( 电子显微镜、 雷达阵列、粒子加速器、天文望远镜等) 、通信设备、可视化设备和各种传感器整 合成一个巨大的超级计算机系统,支持科学计算和科学研究。这方面的代表性研 究工作包括美国国家科学基金会资助的国家技术网格( n t g ) 、分布万亿次级计 算设施( d t f ) 、美国宇航总署的i p g ( i n f o r m a t i o np r o c e s s i n gg r i d ) 、美国能源部 的a s c ig r i d 以及欧盟的d a t ag r i d 等。 先进计算基础设施 先进计算基础设施( a d v a n c e dc o m p u t a t i o n a li n f r a s t r u c t u r e ,简称a c i ) 是国际 上,尤其是美国近年来大力发展的一项信息领域基础设施。a c i 的含义是把分布 在不同地理位置的高性能计算机、贵重仪器、数据库等资源用高速网络连接在一 起。同时研究开发相应的中间件,使这些资源看起来就像一台单一映像的虚拟机 器,用户通过a c i 共享资源、建立虚拟实验室、共同讨论以及合作开展科研项目。 美国近年来一直在大力进行的几个a c i 项目:美国科学基金会支持的n p a c i ( n a t i o n a l p a r t n e r s h i p o fa d v a n c e d c o m p u t a t i o n a l i n f r a s t r u c t u r e )和 n c s a ( n a t i o n a lc o m p u t a t i o n a l s c i e n c e a l l i a n c e ) 以及美国能源部支持的a s c i d i s c o m 。 由以上可以看出,这两个名词只不过是元计算的进一步扩充,或者说与元计 算的侧重点有所不同。网格计算和a c i 着重的是怎么样将网络上的各种资源,而 第6 页 国防科学技术大学研究生院学位论文 不仅仅是和计算相关的资源连接起来,强调将资源最方便地提供给用户使用,消 除所谓的“信息孤岛”;元计算突出的是并行计算能力,强调的是怎么样将网络 上的各种闲散计算资源充分利用起来,为用户解决实际问题,提高程序的执行效 率。所以,元计算和这两者之间既有联系,又有区别。 国防科学技术大学研究生院学位论文 第3 章j m e 元计算环境概述 j m e ( j a v a b a s e dm e t a c o m p u t i n ge n v i r o n m e n t ) 是基于j a v a 的元计算环境的简 称,迄今为止已实现了对j a v a 和f o r t r a n 并行程序设计的支持,并具有较为完 善的用户管理功能。系统采用a p a c h e 作为w e b 服务器,c g i 使用j a v as e r v l e t s 。 系统本身使用j a v a 编写而成,底层通信机制采用的是p v m ,用户管理通过 p h p + m y s q l 实现。 3 1系统层次结构 j m e 元计算环境的总体结构分为三层:应用层、管理控制层、核心层。 图3 1 系统层次结构 这三层的关系可以参考图3 1 所示。 核心层是最低层,主要是并行程序设计环境和工具,如编译器、语言环 境、p v m 、j p v m 以及j m e 的一些守护进程等,负责任务之间的消息传 第8 页 国防科学技术大学研究生院学位论文 递、程序文件的编译、分布和执行,以及服务器和工作机文件系统的存 取等等,并通过t c p 连接接收协议消息以及将本层的有关信息传递给管 理控制层。在核心层还为上层的管理控制层提供用户认证机制。 管理控制层主要负责节点管理、问题控制、用户管理以及和其他两层的 信息交互。该层实现节点动态管理,通过下层的接口进行工作机加入、 离开和容错的处理。该层通过接收上层的消息,进行问题的管理和工作 机的分配,并基于下层的用户认证机制提供用户目录和文件的管理功能。 每个登陆的用户都有一个自己的主目录,用户所提交的程序文件和程序 运行结果文件都将存放在用户自己的主目录中,这样既可以增加用户文 件的安全性,防止其他用户对自己目录下的文件进行操作,还可以防止 不同用户提交同名文件而引起的错误。 应用层主要负责用户的应用程序编程接口,提供基本函数类库以及基于 w e b 的集成化应用环境。基本类提供给用户所需的并行程序设计机制, 用户程序必须继承这些类,并作为用户程序的一部分与服务器进行交互 来保证用户程序的正确执行。基本类分为两种,分别对应j a v a 和 f o r t r a n 并行程序,用户根据自己需要选择。基于w e b 的集成化环境 使用户可以仅需要浏览器即可完成从程序编制到运行结果回收的所有功 能,体现了b r o w s e r s e r v e r 模型的方便简洁之处。 相对于用户来说,j m e 元计算环境采用的是目前最为流行的b r o w s e r s e r v e r 模型,最大限度的方便了用户的使用;从虚拟机的组织形式上来看,j m e 元计算 环境结合了志愿者和雇用者这两种模型,避免了系统最初启动时,没有工作机可 以用于计算的缺陷,并同时体现了工作机自由加入和离开的原则。2 1 2 作机只出让 计算资源而不出让控制资源,保证了工作机所有者的权益和安全。 3 2 1 基本组成 3 2系统基本原理 系统在物理上由三类机器组成:服务器、工作机和客户机。服务器启动后的 任何时刻,工作机( w o r k e r ) 可以通过服务器的w e b 页面登记到元计算环境。工作 机也可以在登记后的任何时刻离开元计算环境。工作机登记到该系统后,服务器 根据问题分配算法来分配问题和任务。客户机也是通过服务器的w e b 页面来提交 第9 页 国防科学技术大学研究生院学位论文 问题的。客户必须首先成功登陆进入系统才能提交问题。提交问题后客户机浏览 器将运行一个a p p l e t 来接受服务器送来的程序输出信息。问题执行的结果也可以 通过页面下载到本地。 为了支持元计算的基本特点,系统需要解决的两个基本问题是工作机的异构 问题和工作机自主地加入和离开的问题。为了解决异构问题,系统采用j a v a 语言 编写,并支持j a v a 并行程序设计。对于用户提交的f o r t r a n 并行程序,系统将 会在各个工作机加入之初即获得工作节点的机器参数,然后提供给用户,让用户 自己选择工作机,以保证f o r t r a n 程序运行在同构的工作机节点上。工作机的 控制独立性问题则主要通过服务器服务线程管理来实现。 3 2 2 工作机 如果用户考虑得更多的是程序的与平台无关,用户程序可以使用j a v a 语言编 写,这样省却了在异构环境下编译器构造困难的问题;反之,如果用户考虑得更 多的是程序的执行效率,用户程序可以使用f o r t r a n 语言编写。工作机加入的 w e b 界面如下图3 2 所示: 图3 2 工作机加入 工作机上有些软件是必须安装的:首先需要安装j d k l 2 软件包;为了使j a v a 并行程序能够使用p v m ,工作机还需要安装j p v m ;此外还有一个j m e 元计算环 第l o 页 _ _ _ _ _ _ _ - _ _ _ _ - _ _ _ - - _ _ - _ _ - _ - _ - _ _ - _ - - _ 一 国防科学技术大学研究生院学位论文 境所必需的软件包,这个软件包是工作机和系统通讯的桥梁。该程序包内含 g e t l o c a l i n f o 、w o r k e r d a e m o n 、w o r k e r t h r e a d 和c h m o d f i l e 四个类,其中: g e t l o c a l l n f o 负责收集工作机的机器参数;w o r k e r d a e m o n 负责将收集到的工作机 参数发送给服务器并启动w o r k e r t h r e a d :w o r k e r t h r e a d 负责在并行程序运行的过 程中与服务器进行通讯,保证与服务器的连接正常,这其中还包括了通过t c p 连 接将服务器分配的程序文件读入并保存到本地文件系统;c h m o d f i l e 负责将 w o r k e r t h r e a d 接收到的程序文件更改属性为可执行。该程序包打包为w o r k e l j a r , 在工作机加入前从服务器下载,由服务器通过j p v m 远程执行。这些软件在如图 3 2 所示的“工作机加入”页面上都可以直接点击下载。 3 2 3 客户机 客户机无需任何配置,只需要有支持j a v a a p p l e t 的浏览器,就可以使用该系 统。用户使用j a v a 语言编程时,首先下载系统的基本类,程序应该继承系统提供 的基本类。在提交程序时,程序应被编译成字节代码,并打包成1 材文件提交。 在i a r 文件m a n i f e s t 中应指明m a i n 所在的类。程序的数据文件也可以打包在 a r 文件中。数据文件在程序中的存取,需要使用j a v a u t i l z i p 类进行编程;用户使用 f o r t r a n 语言进行并行程序设计时甚至都不需要下载任何库函数文件,只须了 解各个函数的接口,并在源程序中将库函数包含进来即可。用户提交程序后,可 以通过浏览器的a p p l e t 获得程序的实时输出或下载程序执行完毕的结果文件。编 程中使用p r i n t o u t 将数据输出到客户浏览器,或者使用f i l e o u t 输出到服务器的 文件以便下载。客户浏览器的a p p l e t 通过使用s o c k e t 与p r o b l e m q u e u e 线程建立 t c p 连接,p r o b l e m q u e u e 线程产生一个o u t p u t t h r e a d 线程,并将工作机返回的数 据通过o u t p u t t h r e a d 返回给客户浏览器。 3 2 4 服务器 服务器运行a p a c h e l 3 6 作为w e bs e r v e r 软件;使用j a v as e r v l e t 代替通常使 用的c g i 程序,提供会话控制和处理客户的请求。并且由于使用j a v as e r v l e t ,使 得服务器的服务线程可以使用j a v a 编写,更有利于服务器软件的移植;使用 p h p + m y s q l 对用户进行身份验证。 服务器使用一个两进一出的循环队列来维护系统的工作机。对于新加入的工 作机将放到该队列的头部。对于已经分配任务的工作机将放到队列的尾部。每次 分配任务将从队列头部取出工作机。 第1 1 页 国防科学技术大学研究生院学位论文 系统顺序图的大致框架如图33 所示 ! o 缸! 瞅 j 旺 奄甜 l i l t 球u 汀 堪q 眠磷 圆日7 i7 i 、 llr 札随a t l v a k r s c 晰n v d 蛭r 1 雷 、 产r 呻 刚lk t i e n a 。 学l i 丸踟妇 l 、) l k “h 铲畔 l _ l u 铺 3 a 强蛔 ,n ;,- 0 0 n f 4 j o a e p 墩 口 x h 。 n 一 、j 姬:、 , t r a m :r t f i l e e b 9 e 0 蹲瓢1 馈k 、蕊一 l 一 【、i p i i 抵 ; 西m 曲 j 印咖 缸j 目p 。i 姆协隶 , 矧j 丑p 、 o n m 砖k ( 日s 苣惯 i 图3 3 系统顺序图 该图中也标出了系统使用的部分协议。系统初启时,将初始化 j,该将产生系统主要的两个队列对象 、 以及管理工作机的服务对象。当有工作机要求加入时, 工作机向j发出请求,系统将该工作机加入队列,获取工作机的机器 参数,并产生一个用于和该工作机通信的对象。当客户提交问题时, 客户浏览器将获得一个用于显示问题运行过程中的输出。该 向发送消息,表示客户准备就绪。将产生一个 对象,用于向客户 发送显示数据信息。问题使用的所有工作 机,需要显示输出时,都要通过服务器中转。如果用户提交的是程序, 系统会将用户所选择的工作机形成一个新的工作机队列( 称之为工作 第1 2 页 国防科学技术大学研究生院学位论文 机队列) ,该队列是全局工作机队列的一个子集。p r o b l e m q u e u e 将从f o r t r a n 工作机队列头部取出一台工作机,将任务传送到该工作机,并启动该任务。如果 是j a v a 程序,系统将直接从全局工作机队列头部取工作机,因为j a v a 程序可以 做到与平台无关。在问题执行过程中需要产生子任务时,基本类提供的s p a w n 将 和w o r k e r s e r v e r 通讯。w o r k e r s e r v e r 从工作机队列( 对应不同类型程序选择不同 类型的工作机队列) 获得一台工作机,并将子任务分布到该工作机上运行。 用户提交给系统的每个问题,均有自身的问题i d 。每个问题又可以派生出子 任务,对于子任务是以两维数组( 问题i d ,子任务号) 的形式索引。一个问题的 任何子任务都可以通过子任务号进行通讯。系统中的任意子任务,都可以通过二 元标识,来唯一定位另一个子任务的位置,进行通讯。系统中的每个子任务,可 以产生多个线程进行计算,构成两层并行系统。 3 3系统外部界面 从计算资源的出让者的角度看,加入 m e 系统需要安装j a v a 开发工具包i d k 来使得本地系统支持运行j a v a 程序。其次,要让本地机器成为i m e 系统的工作 机,需要从j m e 元计算环境的服务器上下载并安装p v m 软件包和i p v m 软件包, 使得上层程序可以使用p v m 本地库。最后,资源出让者还需要从i m e 的服务器 下载一个w o r k e r j a l 文件,该文件是工作机守护线程的程序文件。按照服务器w e b 主页的说明配置好工作机后,就可以出让计算资源。以后离开j m e 系统或者再次 加入i m e 系统就不需要再次配置工作机。 当工作机完成配置后,在系统管理员认为合适的时机,可以将工作机加入元 计算环境。工作机加入只需要访问i m e 服务器的主页,点击工作机加入按钮即可。 如果加入成功,服务器将返回给浏览器一个包含成功加入消息的页面。否则,返 回一个加入不成功消息,并给出可能出现的错误。大部份错误的原因是由于工作 机未能正确配置的缘故。这时,工作机管理员可根据该消息更改配置。当工作机 成功加入后,管理员不需要再进行任何操作。甚至,可以将浏览器关闭并l o g o u t 。 在管理员认为本地需要更多计算资源的任何时刻,管理员可以再次通过测览器访 问j m e 系统服务器主页,并点击工作机离开按钮。工作机即可离开i m e 系统, 并且工作机上守护线程将终止。i m e 系统的w e b 首页见图3 4 。 第1 3 页 国防科学技术大学研究生院学位论文 图3 4 j m e 首页 从用户角度看,j m e 系统完全基于w e b 服务器。用户除了需要安装浏览器外, 可以不安装其他任何软件来进行软件开发工作。用户可以用浏览器访问j m e 系统 的w e b 服务器。服务器主页上提供用户登录功能。用户登录后可以管理自己主目 录下的所有文件,并提交执行。用户提交程序后,用户浏览器将会获得一个从服 务器送来的a p p l e t ,该a p p l e t 上将显示用户提交程序的所有p r i n t o u t 输出的信息。 当程序结束后,用户可以刷新页面,这时,在用户主目录下将产生一个新的结果 文件。用户可以通过浏览器观看该文件或者将文件下载到用户本地来观看程序中 所有f i l e o u t 的输出。 用户可以在本地安装开发包进行程序开发工作,并在本地编译和打包,然后 提交服务器来执行。这里唯一需要申明的是由于v i s u a lj + + 包含许多j a v a 标准不 兼容的特性,所以不要使用v i s u a lj + + 作为本地开发工具。 用户编程时需要继承i m e 系统提供的基本函数库以便和服务器交互。基本 函数库下层使用的机制和系统内部机制对用户是透明的,用户只需要了解各个函 数的接口即可。如果用户使用f o r t r a n 语言进行并行程序设计,用户甚至都 无须下载基本函数库,因为f o r t r a n 程序的编译和执行都有系统自动处理。 第1 4 页 国防科学技术大学研究生院学位论文 第4 章元计算环境中并行程序设计语言的选择 4 1j a v a 和元计算 j a v a 作为二十世纪九十年代最重要的技术发明之一,所具有的纯面向对象、 简单高效、与平台无关、安全、完整支持多线程等特点,使之成为i n t e r n e t 上程 序设计的首选语言。但是,也应该看到j a v a 语言作为并行程序设计语言还存在着 不足,和f o r t r a n 、c 相比在性能上仍存在一定的差距。本节就j a v a 语言对元 计算环境的支持和所存在的不足作一初步介绍。 4 1 1 , l a v a 语言对于元计算环境的支持 j m e 元计算环境的系统部分使用j a v a 语言编写,实现了j m e 系统本身的与平 台无关,并能更好地支持网络通信和多线程编程;另一方面,j m e 系统支持使用 j a v a 语言进行并行程序设计,实现了并行程序的与平台无关。归纳来说,j a v a 对 元计算环境的良好支持具体体现在下面几个方面: j a v a 具有平台无关的特性,这对在异构环境下开发并行计算程序来说非 常重要。 在构造无错软件方面,j a v a 与c 或c + + 相比具有优势:对象旬柄自动初 始化成n u l l 旬柄可以保证得到精确的检查;可以及时发现数组访问是 否越界;自动垃圾收集,防止出现内存漏洞:明确清晰的异常控制机制; 对网络程序片进行字节码校验。 j a v a 内建了对多线程的支持。通过继承一个特殊的t h r e a d 类可以创建一 个新线程。并且,若将s y n c h r o n i z e d 关键字作为方法的一个类型限制符 使用,可以在对象这一级得到互斥。在线程之间还可以实现更复杂的同 步机制。 j a v a 的应用程序接口( a p i ) 包含对网络通信的多层次支持,既包括低 层的s o c k e t 套接字,又包括高层的分布式对象支持。有关联网的基层细 节已被尽可能地提取出去,并隐藏在j v m 以及j a v a 的本机安装系统里 第1 5 页 国防科学技术大学研究生院学位论文 进行控制。所以,可像对其他数据流那样采用同样的方法调用一个s o c k e t 套接字。并且,j a v a 内建的多线程机制对于同时控制多个网络连接也是 十分方便的。 4 1 2 在元计算环境中使用j a v a 编程的不足 j a v a 作为一门新近才发展起来的语言,和f o r t r a n 、c 相比在性能上仍存 在一定差距,特别在用作并行程序设计时。比如j a v a 本身对数值计算的支持比较 弱,解释执行的j a v a 要比c 的执行速度慢好几倍,等等。下面具体论述j a v a 作 为并行程序设计语言所存在的缺陷: j a v a 不直接支持多维数组,多维数组是通过“数组的数组”实现的。在 j a v a 中多维数组的实现非常灵活,比如数组的每一行或每一列可以不定 长,甚至可以不同类型,但是这种灵活性也带来了不小的弊病:对异常 的处理太精确,以至于传统的一些性能优化方法对j a v a 都不再适用,导 致了程序运行效率的降低。 j a v a 不像f o r t r a n 语言那样将复数作为一种基本类型来实现,而是将 复数类型通过一个c o m p l e x 类来实现的,一个复数类型的对象在j a v a 中要用3 2 位来表示:一个1 6 位的对象描述符,两个8 位的域,分别指 向实数部分和虚数部分。将复数作为一种特殊的类的对象来实现,不仅 浪费资源,而且其效率是非常低下的。 j a v a 在浮点运算、轻量级类以及运算符重载方面也存在着缺陷,尽管现 在也提出了不少解决的办法,但和f o r t r a n 、c 相比仍不尽如人意。 现在广泛使用的j i t ( j u s ti nt i m e ) 编译技术虽然可以避免解释执行重 复编译的现象,体现了“按需编译”的思想,提高了执行速度,但是, j i t 编译器也存在着许多缺点:如果某个j a v a 程序有大量的i o 语句, 或需要大量调用已经过充分编译的库函数,使得实际代码的执行时间仅 占总执行时间的很少一部分,这样j i t 的优势就体现不出来了,执行速 度甚至比解释执行还慢;另外,对于某个较长的方法,在第一次被调用 之前需要花费较长的时间来编译,这样就有可能出现明显的停顿。所以, 如果在j m e 这样的元计算环境上运行i o 语句较多、网络通信频繁的并 行程序,j a v a 语言显然存在着一定的问题。 第1 6 页 国防科学技术大学研究生院学位论文 此外,目前用j a v a 语言编写的科学计算程序较少,并行程序更少,所以,要 想把 m e 元计算环境推向实用化为更多的用户所接受,仅仅支持使用j a v a 进 行并行程序设计是不够的。添加j m e 元计算环境对f o r t r a n 并行程序设计的支 持具有现实的意义。 4 2f o r t r a n 与元计算 f o r t r a n 语言是科学计算、工程设计和数据处理等领域中科技人员最常用 的高级程序设计语言之,作为一门已经成熟了的语言,在并行程序设计方面尤 其具有优秀的性能: f o r t r a n 语言对各种数据类型都有良好的支持,适合于数值计算; 和j a v a 的解释执行方式相比,f o r i r a n 程序经过编译之后产生的目标 代码执行效率更高; 现在大部分的并行程序都是在一定的并行机制( 如p v m 、m p i ) 的支持 下,用f o r t r a n 语言编写的,已经积累了大量的f o r t r a n 科学计算 程序,程序来源广泛。 由上可以看出,如能使j m e 元计算环境支持使用f o r t r a n 语言作为并行程 序设计语言,无疑会大大增强j m e 系统的可用性,使j m e 为更多用户所接受。 但是在元计算环境中使用f o r l r a n 语言也会带来一定的问题:f o r t r a n 程序的编译与执行不能像j a v a 程序那样做到与平台无关,而是要求运行在同构类 型的机器上。这就和元计算的概念产生了冲突:组成一个元计算环境的各个节点 是允许异构的,可是f o r t r a n 程序只能运行在同构的工作节点上。 所以,应该看到的是,实现元计算环境对f o r t r a n 并行程序设计的支持, 虽然可以扩大程序来源,提高程序运行效率,便于推广系统,但是为此必须付出 的代价是牺牲了平台无关性。 尽管如此,实现元计算环境对f o r t r a n 语言的支持还是值得的。因为一个 系统要推广为广大用户所接受,应该不断适应用户的要求。而且,在目前局域网 的环境下,找出同构的多台计算机是有可能的。此外,通过对用户编程提出一些 适当的建议,或者严格点说,作出某种规定,可以尽量减少因平台相关带来的 问题。比如,虽然各个工作结点存在着操作系统或机器结构类型的差别,但是只 要有足够数量的同构的工作机,元计算环境就可以接受用户提交的f o r t r a n 问 题。而且,有些异构是可以“忍受的”,像操作系统,如果同属一个系列,只是 第1 7 页 国防科学技术大学研究生院学位论文 在版本上存在着差别( 如l i n u x2 2 1 4 和l i n u x2 2 1 6 ) ,又如同一系列的c p u , 将f o r t r a n 程序分布到两台机器上,一台是i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 情形不动产经营租赁创新创业项目商业计划书
- 数字艺术拍卖平台创新创业项目商业计划书
- 购买板房合同(标准版)
- 应用商店应用内搜索创新创业项目商业计划书
- 专职安全员岗前培训及答案
- 2025年物业服务合同变更条件合同范本
- 2025年都市租赁合同汇编
- 2025年乡村旅游环境保护合同范本
- 2025年网站SEO优化服务合同
- 2025年宁夏回族自治区合同履行与变更范本
- 患者走失应急演练脚本(2篇)
- 全网营销培训课件下载
- 数据挖掘教学课件
- 2025年造价咨询公司廉政制度及保障措施
- 2025至2030中国停机坪货架行业项目调研及市场前景预测评估报告
- 补液课件教学课件
- 电池厂化成柜安全操作规范规章
- 电力公司施工安全培训课件
- 2025年一级建造师《(市政公用工程)管理与实务》考试真题及答案
- 宏村简介课件
- 潍坊市2026届高三开学调研监测考试数学试题及答案
评论
0/150
提交评论