여기서는 ubuntu 24.04.1 에 aiida-quantumespresso 4.6 설치하는 방법에 대하여 정리하였다.
aiida-quantum espresso대한 내용은 여기를 참조한다.
1 quantum espresso 설치
먼저 Quantum espresso를 설치해야 하는데 방법에 대해서는 이전 posting을 참조한다.
2. 관련 패키지 설치
다음과 같은 명령을 실행하여 필요한 pkg를 설치한다.
$ sudo apt install git python3-dev python3-pip python3.12-venv
$ sudo apt install postgresql postgresql-server-dev-all postgresql-client rabbitmq-server
그리고 rabbitmq 설정 파일에 다음을 넣어준다.
$ sudo vim /etc/rabbitmq/rabbitmq-env.conf
## 10,000 hours in milliseconds
consumer_timeout=36000000000
그리고 rabbitmq-server를 다시 시작한다.
$ sudo systemctl restart rabbitmq-server
3. AiiDA (core) 설치
먼저 virtual enviroment를 만들어 준다.
$ python -m venv ~/envs/aiida
$ source ~/envs/aiida/bin/activate
그리고 다음을 실행한다.
(aiida) $ pip install wheel
(aiida) $ pip install aiida-core
(aiida) $ pip install aiida-core[atomic_tools,docs]
특별한 에러 메시지가 없다면 이로써 aiida pkg는 설치되었다. rabbitmq-server의 버전 문제에 대한 워닝메시지를 막기위해 다음의 명령을 수행한다.
(aiida) $ verdi config set warnings.rabbitmq_version False
Tab completion을 워한 다면 다음을 ~/.bashrc 또는 ~/.bash_profile 에 다음 내용을 넣어준다.
#
eval $(_VERDI_COMPLETE=bash_source verdi)
#
4. Aiida profile setup
aiida 설치 후 profile을 설정한다. 이 과정에 대한 자세한 내용은 여기 를 참조하기 바란다.
(aiida) $ verdi quicksetup
Info: enter ? for help
Info: enter ! to ignore the default and set no value
Profile name: prof1
Email Address (for sharing data): me@user.com
First name: my
Last name: name
Institution: where-i-work
$ verdi profile show prof1
Report: Profile: prof1
PROFILE_UUID: xxxxxxxxxxxxxxxxxxxxxxxxxxx
default_user_email: me@gmail.com
options:
warnings.rabbitmq_version: false
process_control:
backend: rabbitmq
config:
broker_host: 127.0.0.1
broker_password: guest
broker_port: 5672
broker_protocol: amqp
broker_username: guest
broker_virtual_host: ''
storage:
backend: core.psql_dos
config:
database_engine: postgresql_psycopg2
database_hostname: localhost
database_name: prof1_me_xxxxxxxxxxxxxxxxxxxxxxx
database_password: xxxxxxxxxxxxxxxxxx
database_port: 5432
database_username: aiida_qs_me_3a9ffc1aa329784eee9a5ce8a1c13997
repository_uri: file:///home/me/.aiida/repository/prof1
test_profile: false
5. Verdi 사용하기
5.1 verdi daemon 시작하기
다음과 같은 방법으로 verdi daemon을 시작한다.
(aiida) $ verdi daemon start 2
Starting the daemon with 2 workers... OK
만약 아래와 같은 에러가 발생하면,
Starting the daemon with 2 workers.verdi daemon start 2.. FAILED
다음의 명령을 실행한다.
$ verdi daemon start-circus --foreground
5.2 설정 상태 확인
다음의 명령으로 verdi 의 상태를 확인한다.
(aiida) $ verdi status
✔ version: AiiDA v2.5.2
✔ config: /home/me/.aiida
✔ profile: host1
✔ storage: Storage for 'host1' [open] @ postgresql://.........
✔ rabbitmq: Connected to RabbitMQ v3.12.1 as amqp://guest:guest@127.0.0.1:5672?heartbeat=600
✔ daemon: Daemon is running with PID 6450
5.3 Verdi computer setup
computer 를 다음과 같은 방법으로 설정한다.
(aiida) $ verdi computer setup
Computer label: dia
Hostname: diamond
Description []: my computer
Transport plugin: core.local
Scheduler plugin: core.slurm
Shebang line (first line of each script, starting with #!) [#!/bin/bash]:
Work directory on the computer [/scratch/{username}/aiida/]: /home/me/Works/aiida
Mpirun command [mpirun -np {tot_num_mpiprocs}]:
Default number of CPUs per machine: 8
Default amount of memory per machine (kB).: 64000000
Escape CLI arguments in double quotes [y/N]: y
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]: 2
Success: Computer<1> dia created
Report: Note: before the computer can be used, it has to be configured with the command:
Report: verdi -p me -qe1 computer configure core.local dia
(aiida) $ verdi -p me -qe1 computer configure core.local dia
To list computer
$ verdi computer list
$ verdi computer show dia1
-------------- ------------------------------------
Label dia
PK 3
UUID 38637a2d-b388-4344-8cc5-c8b8bd0cf20c
Description my computer
Hostname diamond
Transport type local
Scheduler type slurm
Work directory /home/me/Works/aiida
Shebang #!/bin/bash
Mpirun command mpirun -np {tot_num_mpiprocs}
Prepend text
Append text
-------------- ------------------------------------
5.4 Code Setup
aiida를 사용하여 계산을 하려는 경우, 컴파일된 실행파일을 verdi code 로 설정하여야 한다.
이미 설정되어 있는 code 목록을 보려면 다음의 명령을 실행한다.
(aiida) $ verdi code list
여기서는 quantum espresso 실행파일을 code로 등록하여야 하는데 아래의 방법을 따라 코드로 등록한다.
aiida-quantumespresso 설치
먼저 aiida-quantum-espresso를 설치한다.
(aiida) $ pip install aiida-quantumespresso
이문서를 작성하는 시점에서는 aiida-quantumespresso 최신 버전인 4.6.0 이 설치된다.
설치 후 선호하는 편집기를 사용하여 다음의 파일을 만들고 아래의 내용을 넣어준다.
code-pw73.yml
label: "qe-73-pw"
description: "quantum_espresso v7.3"
input_plugin: "quantumespresso.pw"
on_computer: true
remote_abs_path: "/usr/local/qe/qe-73/bin/pw.x"
computer: "dia"
prepend_text: "ulimit -s unlimited"
append_text: " "
그리고 다음의 명령을 실행한다.
$ verdi code setup --config code-pw73.yml
ph.x, pp.x, cp.x ... 등도 같은 방법으로 설정한디.
설정된 code의 리스트를 보려면
$ verdi code list
# List of configured codes:
# (use 'verdi code show CODEID' to see the details)
* pk 103 - qe-7.3-pw@dia
* pk 104 - qe-7.3-dos@dia
* pk 105 - qe-7.3-cp@dia
* pk 106 - qe-7.3-create_kpoints_from_distance@dia
* pk 107 - qe-7.3-epw@dia
* pk 108 - qe-7.3-matdyn@dia
* pk 109 - qe-7.3-namelists@dia
* pk 110 - qe-7.3-neb@dia
* pk 111 - qe-7.3-ph@dia
* pk 112 - qe-7.3-pp@dia
* pk 113 - qe-7.3-projwfc@dia
* pk 114 - qe-7.3-pw2gw@dia
* pk 115 - qe-7.3-pw2wannier90@dia
* pk 116 - qe-7.3-pwimmigrant@dia
* pk 117 - qe-7.3-q2r@dia
* pk 118 - qe-7.3-seekpath_structure_analysis@dia
pseudopotentials 설치
sssp pseudopotential을 다음의 명령을 실행하여 설치한다.
$ pip install aiida-pseudo
$ aiida-pseudo install sssp -v 1.3 -x PBEsol -p efficiency
$ aiida-pseudo install sssp -v 1.3 -x PBE -p efficiency
Pseudo Dojo library를 설치하려면 다음과 같이한다. ```
$ aiida-pseudo install pseudo-dojo
설치된 포텐셜 라이브러리는 다음의 명령으로 확인할 수 있다. ```
$ aiida-pseudo list
6. Jupyter 설치하기
jupyter 를 다음과 같이 설치한다.
$ pip install jupyterlab
$ jupyter notebook
jupyter notebook에서 the aiida magics extension 을 로딩하려면 다음의 명령을 실행한다.
%load_ext aiida
그리고 VERDI profile을 다음과 같은 방법으로 로딩한다.
%aiida
%verdi status
로딩시 에러가 발생하는 경우 다음과 같이 추가 설치 및 설정을 한다.
$ source ~/env/aiida/bin/activate
(aiida) $ pip install ipykernel
(aiida) $ python -m ipykernel install --user --name=aiida_venv
$ cp -r ~/envs/aiida/lib/python3.10/site-packages/aiida/tools/ipython/* ~/.ipython/profile_default/startup/
7. Slurm 스케줄러 설치
이전 포스팅인 "Ubuntu 20.4 에 SLURM 스케줄러 설치하기" 를 참조한다.
8. 테스트
이렇게 설치한 aiida-quantumespresso 응 이용하여 예를 계산하여 보자.
BaTiO3 예 를 사용해 보자.
계산시 \'pw-6.3@TheHive\' ==> 설치된 code core.struture ==> strucutre core.dict ==> dict core.array.kpoints ==> array.kpoints
으로 수정하여 사용한다.
여기에 정리한 방법으로 단일 컴퓨처에서는 작동하는 것을 확인하였으나 cluster에서는 아직 작동하지 않는다. cluster에 설치하는 방법에 대해서는 추후에 정리하고자 한다.