新建
Bohrium 帮助文档|CP2K

Bohrium


MileAway

推荐镜像 :Basic Image:bohrium-notebook:2023-04-07
推荐机型 :c2_m4_cpu
赞
1
4
目录
数据集
Bohrium 帮助文档|CP2K(v1)
软件案例|CP2K
本文介绍如何在 Bohrium 上运行 CP2K 任务。
简介
CP2K 是运行最快的开源第一性原理材料计算和模拟软件,可研究上千个原子的大体系,广泛用于固体、液体、分子、周期、材料、晶体和生物系统的模拟。它是由马克斯-普朗克研究中心早在 2000 年发起的一项用于固体物理研究的项目,全部代码使用 Fortran 2003 写成。现在它已转由苏黎世联邦理工学院( ETH Zurich )和苏黎世大学( Univ. Zurich )维护,成为一个开源的项目,遵从 GPL 协议,用户可以从其官方网站下载到源代码。本教程主要介绍如何在 Bohrium 平台上运行 CP2K 计算任务。
如何在 Bohrium 上运行 CP2K 任务
本案例任务运行约需 1 min 30 s
代码
文本
步骤一,准备输入数据
以甲烷为例,CP2K 的输入文件均已存储至 Bohrium_CP2K_example
文件夹内,(你可以在左侧点击数据集查看相应文件):
代码
文本
[2]
# 出于安全考虑,我们没有数据集所在文件夹的写入权限,因此我们将其复制到 `/data/` 目录下:
! cp -nr /bohr/ /data/
# 我们在这里定义一些路径,并切换到工作路径,方便后续调用:
import os
bohr_dataset_url = "/bohr/bohrium-cp2k-crko/v1/" # url 可从左侧数据集复制
work_path = os.path.join("/data", bohr_dataset_url[1:])
os.chdir(work_path)
print(f"当前路径为:{os.getcwd()}")
当前路径为:/data/bohr/bohrium-cp2k-crko/v1
代码
文本
步骤二,准备配置文件
代码
文本
[3]
# 进入 Bohrium_CP2K_example 文件夹
try:
os.chdir("./Bohrium_CP2K_example")
print(f"当前路径为:{os.getcwd()}")
except:
print(f"当前路径{os.getcwd()},请检查工作路径是否正确或数据集是否已复制。")
当前路径为:/data/bohr/bohrium-cp2k-crko/v1/Bohrium_CP2K_example
代码
文本
文件夹内已经包含配置文件 job.json
,您也可以通过以下 Python 代码创建或编辑 job.json
:
代码
文本
[5]
import json
# 设置 job.json 的参数
job_params = {
"job_name": "CP2K_Si_opt",
"command": "source /cp2k-7.1/tools/toolchain/install/setup && mpirun -n 16 --allow-run-as-root --oversubscribe cp2k.popt -i input.inp -o output.log",
"log_file": "output.log",
"backward_files": ["output.log"],
"project_id": 0000,
"platform": "ali",
"job_type": "container",
"machine_type": "c16_m32_cpu",
"image_address": "registry.dp.tech/dptech/cp2k:7.1"
}
with open("job.json", "w") as f:
json.dump(job_params, f, indent=4, ensure_ascii=False)
print(f"已生成 {os.path.join(os.getcwd(), 'job.json')}, \n参数为:\n{json.dumps(job_params, indent=4, ensure_ascii=False)}")
已生成 /data/bohr/bohrium-cp2k-crko/v1/Bohrium_CP2K_example/job.json, 参数为: { "job_name": "CP2K_Si_opt", "command": "source /cp2k-7.1/tools/toolchain/install/setup && mpirun -n 16 --allow-run-as-root --oversubscribe cp2k.popt -i input.inp -o output.log", "log_file": "output.log", "backward_files": [ "output.log" ], "project_id": 0, "platform": "ali", "job_type": "container", "machine_type": "c16_m32_cpu", "image_address": "registry.dp.tech/dptech/cp2k:7.1" }
代码
文本
注意: "project_id"
:后的 0000
需要替换为您自己的项目ID,可在“项目管理”页查看。
代码
文本
步骤三,提交任务
第一次使用 Lebesgue Utility 需要配置,若您还未配置,请参阅 Bohrium 帮助文档|Lebesgue Utility)
使用 Lebesgue Utility 提交任务(Lebesgue Utility 是 Bohrium 平台的作业管理系统):
代码
文本
[ ]
os.system("lbg job submit -i job.json -p ./")
代码
文本
其中:
- -i 指定任务的配置文件,本案例中是 job.json
- -p 指定输入文件所在的目录,Bohrium 会将指定的目录打包上传,在计算节点上解压后,将工作目录切换为该目录。本案例中是 ./
在命令行看到如下输出即表示提交成功。同时可以看到任务的 JOB ID,后续可用此 ID 追踪任务进度。
代码
文本
Submit job succeed. JOB GROUP ID: <JOB GROUP ID>, JOB ID: <JOB ID>
代码
文本
点个赞吧
本文被以下合集收录
Bohrium 帮助文档|软件案例

MileAway

更新于 2024-05-12
14 篇7 人关注
CP2K

bohr9d1500

更新于 2024-04-18
4 篇0 人关注
推荐阅读
公开
Bohrium 帮助文档|LAMMPS
Bohrium

发布于 2023-10-14
1 赞6 转存文件
公开
Bohrium 帮助文档|CALYPSO
Bohrium

发布于 2023-10-15
2 转存文件