分子模拟计算及其可视化

分子模拟计算及其可视化

姚继锋

中科院软件所并行软件研究与开发中心

摘要

分子数值模拟是当前进行材料科学、生命科学研究的主要方法之一。利用数值模拟来辅助新材料、新药物的设计以及对基因、病毒等生物大分子的分析研究已经成为一种发展趋势。

本文介绍了一个面向并行计算的分子模拟系统SMSP。SMSP包括基于OpenGL的可视化系统、基于TCP/IP的通讯系统以及包含多种计算方法的模拟系统等三个部分。

SMSP采用了多种先进的软件技术如Client-Server结构、面向对象技术、用户认证技术、平台无关的GUI等,使得软件适于进行分布式大规模计算,并且具有良好的可扩展性和可移植性。

文章侧重阐述了SMSP的体系结构以及Builder的设计与实现。

关键字:分子模拟,并行计算,可视化

Molecular Simulation and Visualization

Yao Jifeng

R&D Center for Parallel Software, ISCAS

Abstract

Molecular simulation is nowadays one of the main research methods in materials and life sciences. It has been a trend to use numerical simulation to design new materials, new medicaments and to analyse the giant molecules such as viruses.

This paper presents a molecular simulation system – SMSP, which is designed for parallel computing. SMSP contains 3 parts: a visualization system based on OpenGL; a communication system based on TCP/IP; and a simulation system which includes several computing methods Some advanced software technologies have used in SMSP such as the Client-Server structure, the Object-Orient technology, the authentication technology and the platform-independent GUI. SMSP is suitable for distributed massive computing and has nice scalability and transportability.

The emphases of this paper are the software structure of SMSP and the design and implementation of the Builder.

Key words:Molecular Simulation,Parallel Computing,Visualization

1. 前言

近年来,随着材料科学和生命科学的蓬勃发展,分子模拟系统在科研和生产中起着越来越重要的作用。从新材料、新药物的设计,到基因、病毒等生物大分子的分析研究,到化工反应的控制,利用分子模拟系统来观察、研究材料原子水平的微观结构已成为主要的研究手段之一。而且随着计算规模的不断扩大(从上千原子模拟几个纳秒扩大到百万原子模拟几个毫秒),采用并行计算方法逐渐成为必然[1]。

目前国外成熟的分子模拟软件包括自由软件RosMol[2],Chime[3],VMD[4]以及商用软件Cerius、Weblab[5]等。但除了VMD外,其余的软件均为传统的串行计算版本,而VMD只提供有限的计算方法且它不提供分子建模系统,难以满足实际需求。国外近期也出现了一些并行化的量子化学计算和分子动态模拟的算法和软件包,但绝大部分停留在实验阶段,离实用、商用化还有较大的距离。

从1999年底起,中科院软件所并行软件研发中心和中科院化学所高分子研究室、中科院物理所表面物理实验室等单位合作,开发可扩展材料科学模拟软件SMSP(Scalable Materials Simulation Package)。SMSP基于化学所原有的分子模拟软件MP2和物理所的量子力学程序包LAPW进行开发,充分考虑了并行计算和网络计算的需求,汲取了已有分子模拟软件的优点。和国外同类软件相比,SMSP的主要特点有:SMSP有着更好的移植性和扩展性;采用内置的小型材料库使得建模功能更为强大;采用用户认证机制使得SMSP适于高性能计算机上的有偿网络计算。

本文详细介绍了SMSP的设计和实现,其中SMSP的体系结构以及作为可视化部分的分子建模系统将是本文阐述的重点。

2. 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端的用户,也可以来自于其它公司、互联网、他人新的发现等一切可能的资源。

SMSP的Server端采用了用户认证机制,每个合法的用户拥有一个单独的账号,除了SMSP管理员外,各个用户的数据、动作互不可见。为保证网络传输的安全性,用户的账号信息均经过加密处理。采用认证机制后,一方面可以保证每个用户自身工作的独立性和安全性,以满足某些有特定需求的研究人员或研究小组的需要;另一方面,这种机制使得大型计算服务器的拥有者可以有偿的提供计算服务,这种计算租赁服务在未来将有着广阔的市场。

