基于云计算的蒙特卡罗模拟分析

2012-06-09 10:25汪俭华冯锡炜张永攀毕福伟
电子设计工程 2012年19期
关键词:蒙特卡罗单机组件

汪俭华,冯锡炜,张永攀,关 沧,毕福伟

(1.辽宁石油化工大学 计算机与通信工程学院,辽宁 抚顺 113001;2.抚顺石化公司石油三厂 辽宁 抚顺 113001)

随着现代科技的发展,蒙特卡罗模拟算法因为能够将不确定性随机事件以概率的形式表示出来,以这种事件出现的频度估计这一随机事件的概率来求得近似解,较好地解决了各种不确定性问题,从而在物理科学、机械制造、金融计算、信息科学以及计算机科学等多个领域得到广泛的重视和应用[1]。蒙特卡罗模拟算法的主要思想为:当所求解问题是某种随机事件出现的概率,或者是某个随机事件的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机事件的某些数字特征,并将其作为问题的解。

蒙特卡罗模拟分析结果的精度取决于采样次数和计算次数,随着采样次数和计算次数的增加,得到的结果也就越准确,但是相应的计算速度就会降低,尤其是在大规模采样下的计算量很大时,得到最终结果的计算速度会更慢。为了获得精确、高效的结果,必须设计一个具有高性能计算能力的平台来支撑。

本文以建立在Platform Symphony之上的云计算平台为载体,通过Java编程对平台功能进行扩展,并将Excel和COM组件与云计算平台进行集成,实现了基于云计算的蒙特卡罗模拟分析。

1 相关技术介绍

1.1 云计算

云计算是一种新兴的网络计算技术,它提供了通过网络访问、可动态配置的计算资源池。云计算涵盖的范围很广泛,内容也很丰富,通常将其分为以下3层[2-3]:

IaaS(Infrastructure as a Service,基础设施即服务)。 将服务器、网络设备、存储设备等硬件资源集成为资源池供用户按需使用。

PaaS(Platform as a Service,平台即服务)。为用户提供一个完整的平台,它包含应用开发、接口开发、数据库开发等,保证信息平台在实现技术方面的扩展性和兼容性。

SaaS(Software as a Service,软件即服务)。为用户提供基于网络的应用软件服务。

三层结构在真实的云计算环境中是可以相对独立存在的,可以逐层搭建云系统,也可以根据需要只搭建其中的一层或几层。

1.2 Platform Sym phony

Platform Symphony是Platform Computing公司开发的面向服务架构的云计算平台,用户可以使用其提供的编程接口扩展程序功能,从而得到个性化的服务[4]。Symphony基于主从架构,由主服务器将任务发送给从服务器执行计算,其架构如图1所示。

图1 Symphony架构图Fig.1 Structure diagram of the symphony

SD(Session Director,服务注册中心)。运行在主服务器上,对通过编程接口开发的应用程序进行注册之后供客户端使用。同时为各个子服务提供任务分配者模块SSM,并与客户端进行连接。

SSM(Symphony Session Manager,任务分配者)。运行在主服务器上,负责接受客户端提交的任务,并根据相应的调度配置策略(可以自行配置)将任务发送到合适的从服务器上执行。

SIM(Service Instance Manager,任务执行者)。可以运行在主服务器与从服务器上,负责执行具体的任务。它从SSM获取需要执行的任务,并将执行结果返回给SSM,SSM接受后统一发送到客户端。

资 源 管 理 模 块 (Resource Orchestrator)。 负 责 管 理Symphony中的所有计算资源。

编程接口。供开发人员开发应用程序来扩展平台的功能。

1.3 Excel

微软出品的Excel是一款优秀的数值计算软件,功能强大、操作简单,可以用于数据处理、统计分析和辅助决策等操作。它还支持创建Excel宏命令以及VBA(Visual Basic For Application)编程来扩展自身的功能,Excel经过功能扩展之后可以与云计算平台进行集成。集成的流程如下:1)创建Excel宏命令;2)使用 VBE(Visual Basic Editor)编程实现基本程序功能,然后通过API接口进行功能扩展;3)调用COM组件将Excel与云计算平台集成。

1.4 COM组件

COM组件是微软为了软件的研发更适合人类的行为逻辑而推出的软件开发技术[5]。在COM架构下,开发人员可以开发出各种功能专一的组件,然后将其按照需要组合构成复杂的应用。它有以下优点:1)可以随时替换现有的组件,方便进行功能扩展;2)同一个组件可以在多个应用中复用,利于模块化开发;3)可以将应用部署到网络环境。

