【CP2K学习】-在Ubuntu上安装CP2K的全过程(包括gcc,gfortran,MKL等配置)

news2024/9/29 13:03:23

在Ubuntu中安装CP2K

  • CP2K的安装
    • 检查系统是否安装gcc,gfortran
    • MKL数学库的安装
    • CP2K安装包下载
    • CP2K的编译
    • CP2K的测试
      • ssmp版本测试
      • popt版本测试

在这里插入图片描述
CP2K是第一性原理计算程序中发展迅速的程序之一,因其开源性、速度性等优点,是广大计算化学研究者的选择。

本文档用于记录安装CP2K的全过程,主要参考来源为卢天老师的博文[CP2K第一性原理程序在CentOS中的简易安装方法],本文在此博文的指导下,将某些安装过程细化。

注:本系统中的Ubuntu版本为20.04.1,本次安装CP2K的版本为2023.2

CP2K的安装

检查系统是否安装gcc,gfortran

在安装CP2K前,需要检查系统中是否安装了gcc,gfortran,以及其版本是否高于5.5版

gcc -v
gfortran -v

如果没有安装,则需要使用root权限安装

sudo apt install gcc
sudo apt install gfortran

MKL数学库的安装

  1. 首先进入MKL的官网
    在这里插入图片描述
  2. 选择linux系统-Offline Installer(离线安装)-2023.2.0(版本号)
    在这里插入图片描述
    在这个页面的下方可以看到下载的链接以及安装指导
    在这里插入图片描述
    这里提示可以通过以下这两行代码在linux系统上分别下载、安装
    在这里插入图片描述
wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/992857b9-624c-45de-9701-f6445d845359/l_BaseKit_p_2023.2.0.49397_offline.sh
#注意需要进入安装包所在目录,在运行以下命令,如果没有权限,也可以用bash运行
sudo sh ./l_BaseKit_p_2023.2.0.49397_offline.sh

注意:此处的安装会使系统页面变成需要自己在系统上选择下一步的样子,注意别选错了。
3. 获取MKL安装所在目录,如:/home/phd-chen.yirong5/intel/oneapi
4. 回到主目录(cd ~),添加以下命令到.bashrc文件中(vi .bashrc):

source /home/phd-chen.yirong5/intel/oneapi/mkl/2023.2.0/env/vars.sh

注:此处要根据自己机子的实际目录进行修改
5. 保存并退出(按Esc停止输入,按shift+:,输入wq),执行:source .bashrc,检查是否安装成功:which mkl_link_tool
6. 结果输出为:/home/phd-chen.yirong5/intel/oneapi/mkl/2023.2.0/bin/intel64/mkl_link_tool因此MKL安装成功

