当前位置: 首页 > 分子模拟 >Ubuntu 12.10中的量子软件,cp2k并行版的一键安装

Ubuntu 12.10中的量子软件,cp2k并行版的一键安装

作者 ChemiAndy
来源: 小木虫 850 17 举报帖子
+关注

第一原理模拟“编译难”的问题由来已久。主要是它们使用了一些数学库来,而这些数学库,BLAS, BLACS, LAPACK, ATLAS, FFTW, 等等不同的编译器,不同的版本都会有兼容性问题,特别是并行的话。cp2k的并行版很难编译,即使对编译老手也是如此。我除了搞定过串行版,并行版从未成功,有时编译通过,但运行出错。其它一些第一原理模拟软件比如CPMD也同样难缠。Quantum Espresso是最省力的,但我知道那个作者是下了很大的功夫来写安装脚本,并自带了一些必要的数学库。

但是Ubuntu12.04之后,“编译难”问题可能就会大大减轻。在Ubuntu 12.04下,一些具有GNU开源协议的专业模拟软件已经预先编译好,并打包成debian二进制包直接通过软件源sudo apt-get install或者下载然后dpkg -i安装。其中就包括了cp2k和quantum-espresso这两个东东。这对还在编译cp2k中煎熬的青年,无疑是天上掉下来的馅饼。这让我想起了一个段子,说优秀的编程青年每天不断地优化代码,而牛逼的青年睡上半年,然后新的硬件出来了,运行慢的问题已经全部解决。

当然,目前Ubuntu的这个整合工作还不完善,sudo apt-get install cp2k一键安装还不行。需要做些提前准备工作。下面是在Ubuntu 12.04下整个安装并行版cp2k的过程。

平台: Ubuntu 12.04 64位, Intel 多核

首先,Ubuntu版本必须是12.04以上,因为只有12.04的核心是基于gcc4.6以上版本的。10.04基于gcc4.4, 11.04基于gcc4.5,统统地不行。也不要尝试在低版本Ubuntu中去编译gcc4.6,否则系统里的很多东西的依赖关系就乱了。

然后,在ubuntu下先安装一系列支持库(gcc_4.6和openmpi,和blas库,scalapack库,atlas库和fftw库)

CODE:
$> sudo apt-get install gfortran libatlas-base-dev libscalapack-mpi-dev libfftw3-dev libblas-dev liblapack-dev mpi-default-dev flex bison libsaxonb-java default-jre-headless byacc subversion

接着安装libint,这是cp2k的一个核心依赖库。libint是干什么的呢?

libint is two things:
1. a library of C/C++ functions for efficient evaluation of several kinds of two-body molecular integrals over Gaussian functions;
2. the optimizing compiler that generates a Libint library.

简单说就是通过Gaussian函数计算两体带你子积分的,而cp2k正是使用基于Gaussian+平面波方法,GPW。看来这个库呢,其他的第一原理软件比如CPMD, VASP, ABINIT, Quantum-espresso都用不上,因为它们统统不使用gaussian+平面波,而是只使用传统的纯平平面波。

如下是libint下载安装的步骤:

(1) libint1
CODE:
$> wget http://launchpadlibrarian.net/103817222/libint1_1.1.4-1_amd64.deb
$> sudo dpkg -i libint1_1.1.4-1_amd64.deb

(2) libint-dbg
CODE:
$> wget http://launchpadlibrarian.net/103817224/libint-dbg_1.1.4-1_amd64.deb
$> sudo dpkg -i libint-dbg_1.1.4-1_amd64.deb

(3) libint-dev
CODE:
$> wget http://launchpadlibrarian.net/103817223/libint-dev_1.1.4-1_amd64.deb
$> sudo dpkg -i libint-dev_1.1.4-1_amd64.deb

PS: cp2k只接受libint 1.1.4及以上版本。

然后依次下载安装如下两个cp2k的组成包:

cp2k_data:
CODE:
$> wget http://launchpadlibrarian.net/103850664/cp2k-data_2.2.426-4_all.deb
$> sudo dpkg -i cp2k-data_2.2.426-4_all.deb

