今天来学习一下 在服务器上搭建VASP-aiida 高通量计算
什么是 aiida(挨打)
AiiDA是一个使用Python编写的开源复杂工作流设计和管理框架,旨在帮助从事计算科学(计算材料学,计算生物学等)的相关研究者可以更好的管理,编写,使用和分享复杂的工作流以及计算产生的有用数据。它使得在研究中复杂的计算流程的可重复性得以保证。
AiiDA实现并支持了ADES 模式的四大基石: (A)utomation(自动)、 (D)ata(数据)、 (E)nvironment(社区环境)、和 (S)haring (分享) (请参考 论文)。AiiDA支持的一些典型特性包括:
- 工作流: AiiDA 可以用来创建并执行复杂的,自动文档化的工作流,来连接本地和远端计算资源上的多个计算代码。
- 高通量: AiiDA的基于事件的工作流引擎支持成百上千(每小时)的带有检查点的计算例程。
- 数据可验证性 AiiDA自动追踪所有可验证性图中(provenance graph) 的输入、输出和元数据,以保证计算的完全的可重复性。
- 高级的查询检索特性: AiiDA的查询语言支持快速的千万个节点的图查询。
- 插件接口: AiiDA 可以通过插件来支持各种计算代码,和各种数据分析工具,各种数据类型,任务调度工具以及远程连接方式等 (参见 公共插件库).
- 高性能集群接口: AiiDA支持无缝的把你的计算从一个集群转换到另一个集群运行。AiiDA 兼容各种任务调度软件 SLURM、 PBS Pro、 torque、 SGE 或者 LSF ,对这些任务调度工具AiiDA都是源生支持的。
- 开放科学: AiiDA可以将全部或部分的数据库导出,以便于和同行分享,或上传至 Materials Cloud 以变 归档 和 检索。
安装 aiida-vasp
LINUX服务器下ANACONDA安装以及多用户共用虚拟环境 核心在共享目录
groupsadd anaconda
usermod -G ...........
gpasswd -a who anaconda
gpasswd -A who anaconda
chgrp -R anaconda /opt/anaconda3 # 移交目录管理权
chmod 770 -R /opt/anaconda # 设置读写权限
chmod g+s /opt/anaconda3 # 设置组继承
chmod g+s `find /opt/anaconda3/ -type d` # 设置子目录组继承
chmod g+w `find /opt/anaconda3/ -type d` # 设置子目录组继承
source /opt/anaconda/bin/activate3
conda create -n aiida-vasp python=3
source activate aiida-vasp
conda install gcc_linux-64 gxx_linux-64 ipython
切回 普通用户
conda activate aiida-vasp
Install RabbitMQ
AiiDA依赖于RabbitMQ。安装这个需要超级用户权限。
安装和配置数据库
AiiDA依赖于PostgreSQL数据库。
在AiiDA中配置数据库需要的是PostgreSQL数据库服务器的主机名或 IP 地址、用户名、密码、数据库名称和端口号。请注意,密码可能会被截获,因此请不要选择您通常用于高安全性服务的密码,即使它仅在您的本地计算机上使用。
AiiDA使用psycopg2适配器从 Python 访问PostgreSQL数据库服务器。
接下来的步骤分为PostgreSQL服务器的系统安装和特定于conda的安装 。如果您使用常规的 Python 虚拟环境,请遵循第一个,如果您更喜欢在Conda中工作,请遵循第二个。最后有一个通用部分描述了如何设置由PostgreSQL服务器服务的实际数据库。
一般来说,我们假设我们将创建的数据库的用户与系统用户不相关
initdb -D aiida-vasp-db
安装创建了用户postgres,您可以使用它来管理数据库、用户等。现在让我们添加数据库aiidadb和用户aiida,并为他们提供必要的权限和密码。首先,让我们进入PostgreSQL交互终端:
1su - postgres
2psql
3# CREATE USER aiida WITH PASSWORD '<password>';
4# CREATE DATABASE aiidadb OWNER aiida ENCODING 'UTF8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;