SMSP的主要技术.doc
上传人:sy****28 上传时间:2024-09-12 格式:DOC 页数:5 大小:41KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

SMSP的主要技术.doc

SMSP的主要技术.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

SMSP的主要技术姚继锋中科院软件所并行软件研究开发中心前言SMSP(ScalableMaterialsSimulationPackage)是由中科院软件所并行中心、化学所和物理所等单位合作开发的材料科学模拟软件。它的目的是在国产、国外并行机上实现高效的量子力学、分子力学、分子动力学等各种材料科学模拟计算,并且为用户提供完整、强大的前、后处理工具。在开发过程中,我们充分运用了Client-Server结构、面向对象方法、多进程、多线程处理等多种流行的软件技术,较好的实现了SMSP。和同类产品相比,SMSP有鲜明的特色。SMSP的主要技术下面我们结合SMSP的各项需求和功能,逐一介绍在SMSP开发中所使用的主要技术。Client-Server结构SMSP的最终目标是成为一个高效的、分布式的并行模拟软件,这使得我们必须采用Client-Server模式的体系结构。Server端运行于各种适于进行并行计算的分布存储或共享存储的并行计算机,接受client发出的计算请求,根据请求调用相应的计算模块进行计算,最后将计算结果返送回client端;client端是适合运行于多种操作系统的图形界面程序,它为用户提供功能完备的建模工具,用户建模后将模型传递给server端,请求进行特定的模拟计算,计算过程中可以通过可视化工具得到模拟状态的信息,决定是否对计算过程进行调整,最后,可以用分析工具对计算所得的结果进行分析,准备下一次模拟。使用client-server结构可以使多个用户共享可能的高性能计算资源,特别的,用户可以通过因特网访问远程的计算服务器,进行模拟计算。Client-server结果使得整个模拟软件的计算部分和可视化部分彼此独立起来。一方面这种结构使得软件本身易于扩展,当有新的计算方法出现的时候,只需更新server端的计算程序,对client来说,它们不需任何修改就可以使用在server端新增的计算服务。另一方面,虽然当前计算机硬件技术发展很快,但对当前的计算机来说,计算能力和表达能力依然是彼此独立的两个功能,SMSP的计算部分和可视化部分分离,使得server端和client不必都有完备的强大功能,对server端来说,重要的是高性能的处理器和大容量的存储空间,而对client端来说,它只需具备较强的显示功能(高分子材料的三维显示需要强大的图形加速设备)。最后,使用client-server结构使得用户可以共享数据资源。一个完备的材料结构库是材料科学模拟软件不可缺少的一部分,SMSP将在server提供这样一个材料库,它会随时更新,更新的材料可以来自于使用这个server的各个client端的用户,也可以来自于其它公司、互联网、他人新的发现等一切可能的资源。Client-server结构实现的关键是通讯的实现。SMSP使用TCP/IP协议,具体的实现需要定义通讯的数据格式,这些数据包括:进行模拟的材料结构的数据格式远程系统的访问格式不同服务的调用格式关于SMSP的client-server结构的更详细情况参见[2]。面向对象技术面向对象方法是一种运用对象、类、继承、封装、消息传送、多态性等概念来构造系统的软件开发方法。它和传统的软件开发方式的最大区别在于考虑问题的角度:传统的开发方式关注于程序的流程,而面向对象方法则立足于程序中一个个事务对象。SMSP的client端程序是现代的图形界面程序,用户和软件的交互很难用线性的流程图方式来表达,相反,使用面向对象的方法使得整个软件结构的表达相当清晰明了,而且,还可以享受面向对象本身的一些优点,如易于调试、维护、更新等。SMSP根据client端的功能,目前定义了如下的一些对象:SMSPUI对象:绘制界面,接受用户各种操作,将消息发送给相应的处理对象。ProjectAdmin对象:管理用户的项目,包括添加、切换、关闭;管理当前窗口。PROJECT对象:单个的项目,是ProjectAdmin的成员。OpenGLWindow对象:图形窗口,有独立的数据和交互能力,是PROJECT的成员。OpenGLEvent对象:管理用户和图形窗口的交互操作。ProjectBrowser对象:管理一个项目浏览器,是ProjectAdmin的成员。Compute对象:进行模拟计算。OUTPUT对象:管理输出它们的之间关系如下图所示。SMSPUI对象ProjectAdmin对象新建、打开项目改变设置等消息排列窗口位置等PROJECT对象PROJECT对象PROJECT对象创建、关闭调整位置得到焦点请求关闭添加、切换和删除项目切换和删除项目OpenGLWind