2 基于云计算的蒙特卡罗模拟平台

2.1 平台的设计

基于云计算的蒙特卡罗模拟平台运用现代化的计算机技术以突破时间、空间的制约,通过精简、优化、整合计算资源来进行蒙特卡罗模拟分析,使所得的结果更加的精确、高效。根据蒙特卡罗模拟算法和云计算技术特点[6],其结构如图2所示。

基础设施:由计算节点、存储设备、网络设施以及基础软件组成的计算集群资源池。利用廉价的设备动态扩展资源池,以较低投资获得高性能计算的能力。

软件应用:将蒙特卡罗模拟算法转化为应用服务,提供给客户端使用。

2.2 平台的实现

2.2.1 搭建计算节点集群

集群使用4个计算节点,每个节点配置相同,CPU是1.83 GHz,内存2 G,千兆以太网卡,操作系统为Windows Server 2008,Java环境为 JDK 1.7,平台软件为 Symphony DE 5.0。

1)双击Windows平台的安装包SymphonyDE-5.0.0_win32.msi进行安装;

2)选取安装了Symphony DE的主机Jeffw1为主服务器,对DE50confvem_resource.conf文件进行以下配置,然后将经过配置的文件复制到所有的从服务器相同目录下;

3)关闭所有的服务器后进行重启,注意需要先启动主服务器。

2.2.2 扩展平台功能

在现代市场经济条件下,住房商品化、市场化引致住房金融的产生和繁荣。一方面,商品住房建设需要建设贷款,商品住房开发需要开发贷款,商品住房消费需要租赁贷款和按揭贷款等,因此,住房金融的产生和繁荣反过来能够促进住房市场繁荣。但是,另一方面,住房金融也会因为以住房商品为媒介的投资和投机,容易衍生住房价格泡沫和金融泡沫,最终演化成住房危机和金融危机。因此,住房金融是本文研究的重点内容。

Symphony DE支持C/C++、Java,C#等多种程序语言进行功能扩展。采用Java语言编写程序,在Eclipse中利用Ant工具编译并生成ProjectAnalysisService程序包,然后将其部署到主服务器的Symphony DE中对平台功能进行扩展。右击Symphony运行图标,选择Add or Remove Application。在添加应用向导中添加配置文件ProjectAnalysis.xm l,并选择程序包ProjectAnalysisPackage.jar,单击下一步,直到确认即可。部署成功后,可以在管理界面看到如图3所示内容。

图2 基于云计算的平台结构图Fig.2 Structure diagram of the platform based on cloud

图3 部署程序包到Symphony平台图Fig.3 Chart of deploy program package to the symphony platform

2.2.3 Excel与平台集成

在Excel中调用Symphony DE的COM组件与平台进行集成,从Excel中启动VBE,在VBE中单击“工具”→“引用”,找到DE50confwin32-vc7libCOMPlatform.Symphony.Soam.COM.dll文件,点击确定。集成架构由Excel客户端、Symphony DE云计算控制器以及平台上所运行的应用服务这3个部分组成,其工作流程如图4所示。

2.2.4 实现过程中的关键技术

1)在Symphony DE中扩展云计算平台

部署的Project Analysis Service程序,通过API接口连接到Symphony DE,其代码如下:

2)Excel中调用云计算环境

在Excel中执行云计算必须连接到Symphony DE服务器,通过初始化SOA中间件以及获取服务来完成云计算环境的初始化,其代码如下:

3 实验与分析

实例描述:某信息系统集成项目计划投资1 000万元,该项目预期年销售收入为650万元,年销售税金为20万元,年经营成本为320万元,年折旧费50万元,收入与成本的波动变化幅度都为20%,分别在单机环境和云计算平台上用蒙特卡罗模拟算法计算收益率大于等于20%的概率。

在云计算平台上进行蒙特卡罗模拟分析的应用,按照如下步骤进行:1)配置Symphony DE上的计算资源;2)初始化任务数据;3)在Excel中创建本地分析和云计算分析;4)调用自定义的分析策略;5)启动分析;6)在分析结束后统计结果。建立的实验模型,如图5所示。

