| 查看: 3246 | 回复: 17 | ||||
| 【奖励】 本帖被评价4次,作者donkeypku增加金币 3.5 个 | ||||
| 当前主题已经存档。 | ||||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||||
[资源]
【分享】ABINIT的前世今生(转)
|
||||
|
[转载] 材料性质的第一性原理计算:ABINIT软件工程 myid520 译 来源: 南京大学小百合站 http://bbs.nju.edu.cn/vd100000/b ... amp;file=1134716454 ChemiAndy转注:本文从软件工程学的角度,给出了ABINIT第一性原理分子动力学软件的理论与技术的一个完美剖面。翻译者具备良好的理论计算功底和编程基础。原帖散失了所有公式。待查补。译者myid520,研究理论催化,现在吉林。译者博客http://myid520.blog.163.com/ First-principle computation of material properties: the ABINIT software project X. Gonze, J.-M. Beuken, R. Caracas, F. Detraux, M. Fuchs, G.-M. Rignanese, L. Sindic, M. Verstraete, G. Zerah, F. Jollet, M. Torrent, A. Roy, M. Mikami, Ph. Ghosez, J.-Y. Raty, and D.C. Allan Comput. Materials Science 25, 478 (2002). 摘要: 用密度泛函理论(DFT)计算电子结构、总能量和材料的其他性能是一个不断发展的领域。为了站在知识的最前沿,处理恰当的话,一个DFT软件工程能够很好的得益于广泛的合作。另外,现代软件工程思想可以使软件开发相当容易。ABINIT工程依赖下列信念:资源的自由性、可靠性、可移植性和在开发复杂的平面波赝势时所强调的个人文档。 在这里,我们介绍在GNU公共软件协议下发布的ABINIT3.0版,给出其功能和一直使用到现在的各种软件技术:用perl脚本和cpp指令处理处理Fortran90资源文件的独立集合来为各种操作系统产生并行或串行目标代码;200多个自动测试来保护现有的功能;一直坚持的严格的编码规则;在线帮助、自学教程、网页资源等文档。 关键词:密度泛函理论,软件工程,电子结构 pacs:71.15.-m,81.05.Zx,31.15.Ew,89.88.+h 1.引言 在过去的20年中,以量子力学和电磁理论为基础的材料性能的第一性原理计算已经经历了巨大的进步,而应用广泛的密度泛函理论正处在这个快速发展的领域的核心。他已经在各种计算机代码和和一般理论(如时间依赖泛函理论)中应用,或者用作很多复杂形式体系的基础。下面,我们不加综合地列举这一领域80年代中期以来的一些里程碑,来看一下它的持续发展,并多花一些笔墨在赝势的使用上。 1985年,Car和Parrinello建议了一个把DFT和分子动力学统一起来的算法[4],同年,Hybertsen和Louie独自地把Hedin[5]的基态近似应用于单电子的叠加和移动能的计算。1987年,固体的动力学和介电性能上的线性响应方法被Baroni,Giannozzi 和Testa[7]实现。Allan和Teter[8]建议用分离Kleinman- Bylander[9]赝势和Car-Parrinello的技术进行结合,1990年,Vanderbilt设计了一个超软赝势[10],三年后,和King-Smith一起指出电子极化是一个几何相[11];同时,举行串行运算(原文为大规模并行。CA)的计算机上的运用开始出现。赝势方面更加精细的思想也产生了导致了Blochl的投影放大波方法[13](即PAW方法。CA)。为了处理激发态,含时DFT和Bethe-Sapeter方程[13-18]最近已被实现。 因此,为了和时代同步,用来进行材料到第一性原理计算的计算机程序必须包括越来越多的功能,随着发展,这些功能变成基本的功能,而在原有的计算机代码上测试一个新想法也明显变得无效。另外,由于软件越来越多的功能需要合并,一个人很难在不牺牲自己研究的情况下来继续这一软件的维护和开发。而DFT形式系统及其应用、应用领域的改进、普遍化需要10年甚至更长的时间。所以,小组开发,甚至国际合作是必要的,在这种情况下,各种现代软件工程技术证明时非常有用的。 ABINIT软件工程开始于1997年,在这个基础上,作为一个开放的软件工程,它对功能没有限定,并且使用多种软件工程技术来方便很多开发组之间的国际合作。ABINIT的主程序使用平面波和赝势,来进行材料性能的密度泛函计算。它的一些特殊的功能还能处理反应函数。 现在,软件有下面四个特点:1.开放源代码(可以在GNU公共软件协议下使用),2.自我测试,3.在不同的操作系统下进行并行、串行运算的可移植性,4.个人文档。另外还提供给使用这一个自学程序。而为了方便国际合作,还制定了旨在要求各个开发组要有统一明确代码风格的协议。网站[20]提供官方版本、赝势、各种应用程序、基准结果、电子邮件列表和参考文献信息。 本文将以3.0版为例进行介绍。以前的版本不是在GNU GPL下开发的,网站也将不提供这些版本。 和ABINIT软件包所包含的各种应用程序一样,ABINIT主程序也是用Fortran90编写的,它包括300多个子程序,大约10万行,其中大约三分之一是注释。软件包包括文档文件、自动测试脚本和赝势文件。 ABINIT v3.0于2000年12月第一次发布,从那时起,程序的错误被定期的报告并在网上公布(现在的3.06版)另外,软件开发的主流一直超过3.0版,包括现在的3.1和3.2版,本文的作者对3.0版作出了主要的贡献,另外还有50多人对本版本也作出了贡献,他们改动了一个或一部分子程序,或发现了一些程序错误。 现在,一些其他代码,如基于平面波和赝势,和基于投影防大波(即PAW方法.CA)(超软赝势形式的改进)的代码可以获得,我们提供的列表[21-31]可能不太详尽,他们中的有些是商业软件,其他的可以通过和主要开发组合作来获得,或者直接从网上下载。 在未来,发展与下列两种团队的合作是有意义的,一种是在GNU GPL下提供他们代码的团队(这对开发者和使用者都提供了法律的保护),另一种是免费提供源代码的团队。和组包括相互检测软件精度和速度,以及共享子程序和函数库。显然,在这方面,最根本的是要开放源代码。 在本文中,我们首先集中介绍ABINIT3.0版的特色功能(第二部分),其中有些是一些基本功能,已经在相似的代码中使用的很久一段时间,我们在这里不进行太详细地介绍。其他的是第一次应用的功能,也是我们将详细解释的。当然,全面地描述还将会另外发表。另外,我们还将粗略的给出软件包的结构和输入文件的组织形式,然后在第三部分,我们将叙述世界范围内小组开发的组织形式,而现在软件工程的思想(自我测试、脚本可移植性、个人文档、使用者自学)使这种组织成为可能。在最后一部分,我们将批判地讨论现在的成就和我们所遵循的开发模型,同时指出需要改进的地方。 |
» 收录本帖的淘帖专辑推荐
VASP | soft study |
» 猜你喜欢
垃圾破二本职称评审标准
已经有19人回复
职称评审没过,求安慰
已经有53人回复
毕业后当辅导员了,天天各种学生超烦
已经有5人回复
26申博自荐
已经有3人回复
A期刊撤稿
已经有4人回复
» 本主题相关商家推荐: (我也要在这里推广)
15楼2009-07-17 08:25:20
★ ★
fegg7502(金币+2,VIP+0):thanks
fegg7502(金币+2,VIP+0):thanks
|
2 特色功能 ABINIT软件包包括主程序及应用程序MERGE、IFC和CUT3D。主程序是用来驱动不同密度泛函的基础计算的。下面我们将区分ABINIT在基态计算、结构相关计算(最优化和分子动力学)和反映函数计算方面的特色功能。对大部分功能,给出了许多出版物作参考,包括粗略的描述。然而,有两种情况:自旋轨道影响的处理和绝热联结波动耗散理论(adiabatic-connection fluctuation dissipation theorem, ACFDT),ABINIT时用艺术态来处理的(原文为state-of-the-art,达到最新技术发展水平的),同时给出大量的解释(下面我会有解释)。而应用程序MERGE、IFC和CUT3D将在一个单独的部分描述。 2.1 电子基态计算功能 密度泛函计算中的赝势平面波技术是Payne和其同事来审查的(has been reviewed )。ABINIT 3.0版支持下列密度泛函近似:Perdew-Zunger[34]和Teter[35]的局域(自旋)密度近似(LSDA),Perdew-Buike和Ernzerhof[36]的广义梯度近似(GGA),Van Leeuwen-Baerends[37]GGA,以及早些时候Gunnarsson-Lundpuist[38]的非自旋极化局域密度近似(LDA),Wigner[39]和Slater(X-alpha)[40]。 ABINIT能够单独使用的赝势有下列各类型: --在数值格点上的标准正则赝势(normconserving PP模守恒赝势),例如但是不仅限于Troullier-Martins[41]赝势。 --Goedecker-Teter-Hutter[35]赝势或Hartwigsen-Goedecker-Hutter[42]赝势,这两种赝势的解析形式特别简洁。 -- Teter[43]推荐的扩展的正则赝势。 网站上给出了LDA赝势的两个完全或者说准完全集,一个是Troullier-Martins类型的,另一个是Hartwigsen-Goedecker-Hutter类型的。Fritz-Habor-Institute代码可以用来产生新的赝势,特别是那些用在GGA中的。Hartwigsen-Goedecker-Hutter有一个自旋轨道的部分,与其相对应,Martins赝势代码[45]的最新版本也能产生自旋轨道依赖赝势。 根据Louie,Froyen和Cohen或Tetet的建议,非线性相关中的核心相关是可以处理的。最后,用于研究核心水平化学位移的核心洞赝势也是可以使用的。 在每个k点(倒易空间的波矢,通常在第一布里渊区),波函数用平面波有限集的数字系数来表示,这个系数由动能的截断值决定。k点的集合可按照Monkhorst-Pack[48]系统或一般形式自动产生。在倒易空间中,由于规则地分隔在不同直线上的k点可以自动的产生,电子带结构的结果也可以很容易的形成。 对称性用来减少布里渊区取样所需k点数目,所以,只用不可约去的部分才需要取样。ABINIT 3.0提供不同的可能性来描述倒易空间的波函数(平面波系数)。通常,波函数的系数是复数,是旋量空间的标量。利用独立的自旋和反自旋波函数,以及自旋轨道耦合、旋量波函数,ABINIT 3.0能处理共线磁化(铁磁性和反铁磁性)。能处理自旋轨道耦合是ABINIT的一个想当高级的功能,我们也将在一个单独的部分中介绍。但是ABINIT 3.0中还没有处理非线性磁化的能力。对具体的波矢在时间反转(和通过倒格子矢量的转变)下的不变形,如(0 0 0)或(1/2 0 0)……,波函数用适量的平面波系数的二分集代表。 在实验有效势中,决定波函数的算法是Teter 、Payne 、Allan的连接梯度算法的改进型算法。电子密度就是通过这些波函数构造,并且用来产生势的Hatree能和交换相关能部分。这样,输入实验势就和输出势联系了起来。各种算法允许反复地建立向Kohn-Sham势(输入势和输出势相同的固定点)收敛的实验势,Kohn-Sham势包括:简单混合[50],Anderson势[51]和基于势的连接梯度算法[52,53]。这种势的预处理通过典型介电函数或近似介电函数完成。 当电子密度已经自洽地建立,相应的势可以非自洽地用来简并非占有态(需要带结构简并,或ACFD形式,见2.5部分)。态依赖占有数可以用多种方式处理,可以手工建立(每个能带同时建立,或每个自旋、每个k点或能带单独建立),也可以自动加载。对后一种情况,使用者可以选择半导体填充或金属填充,当然,这要根据不同的抹去方案,看是高斯smearing(Fu和Ho[55]),厄米—高斯smearing(Methfessel和Paxton[56]),还是cold smearing(Marzari[57])。 2.2 有关结构方面计算的能力 ABINIT给出了对称规范的不同选择。假如给出了原胞中的原子位置,则对称操作能被自动识别,相反,如果给出了对称操作和不能约去的原子,原胞中余下的原子也能自动产生 空间点群能够根据国际晶体表[58]给出,在这种情况下,对称操作表可以通过一个数据库初始化。假如晶格常数和对称操作已经给出,ABINIT就能建立布拉菲格子和点对称群(ABINIT3.0版中还没有点对称群)。 得益于Hellmann-Feynman理论和密度泛函理论中的应力理论,以和应力在所有情况下都可以计算,除旋转轨道情况外,总能量在这种情况下也都能计算出来,也就是总能量的计算适合标量波函数和自选极化情况、金属和绝缘体材料,以及各种交换相关函数。 使用Broyden算法[61]、改进型Broyden算法[62]、当离子的运动方向和力的方向相反时运算立即停止的Verlet算法[63],力和应力可以用来最优化结构(最小化力和应力,任意限制它们的分量);使用Verlet算法[64]或Numerov算法[65],力和应力还可以用来产生分子动力学轨道。Verlet算法情况下,可以使用Nose-Hoover 和Langevin热浴[66-70]来取样正则系综。 另外,代码能自动分析键长键角,以及xyz形式的原子坐标。 2.3 相应函数方面计算的能力 我们首先考虑对原子位移和静态同类电子场的相应。 在Berry相形式下,可以计算出介电极化,这一特色功能对绝缘体、磁体和非磁体可用,但是,自旋轨道分裂情况出现时还不可用。 线性响应技术(密度泛函微扰理论)[7,71-74]可以用来计算对原子位移和同类电子场的响应。计算将产生在选择的波矢处的动力学矩阵、Born有效电荷、或者(电子)介电常数。这些量放在一个数据库中,可以用MERGE和IFC来分析(后面还要专门讲到)。对ABINIT3.0版来说,线性响应在自旋极化情况、旋量波函数情况和对交换相关函数的GGA近似情况还不可用。 磁化矩阵和介电矩阵(在频率为0,和对倒格矢)可以通过对整个态公式求和[77,78]计算出来。 电子激发也可以在时间依赖密度泛函理论下研究。 2.4 自旋轨道耦合方面计算的能力 自旋轨道耦合在平面赝势代码中不是经常用到,在力、应力、响应函数可以利用的ABINIT3.0版,它的执行将详细描述[79]。我们在这里给出一个简略的描述,描述他在计算总能量时的执行情况。从狄拉克方程开始,能够得到和薛定谔方程相类似的方程,这个方程和相对论波函数的最大最小分量相混合,具有1/c 的数量级。对每个l+ 和l- 轨道,赝势都能产生,对赝势进行适量的线性组合,将产生标量相对论部分 和自选轨道部分 。按照参考文献[42,81],重新组合赝势,写出电子--离子势,离子势是标量相对论相(SR)和自旋轨道相(SO)的和:Vei= + (1) 标准波函数基扩展到旋量波函数基,旋量波函数基的元素由 表示的二分量波函数。一般矩阵元的自旋独立部分为: (2) 自旋轨道部分为: (3) 在Kleinman-Bylander公式中,自旋独立相的结果就是著名的: =4π(2l+1)fl(|G|)fl(|G’|)Pl( (4),其中 、fl(G)是倒易空间中Kleinman-Bylander形式的因子,Pl是勒让得多项试。这个结果,从增加的定理: (5) 到得到自旋轨道项的相似算符,我们首先考虑矢量: 。利用定义L=r p,恒等式 和 ,我们得到: = -i 。因此,我们把矩阵元素变换成:。 (6) 最后一项的计算模仿自旋独立项的计算。注意,由于与 叉乘, 项无贡献。最后,我们得到: (7) 其中 是 的一阶微分。 通过这个公式,我们能够求出体系的总能量,同时,通过对原子位移和原胞变形微分,我们能求出力和应力。 2.5 绝热连接波动耗散理论 DFT中的局域密度近似和广义梯度近似经常产生固体、表面、分子物理和化学性能的有效精确描述。特别是它们能给出原子结构的实际的计算,以及弹性和震动性质。虽然在分子相互作用和相关势能面方面,GGA比LDA有改进,这也是GGA的典型部分,但是,我们还是需要更精确的函数来克服临界时的缺陷,例如,GGA还不能在化学精度下预测化学反应热力学(分子分裂能、反应热和激活能垒),和LDA一样,不能恰当的包括远距离子系统间的范德瓦尔斯相互作用。 绝热连接波动耗散理论(adiabatic-connection fluctuation-dissipation theorem ACFDF)允许产生完整的非局域交换相关函数,这个函数在远距离情况下包括范德瓦尔斯相互作用或精确的非局域相关,因此,这一理论超越了传统的局域密度近似和广义修正近似。并明确给出了密度为 的电子系统的交换相关能[82]: (8), 其中 (虚频率)是通过一个标量库伦势 产生电子相互作用的系统的动力学密度响应函数,它进入一个修改的外部势,以便对物理( )基态密度保持不变。对 ,我们处理无相互作用的Kohn-Sham系统,它的响应函数由Kohn-Sham本征态 和本征值 ,即: (9), 其中求和包括所有占有态( =1)和非占有态( =0)。当 时,相互作用和Kohn-Sham响应函数通过代森型屏幕方程相关,代森型屏幕方程为: = + (10), 其中 = 库伦和交换相关核函数,它在时间依赖密度泛函理论[83]中建立。就像在参考文献[84]中提到的一样,交换相关能的相关部分和交换部分可以分开。方程8-10可以归结为ACFDT形式。原则上,它能产生精确的密度泛函交换相关能,但实际上,通过对未知的时间依赖交换相关核函数、Kohn-Sham响应函数、和(或)代森方程的解使用具体的近似,从各种近似的动力学密度响应函数都可以产生近似函数。 在ABINIT3.0版中,初始的Kohn-Sham基态(也就是 )是在LDA或GGA条件下计算的,而把响应函数和核函数看作 点,并在定义的平面波代表中处理,例如,对 ,通过 = 来处理,其中G是倒格矢。通过对方程(9)中的所有态求和,得到Kohn-Sham响应函数。使用不同的时间依赖交换相关核函数,我们不需要进一步近似就解出代森方程(10),因为线性方程系统如下: = (11) 为得到交换相关能,我们给相关能付值为: (12) 因此,增加了交换能泛函[86-88]。至于对 和u积分,我们重复解方程(9)和(11),并使用高斯求积分公式。 功能的实现还处于试验阶段,还需要最优化。我们的初始目标是评定ACFDT家族的各种函数的精度。 |
2楼2008-12-03 10:23:59
★ ★
fegg7502(金币+2,VIP+0):thanks
fegg7502(金币+2,VIP+0):thanks
|
2.6 并行计算能力 我们已经实现不同水平的并行计算:把不同的k点、和给定k点中不同的态相关的工作、与各波函数的系数相关的工作分配在不同的处理器上。当然,还有很大的空间来最优化各水平的并行计算,所以,我们这一部分的目的不是给出加速多少的详细分析,只是给出并行计算下的基本思想。 最有效的并行计算(和通讯有关的大量计算)基于k点的分配,它利用MPI库实现,对两个以上k点的情况(电子结构、确定总能量、响应函数)都适用。它工作在大型并行或SMP机上,或者网络基通讯的机群上。不幸的是,k点数目和原胞尺寸的比值随着原子数目的增加而减小。尽管如此,还有一些情况是工作量和k点数目都比较大(例如金属、响应函数下小单元的性质)。下面我们举几个例子,在有25个处理器的SGI Origin 2000(处理器是R12k,300MHz)上,可以得到比一般情况快20倍的速度,而在有25个Intel奔腾III处理器(550MHz),操作系统为Linux的机群上,速度依然是一般运算的15倍以上。 在给定k点内各态相关的工作的扩展中,ABINIT3.0版仅仅实现了在响应函数情况下的扩展。正如k点的分配,它利用MPI库实现,工作在大型并行或SMP机上,以及网络基通讯的机群上。他的缩放比例和系统尺寸的大小是线性关系,并且和k点的反缩放比例反平衡: k点数目和态数目的成绩大约是个常数,对相似的系统用相似的精度处理,它的典型的值在200和1000多之间。对响应函数计算来说,在处理器间通讯的数量方面,态基并行运算只比k点的分配大一点点,然而,ABINIT3.0版中,每个处理器所需的内存不因处理器的增加而减小。 最后,使用OpenMP编译指令,可以在SMP机的处理器上分配和波函数的系数有关的工作。 利用这一技术,FFT算法和对波函数的非局域算符的应用已经可以并行运算,然而,这个应用是三个并行运算中最新的,效率还不是太高,一个典型的速度是在四个处理器上并行计算时,速度是在一个处理器上运算的2倍。有意思的是,MPIO和penMP并行计算可以同时使用。 2.7 应用程序 应有程序MERGE和IFC时用来分析数据库的,这些数据库是ABINIT程序产生的总能量对原子位移的微分数据库和ABINIT程序产生的同类电子场数据库。数据库还包括动力学矩阵、波恩有效电荷以及电子介电张量。MERGE时用来进行数据库处理的,而IFC时进行数据库分析的。 根据参考文献[74],IFC分析数据的功能如下: (1) 基于波恩有效电荷张量和电子介电张量,建立原子间力常数,包括其渐进行为。 (2) 通过数据库提供的动力学矩阵的傅立叶插值,在布里渊区中的任意点建立动力学矩阵,从而建立相应的本征矢和本征值,其中本征值形成声子带结构。 (3) 建立在零波矢时绳子的对称特征。 (4) 在准谐波近似的情况下,通过在布里渊区中对声子自由度积分,用波松-爱因斯坦占有因子建立热力学性质(如自由能、热容和熵)。 (5) 频率低于电子隙的情况下,建立频率依赖介电张量。 应用程序CUT3D用来分析ABINIT程序产生的实空间三位密度或势文件。特别是在一个与三维原胞相交的二位平面上顺着某一直线或在任意一个点,它都能添加已知的密度或势到一个三维任意地卡尔体积中去。另外,它还能使原来非格式化的的密度或势文件格式化,以便作为图形文件MATLAB[75]和MOLEKEL[76]的输入文件。 |
3楼2008-12-03 10:25:55
★ ★
fegg7502(金币+2,VIP+0):thanks
fegg7502(金币+2,VIP+0):thanks
|
3 软件开发的组织 就像在前言中提到的一样,ABINIT软件工程依靠一大批开发者,他们属于不同的国际开发组。为了协调这种软件工的开发,计算机科学家开发了软件工程技术,其中有些软件工程技术包括辅助软件,一般在GNU一般公共协议些可以得到,另外一些软件工程技术是引导开发者工作的一些思想。在这些软件工程技术中,有一部分已经在ABINIT中采用,我们将在这一部分叙述,另外一些还没有使用,这将在讨论部分中叙述。 3.1 软件共享:GNU一般公共协议 GNU组织提出了重要的自由软件思想:软件的版权属于开发者,但是软件在一个协议下发布,这个协议保证用户有权利得到源代码、更改源代码、甚至有权利重新发布软件。这一思想在一个法律文件中进行了详尽的阐述,这一文件可以在GNU网站[19]得到。所谓的GNU一般公共协议已在现在所能得到的绝大部分自由软件中使用。 我们已经选择在这个协议下发布ABINIT,其软件包中源文件和文档文件的版权属于其作者和发布协议。通过这种方法,开发者保留他们努力得到的知识,同时允许别人在未来的版本中改进他们的工作,用户也有权得到源代码,并且可以在调试方面做出自己的贡献。 3.2 自动测试 开发者修改工作可能引入错误,这个在代码开发中的问题源在一个大的开发作加入时变得更为严重:大部分开发者仅仅知道代码中有限的部分,同时开发者小心的水平也是千差万别。为了避免这一缺点,引入了自我测试。 在一个完整的ABINIT软件包中包括200多个测试,每个测试的测试环境包括一个输入文件、赝势以及为运行测试批和自动分析他们的结果所需的脚本。对ABINIT的每一个功能都存在一个或多个测试,这些测试都在软件实现时建立。在个人电脑(CPU为800MHz的奔腾III)上运行时,每个测试一般情况运行几十秒。 自动测试环境的最终目的是当一切正常时,程序返回一个正值(一个字节),否则返回适当的失败分析(当然超过一个字节)。在ABINIT3.0版中测试是多水平的: (1) 第一个脚本叫fldiff(浮点差别),它写在PERL中,它用来计算结果文件和参考文件的差别, 是用这种方法,由于不同平台和计算机的果有差别引起的浮点错误在一定范围内将会被忽略。这个工具要求结果文件和参考文件要十分相似,也就是只存在浮点方面的差别。测试成功的话,只有几行文字写到概要文件中去,集中了自动测试批的测试结果。 (2) 当有不可忽略的差别时,unix命令diff的结果将会自动得到,它允许对更复杂复杂差别进行简单测试。 (3) 每次ABINIT运行,都有一个详细的log文件,其中列出了运行的错误、警告、注释信息。 当要是他们的开发生效时,每个对ABINIT工作的贡献者都要求建立一个测试,修改的原文件、测试用到的输入文件和参考文件都将在包含在下一个版本中。开发者把参考文件送给负责官方版本的人也是必要的,这样能够确保软件的新功能确实是安全的。 最后,还有一小部分测试不是用来测试软件功能的,而是用来标定软件速度的,他们比较不同版本的需要大量CPU的程序, 并允许用户比较不同机器的速度。 3.3 可移植性 ABINIT3.0版安装在了一下平台: (1) 使用Linux操作系统,编译器(波兰特集团公司)或富士通编译器,奔腾、奔腾II、奔腾III处理器的个人电脑。 (2) 使用Windows 98或NT操作系统,PGI工作站程序组,英特尔486或奔腾II处理器的个人电脑。 (3) 基于阿尔法处理器(EV56,EV6或EV678),使用操作系统固件的康柏计算机。 (4) 基于阿尔法处理器(EV56),使用Linux操作系统的康柏计算机。 (5) 基于Power2和Power3+处理器(型号590,3终端,夜鹰级)的IBM RS6000计算机。 (6) 基于R1000处理器的SGI Origin2000计算机。 (7) CRAY T3E 计算机。 (8) 富士通VPP700计算机。 (9) 太阳公司ultraspare II计算机。 (10) NEC SX4和SX5计算机。 (11) 日立SR8000计算机. (12) 苹果公司的麦金托什机。 对平台(1)到(7)来说,主代码的最优化非常高级,对其它平台来说,主代码的最优化可能更好。开发者开发了用于大部分平台的二进制代码,这些都能在ABINIT网站上得到。 由于cpp指令,以及MAKE文件和各种脚本的使用,ABINIT已经可以成功的安装在很多平台上。ABINIT援文件的唯一集是在编译时匆忙的预处理的,它产生时间依赖代码,结果,ABINIT可以在UNIX型、Windows型以及Macos型的操作系统下工作。 对ABINIT安装的每一个平台,一个包括编译器名、选项和为预处理而选择的信息的机器依赖文件必须准备(大约15行)。这个机器依赖文件对ABINIT的版本依赖很小,一旦这个文件安装在一个平台上,进一步安装在相同的平台上就十分相似了。 相同的软件技术用来维持ABINIT串行和并行版,他们都通过源文件特别集的预处理产生。 ABINIT MPI版已经在SMP结点的集群上测试和工作,机群由上面提到的计算机组成(太阳公司ultraspare II计算机除外),工作环境为UNIX型操作系统。ABINIT的OpenMP版已经在下列SMP计算机上测试,这些计算机包括:SGI Origin2000计算机、44个Power3+处理器的IBM RS6000计算机(每个节点四个处理器)、以及康柏/数据设备公司的ES40 EV67计算机(每个节点四个处理器)。 |
4楼2008-12-03 10:26:25













回复此楼


)。