(计算机应用技术专业论文)udlc语言在网格平台上操作语义的研究和实现.pdf_第1页
(计算机应用技术专业论文)udlc语言在网格平台上操作语义的研究和实现.pdf_第2页
(计算机应用技术专业论文)udlc语言在网格平台上操作语义的研究和实现.pdf_第3页
(计算机应用技术专业论文)udlc语言在网格平台上操作语义的研究和实现.pdf_第4页
(计算机应用技术专业论文)udlc语言在网格平台上操作语义的研究和实现.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)udlc语言在网格平台上操作语义的研究和实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 计算机化学是化学与计算机科学以及数学等学科交叉的一个新学科。它处在 迅速发展过程中。而且随着各种各样的计算化学软件的出现,计算机化学领域的 专家愈来愈多地依赖化学软件和化学数据库来解决化学问题。而网格作为一种新 兴的技术,成为计算机化学可能的基础平台。近年来,许多国家都建立了以计算 机化学领域为应用对象的网格项目( 简称为化学网格项目) ,这些项目和研究在 一定程度上简化了化学家进行领域相关的科学计算和研究的方式。但是这些项目 未能解决化学软件的描述语言不统一给化学家带来诸多不便的问题。为了解决这 一问题,我们提出了一种面向化学网格的通用作业描述语言( u n i f i e dj o b d e s c r i p t i o nl a n g u a g eo nc h e m i c a l - g r i d ,简称u d l c ) ,使其既具有化学软件脚本 语言描述准确、执行效率高等优点,又符合化学家的r 常书写习惯,并且能够满 足网格环境下化学计算的要求,最大限度地满足计算化学相关研究工作的需要。 其中实现u d l c 在网格平台上的操作语义是设计实现u d l c 语言的一个关键问 题。 本论文的研究目标是实现u d l c 在网格平台上操作语义。本文在论述了编译 程序的结构特点,分析了c g s p 网格接口和u d l c 语言语法特点的基础上,实 现了u d l c 在网格平台上的操作语义。此外,针对上述的u d l c 在网格平台上 语义解析和执行过程,本文还设计开发了u d l c 编译器的目标代码生成器和 u d l c 运行时环境等软件部分。本文工作实现了u d l c 在网格平台上操作语义, 为u d l c 在网格平台上执行提供了语义解析模块和执行平台,便利了化学家使 用u d l c 在网格平台上进行化学计算研究。 本文所做的主要工作及研究成果如下所示: 1 研究实现了u d l c 在网格平台上的语义解析。确定了u d l c 到目标代码的 语法结构映射关系。 2 研究并实现了u d l c 在网格平台上的执行机制。 3 使用语法制导翻译技术构造了u d l c 编译器目标代码生成器。u d l c 目标代 码生成器将u d l c 语言的中间表示翻译成目标代码,实现了u d l c 语义在 网格平台上的操作语义映射; 4 4 设计并开发了u d l c 运行时环境以及网格平台交互层等软件系统部分。其中 u d l c 运行时环境运行生成的目标代码,将u d l c 作业提交到网格上进行化 学计算,从而实现了u d l c 语言在网格平台上的执行。 关键字:u d l c ,网格,语义实现,目标代码生成,运行时环境 5 a b s t r a c t c o m p u t e rc h e m i s t r yi sa l li n t e r d i s c i p l i n e ,w h i c hi n t e r p e n e t r a t e sc h e m i s t r ya n dc o n l p u t e r 硒e n 。c , m a t h e m a t i c s a n do t h e rd i s c i p l i n e s w i t ht h e h e l po fc o m p u t e ra n dn e t w o r kc o n l m u n i c a t i o n t e c h n o l o 跚c o m p u t e rc h e m i s t r yi sa tt h er a p i dd e v e l o p m e n t t h e r ei sa v a r i e t yo fc h e m i s t r y s o 脚a r e ,w h i c hc o u l db eu s e dt os o l v ec h e m i c a lp r o b l e m s m e a n w h i l e ,g r i dc o u i db ea 嵴i b l e p l a l f o 彻f o rc o m p u t a t i o n a lc h e m i s t r y i nr e c e n ty e a r s ,m a n yg r i dp r o j e c t sf o rc o m p u t e rc h e m i s t r y h a v eb e e nd e v e l o p e d h o w e v e r , t h e s ep r o j e c t sd i dn o t p r o v i d eac o m m o nd e s c r i p t i o nl a n g u a g ef o r d i f f e r e n tc h e m i s t r ys o f t w a r e t h er e s e a r c h e r s ,w h ow i l lu s et h e s e s o f 细a r e ,h a v e1 01 e a mm o 陀 c h 柚。舱d e s c r i p t i o nl a n g u a g e s i no r d e rt oa d d r e s st h i sp r o b l e m , w ed e s i g nac o m m o n d e 刚p l i o n l a n g i l a g e ,c a l l e du d l c t h eu d l cl a n g u a g ei sag e n e r a lc h e m i s t r yj o bd e s c r i p t i o nl a n g u a g e ( u n i f i e dj o b - d e s c r i p t i o nl a n g u a g e0 1 1c h e m i c a l - g r i d ,u d l cf o rs h o r t ) u d l ci s ac h e m i s t s o f t w a r es c r i p t i n gl a n g u a g e ,w h i c hi s a c c u r a t e ,e f f i c i e n t ,a n ds u i t a b l ef o rc h e i l l i s t s m o r e o v e l u d l ci si m p l e m e n t e do nt h eg r i de n v i r o n m e n ta n dc o u l dm e e tt h e r e q u i r e m e n t so fs c i e n t i f i c c o m p u t i n g a f t e rs t u d y i n gt h ef e a t u r e so fc o m p i l e ra n dc g s p g r i dp r o g r a m m i n gi n t e r f a c e sa n ds y n t a x f e a t u r e so ft h eu d l , w e i m p l e m e n t e dt h eo p e r a t i o n a ls e m a n t i c so fu d l cb a s i n g 叩t h ec g s p g r i de n v i r o n m e n t f u r t h e rm o r e ,w ed e s i g n e da n dd e v e l o p e dt h ec o r r e s p o n d i n gs o f t w a 他s y s t e m m o d u l e s ,i n c l u d i n gu d l cc o m p i l e rt a r g e tc o d eg e n e r a t o r , u d l cm n t i m ee n v i r o n 瑚峙n ta n ds oo n u s i n gt h e s es o f t w a r e ,c h e m i s t sc o u l de d i tc h e m i s t r yj o bi nu d l c , w h i c hw i j lb es u b m j t t e dt 0 舭 c g s p 鲥dp l a t f o r mt of i n i s hc h e m i s t r yc a l c u l a t i o nw o r k i nt h i sp a p e r , t h em a i nw o r ka n dr e s e a r c hr e s u l t sa r ea sf o l l o w s : 1 w er e s e a r c h e da n di m p l e m e n t e ds e m a n t i ca n a l y s i so f t h eu d i , c ,b a s e do nt h eg r i de n v i r o n m e n t m o r a d v e r ,w ee s t a b l i s h e dt h em a p p i n gb e t w e e ns o u r c eg r a m m a rs t r u c t u r eo ft h eu d l c a n dt a r g e t c o d es t r u c t u r e 2 w es t u d i e da n di m p l e m e n t e d r u n n i n gm e c h a n i s mo ft h eu d l co nt h eg r i de n y i r 0 枷n t 3 w ed e s i g n e da n dd e v e l o p e dt h eu d l c c o m p i l e rt a r g e tc o d eg e n e r a t o r u d l cc o m p i l e rt a r g e t c o d eg e n e r a t o rc o u l dt r a n s l a t eu d l c l a n g u a g et ot a r g e tc o d e 4 w ed e s i g na n dd e v e l o p e dt h eu d l cr u n t i m ee n v i r o n m e n t s o f t w a r er o o d u l e s u d l cr u n t i 眦 6 e n v i r o n m e n tw i l lr u nt h et a r g e tc o d e ,w h i c hi sg e n e r a t e db yt h eu d l cc o m p i l e rt a r g e tc o d e g e n e r a t o r k e y w o r d s :u d l c ,g r i d ,c o d eg e n e r a t i o n ,s e m a n t i ca n a l y s i s ,r u n t i m e 7 原创性声明 本人郑重声明:本人所呈交的学位论文,是在导师的指导下独立进行研 究所取得的成果。学位论文中凡引用他人已经发表或未发表的成果、数据、 观点等,均已明确注明出处。除文中已经注明引用的内容外,不包含任何其 他个人或集体己经发表或撰写过的科研成果。对本文的研究成果做出重要贡 献的个人和集体,均已在文中以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名:j 牲日 2 关于学位论文使用授权的声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属兰州 大学。本人完全了解兰州大学有关保存、使用学位论文的规定,同意学校保 存或向国家有关部门或机构送交论文的纸质版和电子版,允许论文被查阅和 借阅;本人授权兰州大学可以将本学位论文的全部或部分内容编入有关数据 库进行检索,可以采用任何复制手段保存和汇编本学位论文。本人离校后发 表、使用学位论文或与该论文直接相关的学术论文或成果时,第一署名单位 仍然为兰州大学。 保密论文在解密后应遵守此规定。 论文作者签名:j 塑埠剜峰导师签名 3 第一章绪论 1 1 研究背景 第一章绪论 r 1,巍1 f 吃h s j 3 p = e 、专 c 6 h s l 3p + b o d y ltis n e e d b o d y ? = 。;a b s t r a c tm e t h o d ) ; a n t l r 根据上述的规则生成对应的方法如下所示,其中规则的参数 n e e d b o d y 作为方法的输入参数被定义。 p u b l i cv o i dh a n s h u ( b o o l e a nf l a g ) t h r o w sr e c o g n i t i o n e x c e p t i o n ( ) 定义规则时,作者能够定义a 舳r 中的文法规则返回值。a n t l r 可以根据 这些定义在生成相应的识别器方法时,将返回值作为方法的返回值。a n t l r 支 持返回多个参数值。通过查看最后生成的编译程序类可以知道,a n t l r 是将多 个返回值封装成为一个新的返回类,然后返回这个类的对象, d e c l a r a t i o nr e t u r n s 【s t r i n gt y p e ,l i s tv a t s 】 :t = t y p ei d s + = i d ( 。,i d s + = i d ) 。; s t y p e = s t t e x t ;s v a r s ;$ i d s ;) ; a n t l r 根据上述的规则生成相应的识别器方法,由于返回值有多个,所以 a n t l r 将这些返回值放在一起声明为一个新的类d e c l a r a t i o nr e t u r n 。 p u b l i cv o i df i e l d ( ) t h r o w sr e c o g n i t i o n e x c e p t i o nt d e c l _ r e t u r nd = n u l l ; t r y d d e c l a r a t i o n ) ; s y s t e m o u t p r i n t l n ( 。变最类型= 。+ d t y p e + 。变量= 。+ d v a t s ) ; ) c a t c h( r e c o g n i t i o n e x c e p t i o nr e )t r e p o r t e r r o r ( r e ) ; r e c o v e r 【i n p u t ,r e ) : ) ) p u b l i cs t a t i cc l a s sd e c l a r a t i o n _ r e t u r ne x t e n d sr u l e r e t u r n s c o p et p u b l i cs t r i n gt y p e ; p u b l i cl i s tv a t s ; ; 第三章关键技术研究 3 2 网格 3 2 1 网格简介 网格最初被定义为是构建在互联网上的一组新兴技术,它将高性能计算机、 数据库、传感器、远程仪器设备等融为一体,为科技人员和普通用户提供更多的 资源、功能和交互性。互联网主要为人们提供电子邮件、网页浏览等通信功能, 而网格则更进一步,它可以让人们透明地使用计算存储等资源【4 】。网格是把整 个网络整合成一台巨大的虚拟的“超级计算机,实现计算资源、存储资源、数 据资源、信息资源、知识资源等等的全面共享【5 】。 网格是一个热门的研究课题,许多专家学家提出了很多网格的模型。徐志伟 等人对网格提出了一个名为c a m ( c o m p u t e rw i t ha c t i v em e m o r y ) 的网格理论 模型,它是在随机访问计算机模型的基础上提出的一种新模型。在c a m 中,处 理器p 可以被认为是网格用户,包括最终用户,管理员和软件开发者所使用的客 户端。c a m 的存储器m 是整个网格服务器端组成的集合,一个存储单元对应于 一个网格节点或提供服务的一个服务器,p 所执行的程序,对应着用户向网格发 出的一系列服务请求,这些服务程序的执行则在各个存储单元上执行【6 】。对这 个模型的研究对本文的工作很有借鉴意义。 尽管科学家和公司组织对网格的定义各不相同,但是网格有一些共同的性质 为大家所认可,分别是:资源分布和共享;高度抽象性;自相似性;动态性和多 样性;自治性与管理的多重性【4 】。 目前,已经有许多正在运行和开发的网格环境:g l o b u s 【7 】,c h i n a g r i d 8 , n a s ai n f o r m a t i o np o w e rg r i d 9 】,e g e e 1 0 】,t e r a g r i d 1 l 】,c h i n an a t i o n a l g r i d 1 2 ,k g r i d 1 3 。本文所做工作主要基于c h i n a g r i d 网格平台。 3 2 2c h i n a g r i d 网格和c g s p 作为中国自主研发的三个网格系统之一,c h i n a g r i d 利用分布在高校的大量 计算资源、信息资源和网络软件,将分布在教育和科研网上自治的分布异构的海 量资源集成起来,实现c e r n e t 环境下资源共享,成为国家科研教学服务的大 第三章关键技术研究 平台c h i n a g r i d 支撑平台( c h i n a g r i ds u p p o r t i n gp l a t f o r m ,简称c g s p ) 是由 c h i n a g r i d 指定小组设计开发的中间件软件。c g s p 能够集成多种异构的教学和 科研资源,为用户提供透明和方便的网格服务【2 1 】。 c g s p 不仅支持异构资源的统一管理,而且提供p o r t a l 建设、作业定义、服 务包装、数据管理、应用开发、以及网格监控等服务,是国际上第一个采用基于 o g s a ,采纳w s r f 规范开发的网格中间件,具有广泛的兼容性和可扩展性。 本文所做工作是基于c g s p 架构的网格环境之上的。对终端用户来说,c g s p 中提交作业的方式有以下五种:分别是g r s ( g e n e r a lr u n n i n gs e r v i c e ) , j s d l , w s w s r f , w o r k _ f l o w , g r i d p p i 。用户可以根据自己的实际需要来选择不同 的方式提交自己的作业【2 2 1 。 本文重点关注g r s 提交作业的方式。g r s 是g e n e r a lr u n n i n gs e r v i c e 的简称, 它是一个标准的w s r f 服务,负责遗留程序的执行。它提供了在计算结点上管 理和调度本地任务的能力。g r s 的目标和动机是实现计算资源的虚拟化,为 遗留程序提供统一的基于服务的任务提交接口,实现在不改动已有程序的情况 下, 在网格环境中执行遗留程序的功能 2 2 1 。这种方式可以支持u d l c 在网格 平台上对化学软件资源的调用。 由于目前流行的化学软件并不是为专门网格设计的,它们可以运行在目前流 行的操作系统之上。我们可以称这些化学软件为遗留化学计算软件。c g s p 提供 了g r s 这种有效机制来解决不同的遗留化学软件的网格接入问题。通用运行服务 ( g r s ) ,能够有效的将遗留系统无缝接入到网格环境中来。它主要解决了两个 问题t 屏蔽了各种遗留系统的异构性和精确配置所需要的复杂执行环境。g r s 使用应用描述文档来精确地定义遗留系统的执行环境参数,包括命令行格式、参 数的顺序与约束、数据流的输入输出等,并且可以灵活地配置各个参数的属性。 g r s 还引入了执行环境变量来代表遗留程序在执行时才能确定的环境变量。g r s 还支持遗留系统的动念部署和反部署,并提供了目标系统适配器来屏蔽各种目标 系统的异构性。因此本文中所使用到的网格中的化学软件资源( 例如g a u s s i a n0 3 等软件) 一般通过g r s 方式访问调用。我们有必要了解如何使用c g s p 提供的接 口提交作业,调用网格中的化学软件资源,完成计算任务。 c g s p 提供了作业提交客户端接口,用来方便终端用户向作业管理器提交作 第三章关键技术研究 业。c g s p 的作业提交客户端组件中包括了如下部分:j o b s u b m i t t e r 主要是负责 收集作业相关信息,形成相应的s o a p 消息,然后提交给提交引擎进行作业提交。 j o b s u b m i t t e r 接受实现了i j o b r e q u e s t 接口的作业请求信息,返回i j o b r e s p o n s e 接口的作业响应信息。其中针对异步回调模式,作者提供了 b a s e j o b s t a t e c a l l b a c k l m p l 来辅助用户实现自己的回调函数。其中j s d l j o b l n f o 实 现了i j o b r e q u e s t 接口,主要是让用户更加容易的提交j s d l 作业和服务类的作业。 通过上述的接口研究和学习,我们可以根据c a m 模型抽象出网格的指令,根据 这些指令,用于u d l c 的目标代码生成模块,同时为u d l c 中间件中的网格平 台交互层的设计实现提供有用的信息。 3 3u d l c 语言语法介绍 在研究了现有流行化学软件语言的基础上,项目组设计了u d l c 语言。u d l c 是- - n 面向化学家的网格作业描述语言。为了实现本文的u d l c 在网格平台上 操作语义实现,作者需要了解u d l c 的语法结构等知识。下面作者将对u d l c 语言的语法进行简单概述。 u d l c 作业分为单作业和复合作业,单作业又可以分为单方法作业和多方法 作业,复合作业是有流程控制和若干单作业组成的。一个u d l c 作业的输入文 件分为作业的首部和作业体。而作业体又可以细分为申明部分,赋值部分,作业 描述部分。作者可以通过下面的一个具体例子( 如图3 所示) 展示u d l c 的语 法。 _ j 由r 、c 琳a b ji b2 n h 可i j 牲1i m l s j m | n 订n 、l :s s p i n l k g 泔c l 1 1 4 ws 1 “,i t j l d - l l ,l o l r 2 h ( 11 3 i l i l ? 2 1 :l ilt _ 二1 2 ls3 s :ii ? l1 2 l 1js o t l 二l 、0 7 ;l 二l 。5 4 ;辩 1 a 、k m i 口 l t l l 镰a l c a h 聃t r i o 图3u d l c 作业语法结构说明 3 4u d l c 中间件整体架构 根据u d l c 的设计目标,项目组设计并开发了u d l c 语言中间件。u d l c 语言中间件作为一个u d l c 的参考实现,它包括了u d l c 编译器,u d l c 运行 时环境等部分。通过u d l c 中间件,用户可以编写u d l c 作业,然后通过u d l c 语言中间件,将u d l c 作业编译成目标代码,然后通过u d l c 运行时环境完成 u d l c 作业在网格平台上的执行。 u d l c 语言中间件主要分为四层:u d l c 集成开发环境,u d l c 编译器,u d l c 运行时环境,u d l c 网格交互层( 如图4 所示) 。 u d l c 集成开发环境为用户提供了一个便于使用的图形化编辑环境,是整个 系统的界面部分。u d l c 编译器作为u d l c 语言中间件的核心部分,将u d l c 语言翻译成目标语言的任务。u d l c 运行时环境是u d l c 编译器生成的目标代 码( j a v a 代码) 的运行时环境。u d l cr u n t i m e 负责将生成的目标代码进行动 2 s 燃咄蝴孙仆嫒“心州文制蠹囊嚣 一一嘶一峨一一一。d一一栅组埘蚪幔”兰|!“ 一一一一一一一一 第! 章关键技术料究 态编译和执行。u d l c 网格平台交互层是负责u d l cr u n t i m e 与网格进行交互的 中间层。 幽4 u d l c 语言中间r l :架构 本文所做的工作尾u d l c 中间件的主要组成部分之一,主要包括u d l c 编 译器目标代码生成嚣模块u d l cg e n e r a t o r ,u d l c 运行时环境u d l cr u n t i m e 以及u d l c 网格平台交互层u d l cg r i dp l a t f o r mi n t e r a c t i o nl a y e r 。 第四章u d l c 在网格环境下操作语义的实现 第四章u d l c 在网格平台上操作语义的实 现 u d l c 语言作为一门面向化学网格的通用作业描述语言,需要在网格平台上 运行。因此本文需要实现u d l c 在网格平台上的操作语义。u d l c 语言作为面 向用户的,不针对具体软件和资源的化学网格作业描述语言,从本质上讲是一种 具有抽象语义的语言。在实际转换中,作者需要通过操作语义学的方法,研究 u d l c 语言的抽象语义的操作绑定,这种操作绑定依赖于网格中的具体化学应 用资源。通过在u d l c 输入脚本文件中对若干化学计算方法的描述,经过一系 列的转换映射,绑定到网格环境下对具体化学软件资源的调用。 4 1u d l c 在网格平台上语义实现的关键问题 在u d l c 中间件的设计中,必须要解决在网格环境下操作语义的实现。具体 来说需要解决以下两个方面的关键问题。第一,u d l c 在网格平台上操作语义的 解析,第二个方面,u d l c 在网格平台上的执行。具体来说 一研究u d l c 语言在网格平台上的语义解释。这个问题其实等同于u d l c 编 译器的目标代码生成部分,通过将u d l c 语言的输入的中间表示形式,转 换成等价的目标语言。对于源语言u d l c 来说,作者设计目标之一是能够 满足网格环境下的化学计算的要求【1 5 】。根据这个要求,u d l c 编译器也就 不同于一般意义上的语言编译器。u d l c 编译器生成的目标代码应该可以在 网格平台上运行,并能够完成相应的化学计算的任务。因此,如何将u d l c 语言翻译成网格平台可以识别,可以执行的目标语言代码,就显得十分重要。 二研究u d l c 在网格平台上的执行在u d l c 编译器将u d l c 源程序翻译成 等价的目标语言代码之后,作者需要在网格平台上执行编译器生成的目标代 码。除此之外,作者还需要能够得到u d l c 作业执行的结果。这一步将直 接关系到u d l c 中间件实现设计目标成功与否,即u d l c 能否在网格平台 上正常运行。 第p q 章u d l c 在网格环境下操作语义的实现 4 2u d l c 在网格平台上操作语义的解析 根据编译原理的相关理论,作者要完成u d l c 语言的目标代码生成,必须要 解决以下几个相关问题:确定u d l c 编译器的目标机器;确定u d l c 编译器的 目标语言;确定u d l c 到目标语言的语言结构的映射关系。在下面的章节作者 将对每一个问题做出详细介绍和解决。 4 2 1u d l c 编译器的目标机器 根据文献【6 1 中的c a m 理论模型,我们可以将c g s p 网格作为一台集合众多 服务器,仪器和软件资源的一台虚拟的超级计算机。这台超级计算机就是u d l c 编译器的目标机器,u d l c 编译器最终生成的目标代码应该可以在这台计算机上 面正确的执行。 4 2 1 1u d l c 编译器目标代码生成器的输入 根据u d l c 中间件的架构图( 如图4 所示) ,本文所做的工作处于u d l c 编 译器的后端,包括目标代码生成部分。u d l c 目标代码生成器部分,需要处理的 输入是u d l c 抽象语法树( u d l c a b s t r a c ts y n t a xt r e e ,简称u d l c a s t ) ,u d l c a s t 不同于通常的a s t ,它是通过词法分析,语法分析和化学语义解析后得到 的语法树,u d l c a s t 的节点中附加了化学语义解析后得到的部分信息。作者根 据这棵u d l ca s t ,通过语义解析,最终生成目标代码。 4 2 2u d l c 编译器的目标代码确定 我们选择j a v a 语言作为u d l c 编译器的目标代码语言,对于u d l c 中的计 算任务部分,我们将其映射为对c g s p 网格平台环境上的某个计算化学软件资源 的调用。而其他部分,包括流程控制部分,说明语句部分,赋值语句部分则翻译 成相应的j a v a 语句。生成目标代码后,作者通过u d l c 运行时环境对生成的目 标代码进行动态编译并执行,计算任务远程提交到c g s p 网格平台环境下,而其 余的部分( 包括流程控制部分,说明语句部分,赋值语句部分) 则由u d l c 运 行时环境来执行。 3 1 第四章u d l c 在网格环境下操作语义的实现 本文中的u d l c 编译器采用两遍扫描的方法,第一遍扫描完成u d l c 化学 知识的语义解析,第二遍完成u d l c 在网格平台上的操作语义解析。第二遍扫 描的过程中,用到了第一遍扫描生成的信息。 我们选定j a v a 作为目标语言,是由于以下原因: 一除了对应于计算化学软件资源调用的部分外,u d l c 语言中还有流程控 制部分,赋值语句部分,说明语句部分等。c g s p 中有支持工作流的b p e l 语言, 能够完成流程控制的执行工作,这些部分也可以映射成b p e l 语言,但是b p e l 对面向计算的u d l c 来说,稍显繁琐复杂。用户在c g s p 环境下提交一个b p e l 工作流作业,需要撰写多个配置文件。并将工作流部署到网格工作流引擎上面, 而且提交b p e l 工作流作业调用相应的工作流时,需要填写多个参数,经过反复 调试,一旦有某个参数填写有误,将导致整个工作流作业执行出错。因此经过调 研,作者决定选择j a v a 作为u d l c 编译器的目标代码语言。 二编译器的功能无非就是将一门语言( 源语言) 等价翻译成另外一门语言 ( 目标语言) 。因此要求源语言的每一个部分都可以等价翻译成目标语言的相应 部分。而j 趟,a 语言实现极其流行的,功能完备的面向对象程序语言,它的表述 范围完全可以满足作为目标语言的需求。而且s u n 公司已经为j a v a 语言开发 了十分成熟和高效的j 趟,a 编译器和虚拟机,因此作者可以在此基础上开发作者 的u d l c 运行时环境。 三由于c g s p 是由j a v a 语言开发的,c g s p 中作业提交客户端接口,也 是j a v a 语言。因此将目标语言确定为j a v a ,可以很方便的实现u d l c 到网格 环境下的计算化学软件资源调用的映射。 四在u d l c 中,需要消耗大量资源( c p u ,内存和存储资源等等) 的是化 学计算任务部分,而相对来说流程控制部分等部分耗费资源相对较少。因此,作 者将计算任务部分和其他部分( 流程控制部分,说明语句部分和赋值语句部分) 分离,将计算任务交给网格平台上的化学软件资源来执行,而其他部分则有提交 作业的客户端在本地执行。这样既可以最大限度发挥网格的强大计算能力,又可 以充分利用客户端的计算能力。 第旧帝u d l c 往h 格”境t 操作女# 蚬 4 2 3u i ) l c 在网格平台上操作语义的解析 牟文中的u d l c 语占需要在c g s p 网格平台上运行,并且町以根据化学家的 实际需要,i i 爿用网格平台中的适当的化学软件资源。因此,作者需耍茸先抽象出 u r 以访问网格平台资源的指令语占,作为目杯语言。通过u d l c 编译器将u d l c 语言解析e 成网格平台的目标语吉。 通过分析u d l c 语自语法的特点,作者u d l c 在刚格平台上操作语义的解 析分为两类:一部分是计算任务到c g s p 网格平台环境f 的具体化学软件资源的 调用的映射。另一部分就是流程控制部分以及其他部分( 包括说明语句音| f 分- 赋 值语句部分等) 的语义解析。在f 面的部分作者将对这些部分的解析作一一介绍。 在u d l c 编译器中采用了两遍扫描的方式,第一遍扫描负责化学知识的语 义解析,而第二遍扫描,就是u d l c 在网格平台上的操作语义解析。第一遍扫 描,吐l 川样要完成词法分析和语法分析生成u d l c 的抽象语法树( u d l c a s t ) , 这棵语法树中包含了第一遍扫描得到的部分信息。以此u d l ca s t 作为输入, 作者将完成u d l c 在网格平台上的操作语义解析,从而生成在网格平台e 可以 执行的目标代码。作者在f 图5 中展示了u d l c 住网格平台上的操作语义的解 析过程。 审i 、瞄i i 参 ,j 臣习三 日 厂面赢百j 订 圈5 u d k 操作语义映射 第四章u d l c 在网格环境下操作语义的实现 4 2 3 1 对调用网格服务接口的抽象 根据c g s p 提供的提交作业接口的描述,终端用户如果想要提交一个简单的 g r s 作业的时候,需要上传输入文件到网格数据空间,选择网格资源,填写作 业名称,填写输入输出参数,指定输入输出文件在数据空间中的地址。步骤较为 复杂,稍有失误可能导致提交的作业不能够正常执行或者得到错误的结果。作者 在认真分析c g s p 作业提交客户端的基础上,对c g s p 的作业提交接口进行了进 一步的抽象和封装,为终端用户提供了个简单方便的网格作业提交接口方法, 如下图6 所示。通过一个调用s u b m i t j o b 0 方法,就可以完成一个网格作业的提交, 不仅便利了终端用户的网格作业提交任务,更重要的是为后续的u d l c 编译器 的目标代码生成器提供了方便。 图6 c g s p 网格作业提交接口抽象 在上述抽象出来的网格作业提交接口方法s u b m i t j o b ( ) 中有三个输入参数, 分别是a p p n a m e ,j o b n a m e 和l o c a l l n p u t f i l e p a t h 。其中a p p n a m e 是s t r i n g 类型参 数,代表执行作业的软件名称,例如作者提交一个g a u s s i a n 软件的作业到网格 时,这个参数的名称就是g a u s s i a mj o b n a m e 也是s t r i n g 类型的参数,代表网格 作业的名称,而最后一个参数l o c a l l n p u t f i l e p a t h 是一个s t r i n g 类型的数组参数, 它代表提交这个作业的输入文件在本地文件系统的路径,由于作业需要的输入可 能不止一个,所以该参数是一个数组类型的。 通过上述提交网格作业的接口方法,终端用户在提交网格作业时,只需要通 第叫章u d l c 盘月格虾境t 操作* r 的实现 过调用s u b m i t i o b 0 方法,填写几个参数,就可以完成网格作业的提交。 这一部分的工作为u d l c 中问件抽象出了c g s p 网格平台的指令,这些可以 访问网格的指令组成了c g s p 网格平台的目标语言。而u d l c 在网格平台上操 作语义的解析工作,实际上就是将u d l c 语言解析映射成该目标语言。本质上 就是u d l c 编译器生成目标代码的过程。 除此之外u d l c 语言中还有其他部分,为了保证目标语占的完备性,我们 根据选定的目标语言j a v a ,确定了流程控制部分,赋值语句和声明语句部分等。 从而确定了网格平台上的目标语言指令。 4 2 3 2 u d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论