CP2K安装包下载

  1. 进入CP2K官网,点击“download”.
    在这里插入图片描述
  2. 找到github指示入口,下载安装包(以tar.bz2为结尾的包)
    在这里插入图片描述
    在这里插入图片描述
  3. 在linux系统中解压安装包:tar -xf cp2k-2023.2.tar.bz2,解压安装包后的目录为:/home/phd-chen.yirong5/software/cp2k202302,这里每个人的安装目录有所差异,因此要学会改成自己系统的实际目录,这一点适用于本文全部涉及路径的地方。
  4. 进入toolchain所在目录(如,/home/phd-chen.yirong5/software/cp2k202302/tools/toolchain/),并执行下载库的命令(参考来源及解析https://github.com/cp2k/cp2k/blob/master/tools/toolchain/README.md):
cd /home/phd-chen.yirong5/software/cp2k202302/tools/toolchain/
./install_cp2k_toolchain.sh --with-sirius=no --with-openmpi=system --with-plumed=install -j 48

注意:此处48为机子的核数,其他参数的设置需要参考卢天老师博文的解释以及原网站的说明。

CP2K的编译

  1. 以上命令顺利运行后,将/home/phd-chen.yirong5/software/cp2k202302/tools/toolchain/install/arch下的所有文件复制到/home/phd-chen.yirong5/software/cp2k202302/arch
  2. 接着依次运行以下命令:
source /home/phd-chen.yirong5/software/cp2k202302/tools/toolchain/install/setup
cd /home/phd-chen.yirong5/software/cp2k202302
make -j 48 ARCH=local VERSION="ssmp sdbg psmp pdbg"
  1. 编译成功。
    在这里插入图片描述
  2. 回到主目录(cd ~),将以下内容添加到.bashrc文件中(vi .bashrc)
source /home/phd-chen.yirong5/software/cp2k202302/tools/toolchain/install/setup
export PATH=$PATH:/home/phd-chen.yirong5/software/cp2k202302/exe/local
  1. 添加这两行内容到.bashrc文件后,保存并退出(按Esc停止输入,按shift+:,输入wq),执行:source .bashrc
  2. 检查是否安装成功:cp2k.ssmp -v
    在这里插入图片描述

CP2K的测试

使用卢天老师提供的测试文件:http://sobereva.com/attach/586/test.inp
分别测试CP2K的ssmp,popt版本。

ssmp版本测试

进入测试文件所在目录,执行:cp2k.ssmp test.inp |tee test.out
软件正常运行,输出:
在这里插入图片描述

popt版本测试

进入测试文件所在目录,执行:mpirun -np 12 cp2k.popt test.inp |tee test.out
软件正常运行,输出:
在这里插入图片描述
以上便是本次安装CP2K的记录,使用一个晚上专心安装即可安装成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/920189.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023.8各大浏览器11家对比:Edge/Chrome/Opera/Firefox/Tor/Vivaldi/Brave,安全性,速度,体积,内存占用

测试环境:全默认设置的情况下,均在全新的系统上进行测试,系统并未进行任何改动,没有杀毒软件,浏览器进程全部在后台,且为小窗模式,小窗分辨率均为浏览器厂商默认缩放大小(变量不唯一)&#xff0…

C#|如何调试进依赖动态库中

第一步:打开项目属性 第二步 打开debug的本地调试可用 第三步 把要调试的代码拖进主界面打断点就可以进断点了

测试分类

测试分类(全是概念;非常抽象)按对象划分界面测试可靠性测试容错性测试文档测试兼容性测试易用性安装卸载测试安全测试性能测试内存泄漏测试 按是否查看代码划分黑盒测试白盒测试灰盒测试 按开发阶段划分单元测试集成测试系统测试回归测试冒烟…

js判断类型:typeof Object.prototype.toString instanceof constructor有什么区别?一文讲清楚

相信很多小伙伴在使用js的过程中,经常会需要对js的数据类型进行判断,而js中可以对数据类型进行判断的方法有很多种,最常见的有typeof、Object.prototype.toString、instanceof、constructor这四种,那么他们有什么区别呢&#xff1…

ssm+vue游戏攻略网站源码和论文

ssmvue游戏攻略网站源码和论文052 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 一、主要内容和基本要求 游戏攻略网站分为管理员与用户两种角色。 管理员的功能包括登录,用户管理,游…

Laravel 框架构造器的查询表达式构造器的 Where 派生查询 ⑥

作者 : SYFStrive 博客首页 : HomePage 📜: THINK PHP 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &#x1f44…

QCC_BES 音频重采样算法实现

+V hezkz17进数字音频系统研究开发交流答疑群(课题组) 这段代码是一个用于将音频数据进行立体声重采样的函数。以下是对代码的解读: 函数接受以下参数: pcm_buf:16位有符号整型的音频缓冲区,存储了输入的音频数据。pcm_len:音频缓冲区的长度。mic1:16位有符号整型的音频…

SpringBoot 01 如何创建 和pom的解析

目录 1 Springboot的创建 步骤 2 项目的书写和运行 创建service包并在其下写一个service文件 项目的运行 pom文件的一些配置 parent web test 打包 打包过程 1 Springboot的创建 步骤 首先new一个新项目 然后依照如下创建 2 项目的书写和运行 创建service包并…

企业网络日志安全与 EventLog Analyzer

企业的网络日志安全是一项至关重要的任务。随着信息技术的迅猛发展,网络攻击和数据泄露的威胁也与日俱增。为了应对这些威胁,企业需要强大的工具来监控、分析和保护其网络日志。而ManageEngine的EventLog Analyzer正是这样一款卓越的解决方案。 网络日志…

意外发现Cortex-M内核带的64bit时间戳,比32bit的DWT时钟周期计数器更方便,再也不用担心溢出问题了

视频: https://www.bilibili.com/video/BV1Bw411D7F5 意外发现Cortex-M内核带的64bit时间戳,比32bit的DWT时钟周期计数器更方便,再也不用担心溢出问题了 介绍: 看参数手册的Debug章节,System ROM Table里面带Timestam…

PS基础操作

1:盖印图层。 1. 建立新图层:盖印前要先新建一透明层,或者添加调整图层和中性色图层。 2. 按快捷键Ctrl Alt Shift E盖印所有可见图层;Ctrl Alt E盖印所选图层 2:复制图层。 复制图层CtrlJ 3:shift…

读SQL学习指南(第3版)笔记04_查询入门

1. 在执行语句之前,会先检查下列事项 1.1. 是否有权限执行该语句 1.2. 是否有权限访问指定的数据 1.3. 语句的语法是否正确 2. select子句 2.1. select子句是select语句中的第一个子句,但最后才会被数据库服务器评估 2.2. 决定哪些列应该包含在查询…

stm32之15.超声波与灯光功能一起实现(进阶)

主函数代码修改 --------------------- 源码 int main(void) {uint32_t t0;uint32_t distance;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);led_init();key_init();/* 初始化串口1波特率为115200bps,若发送/接收数据有乱码,请检查PLL */usart1_ini…

vue 使用C-Lodop打印小票

先从官网下载js文件 https://www.lodop.net/LodopDemo.html 打开安装程序,一直下一步既可,我这边已经安装过就不演示了。 // 引入 import { getLodop } from /utils/CLodopfuncs.js;// 使用 let LODOP getLodop()let Count LODOP.GET_PRINTER_COUNT…

嵌入式ARM 音频算法开发库

我V hezkz17进数字音频系统研究开发交流答疑群(课题组) CMSIS DSP Library 算法库,是开源的算法库 BES的SDK也使用了该库,要想自己设计嵌入式音频算法,可在Cortex-M内核平台可以基于此库开发算法 AEC, AGC, ANC, ENC, RNC, 。。。。。。…

Ansible 创建使用角色

使用 Ansible Galaxy 和要求文件 /ansible/roles/requirements.yml 。从以下 URL 下载角色并安装到 /ansible/roles : http://materials/haproxy.tar 此角色的名称应当为 balancer http://materials/phpinfo.tar 此角色的名称应当为 phpinfo #创建 vim /ansible/r…

四、Kafka Broker

4.1.1 Zookeeper 存储的 Kafka 信息 4.1.2 Kafka Broker 总体工作流程 4.2 生产经验 - 节点的服役和退役 自己的理解:其实就是将kafka的分区,负载到集群中的各个节点上。 1、服役新节点 2、退役旧节点 4.3 kafka副本

商城-学习整理-集群-K8S(二十三)

目录 一、k8s 集群部署1、k8s 快速入门1)、简介2)、架构1、整体主从方式2、Master 节点架构3、Node 节点架构 3)、概念4)、快速体验1、安装 minikube2、体验 nginx 部署升级 5)、流程叙述 2、k8s 集群安装1、kubeadm2、…

【学习FreeRTOS】第14章——FreeRTOS信号量

1.信号量的简介 信号量是一种解决同步问题的机制,可以实现对共享资源的有序访问。 信号量:用于传递状态(区别于队列传递消息) 信号量的计数值都有限制:限定最大值。 如果最大值被限定为1,那么它就是二值…

Kaggle回归问题Mercedes——Benz Greener Manufacturing

目录 前言1 题目介绍2 数据清洗3 数据可视化分析4 模型训练5 源码 前言 这是我在大三选修课的课程设计,内容参考了Kaggle上高赞的代码,有详细批注,整体比较基础,结构相对完整,便于初学者学习。这个是一个回归问题&…