实验1:单机计算节点为本地主机,云计算节点由1个主服务器,3个从服务器组成。将计算次数设置为10次,采样次数从10 000到10 000 000变化,观察单机计算与云计算下运行的情况。

实验2:单机计算节点为本地主机,云计算节点由1个主服务器,3个从服务器组成。将采样次数设置为10 000次,计算次数从10到400变化,观察单机计算与云计算下运行的情况。

表1 实验1结果Tab.1 Resu lt of experiment 1

实验3:云计算节点数由1个到4个变化。设采样次数置为10 000次,计算次数置为100次,观察云计算下运行的情况。

图4 工作流程图Fig.4 Flow chart of the work

图5 实验模型图Fig.5 Chart of experimental model

表2 实验2结果Tab.2 Result of experiment 2

图6 实验1时间趋势图Fig.6 Time trend diagram of experiment 1

图7 实验2时间趋势图Fig.7 Time trend diagram of experiment 2

图8 实验3时间趋势图Fig.8 Time trend diagram of experiment 3

表1显示了在单位计算次数下,随着采样次数的增加,在单机计算与云计算情况下的运行数据。表2显示了单位采样次数下,随着计算次数的增加,在单机计算与云计算下的运行数据。随着采样次数与计算次数的增加,所获的数据精度越高,但所需时间呈上升趋势,云计算相对本机计算所需的时间大幅减少,得到的结果更加准确,在大规模计算时的优势更为明显,消耗的时间趋势分别如图6、图7所示。图8为不同数量的云计算节点进行蒙特卡罗模拟分析所消耗的时间趋势。随着计算节点数的增加,所需的时间呈指数下降趋势。

4 结 论

云计算作为IT技术的第四次革命,将给大规模计算带来新的机遇。本文充分应用现有的计算资源搭建云计算环境,通过Excel与云计算的集成,既解决了大规模计算效率的问题,也将云计算技术由企业和组织推向了普通使用者。实验表明,用云计算技术来实现蒙特卡罗模拟分析,所得结果精确、高效,具有不可比拟的优越性和实用价值。

[1]陈邓安,丛中旖,王子明.在效能分析中应用Excel数据分析模块进行蒙特卡罗模拟[J].科学技术与工程,2012,12(2):397-401.CHEN Deng-an,CONG Zhong-yi,WANG Zi-ming.Research on monte carlo simulation method in effectiveness analysis by data analysis modules in Excel[J].Science Technology and Engineering,2012,12(2):397-401.

[2]赵广才,张雪萍.云计算技术分析及其展望[J].电子设计工程,2011,19(22):4-10.ZHAO Guang-cai,ZHANG Xue-ping.The analysis of cloud computing technology and its prospect[J].Electronic Design Engineering,2011,19(22):4-10.

[3]陈康,郑纬民.云计算:系统实例与研究现状[J].软件学报,2009,20(5):1337-1348.CHEN Kang,ZHENG Wei-min.Cloud computing:system instance and research[J].Journal of Software,2009,20 (5):1337-1348.

[4]Platform Computing.Symphony使用文档[EB/OL].(2011-09-20)/[2012-5-20].http://www.platform.com/workload-manage ment/SOA-grid-computing/.

[5]乔磊,马火林,陈海红,等.基于COM组件计算岩层真厚度的软件设计[J].工程地球物理学报,2010,7(3):368-371.QIAO Lei,MA Huo-lin,CHEN Hai-hon,et al.The software designed for true thickness of the layer based on COM components[J].Chinese Journal of Engineering Geophysics,2010,7(3):368-371.

[6]郑广成.一种SOA云服务平台架构研究与应用 [J].计算机应用与软件,2011,28(12):228-231.ZHENG Guang-cheng.An soa cloud service platform architecture research and application[J].Computer Applications and Software,2011,28(12):228-231.

[7]HPC Community.About Symphony DE. (2010-08-11)/[2012-05-20].http://www.hpccommunity.org/content/about-symphony-de-145/.

猜你喜欢
蒙特卡罗单机组件
无人机智能巡检在光伏电站组件诊断中的应用
热连轧单机架粗轧机中间坯侧弯废钢成因及对策
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
利用蒙特卡罗方法求解二重积分
利用蒙特卡罗方法求解二重积分
宇航通用单机订单式管理模式构建与实践
水电的“百万单机时代”
风起新一代光伏组件膜层:SSG纳米自清洁膜层
探讨蒙特卡罗方法在解微分方程边值问题中的应用