CP2K-4.1的编译

第一性原理计算的相关软件的编译对于新手来说真的很麻烦,但这一问题不应该成为这个方向刚入门的学习者或是研究者的门槛。

作为一个交叉学科的学生,去年第一次接触到这种第一性原理计算的软件,当时有一个大师兄带我入门,VASPLAMMPS的编译也是师兄做的,没我啥事儿,也没觉得这事儿有多麻烦。

这次编译CP2K是因为它的4.1版本实现了一个跟课题比较相关的功能,需要跑一些例子,但是师兄自己也没编译过这款软件,最初我们试图按照官网的预编译版本来试着安装,没有成功。后来找到一篇关于用Gfortran编译cp2k4.1的博客,在自己本地机上的安装基本遵从了这篇博客的指导,成功了。先说一下PC的配置吧,i5的64位处理器,4G内存,系统是Ubuntu14.。

但是试着跑了CP2K官网的几个例子,在水的几何结构优化那儿就跑不动了,报的是内存错误,应该是PC带不动了,那接下来必须得试着在服务器上安装了。我们这边服务器的类型是

这边顺带插一句,就是关于在Linux系统下安装软件的问题。除了不同发行版自带的包管理工具外,我们可以尝试着从源码安装。因为在服务器上我们是没有root权限的,这种情况下就必须放弃包管理工具。但是这对没在Linux下安装过软件的初学者来说也是一项很艰巨的任务。这里有一篇参考博客关于Linux下软件的安装,初学者可以一看。

在服务器上,首先还是试着用那篇博客给出的方式来安装。CP2K之所以难装,一方面就在于其依赖很多跟数学和物理相关的包,譬如BLASLAPACKFFTW等,可能有一个版本不合适,就会报出一堆的错误。而且,CP2K的官网说的很明白,对GCC的版本有要求,可怜我们服务器上默认的版本太低,还得自己去装,希望暑假过后新换的机器上软件版本能跟得上。

故事到这里并不是一个童话里的欢喜结局,这也是我写这篇的目的所在。在我们的服务器上按照步骤来安装老是报错,具体什么错误也没有留照保存,我们看的不是很懂,但估计是GCC编译器的问题。

接下来偶然间在一个类似于计算化学公社的地方看到一篇帖子,大意是说目前为了方便安装CP2K,其4.1版本已自带能一键安装的脚本,脚本的位置比较隐蔽,反正我是找了挺久才在官网找到其位置,在目录cp2k-4.1/tools/toolchain下有一个脚本install_cp2k_toolchain.sh,如图:

自带脚本

下面介绍下这个脚本的功能,大致就是调用上图中的scripts目录下的各种包的安装脚本,

scripts目录下的安装脚本

如果包安装都已完成,脚本再引导你做接下来几步就能完成全部安装过程,最终会在cp2k-4.1/exe下生成一个local目录,内容是串行和并行版的cp2k.*可执行程序。

我在PC上测试了下这个脚本是否是可用的,大概一两个小时后,发现确实编译成功了并生成了各个版本的可执行文件。但是在服务器上这个方法又出现了些小问题,譬如很多次出现了域名没有办法解析。

我们开始根据错误指示的位置一步步去检查scripts下的安装脚本,这些安装脚本的工作机制是一样的,首先检查 cp2k-4.1/tools/toolchain/build下是否有所需要的安装包,下图里展示的是install_fftw.sh的内容。

fftw的安装脚本

如果在服务器上已经安装了fftw,我们还可以通过在运行脚本时指定命令行参数来指定安装的fftwlib目录的位置,像这样 ./install_cp2k_toolchain.sh --with-fftw=[fftw_lib_dir](这里假定在 toolchain 目录下)。如果脚本能在该目录下找到需要的库文件,就会直接输出该包已经安装好的信息,并且开始下一个包的安装。如果在 build 目录下没有需要的安装包,就会联网下载,很多问题就是出在这一步。

于是我们接下来就将之前在PC上通过这个脚本安装的cp2k-4.1下面的 build 目录里面的所有压缩包(这个脚本写的就是这样,这些安装包没有删除)发送到服务器的cp2k-4.1下面的 build 目录,那么脚本就不会启动联网下载,而是直接开始安装每个包了。这里需要提一下的是 MKL 库,这个库可以选择安装,因为它实现的功能基本就由 BLASLAPACK 共同实现了,可以通过命令行选项--with-mkl=no来取消对 MKL 的检查。

安装各种包的过程也不是一帆风顺的,一些数学和物理的包没有问题,像是BLASLAPACKLIBINTLIBXC等等,最难装的还是GCC,我们的服务器上的GCC版本不够,个人分配的空间也不大,就没有试着在那边装了。后来是换到了天河二号上安装,在那边没有重新安装GCC,基本上是一次成功了。

这里还有个小插曲,在安装成功各个包去到makefilemake的时候,死活编译不过去,并提示是 cp2k 源码的错误。当时的心情真是跟坐过山车一样刺激,师兄跟我绷不住了,最终师兄决定去请教一个专门搞软件开发的合作者。到了第二天,师兄喊我去继续安装,说是那个合作者一眼瞅了输出信息就大致知道了是 BLAS 还是 LAPACK 安装时出的问题,可能是链接的库给错了,也可能是安装的时候 make 出来的静态库不对。反正最后是重新编译了一下 BLAS 还是 LAPACK 结果一路绿灯安装成功。这里是可执行文件:

cp2k的可执行文件

这几天在天河二号上跑了一下水的几何结构优化和尿素溶于水的QMMM算法的例子,都跑出来了,没有问题。对于编译过很多类似软件的老司机来说,这些问题可能都不是问题,但是对于刚入门的初学者来说,走这些弯路很耗费精力,考验耐心。


水的几何结构优化的例子

我写的这一篇并不是手把手地指导入门者去怎么样怎么样安装,但这是所有初学者最渴望的事情,有一篇万能的一步一步的指导手册,躺着键入一些代码就行。但是考虑到各个机器的型号和性能,以及系统和所安装软件的版本也不尽相同,可能还不能有一些万能的安装模板。

安装这个软件大概消耗了我小两周的时间,如果让我总结一些一般性的指导原则,大概就是:

  • 安装那些依赖的数学库和物理库的时候要格外小心,要生成正确的静态库,并在后续安装时要给出正确的静态库的位置。
  • 如果提示有源码错误,那估计是安装的依赖库有问题。
  • GCC 和其他一些库的版本很重要,一定要根据官网的指示来。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容