3. SMSP的实现

SMSP采用面向对象方法设计,用C++语言编写。

SMSP选用OpenGL作为底层的图形支持。OpenGL是国际上公认的3D图形工业标准,它效率高,移植性好,且支持Client-Server结构的网络工作模式[6]。SMSP提供了线型、棍型、球棍型、CPK型等多种表达分子的方式,除了线型外,其余的方式都充分利用的OpenGL 的3D表现能力,使得SMSP绘制的分子更具真实感和感染力。

SMSP的GUI采用了自由软件FLTK。FLTK是一个基于Win32和XWindow的图形界面开发工具包,相对于其它的许多图形API(如MFC、GTK、QT等),它体积更小、速度更快,且有着更好的移植性[7]。FLTK还提供了一个优秀的OpenGL窗口部件,这使得SMSP 的实现更为便利。

由于选择了OpenGL和FLTK作为开发工具包,SMSP有着良好的可移植性。事实上,SMSP中和平台相关的代码仅有1%左右。通过条件编译技术,SMSP可以不作修改的在多种平台上编译运行。目前已经测试通过的平台包括Windows 95/98/NT/200,Redhat Linux和Slackware Linux。

由于采用了面向对象方法进行设计开发,SMSP有了良好的可扩展性。无论是在Client 端还是在Server端,系统都由若干的对象构成,每个对象承担一定的任务,通过消息传递和其它对象通信,共同完成系统的各种功能。当需要对系统进行扩充、升级时,只需对相应的对象进行修改,而C++类的继承、派生等机制使得这种修改变得方便和简单。

4. SMSP的建模系统

分子建模系统是SMSP的Client端软件最主要的组成部分。分子建模的过程即是利用可视化的手段创建、编辑化学微粒的过程。它包括用不同的方式来表示微粒,添加、删除微粒,平移、旋转微粒,按照一定的规则自动复制微粒等。除了这些必需的功能外,SMSP还具有支持命令行编辑命令、几何分析测量、内置材料库等功能。

4.1 SMSP支持的文件格式

SMSP可以读取和存储多种格式的化学结构文件,如BGF文件、MPF文件、MSI文件、VMF文件等,SMSP默认的文件格式为自定义的MSF(Molecule Simulation File)文件,和其它常见格式相比,MSF文件包括了用户标注信息、观察视点信息等更多的内容,可以完全记录用户的编辑信息,以利于保存和恢复。在将来,SMSP会支持更多类型的数据文件。

除了文本结构的数据外,SMSP还定义了二进制格式的数据文件。和文本文件相比,这种文件有更快的存取速度,且占用很少的存储空间。目前,这种数据文件被用于用户自定义的材料库的存储和管理。

4.2 建模系统交互操作的设计和实现

和一般的可视化系统相比,分子建模系统具有更多的交互动作。如何很好的处理这些交

互动作,是实现一个分子建模系统的难点之一。SMSP根据OpenGL的特点,设计了一个基于状态机的层次式的分子建模系统。系统分为数据表达和数据操作两个部分,通过用户图形界面将它们有机的联系在一起。每个部分分为基本功能、选择功能和编辑功能三个层次,底层向上层提供服务,通讯仅在同层模块间进行。在这种框架下,SMSP的建模系统结构清晰,且利于扩展和继承。

如图一所示,SMSP采用了浮动式的操作窗口使得用户可以方便的进行操作。从此窗口用户可以进行多种方式选择结构、切换用户观察视点、更改单个或多个微粒属性、平移旋转原子、多种方式添加原子、自动连键断键、测量原子分子距离或夹角、建立晶体结构、建立链式结构、执行文本编辑命令、记录用户编辑命令等各种功能。

图一SMSP建模系统的操作窗口