cp2k:
CODE:
$> wget http://launchpadlibrarian.net/103850661/cp2k_2.2.426-4_amd64.deb
$> sudo dpkg -i cp2k_2.2.426-4_amd64.deb

至此,cp2k已经安装完成,一个能并行的可执行文件cp2k就静静躺在/usr/bin下。

赝势,基組,力场参数文件在 /usr/share/cp2k文件夹下, example, 手册在 /usr/share/doc/cp2k下。

串行执行:
CODE:
$> cp2k xxx.in > xxx.out

并行执行
CODE:
$> mpirun -np 4 cp2k xxx.in > xxx.out

原以为这种二进制版的并行效率会比较差强人意,但经测试,单核14分钟的作业,6核仅需2'40",速度提高超过5倍,并行效率惊人的好!

其实,cp2k, QE的这些二进制包的整合,似乎是为即将到来的Ubuntu 12.10专门准备的。Ubuntu 12.10的代号是Quantal Quetzal,“量子的花杜鹃”,当然要包括一些花花绿绿的量子化学计算软件吧。从这里可以看到,ubuntu 12.10准备的量子化学计算模拟软件还不少:


    psi3  http://www.psicode.org/  UC Berkeley的从头算软件,做組态作用,激发态计算和对称匹配微扰SAPT计算。最新的是PSI4

    abinit, http://www.abinit.org/  平面波+赝势/DFT,没怎么用过</Li>

    NWChem, http://www.nwchem-sw.org 类似于gauss一样的神软件,ab initio和DFT都能拿,并行很快</Li>

    ACES3, 从头算,耦合簇couple-cluster方法+大规模并行,因为使用了神级编程语言SIAL优化并行  </Li>

    Quantum ESPRESSO  平面波DFT。强项是DFT+U计算固体材料的能带以及热电声光磁等性质。</Li>


其它的化学计算软件包括:massxpert, mmass, gabedit, rasmol, babel等以及久已整合过的经典模拟软件gromacs。

附:Quantum-Espresso已经实现了一键安装:
CODE:
$> sudo apt-get install quantum-espresso

赝势在 /usr/share/espresso/pseudo下

ChemiAndy@百度空间:一花一世界

[ Last edited by ChemiAndy on 2012-9-4 at 23:43 ] 返回小木虫查看更多

今日热帖
  • 精华评论
  • gongyiweimu

    话说我已被编译纠结早回去N次了。

  • lihb734

    感谢分享,看来以后编译方便了。

  • lihb734

    Ubuntu 12.10似乎已经发布了吧,楼主
    http://cdimage.ubuntu.com/daily-live/current/

  • beefly

    没有什么“基于Gaussian函数的平面波方法”。CP2k中的Quickstep模块使用的是Gaussian+PW双基组

  • ChemiAndy

    引用回帖:
    5楼: Originally posted by beefly at 2012-09-04 23:26:29
    没有什么“基于Gaussian函数的平面波方法”。CP2k中的Quickstep模块使用的是Gaussian+PW双基组

    多谢指正。

    我的理解是先使用gaussian基組计算得到电子密度,然后密度再拟合成平面波函数,从而获得周期固体的性质。也就是说平面波方法是基于gaussian函数得到的密度。不知道我的理解对不对,请指教。

  • ChemiAndy

    引用回帖:
    4楼: Originally posted by lihb734 at 2012-09-04 23:17:07
    Ubuntu 12.10似乎已经发布了吧,楼主
    http://cdimage.ubuntu.com/daily-live/current/

    日新月异啊,,可能是beta版
    待会儿弄个live USB试试

  • beefly

    引用回帖:
    6楼: Originally posted by ChemiAndy at 2012-09-05 19:37:54
    多谢指正。

    我的理解是先使用gaussian基組计算得到电子密度,然后密度再拟合成平面波函数,从而获得周期固体的性质。也就是说平面波方法是基于gaussian函数得到的密度。不知道我的理解对不对,请指教。...

    Gaussian函数用来描述芯层轨道,并且可以结合标量相对论DKH(似乎新版本禁止了标量相对论,因为无人维护此代码)。

    价电子能量变化平缓,适合用PW描述,优点是基函数数量小,而且没有BSSE。

    但是把二者不是简单地相加。需要一些技巧

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