本帖最后由 anson 于 2023-2-12 11:10 编辑
- 帖文提示 - ①本文中的系统及程序安装均参考及照搬了sob老师的教程及帖文内容,在此万分感谢sob老师。
②本文所涉及内容仅为面向Linux小白及极其初级的入门者的经验分享,请大佬和巨佬们轻喷。
- 前情提要 - ①去年8月底搞了一台sob老师推荐配置的普通双路计算服务器(吐槽及安装过程分享可以看看 http://bbs.keinsci.com/thread-31824-1-1.html )。鉴于本人可怜至极的计算机水平,服务器选择安装了个win10专业版,装上g16和orca也勉强凑合用了几个月。刚开始使用时没注意,后来在算某些任务的时候发现用的时间实在是过于离谱了,打开任务管理器查看发现1u顶着100%而另外1u却只有1~3%左右的占用。起初以为是我设置%nproc设置得不对,但是后来测试了一下使用%nproc=36/72都是这个鸟样,每次都是cpu0在那哼哧哼哧地算而cpu1在那躺平睡觉。在公社内搜了一下好像也有不少朋友存在这个情况,有建议关掉HT的,测试了一下确实计算耗时有了不少的提升,特别是在用def2TZVPP计算单点能的任务时原来要3~4d的直接跳楼价11h搞定。②另外一个转去Linux最主要的是看到sob老师3月要开cp2k的1st了。到时候我自己用的老掉牙笔记本里的虚拟机肯定是不现实的,远程控制学校win10服务器里的CentOS 7.6虚拟机似乎也看上去过于傻乎乎了。再加上过年在家躺平的时候看了不少Linux的教学视频有了个初步的了解和认识,而且sob老师的各种教程写得都很详细,“感觉”自己微薄的计算机水平还是能够应付的。
- Chapter 0 安装CentOS 7.6 - 你问我为什么要装CentOS 7.6?问就是sob老师的教程里用的就是CentOS 7.6,换7.8我都不敢更别说其他什么RockyLinux了。然后我就被自己的胆小给坑了,在此暂且不表。
首先是制作U盘启动盘,这个高中电脑课还是有教过的。找个系统ISO镜像用个刻录软件(我用的是UltraISO,据说Rufus更好用但是我没用过)弄进U盘里就行,这个随便搜个教程都有我就不在这说了。然后插入启动盘在重启电脑的时候进BIOS修改为从USB设备启动,按照屏幕提示和sob老师的视频安装就行。
在这平平无奇的时候就基本上都会出现问题,据说是UltraISO刻录制作引导盘的时候会出现的初始化错误。在安装选择界面中按Tab进入,将显示的vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet改为vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quiet(其中sdb4指是我的电脑设备上的U盘,sda指第一个挂载盘,sdb指第二个挂载盘,如此类推。但是每台电脑上的USB挂载名称不一样,要视情况而定选择挂载盘。),重启再次进入安装选择界面中选Install即可。
为什么成功安装CentOS 7.6之后会发现被自己坑了呢?因为我在系统安装后马上准备按照sob老师的安装教程搞个CP2K,然后我就看到了这么一句话:“下面笔者所述的情况和编译方式对于CentOS 8.0和CentOS 8 Stream是完全适用的,不适用于更老的CentOS”,一口老血差点吐出来。
- Chapter 1 安装CentOS 8 Stream - 当然找别的系统我还是不敢的,既然sob老师说的CentOS 8.0和CentOS 8 Stream,那就决定是他们了!鉴于CentOS 8.X系列已经end of life了,只能投向8 Stream了。还是熟悉的刻录启动盘,还是熟悉的引导盘初始化错误,8 Stream的安装过程跟7.6不能说是有点相似,简直就是一模一样。sob老师的7.6安装教程也同样适用于8 Stream系列。只要记住Base Environment里选择Workstation,然后组件里选上GNOME Applications、Legacy UNIX Compatibility、Development Tools、Scientific Support就行。
这里来个小白作弊提示,设置用户名的时候设成“sob”,之后安装量化程序时编辑/.bashrc的时候就能直接偷懒复制sob老师的教程里的不用自己改路径了。
- Chapter 2 安装ORCA 5.0.3- 这时有人就会问了,你不是为了搞CP2K才去装Linux的吗?怎么搞完系统第一个装的是ORCA啊?别急,为了不再出现安装CentOS 7.6的乱子,这次我仔细地看了下sob老师的教程,发现CP2K用toolchain安装过程中安装的OpenMPI是4.1.4,并不是ORCA 5.0.3用的4.1.1,而为了ORCA而安装的OpenMPI在toolchain安装依赖库时能够直接跳过并使用机子里原有的OpenMPI。为了避免两个不同版本的OpenMPI产生冲突,选择先安装ORCA 5.0.3是个不错的选择。以下安装步骤基本按照 http://sobereva.com/451 ,另外加了一些自己在安装时的理解。
PS:动态库版本的ORCA需要在有网络环境下运行,没有网络条件的建议安装静态版本的ORCA【!👈此句不正确,经巨佬指点shared版本也可离线使用。详见http://bbs.keinsci.com/thread-24539-1-1.html 中的7楼!】。本人试过几次但未能安装成功静态库版本,因此此章节中只介绍动态库版本ORCA 5.0.3的安装。
①首先安装gcc和gfortran编译器,这里默认的是新系统没有安装的。不是root用户的话直接运行帖子里的“yum install gcc/gfortran”会提示权限不足【!👈此句同样存在错误,详细可参见本帖文3楼,对机器不熟悉的请谨慎操作!】,一般用户直接sudo yum install gcc和sudo yum install gfortran,按照提示安装即可。
②然后安装OpenMPI。ORCA的文件包名字已经写好了安装所需的对应OpenMPI版本,直接去官网下载就行。解压后进入目录里,右键打开terminal,分别运行./configure --prefix=/home/user/openmpi411 --disable-builtin-atomics和make all install,这样OpenMPI就会被安装到/home/user/openmpi411目录下。亲测make all install -j的话会有很莫名其妙的报错,去掉-j不使用并行编译会增加耗时但是会比较稳。安装后在用户目录里右键打开terminal,输入gedit ~/.bashrc后编辑用户目录下的.bashrc文件,在文件末尾输入以下两行并保存:
export PATH=$PATH:'/home/user/openmpi411/bin'
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:'/home/user/openmpi411/lib'
重新打开terminal,输入mpiexec -V,能显示出现OpenMPI的版本即为安装成功,此时可以将下载解压后的文件目录全部删除。
③CentOS 8 Stream里面有个叫做ORCA的阅读器,没啥用,而且在后面的使用过程中会搞出麻烦。可以在terminal里直接sudo rpm -e orca卸载掉。
④在ORCA论坛里下载动态库版本的ORCA(文件名中带有“shared”的),下载后解压到/home/user/orca503中。在用户目录里右键打开terminal,输入gedit ~/.bashrc后在文件末尾输入以下三行并保存:
export PATH=$PATH:'/home/user/orca503'
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:'/home/user/orca503'
alias orca='/home/user/orca503/orca'
在包含适用于ORCA的输入文件(例:test.inp,强烈推荐使用Multiwfn生成)的文件夹内打开terminal,输入orca test.inp |tee test.out即可在terminal中实时显示计算进程同时输出文件到当前文件夹。
- Chapter 3 编译及安装CP2K 2023.1 - sob老师关于CP2K安装的教程中使用的是CP2K 8.1,但同时教程更新版本也提到2023.1版本也能通过此方法正常编译,秉着用新不用旧的思想我选择了2023.1版本。以下安装步骤基本按照 http://sobereva.com/586 ,另外加了一些自己在安装时的理解。
①首先安装MKL数学库。据说这个库安装与否十分玄学,sob老师的原文是“笔者的一些简单的对比测试并未发现用MKL时速度有显著优势”。为避免后续安装过程中又出什么乱子,还是安装上好。在用户目录里右键打开terminal,分别按提示运行:
sudo dnf config-manager --add-repo https://yum.repos.intel.com/mkl/setup/intel-mkl.repo
sudo rpm --import https://yum.repos.intel.com/inte ... W-PRODUCTS-2019.PUB
sudo dnf install intel-mkl
非root用户按照教程不加sudo会提示权限不足,因此还是得加上sudo再运行命令。这样MKL会被装到/opt/intel/目录下,在用户目录里右键打开terminal,输入gedit ~/.bashrc后编辑文件,在末尾输入source /opt/intel/parallel_studio_xe_2018.0.033/bin/psxevars.sh并保存。我有个在内地的同学反映按照教程安装一直都安装到一半就提示失败,估计是需要特殊姿势加速。
②下载CP2K的压缩包并解压,本人解压的目录为/home/user/cp2k20231。进入/home/user/cp2k20231/tools/toolchain目录中,右键打开terminal,运行./install_cp2k_toolchain.sh --with-sirius=no --with-openmpi=system --with-plumed=install,双路2699v3的机器大概用了5分钟左右就完成依赖库安装编译过程,且没有中断停止报错。
③打开/home/user/cp2k20231/tools/toolchain/install/arch,将里面的全部文件复制到/home/user/cp2k20231/arch里。然后在当前目录里打开terminal,分别运行命令:
source /home/user/cp2k20231/tools/toolchain/install/setup
cd /home/user/cp2k20231
make -j 36 ARCH=local VERSION="ssmp psmp"
make -j后面的数字可以直接改成自己服务器的核数,本人设为36大概需要15分钟的编译时间。在用户目录里右键打开terminal,输入gedit ~/.bashrc后在文件末尾输入以下三行并保存:
source /home/user/cp2k20231/tools/toolchain/install/setup
export PATH=$PATH:'/home/user/cp2k20231/exe/local'
alias cp2k='mpirun -np 36 cp2k.popt'
在包含适用于CP2K的输入文件(例:test.inp【http://sobereva.com/attach/586/test.inp】,平时使用强烈推荐使用Multiwfn生成)的文件夹内打开terminal,输入cp2k test.inp |tee test.out即可使用自己编译的popt版本的CP2K并使用36核进行并行计算,同时输出在terminal中。
- 后记 - 后来陆陆续续又安装了Gaussian16和Gromacs 2022.5(虽然现在还没用上,8月份去的培训班现在也就消化了个5%)以及GaussView6、VMD 1.9.3之类等一堆要用到的程序。
经过前面安装ORCA和CP2K的过程历练,后面程序的安装都显得平平无奇,看一遍manual也大概能知道怎么搞了。果然还是百闻不如一见、亲自变革梨子才能有好果子吃。
再回到原来关于HT的问题:个人的测试结果显示在Linux环境下还是开启HT要比关闭要快不少的,而且都比Windows系统下的计算时间要短,真不错。
[就在写这篇文章的时候] 怎么校长领着一群人来视察啊啊啊啊啊!! 不是说好了来看一看新实验室就算了吗,怎么带过来的人还这么多问题的还是英文的啊啊啊!! 怎么带来的人都是行家啊,还要跟我聊QE、VASP、CP2K还有几个我根本没听懂是啥程序的用法和适用范围啊啊啊!! [gg]
|