4.3 建模系统的材料库

在用户的建模过程中,一些微粒结构(如CH3_、NH2_、C6H5_等)会经常使用,将这些结构组成一个材料库,可以为用户的建模带来极大的便利,而且这种材料库应该可以由用户进行添加、删除等管理操作。SMSP提供了一个二进制格式的材料库,每个材料以固定格式进行存储,以方便用户的查询和读写。为节省空间,材料按原子个数分为大分子和小分子两类材料,分别存储。

如图二所示,用户可以在操作窗口中对材料库中的结构进行管理。

图二SMSP材料库管理窗口

5. SMSP的动态模拟功能

在模拟计算过程中,用户需要对模拟过程进行动态观察并根据观察结果对计算过程作出相应的调整。SMSP提供了完备的动态模拟功能,包括多种方式动态显示当前的模拟计算过程、记录模拟过程生成回放文件、中断当前模拟计算、调整参数继续停止的模拟计算等。

由于SMSP采用Client-Server式结构,SMSP的动态模拟功能主要通过TCP/IP协议来实现。在模拟过程中,需要传输的数据包括:

l 进行模拟的材料结构数据

l 远程系统的访问数据

l 不同服务的调用数据

SMSP实现了一个和平台无关的传输函数库,使得系统可以在Unix、Linux、Windows等操作系统上高效的传输上述数据。

在SMSP的Server端,管理员通过监控程序可以了解各个用户当前的模拟计算情况,并可根据需要终止特定的模拟计算或特定用户的计算。

6. 进一步的工作

分子模拟软件的生命力在于它的计算能力。通过和中科院化学所、物理所的合作,研制出高效的分子模拟并行算法并将之在国产并行计算机上成功实现,是SMSP现在和以后面临的主要任务。

另一方面,由于SMSP是一个面向大规模并行计算的分子模拟软件,它的建模系统的主要挑战将是如何显示、编辑超大规模的化学结构(有几十万到几百万个原子)。此时数据的存储、压缩、传输以及显示都将会带来一系列新的问题[8]。如何很好的解决这些问题,开发出并行的分子建模可视化系统,也将是SMSP下一步的主要工作之一。

参考文献

[1] Siddharth Dasgupta. The Role and Challenges of Computational Chemistry in Industrial

Problems. Computing in Science & Engineering, 52-60, November/December 2000.

[2] Eric Martz, RosMol Home Page, https://www.360docs.net/doc/f710789154.html,/microbio/rasmol/index2.html,

University of Massachusetts, Amherst MA USA.

[3] MDL Information Systems,Inc. https://www.360docs.net/doc/f710789154.html,/chime/

[4] Visual Molecular Dynamics, https://www.360docs.net/doc/f710789154.html,/Research/vmd/

[5] https://www.360docs.net/doc/f710789154.html,

[6] Van Dam A, Puk D. The history of computer graphics standards development. Computer

Graphics, 1998, 32 (1): 3438

[7] https://www.360docs.net/doc/f710789154.html,

[8] AiiChiro Nakano, Rajiv K. Kalia and Priya Vashishta. Scalable Molecular-Dynamics,

Visualization, and Data-Management Algorithms for Materials Simulations. Computing in Science & Engineering, 39-47, September/October 1999

[9] 姚继锋. SMSP的主要技术. 软件所并行中心2000年研究及开发工作年报, 49-53. 2000.

[10] 唐渊,李玉成等. Client/Server结构在大规模科学计算程序中的应用. 软件所并行中心

2000年研究及开发工作年报, 60-66. 2000.

作者简介 姚继锋,男,1976年10月生于江苏。中科院软件所并行软件研发中心博士研究生,师从孙家昶研究员,研究方向为并行计算中的可视化方法。 

联系地址:北京市中关村南四街4号并行中心,100080

电 话:010-62553023-1

传 真:010-62645968 

电子邮件:crazyyao@mail.rdcps.ac.cn 

相关文档
最新文档