并行计算技术及其应用11-13章.pptVIP

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2)环境 ①硬件:一台HP NetServer E50服务器,一台HP Brio pc,一个95E10H24 10M/100M HUB。 ②操作系统:RedHat 6.0 ③CORBA产品:OmniORB2 version 2.8 3)编程 为简单说明问题,本Linux网只有两个节点,两台机器性能基本一样,因此由主程序将总任务平均分为两个子任务,即将求和区间平分为两个区间,由客户程序并发 地分配到两个节点上。各服务对象计算,并返回结果。同时各客户程序将服务对象返回的结果累加到一存放和数的文件中。 ①用IDL编写接口文件zy_test.idl //zy_test.idl interface zy_test { float sum_x_y(in unsigned long x,in unsigned long y); }; 用OmniORB2的IDL编译器Omniidl 2将zy_ test. idl编译,将产生两个stub文件:头文件 zy_test.hh和源文件zy_testSK.cc ②CORBA客户程序和服务对象 编好客户程序zy_test_clt.cc和服务对象程序zy_test_impl.cc,按图12.2所示进行创建可执行文件得客户程序zy_test_clt和服务对象程序zy_test_impl,将服务对象程序zy_test _impl复制到另一机器上,并修改其权限为可执行。 具体编程参看源代码。 ③编写多进程主程序my_main.cc #includesys/wait.h #include<sys/types.h> #include<unistd.h> #include<iostream.h> #include<stdlib.h> #include<fstream.h> #inc1ude<time.h> main(int argc, char**argv) { time_t start_m, end_m; start_m=time( NULL) ; char * filename=mydata; fstream data; data. open ( filename , ios ∷trunc , filebuf ∷openprot ) ; data. close() ; char * end=0; unsigned long x1=strtoul(argv[1], end,0); unsigned long y1=strtoul(argv[2], end,0); char m1[80] , m2[80] ; qgcvt ((long double)((unsigned long) (y1+x1)/ 2),50,m1); 要构造CORBA计算环境,必须找到一个遵循CORBA规范的CORBA产品。目前,有名的商业CORBA产品有Iona公司的Orbix, Visigenic/网景公司的visiBroker,Sun公司的Joe。而有更多的免费开放的CORBA产品。作为科研或教学或小型应用,应该选择一个成熟的免费开放的CORBA产品,由AT & T剑桥实验室(AT & TLaboratories Cambridge)开发的OmniORB2就是这样的一个CORBA产品。OmniORB2目前的最高版本是2.80版,是一个遵从CORBA2.3规范的CORBA产品,它具体由C++实现,目前 有Linux,NT/w95,UNIX版本。用户可以从http://www.U的网址上免费下载OmniORB2 v2.80。 12.3.3 建立CORBA分布式计算环境 12.3.4 开发CORBA应用程序的方法 (1)用OmniORB2开发CORBA应用程序的 过程 图12.3 CORBA分布式计算环境 (2)CORBA服务程序的结构 int main(int argc, char ** argv) { … … … CORBA::ORB_ptr orb=CORBA::ORB_inlt (argc,argv,OmniORB2); 图12.4 用OmniORB2开发CORBA应用程序的过程 //ORB初始化 CORBA::BOA_ptr boa=orb->BOA_inlt (argc,argv,OmniORB2_BOA); //BOA初始化 … … … zy_test_i*myobj=new zy_test_i(); //zy_test_i是一个内含服务方法的实现类,创建该类实例 myobj->_obj_is_ready(boa); //使BOA做好服务准备,可以接受来自ⅡOP请求 … { zy_test_var myobjRef=myobj->_this(); //获取实现对象的对象引用 if(! bindObjectToN

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档